中文 | English
This layer owns protocol, transport, external-provider, and host-facing adapter crates. Adapters translate between product/runtime contracts and concrete protocols; they should not become owners of product policy or reusable OS services.
| Crate | Responsibility | Local doc |
|---|---|---|
agent-runtime-ipc |
Non-published private local IPC adapter for the opt-in first-party Shared TUI Runtime; closed interactive operations only | AGENTS.md |
ai-adapters |
AI provider request/response adapters and stream protocol glue | AGENTS.md |
opencode-adapter |
OpenCode source semantics for user Instructions plus the live Command, standalone Tool, Subagent, MCP, and static Hook providers; managed-package static preview | AGENTS.md |
dsh-adapter |
DeepSeek Harness (dsh) bundle/profile source projection for managed packages; static preview only |
AGENTS.md |
claude-code-adapter |
Runtime-free Claude Code user Instructions, Command, Subagent, MCP, and Hook source semantics with redacted projection | AGENTS.md |
codex-adapter |
Runtime-free Codex user Instructions, Subagent, MCP, and Hook source semantics with redacted projection | AGENTS.md |
static-hook-support |
Shared bounded/redacting static-source utilities plus the JSON/TOML Hook parser used by sibling ecosystem adapters; no ecosystem policy or runtime | inherited |
transport |
Event transport adapters plus protocol-neutral bounded JSON encoding and TypeScript message/JSON-RPC mechanics shared by current hosts | AGENTS.md |
webdriver |
Embedded WebDriver protocol and browser automation adapter | AGENTS.md |
- Put protocol serialization, transport projection, external provider request shaping, and host communication adapters here.
- Keep OS, filesystem, terminal, MCP, remote, git, and watch implementations in
servicesunless the code is purely protocol translation. - Keep delivery-profile selection and adapter registration in
assembly. - Do not create a shared API crate for a single host or a future protocol. A non-published pre-integration seam may remain crate-internal only when the adjacent design names its first consumer, stable test contract, integration check, and removal condition. Promote only the API used by that consumer.
- Adapters may depend on
contracts,execution, and narrowly onserviceswhen an adapter must expose a service capability through a protocol. - Adapters must not depend on
assembly/core, product UI code, app command handlers, or Tauri APIs unless the crate is explicitly feature-gated for that host boundary. - Prefer stable contracts over adapter-to-adapter coupling. Cross-adapter dependencies require a clear boundary reason.