You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/acpkit-sdk/resources/intro.md
+76-14Lines changed: 76 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,9 +2,9 @@
2
2
3
3
ACP Kit is the adapter toolkit and monorepo for turning an existing agent surface into a truthful ACP server boundary.
4
4
5
-
Today the stable production focus is `pydantic-acp`: exposing `pydantic_ai.Agent` through ACP while keeping models, modes, plans, approvals, MCP metadata, host tools, and session state aligned with what the underlying runtime can actually support.
6
-
7
-
Additional adapters such as `langchain-acp`and `dspy-acp` are planned after `pydantic-acp` reaches 1.0 stability.
5
+
Today the repo ships production-grade adapters for both `pydantic-acp` and `langchain-acp`.
6
+
`pydantic-acp` remains the richest reference implementation for ACP-native models, modes, plans,
7
+
approvals, MCP metadata, host tools, projection, and session state.
8
8
9
9
This intro is intentionally short. The canonical deep references should come from the published docs set, not from a second parallel skill-specific spec.
10
10
@@ -21,7 +21,8 @@ The central contract is:
21
21
22
22
> expose ACP state only when the underlying runtime can actually honor it.
23
23
24
-
That rule drives model selection, mode switching, slash commands, native plan state, approval flow, MCP metadata, and host-backed tooling.
24
+
That rule drives model selection, mode switching, slash commands, prompt capabilities, native plan
| Host-backed toolsand projections|[Host Backends and Projections](https://vcoderun.github.io/acpkit/host-backends/)|
39
+
| ACP-visible extension seams and external hook events |[Bridges](https://vcoderun.github.io/acpkit/bridges/)|
40
+
| Host-backed tools, search/list projection, and classification|[Host Backends and Projections](https://vcoderun.github.io/acpkit/host-backends/)|
40
41
| Maintained example ladder |[Examples Overview](https://vcoderun.github.io/acpkit/examples/)|
41
-
| Production showcase |[Workspace Agent](https://vcoderun.github.io/acpkit/examples/workspace-agent/)|
42
+
| Pydantic production showcase |[Finance Agent](https://vcoderun.github.io/acpkit/examples/finance/)|
43
+
| LangChain production showcase |[LangChain Workspace Graph](https://vcoderun.github.io/acpkit/examples/langchain-workspace/)|
42
44
| API surface |[pydantic_acp API](https://vcoderun.github.io/acpkit/api/pydantic_acp/)|
43
45
44
46
## Construction Seams To Reach For
@@ -61,19 +63,76 @@ Use these seams intentionally:
61
63
-`FileSessionStore` is the hardened local durable store: atomic replace writes, local locking, malformed-session tolerance, and stale temp cleanup; it is not a distributed multi-writer backend
62
64
- slash mode commands are dynamic; `ask`, `plan`, and `agent` are examples, not built-in global names
63
65
- mode ids must not collide with reserved slash command names like `model`, `thinking`, `tools`, `hooks`, or `mcp-servers`
66
+
- custom slash commands come from `SlashCommandProvider` or `StaticSlashCommandProvider`, and
67
+
must not collide with built-in commands or mode names
68
+
-`AdapterConfig.prompt_capabilities` controls what prompt input families are advertised; do not
69
+
advertise image, audio, or embedded context unless the runtime can honor them
64
70
- only one `PrepareToolsMode(..., plan_mode=True)` is allowed
65
71
-`plan_tools=True` is how a non-plan execution mode keeps plan progress tools visible
66
72
-`/thinking` only exists when `ThinkingBridge()` is configured
67
73
- native ACP plan state and `PlanProvider` are separate ownership paths
74
+
- permission card rendering is `NativeApprovalBridge.tool_call_builder`, not an `AdapterConfig`
75
+
field
76
+
-`ApprovalBridge` stays compatible with the legacy no-`projection_map` signature; use
77
+
`ProjectionAwareApprovalBridge` only when the bridge explicitly accepts projected context
78
+
- remembered approval policy is live runtime state owned by `ApprovalPolicyStore`, while
79
+
`ApprovalStateProvider` is metadata-only
68
80
-`HookBridge(hide_all=True)` suppresses hook listing output, not the underlying hook capability itself
81
+
-`ExternalHookEventBridge` is for integrations that already own lifecycle events and want them
82
+
buffered into ACP updates
69
83
- custom `run_event_stream` hooks and wrappers must return an async iterable, not a coroutine
70
84
-`HostAccessPolicy` is the native typed guardrail surface for host-backed file and terminal access
85
+
-`FileSystemProjectionMap` search/list tree rendering is opt-in and based only on tool output;
86
+
it must not read the filesystem
87
+
-`ProjectionAwareToolClassifier` classifies only configured projection tool names and delegates
88
+
unknown tools to the base classifier
71
89
-`BlackBoxHarness` is the reusable black-box ACP boundary test helper for downstream integrations
72
90
- projection helper primitives handle diff previews, truncation, command summaries, and guardrail-aware caution text without each integration rebuilding that shaping logic
73
91
- the compatibility manifest schema gives integrations one typed, reviewable declaration of which ACP surfaces are implemented, partial, intentionally not used, or planned
74
92
75
93
## New Native Surfaces
76
94
95
+
### PromptCapabilities, SlashCommandProvider, And StaticSlashCommandProvider
96
+
97
+
Reach for `AdapterConfig.prompt_capabilities` when the runtime's prompt input support differs from
98
+
the defaults. Use `SlashCommandProvider` or `StaticSlashCommandProvider` when a product integration
99
+
needs commands beyond the built-in model, mode, config, thinking, tools, hooks, and MCP surfaces.
100
+
101
+
Custom command handlers can return transcript updates, text, or a handled/fallthrough decision. The
102
+
default result refreshes the session surface so visible commands and related state stay synchronized.
0 commit comments