Skip to content

Latest commit

 

History

History
151 lines (120 loc) · 5.36 KB

File metadata and controls

151 lines (120 loc) · 5.36 KB

ACP Registry Submission Prep

Prepared for #3192. This is local maintainer prep only; do not open or push the external agentclientprotocol/registry PR from this train.

Upstream Registry Requirements

Checked against agentclientprotocol/registry on 2026-06-14:

  • New entries live in a directory whose name matches the id field.
  • Each entry needs agent.json plus a required icon.svg.
  • agent.json requires id, name, version, description, and at least one distribution method.
  • Supported distribution methods are binary, npx, and uvx.
  • Package and binary versions must match the entry version, and latest is not allowed.
  • Binary platform ids are darwin-aarch64, darwin-x86_64, linux-aarch64, linux-x86_64, windows-aarch64, and windows-x86_64.
  • Icons must be 16x16 SVG, square, monochrome, and use currentColor.
  • Registry CI runs an auth check: initialize must return at least one authMethods entry with type: "agent" or type: "terminal".

Sources for the external PR author:

Local ACP Readiness Audit

CodeWhale already exposes ACP through codewhale serve --acp.

Implemented locally:

  • crates/tui/src/main.rs accepts serve --acp and dispatches to the ACP server.
  • crates/tui/src/acp_server.rs implements JSON-RPC 2.0 over newline-delimited stdio.
  • initialize advertises:
    • agentInfo.name = "codewhale"
    • agentInfo.title = "codewhale"
    • agentInfo.version = env!("CARGO_PKG_VERSION")
    • promptCapabilities.embeddedContext = true
    • loadSession = false
    • mcpCapabilities.http = false
    • mcpCapabilities.sse = false
    • authMethods with terminal auth: auth set --provider <provider>
  • session/new creates an in-memory session with a cwd.
  • session/prompt accepts string prompts plus text/resource/resource_link blocks, routes through the configured CodeWhale client, emits one session/update agent message chunk, then returns stopReason: "end_turn".
  • session/cancel currently returns null.

Known limitations to state clearly:

  • The adapter is baseline ACP, not the full interactive TUI/runtime surface.
  • session/cancel is accepted but does not cancel an in-flight provider call yet.
  • The response is emitted after the provider completes; it is not token streaming.
  • ACP does not expose shell tools, file-write tools, checkpoint replay, session loading, or the HTTP/SSE runtime API.
  • Registry submission should be gated on a local run of the upstream registry auth-check before opening the external PR.

Recommendation: submit an npx distribution first after the matching npm version is published. It avoids direct release-asset URL churn and lets the npm wrapper handle platform selection, checksums, mirrors, and glibc preflight.

External Registry Files

Create this directory in agentclientprotocol/registry:

codewhale/
  agent.json
  icon.svg

Replace 0.8.61 with the final published CodeWhale version. Do not use @latest.

codewhale/agent.json

{
  "id": "codewhale",
  "name": "CodeWhale",
  "version": "0.8.61",
  "description": "Provider-agnostic terminal coding agent with first-class DeepSeek support.",
  "repository": "https://github.com/Hmbown/CodeWhale",
  "website": "https://github.com/Hmbown/CodeWhale/blob/main/docs/RUNTIME_API.md#acp-stdio-adapter-codewhale-serve---acp",
  "authors": ["Hunter Bown"],
  "license": "MIT",
  "distribution": {
    "npx": {
      "package": "codewhale@0.8.61",
      "args": ["serve", "--acp"]
    }
  }
}

codewhale/icon.svg

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
  <path d="M2 9.5c0-3.3 2.7-6 6-6h4.5v2H8a4 4 0 0 0-4 4v.5h7.5a2.5 2.5 0 0 0 2.4-1.8l.6-2.2H16l-.7 2.7A4 4 0 0 1 11.5 12H4.2A3 3 0 0 1 2 9.5Z" fill="currentColor"/>
  <path d="M5 7h1.5v1.5H5V7Zm3 0h1.5v1.5H8V7Z" fill="currentColor"/>
</svg>

External PR Draft

Title:

Add CodeWhale ACP agent

Body:

Adds CodeWhale to the ACP registry.

CodeWhale is a provider-agnostic terminal coding agent with first-class
DeepSeek support. The submitted distribution uses the published npm package and
runs `codewhale serve --acp`.

Local readiness checked in Hmbown/CodeWhale:
- ACP stdio adapter exists at `codewhale serve --acp`.
- `initialize` returns terminal auth via `auth set --provider <provider>`.
- `session/new`, `session/prompt`, and `session/cancel` are implemented.
- The adapter is intentionally baseline: no ACP shell/file tools, no session
  load, and no provider-token streaming yet.

Version: 0.8.61

Pre-Submission Checklist

  • Confirm codewhale@0.8.61 is published to npm, or switch the draft to versioned GitHub Release binary URLs that exist.
  • Run the upstream registry validator: python3 .github/workflows/verify_agents.py --auth-check --agent codewhale
  • Verify npx codewhale@0.8.61 serve --acp returns authMethods from initialize on a clean machine.
  • Keep the external PR body explicit that ACP support is baseline and does not imply the full TUI/runtime API is available inside ACP.