Gleam.br Wiki

EARS: SDK e API de Extensões (ADR-0026) | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

EARS: SDK e API de Extensões (ADR-0026)

*Requisitos Ubíquos (Ubiquitous Requirements)*

  • *UBQ-SDK-01:* O pacote gbr_ai_sdk *deve* isolar e abstrair todos os tipos e lógica core de Prompt, Tool Calling e Memória Episódica para que possam ser importados por qualquer projeto dentro do monorepo Gleam-BR sem causar acoplamento com a camada de execução (Harness).
  • *UBQ-SDK-02:* A aplicação gbr_ai_harness *deve* encapsular toda a lógica de sandboxing, ciclo de vida de processo Erlang/OTP e renderização de interface visual TUI (etui), garantindo segurança por padrão.
  • *UBQ-SDK-03:* A API oficial de Extensões para agentes e ferramentas *deve* operar exclusivamente sobre o *Model Context Protocol (MCP)*, garantindo que "ferramentas internas" e "ferramentas externas" obedeçam ao mesmo padrão de contrato.

*Requisitos Orientados a Eventos (Event-Driven Requirements)*

  • *EVD-SDK-01:* Quando a aplicação Harness (gbr_ai_harness) iniciar o ciclo de vida do agente local, o sistema *deve* instanciar o sub-processo etui sem injetar ou embutir sua base de código no código do agente, invocando-o apenas via interface de dependência gleam.toml.
  • *EVD-SDK-02:* Quando o harness requisitar a carga de uma extensão de funcionalidade do sistema, ele *deve* fazê-lo negociando as Capabilities e Tools via client MCP abstraído pelo SDK.

*Requisitos de Estado (State-Driven Requirements)*

  • *STD-SDK-01:* Enquanto o gbr_ai_harness não puder validar o handshake MCP de uma ferramenta recém-anexada, a ferramenta *deve* ser mantida inativa e indisponível para o contexto do LLM.

*Requisitos de Comportamento Indesejado (Unwanted Behavior Requirements)*

  • *UNW-SDK-01:* Se uma extensão "built-in" tentar exportar suas funções diretamente (via chamadas OTP tradicionais) bypassando o conector MCP do SDK, o Harness *não deve* expor essas funções para o Client do LLM, prevenindo integrações forasteiras não-padronizadas.