Summary
Habilitar o suporte oficial ao OpenCode em modo full (normal) e integrar a extensão/plugin nativo opencode-simplicio (https://github.com/Pasblinn/opencode-simplicio).
Atualmente o OpenCode está configurado com SIMPLICIO_RUNTIME_MODE: "mapper-only" durante o registro MCP do Runtime, limitando o agente apenas a ferramentas de leitura e observação (simplicio_map, simplicio_context). Com esta issue, o OpenCode passa a ter paridade total com o Claude Code e Hermes, tornando-se um native-plugin com suporte a execução governada e lifecycle hooks de entrada e saída.
Contexto & Motivação
-
Contrato Existente vs. Realidade:
- Em
tests/fixtures/host-surface-v1.json, o OpenCode já está classificado na categoria "full" junto com Cursor, VS Code e Codex ("canonical": ["simplicio_map", "simplicio_context", "simplicio_memory", "simplicio_edit", "simplicio_run"]).
- Porém, em
simplicio-runtime/src/planned_writes.rs, o ambiente gerado para ~/.config/opencode/opencode.json fixa SIMPLICIO_RUNTIME_MODE: "mapper-only", bloqueando simplicio_edit, simplicio_run e simplicio_loop.
-
Lifecycle Hooks no OpenCode:
- O OpenCode não utiliza arquivos estáticos de hooks como
hooks.json ou settings.json. Seu mecanismo oficial de extensão é a API de plugins TypeScript (@opencode/plugin).
- A extensão
opencode-simplicio permite interceptar o ciclo de vida do agente nativamente:
- Pre-Hook (
turn.before / messages.transform): Aquece o cache do repositório (simplicio map) de forma assíncrona/não-bloqueante e injeta o MapHandle no contexto do modelo.
- Stop / Turn-End Hook (
turn.after): Registra a economia de tokens no ledger (simplicio savings record) e emite telemetria.
- Pre-Tool Hook (
tool.execute.before): Portão de segurança para comandos effectful.
Escopo & Entregáveis
1. No repositório simplicio:
2. No repositório simplicio-runtime:
Summary
Habilitar o suporte oficial ao OpenCode em modo full (normal) e integrar a extensão/plugin nativo
opencode-simplicio(https://github.com/Pasblinn/opencode-simplicio).Atualmente o OpenCode está configurado com
SIMPLICIO_RUNTIME_MODE: "mapper-only"durante o registro MCP do Runtime, limitando o agente apenas a ferramentas de leitura e observação (simplicio_map,simplicio_context). Com esta issue, o OpenCode passa a ter paridade total com o Claude Code e Hermes, tornando-se umnative-plugincom suporte a execução governada e lifecycle hooks de entrada e saída.Contexto & Motivação
Contrato Existente vs. Realidade:
tests/fixtures/host-surface-v1.json, o OpenCode já está classificado na categoria"full"junto com Cursor, VS Code e Codex ("canonical": ["simplicio_map", "simplicio_context", "simplicio_memory", "simplicio_edit", "simplicio_run"]).simplicio-runtime/src/planned_writes.rs, o ambiente gerado para~/.config/opencode/opencode.jsonfixaSIMPLICIO_RUNTIME_MODE: "mapper-only", bloqueandosimplicio_edit,simplicio_runesimplicio_loop.Lifecycle Hooks no OpenCode:
hooks.jsonousettings.json. Seu mecanismo oficial de extensão é a API de plugins TypeScript (@opencode/plugin).opencode-simpliciopermite interceptar o ciclo de vida do agente nativamente:turn.before/messages.transform): Aquece o cache do repositório (simplicio map) de forma assíncrona/não-bloqueante e injeta oMapHandleno contexto do modelo.turn.after): Registra a economia de tokens no ledger (simplicio savings record) e emite telemetria.tool.execute.before): Portão de segurança para comandos effectful.Escopo & Entregáveis
1. No repositório
simplicio:plugins/simplicio/host-surfaces.json:opencodede"surface": "runtime-mcp"para"surface": "native-plugin".opencode.jsone registrar hooks gerenciados.pypi/simplicio/simplicio/host_integrations.py:native-plugincom suporte a modofull.tests/test_host_surface_contract.pyetests/test_host_integrations.py.opencode-simplicioemdocs/hosts/opencode.md.2. No repositório
simplicio-runtime:src/planned_writes.rs:opencode_environmentdeSIMPLICIO_RUNTIME_MODE: "mapper-only"para"full"."opencode-simplicio"no array"plugin"deopencode.json.simplicio_edit,simplicio_runesimplicio_savingssão anunciados com sucesso no schema MCP do OpenCode.3. Na extensão
opencode-simplicio(https://github.com/Pasblinn/opencode-simplicio):@opencode-ai/plugin:full.turn.beforeparasimplicio map(advisory / fail-open).turn.afterparasimplicio savings record./simplicio,/map,/savings.