MÓDULO DE INTERAÇÃO VIA WEB

 

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

  1. Usuário abre web

  2. Edita tasks.json

  3. Fecha navegador

  4. Executa manualmente:

python run.py
  1. Logs e relatórios são gerados

  2. 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:

  1. Criar a pasta WEB + templates mínimos

  2. Adicionar autenticação local simples (PIN)

  3. Conectar WEB com IA_SUBORDINATE (apenas leitura/escrita)

Diga apenas o número.

Comentários

Postagens mais visitadas deste blog

MODULO COMPUTACIONAL ESTÁVELE FUNCIONAL: PAPEIS E CENAS PROCESSAMENTO EM SILIGISMO LÓGICOS ESTÁVREIS

PAPEIS E CENAS PROCESSAMENTO EM SILIGISMO LÓGICOS ESTÁVREIS

Princípio de Realidade Operacional: Papéis e Resultados (Atores e Cenas)