feat(agent-runtime): bounded Cowork governed executor adapter (GT-531)#176
Conversation
Treats Claude Cowork as one of several REPLACEABLE governed executors behind the same IAgentEnginePort as stub/hermes/swarms (§8.2/§9-4), extending the agent-runtime epic. - CoworkAgentEngineAdapter: BOUNDED — only ever proposes a tool that exists in the governed skill catalog; a Cowork/LLM proposal for a capability outside the catalog is rejected, not invented. The runtime's existing envelope (approval GT-441 / policy / trace) governs it. The live Claude call is an injectable CoworkClient (no client → deterministic, like the stub). - Extended the GT-388 public-surface freeze with the two new value exports (additive). Verified: agent-runtime 92/92, tsc clean, tracking guard green. GT-531 IN-PROGRESS; remaining is the real CoworkClient against the Claude/Cowork API. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
📊 Bilingual Coverage ImpactPR Changes
Repository Coverage
✅ Good: All EN changes have ES counterparts. Generated by GitHub Actions |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 10726745d1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| export type { HermesClient, HermesAdapterOptions } from './engine/hermes-agent.adapter'; | ||
| export { SwarmsAgentAdapter } from './engine/swarms-agent.adapter'; | ||
| export type { SwarmsClient, SwarmsAdapterOptions } from './engine/swarms-agent.adapter'; | ||
| export { CoworkAgentEngineAdapter, COWORK_ENGINE } from './engine/cowork-agent.adapter'; |
There was a problem hiding this comment.
Wire Cowork into the automatic engine router
When a consumer uses the newly exported COWORK_ENGINE in EngineRouterConfig, createAgentRuntime still builds its automatic RoutingAgentAdapter with only stub, hermes, and swarms (src/packages/agent-runtime/src/bootstrap.ts:53-58), so defaultEngine: 'cowork' throws during construction and matched Cowork routes throw at plan time. Since this adapter is exported as another replaceable engine, either include it in the bootstrap router map or make the public API/docs explicit that Cowork cannot be selected through engineRouterConfig.
Useful? React with 👍 / 👎.
Trata a Claude Cowork como uno de varios ejecutores gobernados reemplazables, detrás del mismo
IAgentEnginePortque stub/hermes/swarms (§8.2/§9-4), extendiendo el épico agent-runtime.CoworkAgentEngineAdapter: acotado — solo propone una herramienta que existe en el catálogo de skills gobernado; una propuesta de Cowork/LLM a una capacidad fuera del catálogo se rechaza en vez de inventarse. El envelope del runtime (approval GT-441 / policy / trace) ya lo gobierna. La llamada viva a Claude es unCoworkClientinyectable (sin cliente → determinista, como el stub).Estado
Verificado: agent-runtime 92/92, tsc limpio, guard 532/478. GT-531 IN-PROGRESS; resta el
CoworkClientreal contra la Claude/Cowork API.🤖 Generated with Claude Code