Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 2 additions & 21 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ agent-client-protocol-trace-viewer = { path = "src/agent-client-protocol-trace-v
yopo = { package = "agent-client-protocol-yopo", path = "src/yopo" }

# Protocol
agent-client-protocol-schema = { version = "=1.6.0", features = ["tracing"] }
agent-client-protocol-schema = { version = "=1.7.0", features = ["tracing"] }

# Core async runtime
tokio = { version = "1.52", default-features = false }
Expand Down
4 changes: 2 additions & 2 deletions md/migration_v2.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -342,8 +342,8 @@ Construct `Lines` and `ByteStreams` with `Lines::new(outgoing, incoming)` and
## Draft v2 schema updates

The optional `unstable_protocol_v2` surface now tracks
`agent-client-protocol-schema` 1.6. The changes accumulated across schema 1.5
and 1.6 are included in the SDK 2.0 migration because this API is explicitly
`agent-client-protocol-schema` 1.7. The changes accumulated across schema 1.5
through 1.7 are included in the SDK 2.0 migration because this API is explicitly
unstable, rather than treated as stable-v1 wire changes.

- Many values that were plain `String` or `PathBuf` fields are semantic newtypes, including
Expand Down
10 changes: 8 additions & 2 deletions md/protocol-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -437,12 +437,12 @@ The reuse probe is conservative: if parsing and serializing the raw v2 request
would change any parameter, reuse is disabled and fallback opens a fresh
connection. That does not turn an otherwise valid v2 request into an error.

## Draft schema changes in schema 1.5 and 1.6
## Draft schema changes in schema 1.5 through 1.7

The `unstable_protocol_v2` API follows the moving draft schema. Schema 1.5 added
semantic newtypes for paths, media types, IDs, and cursors; renamed
`DiffPatch.diff` to `DiffPatch.text`; and added terminal state and output update
types. Schema 1.6 removed the former schema-wide v1/v2 conversion API:
types. Schema 1.7 removed the former schema-wide v1/v2 conversion API:
versioned implementations should remain separate, with
purpose-specific adapters at runtime boundaries where the required state and
policy are available. These are draft API changes rather than stable v1 wire
Expand All @@ -455,3 +455,9 @@ the separate `unstable_tool_call_name` feature. Draft v2 users must enable both
`unstable_protocol_v2` and `unstable_tool_call_name`. In v2, an omitted name
leaves the existing value unchanged, `null` clears it, and a string replaces
it. V1 cannot express the explicit v2 `null` clear operation.

Schema 1.7 stabilizes elicitation and terminal authentication, so neither
surface requires its former SDK feature flag. It also adds context compaction
updates behind `unstable_session_compaction`; the SDK carries them through its
existing typed `session/update` routing in both protocol versions. V1 clients
advertise compaction support through `ClientSessionCapabilities::compaction`.
8 changes: 5 additions & 3 deletions md/testy.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ Plain-text commands:
- `content` emits prompt/content-focused updates, including every stable `ContentBlock` variant.
- `tool_calls` emits tool call create and update flows.
- `callbacks` sends every stable agent-to-client request.
- `elicitations` sends only unstable elicitation requests when built with default features.
- `elicitations` sends only elicitation requests.
- `cancel_status` reports whether `session/cancel` has been received.
- `full` runs all stable scenarios in deterministic order.

With default features, `callbacks` and `full` also run unstable protocol coverage.
`callbacks` and `full` also run the elicitation coverage.

JSON command form:

Expand All @@ -69,8 +69,10 @@ The `full` scenario sends every stable agent-to-client callback request:
It also emits the stable session update variants, including message chunks, tool calls, plans,
available commands, mode/config/session info, and usage.

With default features, `elicitations`, `callbacks`, and `full` cover `elicitation/create` form mode,
`elicitations`, `callbacks`, and `full` cover `elicitation/create` form mode,
URL mode, session scope, request scope, accept, decline, cancel, and `elicitation/complete`.
If the client does not advertise form elicitation, the scenario returns a deterministic
invalid-params prompt error before sending an elicitation request.
If the client advertises form elicitation but not URL elicitation, the URL part returns a
deterministic invalid-params prompt error.

Expand Down
2 changes: 1 addition & 1 deletion src/agent-client-protocol-test/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added

- Expand the `testy` binary into a deterministic ACP test agent that can exercise stable v1 agent methods, notifications, session updates, and client callbacks.
- Add default `testy` coverage through the `unstable` cargo feature for elicitation form/URL requests, session/request scopes, response actions, completion notifications, URL-required prompt errors, and a direct `elicitations` prompt trigger.
- Add default `testy` coverage for elicitation form/URL requests, session/request scopes, response actions, completion notifications, capability-negotiation prompt errors, and a direct `elicitations` prompt trigger.
- Add an opt-in native protocol v2 Testy agent and a dual-version stdio router covering the baseline session lifecycle, independent prompt acceptance, cancellation completion, and resume replay.
Loading