agents-lab

Local-first lab for reusable AI-agent primitives and the curated pi-stack.

View on GitHub

Web Session Gateway (first-party)

Guia de arquitetura e operação do web-session-gateway no @aretw0/pi-stack.

Objetivo

Criar uma primitiva web determinística para sessão pi, sem depender de UI hospedada externa.

Princípios:

Comando

/session-web start
/session-web status
/session-web open
/session-web stop

Tool

session_web_status

Retorna estado estruturado do gateway (running, port, accessUrl, token, etc.).

Modos de execução

Configuração em .pi/settings.json do projeto:

{
  "piStack": {
    "webSessionGateway": {
      "mode": "local",
      "port": 3100,
      "advertisedHost": "192.168.0.34"
    }
  }
}

Endpoints

Arquivo de runtime (coordenação de portas)

Ao iniciar, o gateway grava ./.pi/session-web-runtime.json com running, port, mode e url.

Esse arquivo é consumido por guardrails first-party para evitar conflito de portas durante testes/servidores paralelos (ex.: bloquear pnpm run dev -- --port 3100 quando session-web já está em 3100).

Ao parar o gateway, o arquivo é removido.

Segurança mínima

Relação com colony

web-session-gateway é genérico. Pode observar qualquer sessão.

Quando colony está ativa, sinais como [COLONY_SIGNAL:*] aparecem no estado web por telemetria textual. Isso é integração por contrato de mensagens, não acoplamento estrutural à extensão de colony.

E2E automatizado (test-harness)

Teste principal:

Cobertura:

Evolução planejada

  1. separar renderer web em módulo dedicado (UI local mais rica)
  2. adicionar stream de eventos (SSE/WebSocket) além de polling
  3. adicionar auth por sessão/escopo (além de token query)
  4. permitir múltiplos gateways/ports por workspace, se necessário

Não-objetivos (MVP)