Skip to content

Commit 2aa61cf

Browse files
committed
bump version 0.9.2
1 parent 44741f3 commit 2aa61cf

40 files changed

Lines changed: 2431 additions & 100 deletions

.agents/skills/acpkit-sdk/SKILL.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ What it owns:
6767
What it does not own:
6868

6969
- Pydantic plan/approval/projection details
70+
- Pydantic prompt capability, custom slash command, and external hook event details
7071
- LangChain graph/provider/projection details
7172
- WebSocket transport behavior
7273
- Codex auth parsing
@@ -258,7 +259,7 @@ Remote pairing examples:
258259
Switch to a narrower skill when:
259260

260261
- the bug is clearly inside adapter runtime behavior
261-
- the task is about approvals, plans, projections, or host policy
262+
- the task is about approvals, plans, prompt capabilities, custom slash commands, projections, external hook events, or host policy
262263
- the task is about transport or remote ownership rather than CLI or dispatch
263264
- the task is about Codex auth refresh or `auth.json`
264265

@@ -275,5 +276,6 @@ Stay in this skill when:
275276
- Do not describe `acpremote` as an adapter.
276277
- Do not describe `codex-auth-helper` as part of target resolution.
277278
- Do not document a root CLI feature that is not present in the [CLI module](https://github.com/vcoderun/acpkit/blob/main/src/acpkit/cli.py).
278-
- When the question is about adapter truthfulness, plans, approvals, projections, host ownership,
279-
or provider behavior, move to the narrower package skill.
279+
- When the question is about adapter truthfulness, plans, approvals, prompt capabilities, custom
280+
slash commands, projections, external hook events, host ownership, or provider behavior, move to
281+
the narrower package skill.

.agents/skills/acpkit-sdk/resources/intro.md

Lines changed: 76 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
ACP Kit is the adapter toolkit and monorepo for turning an existing agent surface into a truthful ACP server boundary.
44

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.
88

99
This intro is intentionally short. The canonical deep references should come from the published docs set, not from a second parallel skill-specific spec.
1010

@@ -21,7 +21,8 @@ The central contract is:
2121

2222
> expose ACP state only when the underlying runtime can actually honor it.
2323
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
25+
state, approval flow, MCP metadata, external hook events, projection, and host-backed tooling.
2526

2627
## Start With The Real Docs
2728

@@ -32,13 +33,14 @@ Use these published docs pages as the primary references:
3233
| Product overview and package map | [ACP Kit Overview](https://vcoderun.github.io/acpkit/) |
3334
| Construction seams and adapter overview | [Pydantic ACP Overview](https://vcoderun.github.io/acpkit/pydantic-acp/) |
3435
| Runtime config and session ownership | [AdapterConfig](https://vcoderun.github.io/acpkit/pydantic-acp/adapter-config/) |
35-
| Models, modes, slash commands, thinking | [Models, Modes, and Slash Commands](https://vcoderun.github.io/acpkit/pydantic-acp/runtime-controls/) |
36-
| Plans, approvals, and cancellation | [Plans, Thinking, and Approvals](https://vcoderun.github.io/acpkit/pydantic-acp/plans-thinking-approvals/) |
36+
| Models, modes, custom slash commands, thinking | [Models, Modes, and Slash Commands](https://vcoderun.github.io/acpkit/pydantic-acp/runtime-controls/) |
37+
| Plans, approvals, permission presentation, and cancellation | [Plans, Thinking, and Approvals](https://vcoderun.github.io/acpkit/pydantic-acp/plans-thinking-approvals/) |
3738
| Host-owned state patterns | [Providers](https://vcoderun.github.io/acpkit/providers/) |
38-
| ACP-visible extension seams | [Bridges](https://vcoderun.github.io/acpkit/bridges/) |
39-
| Host-backed tools and 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/) |
4041
| 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/) |
4244
| API surface | [pydantic_acp API](https://vcoderun.github.io/acpkit/api/pydantic_acp/) |
4345

4446
## Construction Seams To Reach For
@@ -61,19 +63,76 @@ Use these seams intentionally:
6163
- `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
6264
- slash mode commands are dynamic; `ask`, `plan`, and `agent` are examples, not built-in global names
6365
- 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
6470
- only one `PrepareToolsMode(..., plan_mode=True)` is allowed
6571
- `plan_tools=True` is how a non-plan execution mode keeps plan progress tools visible
6672
- `/thinking` only exists when `ThinkingBridge()` is configured
6773
- 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
6880
- `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
6983
- custom `run_event_stream` hooks and wrappers must return an async iterable, not a coroutine
7084
- `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
7189
- `BlackBoxHarness` is the reusable black-box ACP boundary test helper for downstream integrations
7290
- projection helper primitives handle diff previews, truncation, command summaries, and guardrail-aware caution text without each integration rebuilding that shaping logic
7391
- the compatibility manifest schema gives integrations one typed, reviewable declaration of which ACP surfaces are implemented, partial, intentionally not used, or planned
7492

7593
## New Native Surfaces
7694

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.
103+
104+
Read next:
105+
106+
- https://vcoderun.github.io/acpkit/pydantic-acp/runtime-controls/
107+
- https://vcoderun.github.io/acpkit/pydantic-acp/adapter-config/
108+
109+
### ApprovalPolicyStore And PermissionToolCallBuilder
110+
111+
Reach for `ApprovalPolicyStore` when remembered approval policy needs to live somewhere other than
112+
session metadata. Reach for `PermissionToolCallBuilder` when native approvals should render custom
113+
permission cards while keeping the ACP approval lifecycle unchanged.
114+
115+
Keep the builder on `NativeApprovalBridge.tool_call_builder`. If a custom approval bridge needs
116+
projected file or command context, implement `ProjectionAwareApprovalBridge` rather than widening the
117+
legacy `ApprovalBridge` protocol.
118+
119+
Read next:
120+
121+
- https://vcoderun.github.io/acpkit/pydantic-acp/plans-thinking-approvals/
122+
- https://vcoderun.github.io/acpkit/providers/
123+
124+
### ExternalHookEventBridge And ProjectionAwareToolClassifier
125+
126+
Reach for `ExternalHookEventBridge` when hook-like lifecycle events come from an external runtime and
127+
should appear through the normal buffered bridge update path. Reach for
128+
`ProjectionAwareToolClassifier` when configured projection maps should also drive ACP tool-kind
129+
classification for reads, writes, bash, and search tools.
130+
131+
Read next:
132+
133+
- https://vcoderun.github.io/acpkit/bridges/
134+
- https://vcoderun.github.io/acpkit/host-backends/
135+
77136
### HostAccessPolicy
78137

79138
Reach for `HostAccessPolicy` when an integration needs one reusable, typed place to evaluate file and command risk.
@@ -162,10 +221,13 @@ Read next:
162221

163222
## Reference Files In This Skill
164223

165-
These skill-local references are only routing aids back into the docs:
224+
These skill-local references are only routing aids back into the docs and source tree:
166225

167-
- `references/package-surface.md`
168-
- `references/runtime-capabilities.md`
169-
- `references/docs-examples-map.md`
226+
- `SKILL.md`
227+
- `resources/intro.md`
228+
- `examples/README.md`
229+
- `scripts/list_examples.py`
230+
- `scripts/list_public_exports.py`
170231

171-
Use them to find the right docs page quickly, not as independent source-of-truth specs.
232+
Use them to find the right docs page or package surface quickly, not as independent source-of-truth
233+
specs.

0 commit comments

Comments
 (0)