@ddlqhd/agent-sdk-acp
v0.1.0
Published
ACP stdio bridge for @ddlqhd/agent-sdk (Zed / VS Code / JetBrains)
Downloads
154
Maintainers
Readme
@ddlqhd/agent-sdk-acp
ACP stdio bridge for @ddlqhd/agent-sdk. Exposes the SDK Agent runtime to Zed, VS Code (ACP Client), JetBrains, and other ACP-compatible editors.
Install
npm install @ddlqhd/agent-sdk @ddlqhd/agent-sdk-acp @agentclientprotocol/sdk zod
export OPENAI_API_KEY=...
npx agent-sdk-acpMonorepo development
# from repository root
pnpm install
pnpm build
pnpm --filter @ddlqhd/agent-sdk-acp build
node packages/agent-sdk-acp/dist/entry.js --checkEnvironment
| Variable | Purpose |
|----------|---------|
| OPENAI_API_KEY | OpenAI provider |
| ANTHROPIC_API_KEY | Anthropic provider |
| OLLAMA_BASE_URL | Ollama (default http://127.0.0.1:11434) |
| AGENT_SDK_ACP_PROVIDER | openai / anthropic / ollama |
| AGENT_SDK_ACP_MODEL | Override model id |
| AGENT_SDK_ACP_USER_BASE | Storage root (default: stable tmpdir()/agent-sdk-acp) |
| AGENT_SDK_ACP_CONTEXT_SIZE | Context window size for usage_update.size (default 200000); used reflects current context occupancy (contextTokens) |
| AGENT_SDK_LOG_LEVEL | debug for verbose stderr |
| AGENT_SDK_EXEC_SERVER_URL | Optional remote exec-server (same as CLI --exec-server) |
| AGENT_SDK_EXEC_SERVER_TOKEN | Shared token for the remote exec-server |
Capabilities
- ACP methods:
initialize,session/new,session/load,session/list,session/fork,session/close,session/prompt,session/cancel,session/set_mode - Streaming:
Agent.stream()→session/update;usage_update.usedis context occupancy (not session cumulative billing) - Permissions:
canUseTool→session/request_permission - Sessions: per-session
Agent, jsonl persistence, history replay onsession/loadandsession/fork(active-chain head via coreAgent.forkSession) - Rewind: not exposed over ACP (protocol has no rewind semantic); use CLI or
agent-sdk web - Edit modes:
default/accept_edits/dont_ask - MCP: ACP
stdio/httpservers mapped toAgentConfig.mcpServers; also loads{cwd}/.claude/mcp_config.jsonwhen present
Module map
| File | Role |
|------|------|
| src/entry.ts | stdio transport, signal cleanup |
| src/server.ts | AgentSdkAcpBridge (ACP Agent implementation) |
| src/session-manager.ts | Session ↔ Agent instances |
| src/event-bridge.ts | StreamEvent → session/update |
| src/tool-render.ts | Tool kind mapping |
| src/permissions.ts | canUseTool ↔ request_permission |
| src/edit-approval.ts | Write/Edit diff pre-approval |
| src/agent-factory.ts | Agent construction |
| src/mcp-map.ts | ACP MCP → SDK MCPServerConfig |
| src/user-base.ts | Stable session storage root |
ACP Registry
agent.json is included for ACP Registry discovery.
Limitations
- History replay emits user/assistant text only; standalone tool-role messages are omitted.
- ACP
sseandacpMCP transports are skipped (SDK supportsstdioandhttponly). session/listcwd filtering is best-effort; cwd comes from in-memory sessions orSessionInfo.cwdin session meta when available.AskUserQuestionis disabled (no interactive resolver in stdio mode).- Edit mode is not persisted across
session/load(defaults todefault). session/forkcopies the active message chain at head (after rewind/compaction), not the full raw transcript with audit rows.
