Skip to content

Latest commit

 

History

History
44 lines (36 loc) · 2.97 KB

File metadata and controls

44 lines (36 loc) · 2.97 KB

中文 | English

Adapter Layer

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.

Modules

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

Placement Rules

  • 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 services unless 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.

Dependency Boundaries

  • Adapters may depend on contracts, execution, and narrowly on services when 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.