Conversation
- docs/acp-research-state.md: wire format for research state over ACP v1 (task-graph nodes, typed edges, append-only decision log, claim->evidence via supports/contradicts edges) plus session/record_research and session/get_research_state methods. - server/acp-transport.js: dependency-free skeleton for hosting any ACP-speaking agent over stdio (JSON-RPC client side, session/update event surface, in-memory research-state mirror). The adapter is intentionally not wired into server/index.js yet; the integration point is discussed in the doc and the PR.
Author
|
Withdrawing this PR — superseded by internal direction change. Thanks for the review effort. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Dr. Claw research sessions accumulate structure that a linear transcript cannot express: open questions, evidence for and against claims, blockers, and append-only decision records. This PR adds:
docs/acp-research-state.md— a wire format for research state based on the Agent Client Protocol (ACP v1): four object types (task-graph nodes, typed edges, decision log entries, and claim→evidence expressed as typed edges) plus two JSON-RPC methods (session/record_research,session/get_research_state) over the standard ACP stdio transport.server/acp-transport.js— a dependency-free skeleton for hosting any ACP-speaking agent as a provider (stdio subprocess, JSON-RPC client side,session/updateevent surface, and an in-memory research-state mirror that answers the agent'ssession/record_researchrequests).The goal is interoperability without code merges: any agent that speaks ACP (e.g. an agent daemon exposing sessions over ACP) can run inside Dr. Claw, and any ACP client can render a Dr. Claw research session's task graph and decision log in the same format. The identical schema is being proposed upstream to ACP as a "Research Process Extensions" RFD.
Notes
child_process,readline); plain JS ES modules perserver/AGENTS.md.server/index.jsyet. I left the wiring point for discussion (provider picker + spawn-command config), since it touches UI and config plumbing.Testing
node --check server/acp-transport.jspasses.createAcpPeerinstances over in-memory streams) verifies:initializehandshake, unknown-method error (JSON-RPC-32601), asession/record_researchbatch (upsert node, add edge, record decision) acknowledged with a bumpedstateVersion, and peer notification delivery.Questions for maintainers