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
Remove unstable cancel_request from agent/client capabilities
The cancel_request notification is a protocol-level feature that both
sides must implement, not a capability to be negotiated. Move it from
agent/client capabilities to a new protocol_level module and update
schema generation accordingly.
Also enable --all-features flag for clippy in CI to catch issues in
feature-gated code.
Copy file name to clipboardExpand all lines: schema/schema.unstable.json
+14-50Lines changed: 14 additions & 50 deletions
Original file line number
Diff line number
Diff line change
@@ -8,17 +8,6 @@
8
8
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)",
9
9
"type": ["object", "null"]
10
10
},
11
-
"cancellationCapabilities": {
12
-
"anyOf": [
13
-
{
14
-
"$ref": "#/$defs/CancellationCapabilities"
15
-
},
16
-
{
17
-
"type": "null"
18
-
}
19
-
],
20
-
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCapabilities related to cancellation."
21
-
},
22
11
"loadSession": {
23
12
"default": false,
24
13
"description": "Whether the agent supports `session/load`.",
@@ -77,14 +66,6 @@
77
66
],
78
67
"description": "Handles session update notifications from the agent.\n\nThis is a notification endpoint (no response expected) that receives\nreal-time updates about session progress, including message chunks,\ntool calls, and execution plans.\n\nNote: Clients SHOULD continue accepting tool call updates even after\nsending a `session/cancel` notification, as the agent may send final\nupdates before responding with the cancelled stop reason.\n\nSee protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/prompt-turn#3-agent-reports-output)"
79
68
},
80
-
{
81
-
"allOf": [
82
-
{
83
-
"$ref": "#/$defs/CancelRequestNotification"
84
-
}
85
-
],
86
-
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCancels an ongoing request.\n\nThis is a notification sent by the agent to cancel any ongoing request.\n\nUpon receiving this notification, the Client:\n1. MUST cancel the corresponding request activity and all nested activities\n2. MAY send any pending notifications.\n3. MUST send one of these responses for the original request:\n - Valid response with appropriate data (partial results or cancellation marker)\n - Error response with code `-32800` (Cancelled)\n\nSee protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/cancellation)"
87
-
},
88
69
{
89
70
"allOf": [
90
71
{
@@ -497,18 +478,7 @@
497
478
"required": ["requestId"],
498
479
"type": "object",
499
480
"x-method": "$/cancel_request",
500
-
"x-side": "all"
501
-
},
502
-
"CancellationCapabilities": {
503
-
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCapabilities related to cancellation.\n\nBy supplying `{}` it means that general request cancellation is supported.\n\nFurther capabilities can be added in the future if other types of cancellation is required in the protocol.",
504
-
"properties": {
505
-
"_meta": {
506
-
"additionalProperties": true,
507
-
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)",
508
-
"type": ["object", "null"]
509
-
}
510
-
},
511
-
"type": "object"
481
+
"x-side": "protocol"
512
482
},
513
483
"ClientCapabilities": {
514
484
"description": "Capabilities supported by the client.\n\nAdvertised during initialization to inform the agent about\navailable features and methods.\n\nSee protocol docs: [Client Capabilities](https://agentclientprotocol.com/protocol/initialization#client-capabilities)",
@@ -518,17 +488,6 @@
518
488
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)",
519
489
"type": ["object", "null"]
520
490
},
521
-
"cancellationCapabilities": {
522
-
"anyOf": [
523
-
{
524
-
"$ref": "#/$defs/CancellationCapabilities"
525
-
},
526
-
{
527
-
"type": "null"
528
-
}
529
-
],
530
-
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCapabilities related to cancellation."
531
-
},
532
491
"fs": {
533
492
"allOf": [
534
493
{
@@ -566,14 +525,6 @@
566
525
],
567
526
"description": "Cancels ongoing operations for a session.\n\nThis is a notification sent by the client to cancel an ongoing prompt turn.\n\nUpon receiving this notification, the Agent SHOULD:\n- Stop all language model requests as soon as possible\n- Abort all tool call invocations in progress\n- Send any pending `session/update` notifications\n- Respond to the original `session/prompt` request with `StopReason::Cancelled`\n\nSee protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/prompt-turn#cancellation)"
568
527
},
569
-
{
570
-
"allOf": [
571
-
{
572
-
"$ref": "#/$defs/CancelRequestNotification"
573
-
}
574
-
],
575
-
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCancels an ongoing request.\n\nThis is a notification sent by the client to cancel any ongoing request.\n\nUpon receiving this notification, the Agent:\n1. MUST cancel the corresponding request activity and all nested activities\n2. MAY send any pending notifications.\n3. MUST send one of these responses for the original request:\n - Valid response with appropriate data (partial results or cancellation marker)\n - Error response with code `-32800` (Cancelled)\n\nSee protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/cancellation)"
576
-
},
577
528
{
578
529
"allOf": [
579
530
{
@@ -3362,6 +3313,19 @@
3362
3313
},
3363
3314
"required": ["jsonrpc"],
3364
3315
"type": "object"
3316
+
},
3317
+
{
3318
+
"anyOf": [
3319
+
{
3320
+
"allOf": [
3321
+
{
3322
+
"$ref": "#/$defs/CancelRequestNotification"
3323
+
}
3324
+
],
3325
+
"description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or\nchanged at any point.\n\nCancels an ongoing request.\n\nThis is a notification sent by the the side that sent a request to cancel that request.\n\nUpon receiving this notification, the receiver:\n\n1. MUST cancel the corresponding request activity and all nested activities\n2. MAY send any pending notifications.\n3. MUST send one of these responses for the original request:\n - Valid response with appropriate data (partial results or cancellation marker)\n - Error response with code `-32800` (Cancelled)\n\nSee protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/cancellation)"
3326
+
}
3327
+
],
3328
+
"description": "General protocol-level notifications that all sides are expected to\nimplement.\n\nNotifications whose methods start with '$/' are messages which\nare protocol implementation dependent and might not be implementable in all\nclients or agents. For example if the implementation uses a single threaded\nsynchronous programming language then there is little it can do to react to\na `$/cancel_request` notification. If an agent or client receives\nnotifications starting with '$/' it is free to ignore the notification.\n\nNotifications do not expect a response."
0 commit comments