MÓDULO DE INTERAÇÃO VIA WEB
- Gerar link
- X
- Outros aplicativos
MÓDULO DE INTERAÇÃO VIA WEB
PRAXIUM-WEB-01 (subordinado ao NIM-01)
⚠️ Princípio inegociável
A web NÃO executa nada.
A web NÃO decide nada.
A web só escreve arquivos e lê relatórios.
Execução continua exclusivamente local via NIM-01.
1. Objetivo real do módulo web
O módulo web serve para:
-
Criar / editar:
-
tasks.json -
prompts de IA subordinada
-
-
Visualizar:
-
REPORTS/summary.json -
REPORTS/alerts.json -
logs consolidados
-
-
Operar como interface humana, não como motor
👉 É um painel de controle, não um agente.
2. Arquitetura correta (simples e robusta)
PRAXIUM_NIM_01/
│
├── WEB/
│ ├── app.py # servidor web mínimo
│ ├── config_web.json # permissões do painel
│ ├── templates/
│ │ ├── index.html
│ │ ├── tasks.html
│ │ ├── reports.html
│ └── static/
│ └── style.css
│
├── INPUT/
│ └── tasks.json # escrito pela web
│
├── REPORTS/ # lido pela web
├── LOGS/
└── run.py # NIM (intocado)
3. Tecnologia escolhida (deliberadamente simples)
Flask (local only)
Por quê:
-
padrão
-
mínimo
-
auditável
-
zero dependência externa
-
fácil de desligar
Nada de:
-
React
-
Node
-
WebSocket
-
cloud
-
login externo
4. Regras de segurança (importantes)
A web PODE:
-
Ler arquivos
.json,.md -
Escrever somente:
-
tasks.json -
arquivos em
AI_SUBORDINATE/
-
A web NÃO PODE:
-
chamar
Executor -
chamar
run.py -
rodar shell
-
tocar em
LOGS/*/executions.jsonl
5. Esqueleto mínimo (app.py)
# PRAXIUM-WEB-01
# Interface humana — leitura e escrita controlada
from flask import Flask, render_template, request, redirect, url_for
from pathlib import Path
import json
BASE = Path(__file__).resolve().parent.parent
TASKS_PATH = BASE / "tasks.json"
REPORTS_DIR = BASE / "REPORTS"
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/tasks", methods=["GET", "POST"])
def tasks():
if request.method == "POST":
content = request.form["tasks"]
TASKS_PATH.write_text(content, encoding="utf-8")
return redirect(url_for("tasks"))
tasks_text = TASKS_PATH.read_text(encoding="utf-8")
return render_template("tasks.html", tasks=tasks_text)
@app.route("/reports")
def reports():
reports = []
for p in REPORTS_DIR.glob("*.json"):
reports.append({
"name": p.name,
"content": p.read_text(encoding="utf-8")
})
return render_template("reports.html", reports=reports)
if __name__ == "__main__":
app.run(host="127.0.0.1", port=8080, debug=False)
6. Fluxo operacional correto
-
Usuário abre web
-
Edita
tasks.json -
Fecha navegador
-
Executa manualmente:
python run.py
-
Logs e relatórios são gerados
-
Web apenas exibe o resultado
👉 Separação perfeita entre:
-
Interface
-
Execução
-
Governança
7. Por que isso é tecnicamente superior
-
Zero risco de execução remota
-
Zero acoplamento
-
Total auditabilidade
-
Web é descartável
-
NIM permanece soberano
Esse desenho aguenta auditoria, processo judicial e uso institucional.
Próximo micro-passo (ordem correta)
Escolha um:
-
Criar a pasta WEB + templates mínimos
-
Adicionar autenticação local simples (PIN)
-
Conectar WEB com IA_SUBORDINATE (apenas leitura/escrita)
Diga apenas o número.
- Gerar link
- X
- Outros aplicativos
Comentários
Postar um comentário