@tickernelz/paperclip-pro-adapter-utils 2026.1016.0 → 2026.1016.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/node_modules/@agentclientprotocol/sdk/dist/acp.d.ts +8 -191
  2. package/node_modules/@agentclientprotocol/sdk/dist/acp.js +10 -165
  3. package/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +1 -1
  4. package/node_modules/@agentclientprotocol/sdk/dist/acp.test.js +132 -52
  5. package/node_modules/@agentclientprotocol/sdk/dist/acp.test.js.map +1 -1
  6. package/node_modules/@agentclientprotocol/sdk/dist/examples/dual-version-agent.js +29 -21
  7. package/node_modules/@agentclientprotocol/sdk/dist/examples/dual-version-agent.js.map +1 -1
  8. package/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.d.ts +1 -0
  9. package/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.js +6 -0
  10. package/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.js.map +1 -1
  11. package/node_modules/@agentclientprotocol/sdk/dist/nes/acp.d.ts +563 -0
  12. package/node_modules/@agentclientprotocol/sdk/dist/nes/acp.js +106 -0
  13. package/node_modules/@agentclientprotocol/sdk/dist/nes/acp.js.map +1 -0
  14. package/node_modules/@agentclientprotocol/sdk/dist/nes/schema/types.gen.d.ts +1261 -0
  15. package/node_modules/@agentclientprotocol/sdk/dist/nes/schema/types.gen.js +4 -0
  16. package/node_modules/@agentclientprotocol/sdk/dist/nes/schema/types.gen.js.map +1 -0
  17. package/node_modules/@agentclientprotocol/sdk/dist/nes/schema/zod.gen.d.ts +962 -0
  18. package/node_modules/@agentclientprotocol/sdk/dist/nes/schema/zod.gen.js +526 -0
  19. package/node_modules/@agentclientprotocol/sdk/dist/nes/schema/zod.gen.js.map +1 -0
  20. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.d.ts +5 -6
  21. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.js +13 -25
  22. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.js.map +1 -1
  23. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.test.js +6 -6
  24. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.test.js.map +1 -1
  25. package/node_modules/@agentclientprotocol/sdk/dist/protocol.js +0 -9
  26. package/node_modules/@agentclientprotocol/sdk/dist/protocol.js.map +1 -1
  27. package/node_modules/@agentclientprotocol/sdk/dist/protocol.test.js +0 -10
  28. package/node_modules/@agentclientprotocol/sdk/dist/protocol.test.js.map +1 -1
  29. package/node_modules/@agentclientprotocol/sdk/dist/schema/index.d.ts +1 -11
  30. package/node_modules/@agentclientprotocol/sdk/dist/schema/index.js +0 -10
  31. package/node_modules/@agentclientprotocol/sdk/dist/schema/index.js.map +1 -1
  32. package/node_modules/@agentclientprotocol/sdk/dist/schema/types.gen.d.ts +1675 -2753
  33. package/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.d.ts +863 -1434
  34. package/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.js +91 -534
  35. package/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.js.map +1 -1
  36. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.d.ts +42 -48
  37. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.js +86 -139
  38. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.js.map +1 -1
  39. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.test.js +46 -17
  40. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.test.js.map +1 -1
  41. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.d.ts +55 -57
  42. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.js +0 -59
  43. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.js.map +1 -1
  44. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.d.ts +1 -11
  45. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.js +0 -10
  46. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.js.map +1 -1
  47. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/types.gen.d.ts +1870 -2874
  48. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.d.ts +3373 -2844
  49. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.js +191 -563
  50. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.js.map +1 -1
  51. package/node_modules/@agentclientprotocol/sdk/package.json +7 -1
  52. package/node_modules/@agentclientprotocol/sdk/schema/schema.json +1541 -3196
  53. package/node_modules/@agentclientprotocol/sdk/schema/v2/schema.unstable.json +875 -2664
  54. package/package.json +2 -2
@@ -278,33 +278,6 @@
278
278
  }
279
279
  ]
280
280
  },
281
- {
282
- "title": "StartNesResponse",
283
- "description": "Successful result returned for a `nes/start` request.",
284
- "allOf": [
285
- {
286
- "$ref": "#/$defs/StartNesResponse"
287
- }
288
- ]
289
- },
290
- {
291
- "title": "SuggestNesResponse",
292
- "description": "Successful result returned for a `nes/suggest` request.",
293
- "allOf": [
294
- {
295
- "$ref": "#/$defs/SuggestNesResponse"
296
- }
297
- ]
298
- },
299
- {
300
- "title": "CloseNesResponse",
301
- "description": "Successful result returned for a `nes/close` request.",
302
- "allOf": [
303
- {
304
- "$ref": "#/$defs/CloseNesResponse"
305
- }
306
- ]
307
- },
308
281
  {
309
282
  "title": "ExtMethodResponse",
310
283
  "description": "Successful result returned by an extension method outside the core ACP method set.",
@@ -753,7 +726,7 @@
753
726
  ]
754
727
  },
755
728
  "ToolCallUpdate": {
756
- "description": "Represents an upsert for a tool call that the language model has requested.\n\nTool calls are actions that the agent executes on behalf of the language model,\nsuch as reading files, executing code, or fetching data from external sources.\n\nOnly [`ToolCallUpdate::tool_call_id`] is required. Other fields have patch semantics:\nomitted fields leave the existing tool call value unchanged, `null` clears or\nunsets the value, and concrete values replace the previous value. For\ncollection fields, concrete arrays replace the previous collection, and both\n`null` and `[]` clear the collection. When a client receives a tool call ID it\nhas not seen before, omitted fields use client defaults.\n\nSee protocol docs: [Tool Calls](https://agentclientprotocol.com/protocol/v2/draft/tool-calls)",
729
+ "description": "Represents an upsert for a tool call that the language model has requested.\n\nTool calls are actions that the agent executes on behalf of the language model,\nsuch as reading files, executing code, or fetching data from external sources.\n\nOnly [`ToolCallUpdate::tool_call_id`] is required. Other fields have patch semantics:\nomitted fields leave the existing tool call value unchanged, `null` clears or\nunsets the value, and concrete values replace the previous value. For\ncollection fields, concrete arrays replace the previous collection, and both\n`null` and `[]` clear the collection. A concrete `_meta` object instead\npatches the stored metadata by top-level key. When a client receives a tool\ncall ID it has not seen before, omitted fields use client defaults.\n\nSee protocol docs: [Tool Calls](https://agentclientprotocol.com/protocol/v2/draft/tool-calls)",
757
730
  "type": "object",
758
731
  "properties": {
759
732
  "toolCallId": {
@@ -825,7 +798,7 @@
825
798
  "x-deserialize-default-on-error": true
826
799
  },
827
800
  "_meta": {
828
- "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted means no metadata update; `null` is an\nexplicit clear signal. Implementations MUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
801
+ "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted leaves the stored metadata unchanged; `null`\nclears it. An object patches the stored metadata by top-level key: keys it omits are\nunchanged, a key set to `null` is removed, and any other value replaces that key's\nstored value without merging nested objects. Beyond this patch rule, implementations\nMUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Metadata Patches](https://agentclientprotocol.com/protocol/v2/draft/extensibility#metadata-patches)",
829
802
  "type": ["object", "null"],
830
803
  "x-deserialize-default-on-error": true,
831
804
  "additionalProperties": true
@@ -1916,7 +1889,7 @@
1916
1889
  "description": "Text patch format used by [`DiffPatch`].",
1917
1890
  "anyOf": [
1918
1891
  {
1919
- "description": "One or more `diff --git` sections in Git's `--patch` (`-p`) text format.\n\nPaths MUST be absolute. Surrounding commit metadata and email envelopes\nMUST NOT be included.",
1892
+ "description": "One or more `diff --git` sections in Git's `--patch` (`-p`) text format.\n\nUnlike Git, which writes paths relative to the repository root, every\npath MUST be absolute, including in `rename from`, `rename to`,\n`copy from`, and `copy to` lines, and MUST NOT have a prefix such as\nGit's default `a/` and `b/`. Otherwise paths follow Git: `/dev/null`\nnames the missing side of an added or deleted file in the `---` and\n`+++` lines, and paths with unusual characters are quoted as Git quotes\nthem. Surrounding commit metadata and email envelopes MUST NOT be\nincluded.",
1920
1893
  "type": "string",
1921
1894
  "const": "git_patch"
1922
1895
  },
@@ -2145,7 +2118,7 @@
2145
2118
  ]
2146
2119
  },
2147
2120
  "CreateElicitationRequest": {
2148
- "description": "Request from the agent to elicit structured user input.\n\nThe agent sends this to the client to request information from the user,\neither via a form or by directing them to a URL.\nElicitations are tied to a session (optionally a tool call) or a request.",
2121
+ "description": "Request from the agent to elicit structured user input.\n\nThe agent sends this to the client to request information from the user,\neither via a form or by directing them to a URL.\nElicitations are tied to a session (optionally a tool call) or a request.\n\nA session-scoped request follows the aggregate foreground-state contract:\nagents SHOULD report `requires_action` when the whole foreground workflow is\nblocked on user action. Once reported, they MUST report `running` when progress\nresumes, or `idle` if work ends without resuming. Independent background requests\nand request-scoped elicitations do not themselves change session state.\nAccepting a URL does not mean the external interaction completed.\n\nAgents SHOULD cancel pending elicitations no longer needed by cancelled work.\nThe request's scope alone does not establish that dependency.\n\nSee protocol docs: [Elicitation](https://agentclientprotocol.com/protocol/v2/draft/elicitation)",
2149
2122
  "type": "object",
2150
2123
  "properties": {
2151
2124
  "message": {
@@ -3161,33 +3134,6 @@
3161
3134
  }
3162
3135
  ]
3163
3136
  },
3164
- {
3165
- "title": "StartNesResponse",
3166
- "description": "Successful result returned for a `nes/start` request.",
3167
- "allOf": [
3168
- {
3169
- "$ref": "#/$defs/StartNesResponse"
3170
- }
3171
- ]
3172
- },
3173
- {
3174
- "title": "SuggestNesResponse",
3175
- "description": "Successful result returned for a `nes/suggest` request.",
3176
- "allOf": [
3177
- {
3178
- "$ref": "#/$defs/SuggestNesResponse"
3179
- }
3180
- ]
3181
- },
3182
- {
3183
- "title": "CloseNesResponse",
3184
- "description": "Successful result returned for a `nes/close` request.",
3185
- "allOf": [
3186
- {
3187
- "$ref": "#/$defs/CloseNesResponse"
3188
- }
3189
- ]
3190
- },
3191
3137
  {
3192
3138
  "title": "ExtMethodResponse",
3193
3139
  "description": "Successful result returned by an extension method outside the core ACP method set.",
@@ -3317,7 +3263,7 @@
3317
3263
  "type": "object",
3318
3264
  "properties": {
3319
3265
  "session": {
3320
- "description": "Session capabilities supported by the agent.\n\nOptional. Omitted or `null` both mean the agent does not support the\n`session/*` method surface. Supplying `{}` means the agent supports the\nbaseline session methods: `session/new`, `session/prompt`,\n`session/cancel`, and `session/update`.",
3266
+ "description": "Session capabilities supported by the agent.\n\nOptional. Omitted or `null` both mean the agent does not support the\n`session/*` method surface. Supplying `{}` means the agent supports the\nbaseline session methods: `session/new`, `session/list`,\n`session/resume`, `session/close`, `session/prompt`, `session/cancel`,\nand `session/update`.",
3321
3267
  "anyOf": [
3322
3268
  {
3323
3269
  "$ref": "#/$defs/SessionCapabilities"
@@ -3352,30 +3298,6 @@
3352
3298
  ],
3353
3299
  "x-deserialize-default-on-error": true
3354
3300
  },
3355
- "nes": {
3356
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nNES (Next Edit Suggestions) capabilities supported by the agent.\n\nOptional. Omitted or `null` both mean the agent does not advertise support\nfor NES methods.",
3357
- "anyOf": [
3358
- {
3359
- "$ref": "#/$defs/NesCapabilities"
3360
- },
3361
- {
3362
- "type": "null"
3363
- }
3364
- ],
3365
- "x-deserialize-default-on-error": true
3366
- },
3367
- "positionEncoding": {
3368
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nThe position encoding selected by the agent from the client's supported encodings.",
3369
- "anyOf": [
3370
- {
3371
- "$ref": "#/$defs/PositionEncodingKind"
3372
- },
3373
- {
3374
- "type": "null"
3375
- }
3376
- ],
3377
- "x-deserialize-default-on-error": true
3378
- },
3379
3301
  "_meta": {
3380
3302
  "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/v2/draft/extensibility)",
3381
3303
  "type": ["object", "null"],
@@ -3436,6 +3358,18 @@
3436
3358
  ],
3437
3359
  "x-deserialize-default-on-error": true
3438
3360
  },
3361
+ "systemPrompt": {
3362
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nWhether the agent supports `systemPrompt` on session lifecycle requests.\n\nOptional. Omitted or `null` both mean the agent does not advertise support.\nSupplying `{}` means the agent supports `systemPrompt` in `append` mode.",
3363
+ "anyOf": [
3364
+ {
3365
+ "$ref": "#/$defs/SessionSystemPromptCapabilities"
3366
+ },
3367
+ {
3368
+ "type": "null"
3369
+ }
3370
+ ],
3371
+ "x-deserialize-default-on-error": true
3372
+ },
3439
3373
  "fork": {
3440
3374
  "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nWhether the agent supports `session/fork`.\n\nOptional. Omitted or `null` both mean the agent does not advertise support.\nSupplying `{}` means the agent supports forking sessions.",
3441
3375
  "anyOf": [
@@ -3648,87 +3582,15 @@
3648
3582
  }
3649
3583
  }
3650
3584
  },
3651
- "SessionForkCapabilities": {
3652
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCapabilities for the `session/fork` method.\n\nSupplying `{}` means the agent supports forking sessions.",
3653
- "type": "object",
3654
- "properties": {
3655
- "_meta": {
3656
- "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/v2/draft/extensibility)",
3657
- "type": ["object", "null"],
3658
- "x-deserialize-default-on-error": true,
3659
- "additionalProperties": true
3660
- }
3661
- }
3662
- },
3663
- "AgentAuthCapabilities": {
3664
- "description": "Authentication-related extension capabilities supported by the agent.\n\nThis object does not advertise support for `auth/login` or `auth/logout`.\nThose methods are advertised by a non-empty `authMethods` list in the\n`initialize` response.",
3665
- "type": "object",
3666
- "properties": {
3667
- "_meta": {
3668
- "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/v2/draft/extensibility)",
3669
- "type": ["object", "null"],
3670
- "x-deserialize-default-on-error": true,
3671
- "additionalProperties": true
3672
- }
3673
- }
3674
- },
3675
- "ProvidersCapabilities": {
3676
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nProvider configuration capabilities supported by the agent.\n\nSupplying `{}` means the agent supports provider configuration methods.",
3677
- "type": "object",
3678
- "properties": {
3679
- "_meta": {
3680
- "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/v2/draft/extensibility)",
3681
- "type": ["object", "null"],
3682
- "x-deserialize-default-on-error": true,
3683
- "additionalProperties": true
3684
- }
3685
- }
3686
- },
3687
- "NesCapabilities": {
3688
- "description": "NES capabilities advertised by the agent during initialization.\n\nSupplying `{}` means the agent supports the NES method surface. Omitted or\n`null` both mean the agent does not advertise support for `nes/*` methods.",
3689
- "type": "object",
3690
- "properties": {
3691
- "events": {
3692
- "description": "Events the agent wants to receive.",
3693
- "anyOf": [
3694
- {
3695
- "$ref": "#/$defs/NesEventCapabilities"
3696
- },
3697
- {
3698
- "type": "null"
3699
- }
3700
- ],
3701
- "x-deserialize-default-on-error": true
3702
- },
3703
- "context": {
3704
- "description": "Context the agent wants attached to each suggestion request.",
3705
- "anyOf": [
3706
- {
3707
- "$ref": "#/$defs/NesContextCapabilities"
3708
- },
3709
- {
3710
- "type": "null"
3711
- }
3712
- ],
3713
- "x-deserialize-default-on-error": true
3714
- },
3715
- "_meta": {
3716
- "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/v2/draft/extensibility)",
3717
- "type": ["object", "null"],
3718
- "x-deserialize-default-on-error": true,
3719
- "additionalProperties": true
3720
- }
3721
- }
3722
- },
3723
- "NesEventCapabilities": {
3724
- "description": "Event capabilities the agent can consume.",
3585
+ "SessionSystemPromptCapabilities": {
3586
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCapabilities for client-provided system prompts.\n\nSupplying `{}` means the agent supports `systemPrompt` on session lifecycle\nrequests in `append` mode.",
3725
3587
  "type": "object",
3726
3588
  "properties": {
3727
- "document": {
3728
- "description": "Document event capabilities.",
3589
+ "mode": {
3590
+ "description": "Delivery modes the agent supports in addition to `append`.\n\nOptional. Omitted or `null` both mean the agent supports only `append`.",
3729
3591
  "anyOf": [
3730
3592
  {
3731
- "$ref": "#/$defs/NesDocumentEventCapabilities"
3593
+ "$ref": "#/$defs/SessionSystemPromptModeCapabilities"
3732
3594
  },
3733
3595
  {
3734
3596
  "type": "null"
@@ -3744,63 +3606,15 @@
3744
3606
  }
3745
3607
  }
3746
3608
  },
3747
- "NesDocumentEventCapabilities": {
3748
- "description": "Document event capabilities the agent wants to receive.",
3609
+ "SessionSystemPromptModeCapabilities": {
3610
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nSystem prompt delivery modes the agent supports in addition to `append`.\n\n`append` has no entry because every agent advertising `session.systemPrompt`\nsupports it.",
3749
3611
  "type": "object",
3750
3612
  "properties": {
3751
- "didOpen": {
3752
- "description": "Whether the agent wants `document/didOpen` events.",
3753
- "anyOf": [
3754
- {
3755
- "$ref": "#/$defs/NesDocumentDidOpenCapabilities"
3756
- },
3757
- {
3758
- "type": "null"
3759
- }
3760
- ],
3761
- "x-deserialize-default-on-error": true
3762
- },
3763
- "didChange": {
3764
- "description": "Whether the agent wants `document/didChange` events, and the sync kind.",
3765
- "anyOf": [
3766
- {
3767
- "$ref": "#/$defs/NesDocumentDidChangeCapabilities"
3768
- },
3769
- {
3770
- "type": "null"
3771
- }
3772
- ],
3773
- "x-deserialize-default-on-error": true
3774
- },
3775
- "didClose": {
3776
- "description": "Whether the agent wants `document/didClose` events.",
3777
- "anyOf": [
3778
- {
3779
- "$ref": "#/$defs/NesDocumentDidCloseCapabilities"
3780
- },
3781
- {
3782
- "type": "null"
3783
- }
3784
- ],
3785
- "x-deserialize-default-on-error": true
3786
- },
3787
- "didSave": {
3788
- "description": "Whether the agent wants `document/didSave` events.",
3789
- "anyOf": [
3790
- {
3791
- "$ref": "#/$defs/NesDocumentDidSaveCapabilities"
3792
- },
3793
- {
3794
- "type": "null"
3795
- }
3796
- ],
3797
- "x-deserialize-default-on-error": true
3798
- },
3799
- "didFocus": {
3800
- "description": "Whether the agent wants `document/didFocus` events.",
3613
+ "override": {
3614
+ "description": "Whether the agent supports `override` mode.\n\nOptional. Omitted or `null` both mean the agent does not advertise support.\nSupplying `{}` means the agent supports replacing its built-in default\ninstructions with the client-provided system prompt.",
3801
3615
  "anyOf": [
3802
3616
  {
3803
- "$ref": "#/$defs/NesDocumentDidFocusCapabilities"
3617
+ "$ref": "#/$defs/SessionSystemPromptOverrideCapabilities"
3804
3618
  },
3805
3619
  {
3806
3620
  "type": "null"
@@ -3816,8 +3630,8 @@
3816
3630
  }
3817
3631
  }
3818
3632
  },
3819
- "NesDocumentDidOpenCapabilities": {
3820
- "description": "Marker for `document/didOpen` capability support.",
3633
+ "SessionSystemPromptOverrideCapabilities": {
3634
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCapabilities for the `override` system prompt mode.\n\nSupplying `{}` means the agent supports replacing its built-in default\ninstructions with the client-provided system prompt.",
3821
3635
  "type": "object",
3822
3636
  "properties": {
3823
3637
  "_meta": {
@@ -3828,44 +3642,8 @@
3828
3642
  }
3829
3643
  }
3830
3644
  },
3831
- "NesDocumentDidChangeCapabilities": {
3832
- "description": "Capabilities for `document/didChange` events.",
3833
- "type": "object",
3834
- "properties": {
3835
- "syncKind": {
3836
- "description": "The sync kind the agent wants: `\"full\"` or `\"incremental\"`.",
3837
- "allOf": [
3838
- {
3839
- "$ref": "#/$defs/TextDocumentSyncKind"
3840
- }
3841
- ]
3842
- },
3843
- "_meta": {
3844
- "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/v2/draft/extensibility)",
3845
- "type": ["object", "null"],
3846
- "x-deserialize-default-on-error": true,
3847
- "additionalProperties": true
3848
- }
3849
- },
3850
- "required": ["syncKind"]
3851
- },
3852
- "TextDocumentSyncKind": {
3853
- "description": "How the agent wants document changes delivered.",
3854
- "oneOf": [
3855
- {
3856
- "description": "Client sends the entire file content on each change.",
3857
- "type": "string",
3858
- "const": "full"
3859
- },
3860
- {
3861
- "description": "Client sends only the changed ranges.",
3862
- "type": "string",
3863
- "const": "incremental"
3864
- }
3865
- ]
3866
- },
3867
- "NesDocumentDidCloseCapabilities": {
3868
- "description": "Marker for `document/didClose` capability support.",
3645
+ "SessionForkCapabilities": {
3646
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCapabilities for the `session/fork` method.\n\nSupplying `{}` means the agent supports forking sessions.",
3869
3647
  "type": "object",
3870
3648
  "properties": {
3871
3649
  "_meta": {
@@ -3876,8 +3654,8 @@
3876
3654
  }
3877
3655
  }
3878
3656
  },
3879
- "NesDocumentDidSaveCapabilities": {
3880
- "description": "Marker for `document/didSave` capability support.",
3657
+ "AgentAuthCapabilities": {
3658
+ "description": "Authentication-related extension capabilities supported by the agent.\n\nThis object does not advertise support for `auth/login` or `auth/logout`.\nThose methods are advertised by a non-empty `authMethods` list in the\n`initialize` response.",
3881
3659
  "type": "object",
3882
3660
  "properties": {
3883
3661
  "_meta": {
@@ -3888,8 +3666,8 @@
3888
3666
  }
3889
3667
  }
3890
3668
  },
3891
- "NesDocumentDidFocusCapabilities": {
3892
- "description": "Marker for `document/didFocus` capability support.",
3669
+ "ProvidersCapabilities": {
3670
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nProvider configuration capabilities supported by the agent.\n\nSupplying `{}` means the agent supports provider configuration methods.",
3893
3671
  "type": "object",
3894
3672
  "properties": {
3895
3673
  "_meta": {
@@ -3900,237 +3678,40 @@
3900
3678
  }
3901
3679
  }
3902
3680
  },
3903
- "NesContextCapabilities": {
3904
- "description": "Context capabilities the agent wants attached to each suggestion request.",
3905
- "type": "object",
3906
- "properties": {
3907
- "recentFiles": {
3908
- "description": "Whether the agent wants recent files context.",
3909
- "anyOf": [
3910
- {
3911
- "$ref": "#/$defs/NesRecentFilesCapabilities"
3912
- },
3913
- {
3914
- "type": "null"
3681
+ "AuthMethod": {
3682
+ "description": "Describes an available authentication method.\n\nThe `type` field acts as the discriminator in the serialized JSON form.",
3683
+ "anyOf": [
3684
+ {
3685
+ "description": "Client runs the configured agent program as a separate interactive\nprocess, without passing this method to `auth/login`.",
3686
+ "type": "object",
3687
+ "properties": {
3688
+ "type": {
3689
+ "type": "string",
3690
+ "const": "terminal"
3915
3691
  }
3916
- ],
3917
- "x-deserialize-default-on-error": true
3918
- },
3919
- "relatedSnippets": {
3920
- "description": "Whether the agent wants related snippets context.",
3921
- "anyOf": [
3922
- {
3923
- "$ref": "#/$defs/NesRelatedSnippetsCapabilities"
3924
- },
3692
+ },
3693
+ "required": ["type"],
3694
+ "allOf": [
3925
3695
  {
3926
- "type": "null"
3696
+ "$ref": "#/$defs/AuthMethodTerminal"
3927
3697
  }
3928
- ],
3929
- "x-deserialize-default-on-error": true
3698
+ ]
3930
3699
  },
3931
- "editHistory": {
3932
- "description": "Whether the agent wants edit history context.",
3933
- "anyOf": [
3934
- {
3935
- "$ref": "#/$defs/NesEditHistoryCapabilities"
3936
- },
3937
- {
3938
- "type": "null"
3700
+ {
3701
+ "description": "Agent handles authentication itself through `auth/login`.\n\nThe `type` discriminator value is `agent`.",
3702
+ "type": "object",
3703
+ "properties": {
3704
+ "type": {
3705
+ "type": "string",
3706
+ "const": "agent"
3939
3707
  }
3940
- ],
3941
- "x-deserialize-default-on-error": true
3942
- },
3943
- "userActions": {
3944
- "description": "Whether the agent wants user actions context.",
3945
- "anyOf": [
3946
- {
3947
- "$ref": "#/$defs/NesUserActionsCapabilities"
3948
- },
3708
+ },
3709
+ "required": ["type"],
3710
+ "allOf": [
3949
3711
  {
3950
- "type": "null"
3712
+ "$ref": "#/$defs/AuthMethodAgent"
3951
3713
  }
3952
- ],
3953
- "x-deserialize-default-on-error": true
3954
- },
3955
- "openFiles": {
3956
- "description": "Whether the agent wants open files context.",
3957
- "anyOf": [
3958
- {
3959
- "$ref": "#/$defs/NesOpenFilesCapabilities"
3960
- },
3961
- {
3962
- "type": "null"
3963
- }
3964
- ],
3965
- "x-deserialize-default-on-error": true
3966
- },
3967
- "diagnostics": {
3968
- "description": "Whether the agent wants diagnostics context.",
3969
- "anyOf": [
3970
- {
3971
- "$ref": "#/$defs/NesDiagnosticsCapabilities"
3972
- },
3973
- {
3974
- "type": "null"
3975
- }
3976
- ],
3977
- "x-deserialize-default-on-error": true
3978
- },
3979
- "_meta": {
3980
- "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/v2/draft/extensibility)",
3981
- "type": ["object", "null"],
3982
- "x-deserialize-default-on-error": true,
3983
- "additionalProperties": true
3984
- }
3985
- }
3986
- },
3987
- "NesRecentFilesCapabilities": {
3988
- "description": "Capabilities for recent files context.",
3989
- "type": "object",
3990
- "properties": {
3991
- "maxCount": {
3992
- "description": "Maximum number of recent files the agent can use.",
3993
- "type": ["integer", "null"],
3994
- "format": "uint32",
3995
- "minimum": 0,
3996
- "x-deserialize-default-on-error": true
3997
- },
3998
- "_meta": {
3999
- "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/v2/draft/extensibility)",
4000
- "type": ["object", "null"],
4001
- "x-deserialize-default-on-error": true,
4002
- "additionalProperties": true
4003
- }
4004
- }
4005
- },
4006
- "NesRelatedSnippetsCapabilities": {
4007
- "description": "Capabilities for related snippets context.",
4008
- "type": "object",
4009
- "properties": {
4010
- "_meta": {
4011
- "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/v2/draft/extensibility)",
4012
- "type": ["object", "null"],
4013
- "x-deserialize-default-on-error": true,
4014
- "additionalProperties": true
4015
- }
4016
- }
4017
- },
4018
- "NesEditHistoryCapabilities": {
4019
- "description": "Capabilities for edit history context.",
4020
- "type": "object",
4021
- "properties": {
4022
- "maxCount": {
4023
- "description": "Maximum number of edit history entries the agent can use.",
4024
- "type": ["integer", "null"],
4025
- "format": "uint32",
4026
- "minimum": 0,
4027
- "x-deserialize-default-on-error": true
4028
- },
4029
- "_meta": {
4030
- "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/v2/draft/extensibility)",
4031
- "type": ["object", "null"],
4032
- "x-deserialize-default-on-error": true,
4033
- "additionalProperties": true
4034
- }
4035
- }
4036
- },
4037
- "NesUserActionsCapabilities": {
4038
- "description": "Capabilities for user actions context.",
4039
- "type": "object",
4040
- "properties": {
4041
- "maxCount": {
4042
- "description": "Maximum number of user actions the agent can use.",
4043
- "type": ["integer", "null"],
4044
- "format": "uint32",
4045
- "minimum": 0,
4046
- "x-deserialize-default-on-error": true
4047
- },
4048
- "_meta": {
4049
- "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/v2/draft/extensibility)",
4050
- "type": ["object", "null"],
4051
- "x-deserialize-default-on-error": true,
4052
- "additionalProperties": true
4053
- }
4054
- }
4055
- },
4056
- "NesOpenFilesCapabilities": {
4057
- "description": "Capabilities for open files context.",
4058
- "type": "object",
4059
- "properties": {
4060
- "_meta": {
4061
- "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/v2/draft/extensibility)",
4062
- "type": ["object", "null"],
4063
- "x-deserialize-default-on-error": true,
4064
- "additionalProperties": true
4065
- }
4066
- }
4067
- },
4068
- "NesDiagnosticsCapabilities": {
4069
- "description": "Capabilities for diagnostics context.",
4070
- "type": "object",
4071
- "properties": {
4072
- "_meta": {
4073
- "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/v2/draft/extensibility)",
4074
- "type": ["object", "null"],
4075
- "x-deserialize-default-on-error": true,
4076
- "additionalProperties": true
4077
- }
4078
- }
4079
- },
4080
- "PositionEncodingKind": {
4081
- "description": "The encoding used for character offsets in positions.\n\nFollows the same conventions as LSP 3.17. The default is UTF-16.",
4082
- "oneOf": [
4083
- {
4084
- "description": "Character offsets count UTF-16 code units. This is the default.",
4085
- "type": "string",
4086
- "const": "utf-16"
4087
- },
4088
- {
4089
- "description": "Character offsets count Unicode code points.",
4090
- "type": "string",
4091
- "const": "utf-32"
4092
- },
4093
- {
4094
- "description": "Character offsets count UTF-8 code units (bytes).",
4095
- "type": "string",
4096
- "const": "utf-8"
4097
- }
4098
- ]
4099
- },
4100
- "AuthMethod": {
4101
- "description": "Describes an available authentication method.\n\nThe `type` field acts as the discriminator in the serialized JSON form.",
4102
- "anyOf": [
4103
- {
4104
- "description": "Client runs the configured agent program as a separate interactive\nprocess, without passing this method to `auth/login`.",
4105
- "type": "object",
4106
- "properties": {
4107
- "type": {
4108
- "type": "string",
4109
- "const": "terminal"
4110
- }
4111
- },
4112
- "required": ["type"],
4113
- "allOf": [
4114
- {
4115
- "$ref": "#/$defs/AuthMethodTerminal"
4116
- }
4117
- ]
4118
- },
4119
- {
4120
- "description": "Agent handles authentication itself through `auth/login`.\n\nThe `type` discriminator value is `agent`.",
4121
- "type": "object",
4122
- "properties": {
4123
- "type": {
4124
- "type": "string",
4125
- "const": "agent"
4126
- }
4127
- },
4128
- "required": ["type"],
4129
- "allOf": [
4130
- {
4131
- "$ref": "#/$defs/AuthMethodAgent"
4132
- }
4133
- ]
3714
+ ]
4134
3715
  },
4135
3716
  {
4136
3717
  "title": "other",
@@ -4482,7 +4063,7 @@
4482
4063
  "x-method": "auth/logout"
4483
4064
  },
4484
4065
  "NewSessionResponse": {
4485
- "description": "Response from creating a new session.\n\nSee protocol docs: [Creating a Session](https://agentclientprotocol.com/protocol/v2/draft/session-setup#creating-a-session)",
4066
+ "description": "Response from creating a new session.\n\nNew sessions default to `idle` until a state update reports otherwise.\nUpdates may arrive before or after this response. Clients MUST NOT overwrite\nan already-reported state when the response arrives.\n\nSee protocol docs: [Creating a Session](https://agentclientprotocol.com/protocol/v2/draft/session-setup#creating-a-session)",
4486
4067
  "type": "object",
4487
4068
  "properties": {
4488
4069
  "sessionId": {
@@ -5039,7 +4620,7 @@
5039
4620
  "x-method": "session/fork"
5040
4621
  },
5041
4622
  "ResumeSessionResponse": {
5042
- "description": "Response from resuming an existing session.",
4623
+ "description": "Response from resuming an existing session.\n\nThe agent MUST send a current `state_update` after any requested history\nreplay and before this response, even without replay. The update reports\nforeground state after resuming. The response alone does not imply `idle`.\n\nSee protocol docs: [Current-State Synchronization](https://agentclientprotocol.com/protocol/v2/draft/session-setup#current-state-synchronization)",
5043
4624
  "type": "object",
5044
4625
  "properties": {
5045
4626
  "configOptions": {
@@ -5109,7 +4690,7 @@
5109
4690
  "x-method": "session/set_config_option"
5110
4691
  },
5111
4692
  "PromptResponse": {
5112
- "description": "Response acknowledging that a user prompt was inserted into the ACP conversation.\n\nThis response does not indicate that the prompt was merely received or queued, nor that the\nagent has finished processing it.\nProcessing and completion are reported through `state_update` session updates.\n\nSee protocol docs: [Prompt Accepted](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#2-prompt-accepted)",
4693
+ "description": "Response acknowledging that a user prompt was inserted into the ACP conversation.\n\nThis response does not indicate that the prompt was merely received or queued, nor that the\nagent has finished processing it.\nProcessing and completion are reported through `state_update` session updates.\n\nInsertion is the logical addition of a user message with a message ID and a position\nrelative to other messages in the ACP conversation.\n\nSee protocol docs: [Prompt Accepted](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#2-prompt-accepted)",
5113
4694
  "type": "object",
5114
4695
  "properties": {
5115
4696
  "messageId": {
@@ -5135,231 +4716,168 @@
5135
4716
  "description": "Identifier for a message, unique among messages of the same type within a session.\n\nEach message type, such as user messages, agent messages, and agent thoughts,\nhas its own ID space: messages of different types may share an ID and remain\ndistinct messages.",
5136
4717
  "type": "string"
5137
4718
  },
5138
- "StartNesResponse": {
5139
- "description": "Response to `nes/start`.",
4719
+ "ExtResponse": {
4720
+ "description": "Allows for sending an arbitrary response to an [`ExtRequest`] that is not part of the ACP spec.\nExtension methods provide a way to add custom functionality while maintaining\nprotocol compatibility.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)"
4721
+ },
4722
+ "Error": {
4723
+ "description": "JSON-RPC error object.\n\nRepresents an error that occurred during method execution, following the\nJSON-RPC 2.0 error object specification with optional additional data.\n\nSee protocol docs: [JSON-RPC Error Object](https://www.jsonrpc.org/specification#error_object)",
5140
4724
  "type": "object",
5141
4725
  "properties": {
5142
- "sessionId": {
5143
- "description": "The session ID for the newly started NES session.",
4726
+ "code": {
4727
+ "description": "A number indicating the error type that occurred.\nThis must be an integer as defined in the JSON-RPC specification.",
5144
4728
  "allOf": [
5145
4729
  {
5146
- "$ref": "#/$defs/SessionId"
4730
+ "$ref": "#/$defs/ErrorCode"
5147
4731
  }
5148
4732
  ]
5149
4733
  },
5150
- "_meta": {
5151
- "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/v2/draft/extensibility)",
5152
- "type": ["object", "null"],
5153
- "x-deserialize-default-on-error": true,
5154
- "additionalProperties": true
5155
- }
5156
- },
5157
- "required": ["sessionId"],
5158
- "x-side": "agent",
5159
- "x-method": "nes/start"
5160
- },
5161
- "SuggestNesResponse": {
5162
- "description": "Response to `nes/suggest`.",
5163
- "type": "object",
5164
- "properties": {
5165
- "suggestions": {
5166
- "description": "The list of suggestions.",
5167
- "type": "array",
5168
- "items": {
5169
- "$ref": "#/$defs/NesSuggestion"
5170
- }
4734
+ "message": {
4735
+ "description": "A string providing a short description of the error.\nThe message should be limited to a concise single sentence.",
4736
+ "type": "string"
5171
4737
  },
5172
- "_meta": {
5173
- "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/v2/draft/extensibility)",
5174
- "type": ["object", "null"],
5175
- "x-deserialize-default-on-error": true,
5176
- "additionalProperties": true
4738
+ "data": {
4739
+ "description": "Optional primitive or structured value that contains additional information about the error.\nThis may include debugging information or context-specific details.",
4740
+ "x-deserialize-default-on-error": true
5177
4741
  }
5178
4742
  },
5179
- "required": ["suggestions"],
5180
- "x-side": "agent",
5181
- "x-method": "nes/suggest"
4743
+ "required": ["code", "message"]
5182
4744
  },
5183
- "NesSuggestion": {
5184
- "description": "A suggestion returned by the agent.",
4745
+ "ErrorCode": {
4746
+ "description": "Predefined error codes for common JSON-RPC and ACP-specific errors.\n\nThese codes follow the JSON-RPC 2.0 specification for standard errors\nand use the reserved range (-32000 to -32099) for protocol-specific errors.",
5185
4747
  "anyOf": [
5186
4748
  {
5187
- "description": "A text edit suggestion.",
5188
- "type": "object",
5189
- "properties": {
5190
- "kind": {
5191
- "type": "string",
5192
- "const": "edit"
5193
- }
5194
- },
5195
- "required": ["kind"],
5196
- "allOf": [
5197
- {
5198
- "$ref": "#/$defs/NesEditSuggestion"
5199
- }
5200
- ]
4749
+ "title": "Parse error",
4750
+ "description": "**Parse error**: Invalid JSON was received by the server.\nAn error occurred on the server while parsing the JSON text.",
4751
+ "type": "integer",
4752
+ "format": "int32",
4753
+ "const": -32700
5201
4754
  },
5202
4755
  {
5203
- "description": "A jump-to-location suggestion.",
5204
- "type": "object",
5205
- "properties": {
5206
- "kind": {
5207
- "type": "string",
5208
- "const": "jump"
5209
- }
5210
- },
5211
- "required": ["kind"],
5212
- "allOf": [
5213
- {
5214
- "$ref": "#/$defs/NesJumpSuggestion"
5215
- }
5216
- ]
4756
+ "title": "Invalid request",
4757
+ "description": "**Invalid request**: The JSON sent is not a valid Request object.",
4758
+ "type": "integer",
4759
+ "format": "int32",
4760
+ "const": -32600
5217
4761
  },
5218
4762
  {
5219
- "description": "A rename symbol suggestion.",
5220
- "type": "object",
5221
- "properties": {
5222
- "kind": {
5223
- "type": "string",
5224
- "const": "rename"
5225
- }
5226
- },
5227
- "required": ["kind"],
5228
- "allOf": [
5229
- {
5230
- "$ref": "#/$defs/NesRenameSuggestion"
5231
- }
5232
- ]
4763
+ "title": "Method not found",
4764
+ "description": "**Method not found**: The method does not exist or is not available.",
4765
+ "type": "integer",
4766
+ "format": "int32",
4767
+ "const": -32601
5233
4768
  },
5234
4769
  {
5235
- "description": "A search-and-replace suggestion.",
5236
- "type": "object",
5237
- "properties": {
5238
- "kind": {
5239
- "type": "string",
5240
- "const": "searchAndReplace"
5241
- }
5242
- },
5243
- "required": ["kind"],
5244
- "allOf": [
5245
- {
5246
- "$ref": "#/$defs/NesSearchAndReplaceSuggestion"
5247
- }
5248
- ]
4770
+ "title": "Invalid params",
4771
+ "description": "**Invalid params**: Invalid method parameter(s).",
4772
+ "type": "integer",
4773
+ "format": "int32",
4774
+ "const": -32602
5249
4775
  },
5250
4776
  {
5251
- "title": "other",
5252
- "description": "Custom or future NES suggestion.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.\n\nReceivers that do not understand this suggestion kind should preserve\nthe raw payload when storing, replaying, proxying, or forwarding\nsuggestions, and otherwise ignore it or display it generically.",
5253
- "type": "object",
5254
- "properties": {
5255
- "kind": {
5256
- "description": "Custom or future NES suggestion kind.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
5257
- "type": "string"
5258
- },
5259
- "suggestionId": {
5260
- "description": "Unique identifier for accept/reject tracking.",
5261
- "allOf": [
5262
- {
5263
- "$ref": "#/$defs/NesSuggestionId"
5264
- }
5265
- ]
5266
- }
5267
- },
5268
- "required": ["kind", "suggestionId"],
5269
- "not": {
5270
- "anyOf": [
5271
- {
5272
- "type": "object",
5273
- "properties": {
5274
- "kind": {
5275
- "type": "string",
5276
- "const": "edit"
5277
- }
5278
- },
5279
- "required": ["kind"]
5280
- },
5281
- {
5282
- "type": "object",
5283
- "properties": {
5284
- "kind": {
5285
- "type": "string",
5286
- "const": "jump"
5287
- }
5288
- },
5289
- "required": ["kind"]
5290
- },
5291
- {
5292
- "type": "object",
5293
- "properties": {
5294
- "kind": {
5295
- "type": "string",
5296
- "const": "rename"
5297
- }
5298
- },
5299
- "required": ["kind"]
5300
- },
5301
- {
5302
- "type": "object",
5303
- "properties": {
5304
- "kind": {
5305
- "type": "string",
5306
- "const": "searchAndReplace"
5307
- }
5308
- },
5309
- "required": ["kind"]
5310
- }
5311
- ]
5312
- },
5313
- "additionalProperties": true
4777
+ "title": "Internal error",
4778
+ "description": "**Internal error**: Internal JSON-RPC error.\nReserved for implementation-defined server errors.",
4779
+ "type": "integer",
4780
+ "format": "int32",
4781
+ "const": -32603
4782
+ },
4783
+ {
4784
+ "title": "Request cancelled",
4785
+ "description": "**Request cancelled**: Execution of the method was aborted either due to a cancellation request from the caller or\nbecause of resource constraints or shutdown.",
4786
+ "type": "integer",
4787
+ "format": "int32",
4788
+ "const": -32800
4789
+ },
4790
+ {
4791
+ "title": "Authentication required",
4792
+ "description": "**Authentication required**: Authentication is required before this operation can be performed.",
4793
+ "type": "integer",
4794
+ "format": "int32",
4795
+ "const": -32000
4796
+ },
4797
+ {
4798
+ "title": "Resource not found",
4799
+ "description": "**Resource not found**: A given resource, such as a file, was not found.",
4800
+ "type": "integer",
4801
+ "format": "int32",
4802
+ "const": -32002
4803
+ },
4804
+ {
4805
+ "title": "Other",
4806
+ "description": "Other undefined error code.",
4807
+ "type": "integer",
4808
+ "format": "int32"
5314
4809
  }
5315
4810
  ]
5316
4811
  },
5317
- "NesSuggestionId": {
5318
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nUnique identifier for an NES suggestion.",
5319
- "type": "string"
5320
- },
5321
- "NesTextEdit": {
5322
- "description": "A text edit within a suggestion.",
4812
+ "AgentNotification": {
4813
+ "description": "A JSON-RPC notification object.",
5323
4814
  "type": "object",
5324
4815
  "properties": {
5325
- "range": {
5326
- "description": "The range to replace.",
5327
- "allOf": [
4816
+ "method": {
4817
+ "description": "The notification method name.",
4818
+ "type": "string"
4819
+ },
4820
+ "params": {
4821
+ "description": "Method-specific notification parameters.",
4822
+ "anyOf": [
4823
+ {
4824
+ "description": "All possible notifications that an agent can send to a client.\n\nThis enum is used internally for routing RPC notifications. You typically won't need\nto use this directly.\n\nNotifications do not expect a response.",
4825
+ "anyOf": [
4826
+ {
4827
+ "title": "UpdateSessionNotification",
4828
+ "description": "Handles session update notifications from the agent.\n\nThis is a notification endpoint (no response expected) that receives\nupdates about session activity, including message updates, 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 reporting an idle `state_update` with the cancelled\nstop reason.\n\nSee protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#3-agent-reports-output)",
4829
+ "allOf": [
4830
+ {
4831
+ "$ref": "#/$defs/UpdateSessionNotification"
4832
+ }
4833
+ ]
4834
+ },
4835
+ {
4836
+ "title": "CompleteElicitationNotification",
4837
+ "description": "Notification that a URL-based elicitation has completed.\n\nSee protocol docs: [Elicitation](https://agentclientprotocol.com/protocol/v2/draft/elicitation#url-completion)",
4838
+ "allOf": [
4839
+ {
4840
+ "$ref": "#/$defs/CompleteElicitationNotification"
4841
+ }
4842
+ ]
4843
+ },
4844
+ {
4845
+ "title": "ExtNotification",
4846
+ "description": "Handles extension notifications from the agent.\n\nAllows the Agent to send an arbitrary notification that is not part of the ACP spec.\nExtension notifications provide a way to send one-way messages for custom functionality\nwhile maintaining protocol compatibility.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
4847
+ "allOf": [
4848
+ {
4849
+ "$ref": "#/$defs/ExtNotification"
4850
+ }
4851
+ ]
4852
+ }
4853
+ ]
4854
+ },
5328
4855
  {
5329
- "$ref": "#/$defs/Range"
4856
+ "type": "null"
5330
4857
  }
5331
4858
  ]
5332
- },
5333
- "newText": {
5334
- "description": "The replacement text.",
5335
- "type": "string"
5336
- },
5337
- "_meta": {
5338
- "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/v2/draft/extensibility)",
5339
- "type": ["object", "null"],
5340
- "x-deserialize-default-on-error": true,
5341
- "additionalProperties": true
5342
4859
  }
5343
4860
  },
5344
- "required": ["range", "newText"]
4861
+ "required": ["method"],
4862
+ "x-docs-ignore": true
5345
4863
  },
5346
- "Range": {
5347
- "description": "A range in a text document, expressed as start and end positions.",
4864
+ "UpdateSessionNotification": {
4865
+ "description": "Notification containing a session update from the agent.\n\nAgents can send session updates at any point while the session exists.\n\nSee protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#3-agent-reports-output)",
5348
4866
  "type": "object",
5349
4867
  "properties": {
5350
- "start": {
5351
- "description": "The start position (inclusive).",
4868
+ "sessionId": {
4869
+ "description": "The ID of the session this update pertains to.",
5352
4870
  "allOf": [
5353
4871
  {
5354
- "$ref": "#/$defs/Position"
4872
+ "$ref": "#/$defs/SessionId"
5355
4873
  }
5356
4874
  ]
5357
4875
  },
5358
- "end": {
5359
- "description": "The end position (exclusive).",
4876
+ "update": {
4877
+ "description": "The actual update content.",
5360
4878
  "allOf": [
5361
4879
  {
5362
- "$ref": "#/$defs/Position"
4880
+ "$ref": "#/$defs/SessionUpdate"
5363
4881
  }
5364
4882
  ]
5365
4883
  },
@@ -5370,581 +4888,212 @@
5370
4888
  "additionalProperties": true
5371
4889
  }
5372
4890
  },
5373
- "required": ["start", "end"]
5374
- },
5375
- "Position": {
5376
- "description": "A zero-based position in a text document.\n\nThe meaning of `character` depends on the negotiated position encoding.",
5377
- "type": "object",
5378
- "properties": {
5379
- "line": {
5380
- "description": "Zero-based line number.",
5381
- "type": "integer",
5382
- "format": "uint32",
5383
- "minimum": 0
5384
- },
5385
- "character": {
5386
- "description": "Zero-based character offset (encoding-dependent).",
5387
- "type": "integer",
5388
- "format": "uint32",
5389
- "minimum": 0
5390
- },
5391
- "_meta": {
5392
- "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/v2/draft/extensibility)",
5393
- "type": ["object", "null"],
5394
- "x-deserialize-default-on-error": true,
5395
- "additionalProperties": true
5396
- }
5397
- },
5398
- "required": ["line", "character"]
4891
+ "required": ["sessionId", "update"],
4892
+ "x-side": "client",
4893
+ "x-method": "session/update"
5399
4894
  },
5400
- "NesEditSuggestion": {
5401
- "description": "A text edit suggestion.",
5402
- "type": "object",
5403
- "properties": {
5404
- "suggestionId": {
5405
- "description": "Unique identifier for accept/reject tracking.",
4895
+ "SessionUpdate": {
4896
+ "description": "Different types of updates that can be sent while a session exists.\n\nThese updates report messages, progress, and other session activity.\n\nSee protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#3-agent-reports-output)",
4897
+ "anyOf": [
4898
+ {
4899
+ "description": "A chunk of the user's message being streamed.",
4900
+ "type": "object",
4901
+ "properties": {
4902
+ "sessionUpdate": {
4903
+ "type": "string",
4904
+ "const": "user_message_chunk"
4905
+ }
4906
+ },
4907
+ "required": ["sessionUpdate"],
5406
4908
  "allOf": [
5407
4909
  {
5408
- "$ref": "#/$defs/NesSuggestionId"
4910
+ "$ref": "#/$defs/ContentChunk"
5409
4911
  }
5410
4912
  ]
5411
4913
  },
5412
- "uri": {
5413
- "description": "The URI of the file to edit.",
5414
- "type": "string",
5415
- "format": "uri"
5416
- },
5417
- "edits": {
5418
- "description": "The text edits to apply. Must contain at least one edit.",
5419
- "type": "array",
5420
- "items": {
5421
- "$ref": "#/$defs/NesTextEdit"
5422
- },
5423
- "minItems": 1
5424
- },
5425
- "cursorPosition": {
5426
- "description": "Optional suggested cursor position after applying edits.",
5427
- "anyOf": [
5428
- {
5429
- "$ref": "#/$defs/Position"
5430
- },
5431
- {
5432
- "type": "null"
4914
+ {
4915
+ "description": "A user message has been created or updated.\n\nAgents can send this when they accept or replay a user message. When a\nclient receives another `user_message` update with the same `messageId`,\nfields in the new update patch the previous fields for that message.",
4916
+ "type": "object",
4917
+ "properties": {
4918
+ "sessionUpdate": {
4919
+ "type": "string",
4920
+ "const": "user_message"
5433
4921
  }
5434
- ],
5435
- "x-deserialize-default-on-error": true
5436
- },
5437
- "_meta": {
5438
- "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/v2/draft/extensibility)",
5439
- "type": ["object", "null"],
5440
- "x-deserialize-default-on-error": true,
5441
- "additionalProperties": true
5442
- }
5443
- },
5444
- "required": ["suggestionId", "uri", "edits"]
5445
- },
5446
- "NesJumpSuggestion": {
5447
- "description": "A jump-to-location suggestion.",
5448
- "type": "object",
5449
- "properties": {
5450
- "suggestionId": {
5451
- "description": "Unique identifier for accept/reject tracking.",
4922
+ },
4923
+ "required": ["sessionUpdate"],
5452
4924
  "allOf": [
5453
4925
  {
5454
- "$ref": "#/$defs/NesSuggestionId"
4926
+ "$ref": "#/$defs/UserMessage"
5455
4927
  }
5456
4928
  ]
5457
4929
  },
5458
- "uri": {
5459
- "description": "The file to navigate to.",
5460
- "type": "string",
5461
- "format": "uri"
5462
- },
5463
- "position": {
5464
- "description": "The target position within the file.",
4930
+ {
4931
+ "description": "A chunk of the agent's response being streamed.",
4932
+ "type": "object",
4933
+ "properties": {
4934
+ "sessionUpdate": {
4935
+ "type": "string",
4936
+ "const": "agent_message_chunk"
4937
+ }
4938
+ },
4939
+ "required": ["sessionUpdate"],
5465
4940
  "allOf": [
5466
4941
  {
5467
- "$ref": "#/$defs/Position"
4942
+ "$ref": "#/$defs/ContentChunk"
5468
4943
  }
5469
4944
  ]
5470
4945
  },
5471
- "_meta": {
5472
- "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/v2/draft/extensibility)",
5473
- "type": ["object", "null"],
5474
- "x-deserialize-default-on-error": true,
5475
- "additionalProperties": true
5476
- }
5477
- },
5478
- "required": ["suggestionId", "uri", "position"]
5479
- },
5480
- "NesRenameSuggestion": {
5481
- "description": "A rename symbol suggestion.",
5482
- "type": "object",
5483
- "properties": {
5484
- "suggestionId": {
5485
- "description": "Unique identifier for accept/reject tracking.",
4946
+ {
4947
+ "description": "An agent message has been created or updated.\n\nAgents can send this in addition to streamed chunks. When a client\nreceives another `agent_message` update with the same `messageId`,\nfields in the new update patch the previous fields for that message.",
4948
+ "type": "object",
4949
+ "properties": {
4950
+ "sessionUpdate": {
4951
+ "type": "string",
4952
+ "const": "agent_message"
4953
+ }
4954
+ },
4955
+ "required": ["sessionUpdate"],
5486
4956
  "allOf": [
5487
4957
  {
5488
- "$ref": "#/$defs/NesSuggestionId"
4958
+ "$ref": "#/$defs/AgentMessage"
5489
4959
  }
5490
4960
  ]
5491
4961
  },
5492
- "uri": {
5493
- "description": "The file URI containing the symbol.",
5494
- "type": "string",
5495
- "format": "uri"
5496
- },
5497
- "position": {
5498
- "description": "The position of the symbol to rename.",
4962
+ {
4963
+ "description": "A chunk of the agent's internal reasoning being streamed.",
4964
+ "type": "object",
4965
+ "properties": {
4966
+ "sessionUpdate": {
4967
+ "type": "string",
4968
+ "const": "agent_thought_chunk"
4969
+ }
4970
+ },
4971
+ "required": ["sessionUpdate"],
5499
4972
  "allOf": [
5500
4973
  {
5501
- "$ref": "#/$defs/Position"
4974
+ "$ref": "#/$defs/ContentChunk"
5502
4975
  }
5503
4976
  ]
5504
4977
  },
5505
- "newName": {
5506
- "description": "The new name for the symbol.",
5507
- "type": "string"
5508
- },
5509
- "_meta": {
5510
- "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/v2/draft/extensibility)",
5511
- "type": ["object", "null"],
5512
- "x-deserialize-default-on-error": true,
5513
- "additionalProperties": true
5514
- }
5515
- },
5516
- "required": ["suggestionId", "uri", "position", "newName"]
5517
- },
5518
- "NesSearchAndReplaceSuggestion": {
5519
- "description": "A search-and-replace suggestion.",
5520
- "type": "object",
5521
- "properties": {
5522
- "suggestionId": {
5523
- "description": "Unique identifier for accept/reject tracking.",
5524
- "allOf": [
5525
- {
5526
- "$ref": "#/$defs/NesSuggestionId"
5527
- }
5528
- ]
5529
- },
5530
- "uri": {
5531
- "description": "The file URI to search within.",
5532
- "type": "string",
5533
- "format": "uri"
5534
- },
5535
- "search": {
5536
- "description": "The text or pattern to find.",
5537
- "type": "string"
5538
- },
5539
- "replace": {
5540
- "description": "The replacement text.",
5541
- "type": "string"
5542
- },
5543
- "isRegex": {
5544
- "description": "Whether `search` is a regular expression. Defaults to `false`.",
5545
- "type": ["boolean", "null"]
5546
- },
5547
- "_meta": {
5548
- "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/v2/draft/extensibility)",
5549
- "type": ["object", "null"],
5550
- "x-deserialize-default-on-error": true,
5551
- "additionalProperties": true
5552
- }
5553
- },
5554
- "required": ["suggestionId", "uri", "search", "replace"]
5555
- },
5556
- "CloseNesResponse": {
5557
- "description": "Response from closing an NES session.",
5558
- "type": "object",
5559
- "properties": {
5560
- "_meta": {
5561
- "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/v2/draft/extensibility)",
5562
- "type": ["object", "null"],
5563
- "x-deserialize-default-on-error": true,
5564
- "additionalProperties": true
5565
- }
5566
- },
5567
- "x-side": "agent",
5568
- "x-method": "nes/close"
5569
- },
5570
- "ExtResponse": {
5571
- "description": "Allows for sending an arbitrary response to an [`ExtRequest`] that is not part of the ACP spec.\nExtension methods provide a way to add custom functionality while maintaining\nprotocol compatibility.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)"
5572
- },
5573
- "Error": {
5574
- "description": "JSON-RPC error object.\n\nRepresents an error that occurred during method execution, following the\nJSON-RPC 2.0 error object specification with optional additional data.\n\nSee protocol docs: [JSON-RPC Error Object](https://www.jsonrpc.org/specification#error_object)",
5575
- "type": "object",
5576
- "properties": {
5577
- "code": {
5578
- "description": "A number indicating the error type that occurred.\nThis must be an integer as defined in the JSON-RPC specification.",
5579
- "allOf": [
5580
- {
5581
- "$ref": "#/$defs/ErrorCode"
5582
- }
5583
- ]
5584
- },
5585
- "message": {
5586
- "description": "A string providing a short description of the error.\nThe message should be limited to a concise single sentence.",
5587
- "type": "string"
5588
- },
5589
- "data": {
5590
- "description": "Optional primitive or structured value that contains additional information about the error.\nThis may include debugging information or context-specific details.",
5591
- "x-deserialize-default-on-error": true
5592
- }
5593
- },
5594
- "required": ["code", "message"]
5595
- },
5596
- "ErrorCode": {
5597
- "description": "Predefined error codes for common JSON-RPC and ACP-specific errors.\n\nThese codes follow the JSON-RPC 2.0 specification for standard errors\nand use the reserved range (-32000 to -32099) for protocol-specific errors.",
5598
- "anyOf": [
5599
- {
5600
- "title": "Parse error",
5601
- "description": "**Parse error**: Invalid JSON was received by the server.\nAn error occurred on the server while parsing the JSON text.",
5602
- "type": "integer",
5603
- "format": "int32",
5604
- "const": -32700
5605
- },
5606
- {
5607
- "title": "Invalid request",
5608
- "description": "**Invalid request**: The JSON sent is not a valid Request object.",
5609
- "type": "integer",
5610
- "format": "int32",
5611
- "const": -32600
5612
- },
5613
- {
5614
- "title": "Method not found",
5615
- "description": "**Method not found**: The method does not exist or is not available.",
5616
- "type": "integer",
5617
- "format": "int32",
5618
- "const": -32601
5619
- },
5620
- {
5621
- "title": "Invalid params",
5622
- "description": "**Invalid params**: Invalid method parameter(s).",
5623
- "type": "integer",
5624
- "format": "int32",
5625
- "const": -32602
5626
- },
5627
- {
5628
- "title": "Internal error",
5629
- "description": "**Internal error**: Internal JSON-RPC error.\nReserved for implementation-defined server errors.",
5630
- "type": "integer",
5631
- "format": "int32",
5632
- "const": -32603
5633
- },
5634
- {
5635
- "title": "Request cancelled",
5636
- "description": "**Request cancelled**: Execution of the method was aborted either due to a cancellation request from the caller or\nbecause of resource constraints or shutdown.",
5637
- "type": "integer",
5638
- "format": "int32",
5639
- "const": -32800
5640
- },
5641
- {
5642
- "title": "Authentication required",
5643
- "description": "**Authentication required**: Authentication is required before this operation can be performed.",
5644
- "type": "integer",
5645
- "format": "int32",
5646
- "const": -32000
5647
- },
5648
- {
5649
- "title": "Resource not found",
5650
- "description": "**Resource not found**: A given resource, such as a file, was not found.",
5651
- "type": "integer",
5652
- "format": "int32",
5653
- "const": -32002
5654
- },
5655
4978
  {
5656
- "title": "Other",
5657
- "description": "Other undefined error code.",
5658
- "type": "integer",
5659
- "format": "int32"
5660
- }
5661
- ]
5662
- },
5663
- "AgentNotification": {
5664
- "description": "A JSON-RPC notification object.",
5665
- "type": "object",
5666
- "properties": {
5667
- "method": {
5668
- "description": "The notification method name.",
5669
- "type": "string"
5670
- },
5671
- "params": {
5672
- "description": "Method-specific notification parameters.",
5673
- "anyOf": [
5674
- {
5675
- "description": "All possible notifications that an agent can send to a client.\n\nThis enum is used internally for routing RPC notifications. You typically won't need\nto use this directly.\n\nNotifications do not expect a response.",
5676
- "anyOf": [
5677
- {
5678
- "title": "UpdateSessionNotification",
5679
- "description": "Handles session update notifications from the agent.\n\nThis is a notification endpoint (no response expected) that receives\nupdates about session activity, including message updates, 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 reporting an idle `state_update` with the cancelled\nstop reason.\n\nSee protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#3-agent-reports-output)",
5680
- "allOf": [
5681
- {
5682
- "$ref": "#/$defs/UpdateSessionNotification"
5683
- }
5684
- ]
5685
- },
5686
- {
5687
- "title": "CompleteElicitationNotification",
5688
- "description": "Notification that a URL-based elicitation has completed.\n\nSee protocol docs: [Elicitation](https://agentclientprotocol.com/protocol/v2/draft/elicitation#url-completion)",
5689
- "allOf": [
5690
- {
5691
- "$ref": "#/$defs/CompleteElicitationNotification"
5692
- }
5693
- ]
5694
- },
5695
- {
5696
- "title": "ExtNotification",
5697
- "description": "Handles extension notifications from the agent.\n\nAllows the Agent to send an arbitrary notification that is not part of the ACP spec.\nExtension notifications provide a way to send one-way messages for custom functionality\nwhile maintaining protocol compatibility.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
5698
- "allOf": [
5699
- {
5700
- "$ref": "#/$defs/ExtNotification"
5701
- }
5702
- ]
5703
- }
5704
- ]
5705
- },
5706
- {
5707
- "type": "null"
5708
- }
5709
- ]
5710
- }
5711
- },
5712
- "required": ["method"],
5713
- "x-docs-ignore": true
5714
- },
5715
- "UpdateSessionNotification": {
5716
- "description": "Notification containing a session update from the agent.\n\nAgents can send session updates at any point while the session exists.\n\nSee protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#3-agent-reports-output)",
5717
- "type": "object",
5718
- "properties": {
5719
- "sessionId": {
5720
- "description": "The ID of the session this update pertains to.",
5721
- "allOf": [
5722
- {
5723
- "$ref": "#/$defs/SessionId"
4979
+ "description": "An agent thought or reasoning message has been created or updated.\n\nAgents can send this in addition to streamed chunks. When a client\nreceives another `agent_thought` update with the same `messageId`,\nfields in the new update patch the previous fields for that message.",
4980
+ "type": "object",
4981
+ "properties": {
4982
+ "sessionUpdate": {
4983
+ "type": "string",
4984
+ "const": "agent_thought"
5724
4985
  }
5725
- ]
5726
- },
5727
- "update": {
5728
- "description": "The actual update content.",
4986
+ },
4987
+ "required": ["sessionUpdate"],
5729
4988
  "allOf": [
5730
4989
  {
5731
- "$ref": "#/$defs/SessionUpdate"
4990
+ "$ref": "#/$defs/AgentThought"
5732
4991
  }
5733
4992
  ]
5734
4993
  },
5735
- "_meta": {
5736
- "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/v2/draft/extensibility)",
5737
- "type": ["object", "null"],
5738
- "x-deserialize-default-on-error": true,
5739
- "additionalProperties": true
5740
- }
5741
- },
5742
- "required": ["sessionId", "update"],
5743
- "x-side": "client",
5744
- "x-method": "session/update"
5745
- },
5746
- "SessionUpdate": {
5747
- "description": "Different types of updates that can be sent while a session exists.\n\nThese updates report messages, progress, and other session activity.\n\nSee protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#3-agent-reports-output)",
5748
- "anyOf": [
5749
4994
  {
5750
- "description": "A chunk of the user's message being streamed.",
4995
+ "description": "A snapshot of the session's aggregate foreground activity.",
5751
4996
  "type": "object",
5752
4997
  "properties": {
5753
4998
  "sessionUpdate": {
5754
4999
  "type": "string",
5755
- "const": "user_message_chunk"
5000
+ "const": "state_update"
5756
5001
  }
5757
5002
  },
5758
5003
  "required": ["sessionUpdate"],
5759
5004
  "allOf": [
5760
5005
  {
5761
- "$ref": "#/$defs/ContentChunk"
5006
+ "$ref": "#/$defs/StateUpdate"
5762
5007
  }
5763
5008
  ]
5764
5009
  },
5765
5010
  {
5766
- "description": "A user message has been created or updated.\n\nAgents can send this when they accept or replay a user message. When a\nclient receives another `user_message` update with the same `messageId`,\nfields in the new update patch the previous fields for that message.",
5011
+ "description": "A chunk of tool-call content being streamed.",
5767
5012
  "type": "object",
5768
5013
  "properties": {
5769
5014
  "sessionUpdate": {
5770
5015
  "type": "string",
5771
- "const": "user_message"
5016
+ "const": "tool_call_content_chunk"
5772
5017
  }
5773
5018
  },
5774
5019
  "required": ["sessionUpdate"],
5775
5020
  "allOf": [
5776
5021
  {
5777
- "$ref": "#/$defs/UserMessage"
5022
+ "$ref": "#/$defs/ToolCallContentChunk"
5778
5023
  }
5779
5024
  ]
5780
5025
  },
5781
5026
  {
5782
- "description": "A chunk of the agent's response being streamed.",
5027
+ "description": "A tool call has been created or updated.",
5783
5028
  "type": "object",
5784
5029
  "properties": {
5785
5030
  "sessionUpdate": {
5786
5031
  "type": "string",
5787
- "const": "agent_message_chunk"
5032
+ "const": "tool_call_update"
5788
5033
  }
5789
5034
  },
5790
5035
  "required": ["sessionUpdate"],
5791
5036
  "allOf": [
5792
5037
  {
5793
- "$ref": "#/$defs/ContentChunk"
5038
+ "$ref": "#/$defs/ToolCallUpdate"
5794
5039
  }
5795
5040
  ]
5796
5041
  },
5797
5042
  {
5798
- "description": "An agent message has been created or updated.\n\nAgents can send this in addition to streamed chunks. When a client\nreceives another `agent_message` update with the same `messageId`,\nfields in the new update patch the previous fields for that message.",
5043
+ "description": "An agent-owned terminal has been created or updated.",
5799
5044
  "type": "object",
5800
5045
  "properties": {
5801
5046
  "sessionUpdate": {
5802
5047
  "type": "string",
5803
- "const": "agent_message"
5048
+ "const": "terminal_update"
5804
5049
  }
5805
5050
  },
5806
5051
  "required": ["sessionUpdate"],
5807
5052
  "allOf": [
5808
5053
  {
5809
- "$ref": "#/$defs/AgentMessage"
5054
+ "$ref": "#/$defs/TerminalUpdate"
5810
5055
  }
5811
5056
  ]
5812
5057
  },
5813
5058
  {
5814
- "description": "A chunk of the agent's internal reasoning being streamed.",
5059
+ "description": "A chunk of bytes appended to an agent-owned terminal's output.",
5815
5060
  "type": "object",
5816
5061
  "properties": {
5817
5062
  "sessionUpdate": {
5818
5063
  "type": "string",
5819
- "const": "agent_thought_chunk"
5064
+ "const": "terminal_output_chunk"
5820
5065
  }
5821
5066
  },
5822
5067
  "required": ["sessionUpdate"],
5823
5068
  "allOf": [
5824
5069
  {
5825
- "$ref": "#/$defs/ContentChunk"
5070
+ "$ref": "#/$defs/TerminalOutputChunk"
5826
5071
  }
5827
5072
  ]
5828
5073
  },
5829
5074
  {
5830
- "description": "An agent thought or reasoning message has been created or updated.\n\nAgents can send this in addition to streamed chunks. When a client\nreceives another `agent_thought` update with the same `messageId`,\nfields in the new update patch the previous fields for that message.",
5075
+ "description": "A content update for a plan identified by ID.\nSee protocol docs: [Agent Plan](https://agentclientprotocol.com/protocol/v2/draft/agent-plan)",
5831
5076
  "type": "object",
5832
5077
  "properties": {
5833
5078
  "sessionUpdate": {
5834
5079
  "type": "string",
5835
- "const": "agent_thought"
5080
+ "const": "plan_update"
5836
5081
  }
5837
5082
  },
5838
5083
  "required": ["sessionUpdate"],
5839
5084
  "allOf": [
5840
5085
  {
5841
- "$ref": "#/$defs/AgentThought"
5086
+ "$ref": "#/$defs/PlanUpdate"
5842
5087
  }
5843
5088
  ]
5844
5089
  },
5845
5090
  {
5846
- "description": "The state of the agent's foreground work has changed.",
5091
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRemoval notice for a plan identified by ID.",
5847
5092
  "type": "object",
5848
5093
  "properties": {
5849
5094
  "sessionUpdate": {
5850
5095
  "type": "string",
5851
- "const": "state_update"
5852
- }
5853
- },
5854
- "required": ["sessionUpdate"],
5855
- "allOf": [
5856
- {
5857
- "$ref": "#/$defs/StateUpdate"
5858
- }
5859
- ]
5860
- },
5861
- {
5862
- "description": "A chunk of tool-call content being streamed.",
5863
- "type": "object",
5864
- "properties": {
5865
- "sessionUpdate": {
5866
- "type": "string",
5867
- "const": "tool_call_content_chunk"
5868
- }
5869
- },
5870
- "required": ["sessionUpdate"],
5871
- "allOf": [
5872
- {
5873
- "$ref": "#/$defs/ToolCallContentChunk"
5874
- }
5875
- ]
5876
- },
5877
- {
5878
- "description": "A tool call has been created or updated.",
5879
- "type": "object",
5880
- "properties": {
5881
- "sessionUpdate": {
5882
- "type": "string",
5883
- "const": "tool_call_update"
5884
- }
5885
- },
5886
- "required": ["sessionUpdate"],
5887
- "allOf": [
5888
- {
5889
- "$ref": "#/$defs/ToolCallUpdate"
5890
- }
5891
- ]
5892
- },
5893
- {
5894
- "description": "An agent-owned terminal has been created or updated.",
5895
- "type": "object",
5896
- "properties": {
5897
- "sessionUpdate": {
5898
- "type": "string",
5899
- "const": "terminal_update"
5900
- }
5901
- },
5902
- "required": ["sessionUpdate"],
5903
- "allOf": [
5904
- {
5905
- "$ref": "#/$defs/TerminalUpdate"
5906
- }
5907
- ]
5908
- },
5909
- {
5910
- "description": "A chunk of bytes appended to an agent-owned terminal's output.",
5911
- "type": "object",
5912
- "properties": {
5913
- "sessionUpdate": {
5914
- "type": "string",
5915
- "const": "terminal_output_chunk"
5916
- }
5917
- },
5918
- "required": ["sessionUpdate"],
5919
- "allOf": [
5920
- {
5921
- "$ref": "#/$defs/TerminalOutputChunk"
5922
- }
5923
- ]
5924
- },
5925
- {
5926
- "description": "A content update for a plan identified by ID.\nSee protocol docs: [Agent Plan](https://agentclientprotocol.com/protocol/v2/draft/agent-plan)",
5927
- "type": "object",
5928
- "properties": {
5929
- "sessionUpdate": {
5930
- "type": "string",
5931
- "const": "plan_update"
5932
- }
5933
- },
5934
- "required": ["sessionUpdate"],
5935
- "allOf": [
5936
- {
5937
- "$ref": "#/$defs/PlanUpdate"
5938
- }
5939
- ]
5940
- },
5941
- {
5942
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRemoval notice for a plan identified by ID.",
5943
- "type": "object",
5944
- "properties": {
5945
- "sessionUpdate": {
5946
- "type": "string",
5947
- "const": "plan_removed"
5096
+ "const": "plan_removed"
5948
5097
  }
5949
5098
  },
5950
5099
  "required": ["sessionUpdate"],
@@ -6414,7 +5563,7 @@
6414
5563
  "x-deserialize-skip-invalid-items": true
6415
5564
  },
6416
5565
  "_meta": {
6417
- "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. Omitted means no metadata update; `null` is an explicit clear signal.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
5566
+ "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted leaves the stored metadata unchanged; `null`\nclears it. An object patches the stored metadata by top-level key: keys it omits are\nunchanged, a key set to `null` is removed, and any other value replaces that key's\nstored value without merging nested objects. Beyond this patch rule, implementations\nMUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Metadata Patches](https://agentclientprotocol.com/protocol/v2/draft/extensibility#metadata-patches)",
6418
5567
  "type": ["object", "null"],
6419
5568
  "x-deserialize-default-on-error": true,
6420
5569
  "additionalProperties": true
@@ -6444,7 +5593,7 @@
6444
5593
  "x-deserialize-skip-invalid-items": true
6445
5594
  },
6446
5595
  "_meta": {
6447
- "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. Omitted means no metadata update; `null` is an explicit clear signal.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
5596
+ "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted leaves the stored metadata unchanged; `null`\nclears it. An object patches the stored metadata by top-level key: keys it omits are\nunchanged, a key set to `null` is removed, and any other value replaces that key's\nstored value without merging nested objects. Beyond this patch rule, implementations\nMUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Metadata Patches](https://agentclientprotocol.com/protocol/v2/draft/extensibility#metadata-patches)",
6448
5597
  "type": ["object", "null"],
6449
5598
  "x-deserialize-default-on-error": true,
6450
5599
  "additionalProperties": true
@@ -6474,7 +5623,7 @@
6474
5623
  "x-deserialize-skip-invalid-items": true
6475
5624
  },
6476
5625
  "_meta": {
6477
- "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. Omitted means no metadata update; `null` is an explicit clear signal.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
5626
+ "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted leaves the stored metadata unchanged; `null`\nclears it. An object patches the stored metadata by top-level key: keys it omits are\nunchanged, a key set to `null` is removed, and any other value replaces that key's\nstored value without merging nested objects. Beyond this patch rule, implementations\nMUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Metadata Patches](https://agentclientprotocol.com/protocol/v2/draft/extensibility#metadata-patches)",
6478
5627
  "type": ["object", "null"],
6479
5628
  "x-deserialize-default-on-error": true,
6480
5629
  "additionalProperties": true
@@ -6565,7 +5714,7 @@
6565
5714
  "required": ["totalTokens", "inputTokens", "outputTokens"]
6566
5715
  },
6567
5716
  "IdleStateUpdate": {
6568
- "description": "The agent is ready to process a new prompt.\n\nAgents SHOULD include a `stopReason` when the idle transition ends foreground\nwork. An omitted, `null`, or malformed `stopReason` means the agent is not\nreporting one.",
5717
+ "description": "No foreground work is active. Background activity may continue.\n\nAgents SHOULD include a `stopReason` when the idle transition ends foreground\nwork. An idle update that does not end foreground work need not include one.\nReceivers treat an omitted, `null`, or malformed `stopReason` as the agent not\nreporting one.\nRepeated or resume snapshots may carry the last stop reason for context.\nThey MUST NOT be counted as new completions, cancellations, or additional usage.",
6569
5718
  "type": "object",
6570
5719
  "properties": {
6571
5720
  "usage": {
@@ -6594,7 +5743,7 @@
6594
5743
  },
6595
5744
  "anyOf": [
6596
5745
  {
6597
- "description": "The active work ended successfully.",
5746
+ "description": "The active work ended successfully.\nIncludes locally handled commands that required no model call.",
6598
5747
  "type": "object",
6599
5748
  "properties": {
6600
5749
  "stopReason": {
@@ -6638,7 +5787,7 @@
6638
5787
  "required": ["stopReason"]
6639
5788
  },
6640
5789
  {
6641
- "description": "Active session work was cancelled by the client via `session/cancel`.\n\nAgents should report this stop reason on an idle `state_update` session update\nwhen cancellation succeeds, even if cancellation causes exceptions in\nunderlying operations.",
5790
+ "description": "Active session work was cancelled by the client via `session/cancel`.\n\nAgents MUST report this stop reason on an idle `state_update` when\ncancellation ends active foreground work, even if aborting causes\nexceptions. Agents MUST catch these errors and report `cancelled`, not\n`error`.",
6642
5791
  "type": "object",
6643
5792
  "properties": {
6644
5793
  "stopReason": {
@@ -6649,7 +5798,7 @@
6649
5798
  "required": ["stopReason"]
6650
5799
  },
6651
5800
  {
6652
- "description": "The active work ended because something failed.\n\nFor work started by a prompt, this covers failures after the user message\nwas inserted; earlier failures are an error response to `session/prompt`.",
5801
+ "description": "The active work ended because something failed.\n\nThis includes pre-insertion foreground work. A prompt failure before\ninsertion also requires an error response to `session/prompt`; after\ninsertion, the prompt's response remains successful.",
6653
5802
  "type": "object",
6654
5803
  "properties": {
6655
5804
  "stopReason": {
@@ -6754,7 +5903,7 @@
6754
5903
  ]
6755
5904
  },
6756
5905
  "RequiresActionStateUpdate": {
6757
- "description": "Foreground work is blocked on user action.",
5906
+ "description": "The foreground workflow as a whole is blocked on user action.\n\nAgents SHOULD report this state when foreground work cannot progress without\nuser action. Pending permissions or elicitations alone do not imply this\nstate if other foreground work can progress, or if the requests belong only\nto independent background activity. Once reported, agents MUST report\n`running` when progress resumes, or `idle` if the work ends without resuming.\nResponding to one request does not itself imply `running`.",
6758
5907
  "type": "object",
6759
5908
  "properties": {
6760
5909
  "_meta": {
@@ -6778,7 +5927,7 @@
6778
5927
  }
6779
5928
  },
6780
5929
  "StateUpdate": {
6781
- "description": "The state of the agent's foreground work has changed.\n\nBackground activity can continue and emit other `session/update` notifications\nwhile `idle`. Those notifications do not change this state.",
5930
+ "description": "A snapshot of the session's aggregate foreground activity.\n\nForeground work is the agent's active response or workflow in the session,\nincluding model processing, tool execution, and waiting for user action needed\nto continue that work. It can start with a prompt or be agent-initiated, for\nexample to pursue an ongoing goal or follow up on a completed background task.\nEither way, the agent MUST report `running` when foreground work starts,\nor `requires_action` if it starts blocked on user action, and `idle` when it\nends. The agent SHOULD include a stop reason on that idle update.\nAgent-initiated work does not require a prompt request or a synthetic user\nmessage.\n\n`running` may precede user-message insertion, for example during a foreground\nhook. It is not acknowledgment of insertion, and rejecting a prompt does not\nitself end foreground work.\n\nBackground activity can continue and emit other `session/update` notifications\nwhile `idle`. Those notifications, including a detached task's progress or\ncompletion, do not by themselves change this state. A permission request only\nwarrants `requires_action` when foreground work is blocked on user action.\n\nThe agent SHOULD report `requires_action` when the foreground workflow as a\nwhole cannot progress without user action, including permissions or elicitations.\nOnce reported, it MUST report `running` when progress resumes, or `idle` when\nwork ends without resuming.\nIf other foreground work can progress, the state remains `running`. Resolving\none of several requests does not itself change the state. Agents SHOULD ignore\nresponses for work that has already ended rather than use them to resume it.\n\nA new session defaults to idle until a state update reports otherwise.\nResume MUST send a current-state snapshot after any replay and before its\nresponse. The snapshot reports foreground state after resuming.\nThe response alone does not imply idle.\nRepeated snapshots are idempotent, not additional work, completions, or usage.\nA repeated state may carry updated information without another state transition.\nThe agent MUST report `idle` when no foreground activity remains. Completing\nan individual activity while other foreground work continues does not require\nan idle boundary. Local commands use the same lifecycle even without model work.\n\nSee protocol docs: [Session States](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#session-states)",
6782
5931
  "anyOf": [
6783
5932
  {
6784
5933
  "description": "Foreground work is in progress.",
@@ -6797,7 +5946,7 @@
6797
5946
  ]
6798
5947
  },
6799
5948
  {
6800
- "description": "The agent is ready to process a new prompt.",
5949
+ "description": "No foreground work is active. Background activity may continue.",
6801
5950
  "type": "object",
6802
5951
  "properties": {
6803
5952
  "state": {
@@ -6975,7 +6124,7 @@
6975
6124
  }
6976
6125
  },
6977
6126
  "TerminalUpdate": {
6978
- "description": "An upsert for the stored state of an agent-owned terminal.\n\nOnly [`TerminalUpdate::terminal_id`] is required. Other fields have patch\nsemantics: omitted fields leave the stored value unchanged, `null` clears\nit, and concrete values replace it. When the terminal ID is new, omitted\nfields start unknown.",
6127
+ "description": "An upsert for the stored state of an agent-owned terminal.\n\nOnly [`TerminalUpdate::terminal_id`] is required. Other fields have patch\nsemantics: omitted fields leave the stored value unchanged, `null` clears\nit, and concrete values replace it. A concrete `_meta` object instead\npatches the stored metadata by top-level key. When the terminal ID is new,\nomitted fields start unknown.",
6979
6128
  "type": "object",
6980
6129
  "properties": {
6981
6130
  "terminalId": {
@@ -7028,7 +6177,7 @@
7028
6177
  "x-deserialize-default-on-error": true
7029
6178
  },
7030
6179
  "_meta": {
7031
- "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted means no metadata update; `null` is an\nexplicit clear signal. Implementations MUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
6180
+ "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted leaves the stored metadata unchanged; `null`\nclears it. An object patches the stored metadata by top-level key: keys it omits are\nunchanged, a key set to `null` is removed, and any other value replaces that key's\nstored value without merging nested objects. Beyond this patch rule, implementations\nMUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Metadata Patches](https://agentclientprotocol.com/protocol/v2/draft/extensibility#metadata-patches)",
7032
6181
  "type": ["object", "null"],
7033
6182
  "x-deserialize-default-on-error": true,
7034
6183
  "additionalProperties": true
@@ -7430,7 +6579,7 @@
7430
6579
  "required": ["configOptions"]
7431
6580
  },
7432
6581
  "SessionInfoUpdate": {
7433
- "description": "Update to session metadata. All fields are optional to support partial updates.\n\nAgents send this notification to update session information like title or custom metadata.\nThis allows clients to display dynamic session names and track session state changes.\n\nOmitted fields leave the existing session info unchanged. `null` clears the\ncorresponding value.",
6582
+ "description": "Update to session metadata. All fields are optional to support partial updates.\n\nAgents send this notification to update session information like title or custom metadata.\nThis allows clients to display dynamic session names and track session state changes.\n\nOmitted fields leave the existing session info unchanged. `null` clears the\ncorresponding value. A concrete `_meta` object patches the stored metadata by\ntop-level key.",
7434
6583
  "type": "object",
7435
6584
  "properties": {
7436
6585
  "title": {
@@ -7445,7 +6594,7 @@
7445
6594
  "x-deserialize-default-on-error": true
7446
6595
  },
7447
6596
  "_meta": {
7448
- "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted means no metadata update; `null` is an\nexplicit clear signal. Implementations MUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
6597
+ "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted leaves the stored metadata unchanged; `null`\nclears it. An object patches the stored metadata by top-level key: keys it omits are\nunchanged, a key set to `null` is removed, and any other value replaces that key's\nstored value without merging nested objects. Beyond this patch rule, implementations\nMUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Metadata Patches](https://agentclientprotocol.com/protocol/v2/draft/extensibility#metadata-patches)",
7449
6598
  "type": ["object", "null"],
7450
6599
  "x-deserialize-default-on-error": true,
7451
6600
  "additionalProperties": true
@@ -7603,7 +6752,7 @@
7603
6752
  ]
7604
6753
  },
7605
6754
  "CompactionUpdate": {
7606
- "description": "A context compaction upsert. The first notification fixes the compaction's\ntimeline position. Later updates with the same ID patch that entity in place.\n\n`summary`, `error`, and `_meta` have patch semantics: omission leaves the\nstored value unchanged, `null` clears it, and a concrete value replaces it.\n`summary: []` also clears the summary.",
6755
+ "description": "A context compaction upsert. The first notification fixes the compaction's\ntimeline position. Later updates with the same ID patch that entity in place.\n\n`summary`, `error`, and `_meta` have patch semantics: omission leaves the\nstored value unchanged, `null` clears it, and a concrete value replaces it.\n`summary: []` also clears the summary. A concrete `_meta` object patches the\nstored metadata by top-level key instead of replacing it.",
7607
6756
  "type": "object",
7608
6757
  "properties": {
7609
6758
  "compactionId": {
@@ -7637,7 +6786,7 @@
7637
6786
  "x-deserialize-default-on-error": true
7638
6787
  },
7639
6788
  "_meta": {
7640
- "description": "Extensible metadata patch for this compaction.",
6789
+ "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted leaves the stored metadata unchanged; `null`\nclears it. An object patches the stored metadata by top-level key: keys it omits are\nunchanged, a key set to `null` is removed, and any other value replaces that key's\nstored value without merging nested objects. Beyond this patch rule, implementations\nMUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Metadata Patches](https://agentclientprotocol.com/protocol/v2/draft/extensibility#metadata-patches)",
7641
6790
  "type": ["object", "null"],
7642
6791
  "x-deserialize-default-on-error": true,
7643
6792
  "additionalProperties": true
@@ -7711,7 +6860,7 @@
7711
6860
  }
7712
6861
  },
7713
6862
  "SubagentUpdate": {
7714
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nNotification that the enclosing parent session created and owns a child session.\n\nLater updates modify the existing association's metadata, not its ownership.\n\nSent on the immediate parent session. The first update for an unknown\n[`SubagentUpdate::session_id`] announces the child and MUST be sent\nbefore any live request or notification bearing the child's session ID,\nincluding messages naming it as sender or recipient. Child events are\ndelivered automatically; no separate child load, resume, or subscription is needed.\nUnderstanding this update, registering child sessions, and applying their\noperation restrictions are baseline v2 requirements; no Client capability\nis required.\n\nOnly [`SubagentUpdate::session_id`] is required. Other fields have\npatch semantics: omitted fields leave the stored value unchanged, `null`\nclears or unsets the value, and concrete values replace it. For `state`,\n`null` removes the current state report and leaves activity unconfirmed;\nit does not report idle or cancellation. A child whose capabilities are\nunset permits no Client-initiated session mutations.\n\nThe title and description provide the parent's display metadata for the\nchild. Agents SHOULD mirror known child state changes in the parent's\n[`SubagentUpdate::state`] using the same [`StateUpdate`] snapshot as the\nordinary `state_update` notification on the child session. This reports\nchild state, not a separate parent-owned lifecycle. Consumers should\ntreat duplicate reports idempotently.\nCompleting or cancelling work does not end the association: the parent may\nmessage the same child again. Individual messages and their outcomes do not\nchange this association.",
6863
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nNotification that the enclosing parent session created and owns a child session.\n\nLater updates modify the existing association's metadata, not its ownership.\n\nSent on the immediate parent session. The first update for an unknown\n[`SubagentUpdate::session_id`] announces the child and MUST be sent\nbefore any live request or notification bearing the child's session ID,\nincluding messages naming it as sender or recipient. Child events are\ndelivered automatically; no separate child load, resume, or subscription is needed.\nUnderstanding this update, registering child sessions, and applying their\noperation restrictions are baseline v2 requirements; no Client capability\nis required.\n\nOnly [`SubagentUpdate::session_id`] is required. Other fields have\npatch semantics: omitted fields leave the stored value unchanged, `null`\nclears or unsets the value, and concrete values replace it. A concrete\n`_meta` object instead patches the stored metadata by top-level key. For\n`state`, `null` removes the current state report and leaves activity\nunconfirmed; it does not report idle or cancellation. A child whose capabilities are\nunset permits no Client-initiated session mutations.\n\nThe title and description provide the parent's display metadata for the\nchild. Agents SHOULD mirror known child state changes in the parent's\n[`SubagentUpdate::state`] using the same [`StateUpdate`] snapshot as the\nordinary `state_update` notification on the child session. This reports\nchild state, not a separate parent-owned lifecycle. Consumers should\ntreat duplicate reports idempotently.\nCompleting or cancelling work does not end the association: the parent may\nmessage the same child again. Individual messages and their outcomes do not\nchange this association.",
7715
6864
  "type": "object",
7716
6865
  "properties": {
7717
6866
  "sessionId": {
@@ -7757,7 +6906,7 @@
7757
6906
  "x-deserialize-default-on-error": true
7758
6907
  },
7759
6908
  "_meta": {
7760
- "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted means no metadata update; `null` is an\nexplicit clear signal. Implementations MUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
6909
+ "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted leaves the stored metadata unchanged; `null`\nclears it. An object patches the stored metadata by top-level key: keys it omits are\nunchanged, a key set to `null` is removed, and any other value replaces that key's\nstored value without merging nested objects. Beyond this patch rule, implementations\nMUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Metadata Patches](https://agentclientprotocol.com/protocol/v2/draft/extensibility#metadata-patches)",
7761
6910
  "type": ["object", "null"],
7762
6911
  "x-deserialize-default-on-error": true,
7763
6912
  "additionalProperties": true
@@ -7811,7 +6960,7 @@
7811
6960
  "x-deserialize-skip-invalid-items": true
7812
6961
  },
7813
6962
  "_meta": {
7814
- "description": "Omitted leaves metadata unchanged; `null` clears it.\n\nImplementations MUST NOT make assumptions about values in `_meta`.",
6963
+ "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Omitted leaves the stored metadata unchanged; `null`\nclears it. An object patches the stored metadata by top-level key: keys it omits are\nunchanged, a key set to `null` is removed, and any other value replaces that key's\nstored value without merging nested objects. Beyond this patch rule, implementations\nMUST NOT make assumptions about values at these keys.\n\nSee protocol docs: [Metadata Patches](https://agentclientprotocol.com/protocol/v2/draft/extensibility#metadata-patches)",
7815
6964
  "type": ["object", "null"],
7816
6965
  "x-deserialize-default-on-error": true,
7817
6966
  "additionalProperties": true
@@ -7873,7 +7022,7 @@
7873
7022
  "required": ["messageId", "content"]
7874
7023
  },
7875
7024
  "CompleteElicitationNotification": {
7876
- "description": "Notification sent by the agent when a URL-based elicitation is complete.",
7025
+ "description": "Notification sent by the agent when a URL-based elicitation is complete.\n\nThis notification is not a foreground state update.",
7877
7026
  "type": "object",
7878
7027
  "properties": {
7879
7028
  "elicitationId": {
@@ -8003,7 +7152,7 @@
8003
7152
  },
8004
7153
  {
8005
7154
  "title": "ForkSessionRequest",
8006
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nForks an existing session to create a new independent session.\n\nThis method is only available if the agent advertises the `session.fork` capability.\n\nThe agent should create a new session with the same conversation context as the\noriginal, allowing operations like generating summaries without affecting the\noriginal session's history.",
7155
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nForks an existing session to create a new independent session.\n\nThis method is only available if the agent advertises the `session.fork` capability.\n\nThe agent should create a new session with the same conversation context as the\noriginal, allowing operations like generating summaries without affecting the\noriginal session's history.\n\nAs with `session/new`, the forked session is active once the agent responds,\nset up with the request's `cwd`, `additionalDirectories`, and `mcpServers`.\nThe client can prompt it without calling `session/resume` first.",
8007
7156
  "allOf": [
8008
7157
  {
8009
7158
  "$ref": "#/$defs/ForkSessionRequest"
@@ -8039,40 +7188,13 @@
8039
7188
  },
8040
7189
  {
8041
7190
  "title": "PromptRequest",
8042
- "description": "Processes a user prompt within a session.\n\nAcceptance means insertion into the ACP conversation:\n- Receives user messages with optional context (files, images, etc.)\n- Returns the inserted user message's ID without waiting for processing to finish\n\nThe Agent reports the user message with the same ID through `session/update`;\nthis notification may arrive before or after the response. Processing state,\noutput, tool calls, and completion are also reported through session updates.\n\nAn error response means the user message was not inserted. Once it is\ninserted, the Agent MUST NOT answer with an error, even if the work fails\nbefore the response is sent; it ends that work with the `error` stop reason.\n\nSee protocol docs: [Prompt Lifecycle](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle)",
7191
+ "description": "Processes a user prompt within a session.\n\nAcceptance means adding a logical user message with an ID and a position\nrelative to other messages in the ACP conversation, not receipt or queueing.\nThe Agent MUST return the inserted message's ID without waiting for\nprocessing to finish.\n\nThe Agent reports the user message with the same ID through `session/update`;\nthis notification may arrive before or after the response, but neither may\nprecede insertion. Processing state, output, tool calls, and completion are\nalso reported through session updates.\n\nAn error response means the user message was not inserted. Once it is\ninserted, the Agent MUST NOT answer with an error, even if the work fails\nbefore the response is sent; it ends that work with the `error` stop reason.\n\nA rejected submission produces no user-message updates. Foreground state\nfollows its normal lifecycle independently of the request outcome:\n`running` may precede insertion, and rejection alone does not imply `idle`.\n\nSee protocol docs: [Prompt Lifecycle](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle)",
8043
7192
  "allOf": [
8044
7193
  {
8045
7194
  "$ref": "#/$defs/PromptRequest"
8046
7195
  }
8047
7196
  ]
8048
7197
  },
8049
- {
8050
- "title": "StartNesRequest",
8051
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nStarts an NES session.",
8052
- "allOf": [
8053
- {
8054
- "$ref": "#/$defs/StartNesRequest"
8055
- }
8056
- ]
8057
- },
8058
- {
8059
- "title": "SuggestNesRequest",
8060
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequests a code suggestion.",
8061
- "allOf": [
8062
- {
8063
- "$ref": "#/$defs/SuggestNesRequest"
8064
- }
8065
- ]
8066
- },
8067
- {
8068
- "title": "CloseNesRequest",
8069
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCloses an active NES session and frees up any resources associated with it.\n\nThe agent must cancel any ongoing work and then free up any resources\nassociated with the NES session.",
8070
- "allOf": [
8071
- {
8072
- "$ref": "#/$defs/CloseNesRequest"
8073
- }
8074
- ]
8075
- },
8076
7198
  {
8077
7199
  "title": "ExtMethodRequest",
8078
7200
  "description": "Handles extension method requests from the client.\n\nExtension methods provide a way to add custom functionality while maintaining\nprotocol compatibility.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
@@ -8162,27 +7284,6 @@
8162
7284
  ],
8163
7285
  "x-deserialize-default-on-error": true
8164
7286
  },
8165
- "nes": {
8166
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nNES (Next Edit Suggestions) capabilities supported by the client.\n\nOptional. Omitted or `null` both mean the client does not advertise any\nNES suggestion-kind extensions.",
8167
- "anyOf": [
8168
- {
8169
- "$ref": "#/$defs/ClientNesCapabilities"
8170
- },
8171
- {
8172
- "type": "null"
8173
- }
8174
- ],
8175
- "x-deserialize-default-on-error": true
8176
- },
8177
- "positionEncodings": {
8178
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nThe position encodings supported by the client, in order of preference.",
8179
- "type": "array",
8180
- "items": {
8181
- "$ref": "#/$defs/PositionEncodingKind"
8182
- },
8183
- "x-deserialize-default-on-error": true,
8184
- "x-deserialize-skip-invalid-items": true
8185
- },
8186
7287
  "_meta": {
8187
7288
  "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/v2/draft/extensibility)",
8188
7289
  "type": ["object", "null"],
@@ -8199,497 +7300,13 @@
8199
7300
  "description": "Whether the client supports `terminal` authentication methods.\n\nOptional. Omitted or `null` both mean the client does not advertise support.\nThe client should supply `{}` only when it can reproduce the configured\nagent invocation in an interactive terminal. Supplying `{}` means the\nagent may include `terminal` entries in its authentication methods.",
8200
7301
  "anyOf": [
8201
7302
  {
8202
- "$ref": "#/$defs/TerminalAuthCapabilities"
8203
- },
8204
- {
8205
- "type": "null"
8206
- }
8207
- ],
8208
- "x-deserialize-default-on-error": true
8209
- },
8210
- "_meta": {
8211
- "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/v2/draft/extensibility)",
8212
- "type": ["object", "null"],
8213
- "x-deserialize-default-on-error": true,
8214
- "additionalProperties": true
8215
- }
8216
- }
8217
- },
8218
- "TerminalAuthCapabilities": {
8219
- "description": "Capabilities for terminal authentication methods.\n\nSupplying `{}` means the client can reproduce the configured agent\ninvocation in an interactive terminal and supports terminal authentication\nmethods.",
8220
- "type": "object",
8221
- "properties": {
8222
- "_meta": {
8223
- "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/v2/draft/extensibility)",
8224
- "type": ["object", "null"],
8225
- "x-deserialize-default-on-error": true,
8226
- "additionalProperties": true
8227
- }
8228
- }
8229
- },
8230
- "ElicitationCapabilities": {
8231
- "description": "Elicitation capabilities supported by the client.",
8232
- "type": "object",
8233
- "properties": {
8234
- "form": {
8235
- "description": "Whether the client supports form-based elicitation.\n\nOptional. Omitted and `null` are equivalent and mean form support is not advertised.\nSupplying `{}` explicitly advertises form support.",
8236
- "anyOf": [
8237
- {
8238
- "$ref": "#/$defs/ElicitationFormCapabilities"
8239
- },
8240
- {
8241
- "type": "null"
8242
- }
8243
- ],
8244
- "x-deserialize-default-on-error": true
8245
- },
8246
- "url": {
8247
- "description": "Whether the client supports URL-based elicitation.\n\nOptional. Omitted or `null` both mean the client does not advertise support.\nSupplying `{}` means the client supports URL-based elicitation.",
8248
- "anyOf": [
8249
- {
8250
- "$ref": "#/$defs/ElicitationUrlCapabilities"
8251
- },
8252
- {
8253
- "type": "null"
8254
- }
8255
- ],
8256
- "x-deserialize-default-on-error": true
8257
- },
8258
- "_meta": {
8259
- "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\nOptional. Omitted and `null` are equivalent and mean no metadata.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
8260
- "type": ["object", "null"],
8261
- "x-deserialize-default-on-error": true,
8262
- "additionalProperties": true
8263
- }
8264
- }
8265
- },
8266
- "ElicitationFormCapabilities": {
8267
- "description": "Form-based elicitation capabilities.\n\nSupplying `{}` means the client supports form-based elicitation.",
8268
- "type": "object",
8269
- "properties": {
8270
- "_meta": {
8271
- "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\nOptional. Omitted and `null` are equivalent and mean no metadata.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
8272
- "type": ["object", "null"],
8273
- "x-deserialize-default-on-error": true,
8274
- "additionalProperties": true
8275
- }
8276
- }
8277
- },
8278
- "ElicitationUrlCapabilities": {
8279
- "description": "URL-based elicitation capabilities.\n\nSupplying `{}` means the client supports URL-based elicitation.",
8280
- "type": "object",
8281
- "properties": {
8282
- "_meta": {
8283
- "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\nOptional. Omitted and `null` are equivalent and mean no metadata.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
8284
- "type": ["object", "null"],
8285
- "x-deserialize-default-on-error": true,
8286
- "additionalProperties": true
8287
- }
8288
- }
8289
- },
8290
- "ClientNesCapabilities": {
8291
- "description": "NES capabilities advertised by the client during initialization.",
8292
- "type": "object",
8293
- "properties": {
8294
- "jump": {
8295
- "description": "Whether the client supports the `jump` suggestion kind.",
8296
- "anyOf": [
8297
- {
8298
- "$ref": "#/$defs/NesJumpCapabilities"
8299
- },
8300
- {
8301
- "type": "null"
8302
- }
8303
- ],
8304
- "x-deserialize-default-on-error": true
8305
- },
8306
- "rename": {
8307
- "description": "Whether the client supports the `rename` suggestion kind.",
8308
- "anyOf": [
8309
- {
8310
- "$ref": "#/$defs/NesRenameCapabilities"
8311
- },
8312
- {
8313
- "type": "null"
8314
- }
8315
- ],
8316
- "x-deserialize-default-on-error": true
8317
- },
8318
- "searchAndReplace": {
8319
- "description": "Whether the client supports the `searchAndReplace` suggestion kind.",
8320
- "anyOf": [
8321
- {
8322
- "$ref": "#/$defs/NesSearchAndReplaceCapabilities"
8323
- },
8324
- {
8325
- "type": "null"
8326
- }
8327
- ],
8328
- "x-deserialize-default-on-error": true
8329
- },
8330
- "_meta": {
8331
- "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/v2/draft/extensibility)",
8332
- "type": ["object", "null"],
8333
- "x-deserialize-default-on-error": true,
8334
- "additionalProperties": true
8335
- }
8336
- }
8337
- },
8338
- "NesJumpCapabilities": {
8339
- "description": "Marker for jump suggestion support.",
8340
- "type": "object",
8341
- "properties": {
8342
- "_meta": {
8343
- "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/v2/draft/extensibility)",
8344
- "type": ["object", "null"],
8345
- "x-deserialize-default-on-error": true,
8346
- "additionalProperties": true
8347
- }
8348
- }
8349
- },
8350
- "NesRenameCapabilities": {
8351
- "description": "Marker for rename suggestion support.",
8352
- "type": "object",
8353
- "properties": {
8354
- "_meta": {
8355
- "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/v2/draft/extensibility)",
8356
- "type": ["object", "null"],
8357
- "x-deserialize-default-on-error": true,
8358
- "additionalProperties": true
8359
- }
8360
- }
8361
- },
8362
- "NesSearchAndReplaceCapabilities": {
8363
- "description": "Marker for search and replace suggestion support.",
8364
- "type": "object",
8365
- "properties": {
8366
- "_meta": {
8367
- "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/v2/draft/extensibility)",
8368
- "type": ["object", "null"],
8369
- "x-deserialize-default-on-error": true,
8370
- "additionalProperties": true
8371
- }
8372
- }
8373
- },
8374
- "LoginAuthRequest": {
8375
- "description": "Request parameters for the `auth/login` method.\n\nSpecifies which authentication method to use.\n\nAgents MUST support this method when their `initialize` response advertised\nat least one valid authentication method. Clients MUST NOT call this method\nwhen `authMethods` was omitted or empty.",
8376
- "type": "object",
8377
- "properties": {
8378
- "methodId": {
8379
- "description": "The ID of the authentication method to use.\nMust be one of the methods advertised in the initialize response.",
8380
- "allOf": [
8381
- {
8382
- "$ref": "#/$defs/AuthMethodId"
8383
- }
8384
- ]
8385
- },
8386
- "_meta": {
8387
- "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/v2/draft/extensibility)",
8388
- "type": ["object", "null"],
8389
- "x-deserialize-default-on-error": true,
8390
- "additionalProperties": true
8391
- }
8392
- },
8393
- "required": ["methodId"],
8394
- "x-side": "agent",
8395
- "x-method": "auth/login"
8396
- },
8397
- "ListProvidersRequest": {
8398
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequest parameters for `providers/list`.",
8399
- "type": "object",
8400
- "properties": {
8401
- "_meta": {
8402
- "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/v2/draft/extensibility)",
8403
- "type": ["object", "null"],
8404
- "x-deserialize-default-on-error": true,
8405
- "additionalProperties": true
8406
- }
8407
- },
8408
- "x-side": "agent",
8409
- "x-method": "providers/list"
8410
- },
8411
- "SetProviderRequest": {
8412
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequest parameters for `providers/set`.\n\nReplaces the full configuration for one provider ID.",
8413
- "type": "object",
8414
- "properties": {
8415
- "providerId": {
8416
- "description": "Provider ID to configure.",
8417
- "allOf": [
8418
- {
8419
- "$ref": "#/$defs/ProviderId"
8420
- }
8421
- ]
8422
- },
8423
- "apiType": {
8424
- "description": "Protocol type for this provider.",
8425
- "allOf": [
8426
- {
8427
- "$ref": "#/$defs/LlmProtocol"
8428
- }
8429
- ]
8430
- },
8431
- "baseUrl": {
8432
- "description": "Base URL for requests sent through this provider.",
8433
- "type": "string",
8434
- "format": "uri"
8435
- },
8436
- "headers": {
8437
- "description": "Full headers map for this provider.\nMay include authorization, routing, or other integration-specific headers.",
8438
- "type": "object",
8439
- "additionalProperties": {
8440
- "type": "string"
8441
- }
8442
- },
8443
- "_meta": {
8444
- "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/v2/draft/extensibility)",
8445
- "type": ["object", "null"],
8446
- "x-deserialize-default-on-error": true,
8447
- "additionalProperties": true
8448
- }
8449
- },
8450
- "required": ["providerId", "apiType", "baseUrl"],
8451
- "x-side": "agent",
8452
- "x-method": "providers/set"
8453
- },
8454
- "DisableProviderRequest": {
8455
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequest parameters for `providers/disable`.",
8456
- "type": "object",
8457
- "properties": {
8458
- "providerId": {
8459
- "description": "Provider ID to disable.",
8460
- "allOf": [
8461
- {
8462
- "$ref": "#/$defs/ProviderId"
8463
- }
8464
- ]
8465
- },
8466
- "_meta": {
8467
- "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/v2/draft/extensibility)",
8468
- "type": ["object", "null"],
8469
- "x-deserialize-default-on-error": true,
8470
- "additionalProperties": true
8471
- }
8472
- },
8473
- "required": ["providerId"],
8474
- "x-side": "agent",
8475
- "x-method": "providers/disable"
8476
- },
8477
- "LogoutAuthRequest": {
8478
- "description": "Request parameters for the `auth/logout` method.\n\nTerminates the current authenticated session.\n\nAgents MUST support this method when their `initialize` response advertised\nat least one valid authentication method. Clients MUST NOT call this method\nwhen `authMethods` was omitted or empty.",
8479
- "type": "object",
8480
- "properties": {
8481
- "_meta": {
8482
- "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/v2/draft/extensibility)",
8483
- "type": ["object", "null"],
8484
- "x-deserialize-default-on-error": true,
8485
- "additionalProperties": true
8486
- }
8487
- },
8488
- "x-side": "agent",
8489
- "x-method": "auth/logout"
8490
- },
8491
- "NewSessionRequest": {
8492
- "description": "Request parameters for creating a new session.\n\nSee protocol docs: [Creating a Session](https://agentclientprotocol.com/protocol/v2/draft/session-setup#creating-a-session)",
8493
- "type": "object",
8494
- "properties": {
8495
- "cwd": {
8496
- "description": "The working directory for this session. Must be an absolute path.",
8497
- "allOf": [
8498
- {
8499
- "$ref": "#/$defs/AbsolutePath"
8500
- }
8501
- ]
8502
- },
8503
- "additionalDirectories": {
8504
- "description": "Additional workspace roots for this session. Each path must be absolute.\n\nThese expand the session's workspace scope without changing `cwd`, which\nremains the base for relative paths. When omitted or empty, no\nadditional roots are activated for the new session.",
8505
- "type": "array",
8506
- "items": {
8507
- "$ref": "#/$defs/AbsolutePath"
8508
- }
8509
- },
8510
- "mcpServers": {
8511
- "description": "List of MCP (Model Context Protocol) servers the agent should connect to.",
8512
- "type": "array",
8513
- "items": {
8514
- "$ref": "#/$defs/McpServer"
8515
- }
8516
- },
8517
- "_meta": {
8518
- "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/v2/draft/extensibility)",
8519
- "type": ["object", "null"],
8520
- "x-deserialize-default-on-error": true,
8521
- "additionalProperties": true
8522
- }
8523
- },
8524
- "required": ["cwd"],
8525
- "x-side": "agent",
8526
- "x-method": "session/new"
8527
- },
8528
- "McpServer": {
8529
- "description": "Configuration for connecting to an MCP (Model Context Protocol) server.\n\nMCP servers provide tools and context that the agent can use when\nprocessing prompts.\n\nSee protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/v2/draft/session-setup#mcp-servers)",
8530
- "anyOf": [
8531
- {
8532
- "description": "HTTP transport configuration\n\nOnly available when the Agent capabilities include `session.mcp.http`.",
8533
- "type": "object",
8534
- "properties": {
8535
- "type": {
8536
- "type": "string",
8537
- "const": "http"
8538
- }
8539
- },
8540
- "required": ["type"],
8541
- "allOf": [
8542
- {
8543
- "$ref": "#/$defs/McpServerHttp"
8544
- }
8545
- ]
8546
- },
8547
- {
8548
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nACP transport configuration\n\nOnly available when the Agent capabilities include `session.mcp.acp`.\nThe MCP server is provided by an ACP component and communicates over the ACP channel.",
8549
- "type": "object",
8550
- "properties": {
8551
- "type": {
8552
- "type": "string",
8553
- "const": "acp"
8554
- }
8555
- },
8556
- "required": ["type"],
8557
- "allOf": [
8558
- {
8559
- "$ref": "#/$defs/McpServerAcp"
8560
- }
8561
- ]
8562
- },
8563
- {
8564
- "description": "Stdio transport configuration\n\nOnly available when the Agent capabilities include `session.mcp.stdio`.",
8565
- "type": "object",
8566
- "properties": {
8567
- "type": {
8568
- "type": "string",
8569
- "const": "stdio"
8570
- }
8571
- },
8572
- "required": ["type"],
8573
- "allOf": [
8574
- {
8575
- "$ref": "#/$defs/McpServerStdio"
8576
- }
8577
- ]
8578
- },
8579
- {
8580
- "title": "other",
8581
- "description": "Custom or future MCP server transport configuration.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.\n\nReceivers that do not understand this transport should preserve the raw\npayload when storing, replaying, proxying, or forwarding session setup\ndata, and otherwise ignore it or reject the server configuration.",
8582
- "type": "object",
8583
- "properties": {
8584
- "type": {
8585
- "description": "Custom or future MCP server transport type.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
8586
- "type": "string"
8587
- }
8588
- },
8589
- "required": ["type"],
8590
- "not": {
8591
- "anyOf": [
8592
- {
8593
- "type": "object",
8594
- "properties": {
8595
- "type": {
8596
- "type": "string",
8597
- "const": "http"
8598
- }
8599
- },
8600
- "required": ["type"]
8601
- },
8602
- {
8603
- "type": "object",
8604
- "properties": {
8605
- "type": {
8606
- "type": "string",
8607
- "const": "stdio"
8608
- }
8609
- },
8610
- "required": ["type"]
8611
- },
8612
- {
8613
- "type": "object",
8614
- "properties": {
8615
- "type": {
8616
- "type": "string",
8617
- "const": "acp"
8618
- }
8619
- },
8620
- "required": ["type"]
8621
- }
8622
- ]
8623
- },
8624
- "additionalProperties": true
8625
- }
8626
- ]
8627
- },
8628
- "HttpHeader": {
8629
- "description": "An HTTP header to set when making requests to the MCP server.",
8630
- "type": "object",
8631
- "properties": {
8632
- "name": {
8633
- "description": "The name of the HTTP header.",
8634
- "type": "string"
8635
- },
8636
- "value": {
8637
- "description": "The value to set for the HTTP header.",
8638
- "type": "string"
8639
- },
8640
- "_meta": {
8641
- "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/v2/draft/extensibility)",
8642
- "type": ["object", "null"],
8643
- "x-deserialize-default-on-error": true,
8644
- "additionalProperties": true
8645
- }
8646
- },
8647
- "required": ["name", "value"]
8648
- },
8649
- "McpServerHttp": {
8650
- "description": "HTTP transport configuration for MCP.",
8651
- "type": "object",
8652
- "properties": {
8653
- "name": {
8654
- "description": "Human-readable name identifying this MCP server.",
8655
- "type": "string"
8656
- },
8657
- "url": {
8658
- "description": "URL to the MCP server.",
8659
- "type": "string",
8660
- "format": "uri"
8661
- },
8662
- "headers": {
8663
- "description": "HTTP headers to set when making requests to the MCP server.",
8664
- "type": "array",
8665
- "items": {
8666
- "$ref": "#/$defs/HttpHeader"
8667
- }
8668
- },
8669
- "_meta": {
8670
- "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/v2/draft/extensibility)",
8671
- "type": ["object", "null"],
8672
- "x-deserialize-default-on-error": true,
8673
- "additionalProperties": true
8674
- }
8675
- },
8676
- "required": ["name", "url"]
8677
- },
8678
- "McpServerAcp": {
8679
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nACP transport configuration for MCP.\n\nThe MCP server is provided by an ACP component and communicates over the ACP channel\nusing `mcp/message`.",
8680
- "type": "object",
8681
- "properties": {
8682
- "name": {
8683
- "description": "Human-readable name identifying this MCP server.",
8684
- "type": "string"
8685
- },
8686
- "serverId": {
8687
- "description": "Unique identifier for this MCP server, generated by the component providing it.\n\nProviders MUST NOT reuse an ID for multiple ACP-transport MCP servers that are visible\non the same ACP connection.",
8688
- "allOf": [
8689
- {
8690
- "$ref": "#/$defs/McpServerAcpId"
7303
+ "$ref": "#/$defs/TerminalAuthCapabilities"
7304
+ },
7305
+ {
7306
+ "type": "null"
8691
7307
  }
8692
- ]
7308
+ ],
7309
+ "x-deserialize-default-on-error": true
8693
7310
  },
8694
7311
  "_meta": {
8695
7312
  "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/v2/draft/extensibility)",
@@ -8697,141 +7314,92 @@
8697
7314
  "x-deserialize-default-on-error": true,
8698
7315
  "additionalProperties": true
8699
7316
  }
8700
- },
8701
- "required": ["name", "serverId"]
7317
+ }
8702
7318
  },
8703
- "McpServerStdio": {
8704
- "description": "Stdio transport configuration for MCP.",
7319
+ "TerminalAuthCapabilities": {
7320
+ "description": "Capabilities for terminal authentication methods.\n\nSupplying `{}` means the client can reproduce the configured agent\ninvocation in an interactive terminal and supports terminal authentication\nmethods.",
8705
7321
  "type": "object",
8706
7322
  "properties": {
8707
- "name": {
8708
- "description": "Human-readable name identifying this MCP server.",
8709
- "type": "string"
8710
- },
8711
- "command": {
8712
- "description": "Absolute path to the MCP server executable.",
8713
- "allOf": [
8714
- {
8715
- "$ref": "#/$defs/AbsolutePath"
8716
- }
8717
- ]
8718
- },
8719
- "args": {
8720
- "description": "Command-line arguments to pass to the MCP server.",
8721
- "type": "array",
8722
- "items": {
8723
- "type": "string"
8724
- }
8725
- },
8726
- "env": {
8727
- "description": "Environment variables to set when launching the MCP server.",
8728
- "type": "array",
8729
- "items": {
8730
- "$ref": "#/$defs/EnvVariable"
8731
- }
8732
- },
8733
7323
  "_meta": {
8734
7324
  "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/v2/draft/extensibility)",
8735
7325
  "type": ["object", "null"],
8736
7326
  "x-deserialize-default-on-error": true,
8737
7327
  "additionalProperties": true
8738
7328
  }
8739
- },
8740
- "required": ["name", "command"]
7329
+ }
8741
7330
  },
8742
- "ListSessionsRequest": {
8743
- "description": "Request parameters for listing existing sessions.",
7331
+ "ElicitationCapabilities": {
7332
+ "description": "Elicitation capabilities supported by the client.",
8744
7333
  "type": "object",
8745
7334
  "properties": {
8746
- "cwd": {
8747
- "description": "Filter sessions by working directory. Must be an absolute path.",
7335
+ "form": {
7336
+ "description": "Whether the client supports form-based elicitation.\n\nOptional. Omitted and `null` are equivalent and mean form support is not advertised.\nSupplying `{}` explicitly advertises form support.",
8748
7337
  "anyOf": [
8749
7338
  {
8750
- "$ref": "#/$defs/AbsolutePath"
7339
+ "$ref": "#/$defs/ElicitationFormCapabilities"
8751
7340
  },
8752
7341
  {
8753
7342
  "type": "null"
8754
7343
  }
8755
- ]
7344
+ ],
7345
+ "x-deserialize-default-on-error": true
8756
7346
  },
8757
- "cursor": {
8758
- "description": "Opaque cursor token from a previous response's nextCursor field for cursor-based pagination",
7347
+ "url": {
7348
+ "description": "Whether the client supports URL-based elicitation.\n\nOptional. Omitted or `null` both mean the client does not advertise support.\nSupplying `{}` means the client supports URL-based elicitation.",
8759
7349
  "anyOf": [
8760
7350
  {
8761
- "$ref": "#/$defs/SessionListCursor"
7351
+ "$ref": "#/$defs/ElicitationUrlCapabilities"
8762
7352
  },
8763
7353
  {
8764
7354
  "type": "null"
8765
7355
  }
8766
- ]
7356
+ ],
7357
+ "x-deserialize-default-on-error": true
8767
7358
  },
8768
7359
  "_meta": {
8769
- "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/v2/draft/extensibility)",
7360
+ "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\nOptional. Omitted and `null` are equivalent and mean no metadata.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
8770
7361
  "type": ["object", "null"],
8771
7362
  "x-deserialize-default-on-error": true,
8772
7363
  "additionalProperties": true
8773
7364
  }
8774
- },
8775
- "x-side": "agent",
8776
- "x-method": "session/list"
7365
+ }
8777
7366
  },
8778
- "DeleteSessionRequest": {
8779
- "description": "Request parameters for deleting an existing session from `session/list`.\n\nOnly available if the Agent supports the `session.delete` capability.",
7367
+ "ElicitationFormCapabilities": {
7368
+ "description": "Form-based elicitation capabilities.\n\nSupplying `{}` means the client supports form-based elicitation.",
8780
7369
  "type": "object",
8781
7370
  "properties": {
8782
- "sessionId": {
8783
- "description": "The ID of the session to delete.",
8784
- "allOf": [
8785
- {
8786
- "$ref": "#/$defs/SessionId"
8787
- }
8788
- ]
8789
- },
8790
7371
  "_meta": {
8791
- "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/v2/draft/extensibility)",
7372
+ "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\nOptional. Omitted and `null` are equivalent and mean no metadata.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
8792
7373
  "type": ["object", "null"],
8793
7374
  "x-deserialize-default-on-error": true,
8794
7375
  "additionalProperties": true
8795
7376
  }
8796
- },
8797
- "required": ["sessionId"],
8798
- "x-side": "agent",
8799
- "x-method": "session/delete"
7377
+ }
8800
7378
  },
8801
- "ForkSessionRequest": {
8802
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequest parameters for forking an existing session.\n\nCreates a new session based on the context of an existing one, allowing\noperations like generating summaries without affecting the original session's history.\n\nOnly available if the Agent supports the `session.fork` capability.",
7379
+ "ElicitationUrlCapabilities": {
7380
+ "description": "URL-based elicitation capabilities.\n\nSupplying `{}` means the client supports URL-based elicitation.",
8803
7381
  "type": "object",
8804
7382
  "properties": {
8805
- "sessionId": {
8806
- "description": "The ID of the session to fork.",
8807
- "allOf": [
8808
- {
8809
- "$ref": "#/$defs/SessionId"
8810
- }
8811
- ]
8812
- },
8813
- "cwd": {
8814
- "description": "The working directory for this session. Must be an absolute path.",
7383
+ "_meta": {
7384
+ "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\nOptional. Omitted and `null` are equivalent and mean no metadata.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/v2/draft/extensibility)",
7385
+ "type": ["object", "null"],
7386
+ "x-deserialize-default-on-error": true,
7387
+ "additionalProperties": true
7388
+ }
7389
+ }
7390
+ },
7391
+ "LoginAuthRequest": {
7392
+ "description": "Request parameters for the `auth/login` method.\n\nSpecifies which authentication method to use.\n\nAgents MUST support this method when their `initialize` response advertised\nat least one valid authentication method. Clients MUST NOT call this method\nwhen `authMethods` was omitted or empty.",
7393
+ "type": "object",
7394
+ "properties": {
7395
+ "methodId": {
7396
+ "description": "The ID of the authentication method to use.\nMust be one of the methods advertised in the initialize response.",
8815
7397
  "allOf": [
8816
7398
  {
8817
- "$ref": "#/$defs/AbsolutePath"
7399
+ "$ref": "#/$defs/AuthMethodId"
8818
7400
  }
8819
7401
  ]
8820
7402
  },
8821
- "additionalDirectories": {
8822
- "description": "Additional workspace roots to activate for this session. Each path must be absolute.\n\nWhen omitted or empty, no additional roots are activated. When non-empty,\nthis is the complete resulting additional-root list for the forked\nsession.",
8823
- "type": "array",
8824
- "items": {
8825
- "$ref": "#/$defs/AbsolutePath"
8826
- }
8827
- },
8828
- "mcpServers": {
8829
- "description": "List of MCP servers to connect to for this session.",
8830
- "type": "array",
8831
- "items": {
8832
- "$ref": "#/$defs/McpServer"
8833
- }
8834
- },
8835
7403
  "_meta": {
8836
7404
  "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/v2/draft/extensibility)",
8837
7405
  "type": ["object", "null"],
@@ -8839,55 +7407,14 @@
8839
7407
  "additionalProperties": true
8840
7408
  }
8841
7409
  },
8842
- "required": ["sessionId", "cwd"],
7410
+ "required": ["methodId"],
8843
7411
  "x-side": "agent",
8844
- "x-method": "session/fork"
7412
+ "x-method": "auth/login"
8845
7413
  },
8846
- "ResumeSessionRequest": {
8847
- "description": "Request parameters for resuming an existing session.\n\nResumes an existing session and optionally replays retained conversation\nhistory according to `replayFrom`.",
7414
+ "ListProvidersRequest": {
7415
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequest parameters for `providers/list`.",
8848
7416
  "type": "object",
8849
7417
  "properties": {
8850
- "sessionId": {
8851
- "description": "The ID of the session to resume.",
8852
- "allOf": [
8853
- {
8854
- "$ref": "#/$defs/SessionId"
8855
- }
8856
- ]
8857
- },
8858
- "cwd": {
8859
- "description": "The working directory for this session. Must be an absolute path.",
8860
- "allOf": [
8861
- {
8862
- "$ref": "#/$defs/AbsolutePath"
8863
- }
8864
- ]
8865
- },
8866
- "additionalDirectories": {
8867
- "description": "Additional workspace roots to activate for this session. Each path must be absolute.\n\nWhen omitted or empty, no additional roots are activated. When non-empty,\nthis is the complete resulting additional-root list for the resumed\nsession. It may differ from any previously used or reported list as long as\nthe request `cwd` matches the session's `cwd`.",
8868
- "type": "array",
8869
- "items": {
8870
- "$ref": "#/$defs/AbsolutePath"
8871
- }
8872
- },
8873
- "mcpServers": {
8874
- "description": "List of MCP servers to connect to for this session.",
8875
- "type": "array",
8876
- "items": {
8877
- "$ref": "#/$defs/McpServer"
8878
- }
8879
- },
8880
- "replayFrom": {
8881
- "description": "Inclusive cursor describing where conversation replay should begin.\n\nOptional. Omitted or `null` both mean the Agent should resume without\nreplaying previous conversation history. Replay cursors are inclusive:\nreplay includes the position identified by the cursor. Supplying\n`{ \"type\": \"start\" }` means the Agent should replay all retained\nconversation history before responding.",
8882
- "anyOf": [
8883
- {
8884
- "$ref": "#/$defs/ReplayFrom"
8885
- },
8886
- {
8887
- "type": "null"
8888
- }
8889
- ]
8890
- },
8891
7418
  "_meta": {
8892
7419
  "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/v2/draft/extensibility)",
8893
7420
  "type": ["object", "null"],
@@ -8895,85 +7422,61 @@
8895
7422
  "additionalProperties": true
8896
7423
  }
8897
7424
  },
8898
- "required": ["sessionId", "cwd"],
8899
7425
  "x-side": "agent",
8900
- "x-method": "session/resume"
7426
+ "x-method": "providers/list"
8901
7427
  },
8902
- "ReplayFrom": {
8903
- "description": "Inclusive cursor describing where replayed session history should begin.\n\nReplay includes the position identified by the cursor.",
8904
- "anyOf": [
8905
- {
8906
- "description": "Replay all retained conversation history from its first replayable entry.",
8907
- "type": "object",
8908
- "properties": {
8909
- "type": {
8910
- "type": "string",
8911
- "const": "start"
8912
- }
8913
- },
8914
- "required": ["type"],
7428
+ "SetProviderRequest": {
7429
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequest parameters for `providers/set`.\n\nReplaces the full configuration for one provider ID.",
7430
+ "type": "object",
7431
+ "properties": {
7432
+ "providerId": {
7433
+ "description": "Provider ID to configure.",
8915
7434
  "allOf": [
8916
7435
  {
8917
- "$ref": "#/$defs/ReplayFromStart"
7436
+ "$ref": "#/$defs/ProviderId"
8918
7437
  }
8919
7438
  ]
8920
7439
  },
8921
- {
8922
- "title": "other",
8923
- "description": "Custom or future replay cursor.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.\n\nReceivers that do not understand this cursor should preserve the raw\npayload when storing, replaying, proxying, or forwarding requests, and\notherwise reject the request rather than guessing where to replay from.",
8924
- "type": "object",
8925
- "properties": {
8926
- "type": {
8927
- "description": "Custom or future replay cursor type.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
8928
- "type": "string"
8929
- },
8930
- "_meta": {
8931
- "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/v2/draft/extensibility)",
8932
- "type": ["object", "null"],
8933
- "x-deserialize-default-on-error": true,
8934
- "additionalProperties": true
7440
+ "apiType": {
7441
+ "description": "Protocol type for this provider.",
7442
+ "allOf": [
7443
+ {
7444
+ "$ref": "#/$defs/LlmProtocol"
8935
7445
  }
8936
- },
8937
- "required": ["type"],
8938
- "not": {
8939
- "anyOf": [
8940
- {
8941
- "type": "object",
8942
- "properties": {
8943
- "type": {
8944
- "type": "string",
8945
- "const": "start"
8946
- }
8947
- },
8948
- "required": ["type"]
8949
- }
8950
- ]
8951
- },
8952
- "additionalProperties": true
8953
- }
8954
- ]
8955
- },
8956
- "ReplayFromStart": {
8957
- "description": "Inclusive replay cursor requesting replay from the start of retained conversation history.",
8958
- "type": "object",
8959
- "properties": {
7446
+ ]
7447
+ },
7448
+ "baseUrl": {
7449
+ "description": "Base URL for requests sent through this provider.",
7450
+ "type": "string",
7451
+ "format": "uri"
7452
+ },
7453
+ "headers": {
7454
+ "description": "Full headers map for this provider.\nMay include authorization, routing, or other integration-specific headers.",
7455
+ "type": "object",
7456
+ "additionalProperties": {
7457
+ "type": "string"
7458
+ }
7459
+ },
8960
7460
  "_meta": {
8961
7461
  "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/v2/draft/extensibility)",
8962
7462
  "type": ["object", "null"],
8963
7463
  "x-deserialize-default-on-error": true,
8964
7464
  "additionalProperties": true
8965
7465
  }
8966
- }
7466
+ },
7467
+ "required": ["providerId", "apiType", "baseUrl"],
7468
+ "x-side": "agent",
7469
+ "x-method": "providers/set"
8967
7470
  },
8968
- "CloseSessionRequest": {
8969
- "description": "Request parameters for closing an active session.\n\nThe agent **must** cancel any ongoing work related to the session (treat it\nas if `session/cancel` was called) and then free up any resources associated\nwith the session.",
7471
+ "DisableProviderRequest": {
7472
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequest parameters for `providers/disable`.",
8970
7473
  "type": "object",
8971
7474
  "properties": {
8972
- "sessionId": {
8973
- "description": "The ID of the session to close.",
7475
+ "providerId": {
7476
+ "description": "Provider ID to disable.",
8974
7477
  "allOf": [
8975
7478
  {
8976
- "$ref": "#/$defs/SessionId"
7479
+ "$ref": "#/$defs/ProviderId"
8977
7480
  }
8978
7481
  ]
8979
7482
  },
@@ -8984,27 +7487,58 @@
8984
7487
  "additionalProperties": true
8985
7488
  }
8986
7489
  },
8987
- "required": ["sessionId"],
7490
+ "required": ["providerId"],
8988
7491
  "x-side": "agent",
8989
- "x-method": "session/close"
7492
+ "x-method": "providers/disable"
8990
7493
  },
8991
- "SetSessionConfigOptionRequest": {
8992
- "description": "Request parameters for setting a session configuration option.",
7494
+ "LogoutAuthRequest": {
7495
+ "description": "Request parameters for the `auth/logout` method.\n\nTerminates the current authenticated session.\n\nAgents MUST support this method when their `initialize` response advertised\nat least one valid authentication method. Clients MUST NOT call this method\nwhen `authMethods` was omitted or empty.",
8993
7496
  "type": "object",
8994
7497
  "properties": {
8995
- "sessionId": {
8996
- "description": "The ID of the session to set the configuration option for.",
7498
+ "_meta": {
7499
+ "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/v2/draft/extensibility)",
7500
+ "type": ["object", "null"],
7501
+ "x-deserialize-default-on-error": true,
7502
+ "additionalProperties": true
7503
+ }
7504
+ },
7505
+ "x-side": "agent",
7506
+ "x-method": "auth/logout"
7507
+ },
7508
+ "NewSessionRequest": {
7509
+ "description": "Request parameters for creating a new session.\n\nSee protocol docs: [Creating a Session](https://agentclientprotocol.com/protocol/v2/draft/session-setup#creating-a-session)",
7510
+ "type": "object",
7511
+ "properties": {
7512
+ "cwd": {
7513
+ "description": "The working directory for this session. Must be an absolute path.",
8997
7514
  "allOf": [
8998
7515
  {
8999
- "$ref": "#/$defs/SessionId"
7516
+ "$ref": "#/$defs/AbsolutePath"
9000
7517
  }
9001
7518
  ]
9002
7519
  },
9003
- "configId": {
9004
- "description": "The ID of the configuration option to set.",
9005
- "allOf": [
7520
+ "additionalDirectories": {
7521
+ "description": "Additional workspace roots for this session. Each path must be absolute.\n\nThese expand the session's workspace scope without changing `cwd`, which\nremains the base for relative paths. When omitted or empty, no\nadditional roots are activated for the new session.",
7522
+ "type": "array",
7523
+ "items": {
7524
+ "$ref": "#/$defs/AbsolutePath"
7525
+ }
7526
+ },
7527
+ "mcpServers": {
7528
+ "description": "List of MCP (Model Context Protocol) servers the agent should connect to.",
7529
+ "type": "array",
7530
+ "items": {
7531
+ "$ref": "#/$defs/McpServer"
7532
+ }
7533
+ },
7534
+ "systemPrompt": {
7535
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nSystem-level instructions for the new session.\n\nOptional. Omitted and `null` are equivalent and mean the Agent uses its\nown default instructions. Clients MUST only send this when the Agent\nadvertises `session.systemPrompt`.",
7536
+ "anyOf": [
9006
7537
  {
9007
- "$ref": "#/$defs/SessionConfigId"
7538
+ "$ref": "#/$defs/SystemPrompt"
7539
+ },
7540
+ {
7541
+ "type": "null"
9008
7542
  }
9009
7543
  ]
9010
7544
  },
@@ -9015,56 +7549,72 @@
9015
7549
  "additionalProperties": true
9016
7550
  }
9017
7551
  },
9018
- "required": ["sessionId", "configId"],
7552
+ "required": ["cwd"],
7553
+ "x-side": "agent",
7554
+ "x-method": "session/new"
7555
+ },
7556
+ "McpServer": {
7557
+ "description": "Configuration for connecting to an MCP (Model Context Protocol) server.\n\nMCP servers provide tools and context that the agent can use when\nprocessing prompts.\n\nSee protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/v2/draft/session-setup#mcp-servers)",
9019
7558
  "anyOf": [
9020
7559
  {
9021
- "description": "A [`SessionConfigValueId`] string value (`type: \"id\"`).",
7560
+ "description": "HTTP transport configuration\n\nOnly available when the Agent capabilities include `session.mcp.http`.",
9022
7561
  "type": "object",
9023
7562
  "properties": {
9024
- "value": {
9025
- "description": "The value ID.",
9026
- "allOf": [
9027
- {
9028
- "$ref": "#/$defs/SessionConfigValueId"
9029
- }
9030
- ]
9031
- },
9032
7563
  "type": {
9033
7564
  "type": "string",
9034
- "const": "id"
7565
+ "const": "http"
9035
7566
  }
9036
7567
  },
9037
- "required": ["type", "value"]
7568
+ "required": ["type"],
7569
+ "allOf": [
7570
+ {
7571
+ "$ref": "#/$defs/McpServerHttp"
7572
+ }
7573
+ ]
9038
7574
  },
9039
7575
  {
9040
- "description": "A boolean value (`type: \"boolean\"`).",
7576
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nACP transport configuration\n\nOnly available when the Agent capabilities include `session.mcp.acp`.\nThe MCP server is provided by an ACP component and communicates over the ACP channel.",
9041
7577
  "type": "object",
9042
7578
  "properties": {
9043
- "value": {
9044
- "description": "The boolean value.",
9045
- "type": "boolean"
9046
- },
9047
7579
  "type": {
9048
7580
  "type": "string",
9049
- "const": "boolean"
7581
+ "const": "acp"
9050
7582
  }
9051
7583
  },
9052
- "required": ["type", "value"]
7584
+ "required": ["type"],
7585
+ "allOf": [
7586
+ {
7587
+ "$ref": "#/$defs/McpServerAcp"
7588
+ }
7589
+ ]
7590
+ },
7591
+ {
7592
+ "description": "Stdio transport configuration\n\nOnly available when the Agent capabilities include `session.mcp.stdio`.",
7593
+ "type": "object",
7594
+ "properties": {
7595
+ "type": {
7596
+ "type": "string",
7597
+ "const": "stdio"
7598
+ }
7599
+ },
7600
+ "required": ["type"],
7601
+ "allOf": [
7602
+ {
7603
+ "$ref": "#/$defs/McpServerStdio"
7604
+ }
7605
+ ]
9053
7606
  },
9054
7607
  {
9055
7608
  "title": "other",
9056
- "description": "Custom or future session configuration option value payload.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
7609
+ "description": "Custom or future MCP server transport configuration.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.\n\nReceivers that do not understand this transport should preserve the raw\npayload when storing, replaying, proxying, or forwarding session setup\ndata, and otherwise ignore it or reject the server configuration.",
9057
7610
  "type": "object",
9058
7611
  "properties": {
9059
7612
  "type": {
9060
- "description": "Custom or future session configuration option value type.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
7613
+ "description": "Custom or future MCP server transport type.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
9061
7614
  "type": "string"
9062
- },
9063
- "value": {
9064
- "description": "Raw value payload for the custom or future value type."
9065
7615
  }
9066
7616
  },
9067
- "required": ["type", "value"],
7617
+ "required": ["type"],
9068
7618
  "not": {
9069
7619
  "anyOf": [
9070
7620
  {
@@ -9072,7 +7622,7 @@
9072
7622
  "properties": {
9073
7623
  "type": {
9074
7624
  "type": "string",
9075
- "const": "id"
7625
+ "const": "http"
9076
7626
  }
9077
7627
  },
9078
7628
  "required": ["type"]
@@ -9082,7 +7632,17 @@
9082
7632
  "properties": {
9083
7633
  "type": {
9084
7634
  "type": "string",
9085
- "const": "boolean"
7635
+ "const": "stdio"
7636
+ }
7637
+ },
7638
+ "required": ["type"]
7639
+ },
7640
+ {
7641
+ "type": "object",
7642
+ "properties": {
7643
+ "type": {
7644
+ "type": "string",
7645
+ "const": "acp"
9086
7646
  }
9087
7647
  },
9088
7648
  "required": ["type"]
@@ -9091,28 +7651,19 @@
9091
7651
  },
9092
7652
  "additionalProperties": true
9093
7653
  }
9094
- ],
9095
- "x-side": "agent",
9096
- "x-method": "session/set_config_option"
7654
+ ]
9097
7655
  },
9098
- "PromptRequest": {
9099
- "description": "Request parameters for sending a user prompt to the agent.\n\nContains the user's message and any additional context.\n\nSee protocol docs: [User Message](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#1-user-message)",
7656
+ "HttpHeader": {
7657
+ "description": "An HTTP header to set when making requests to the MCP server.",
9100
7658
  "type": "object",
9101
7659
  "properties": {
9102
- "sessionId": {
9103
- "description": "The ID of the session to send this user message to",
9104
- "allOf": [
9105
- {
9106
- "$ref": "#/$defs/SessionId"
9107
- }
9108
- ]
7660
+ "name": {
7661
+ "description": "The name of the HTTP header.",
7662
+ "type": "string"
9109
7663
  },
9110
- "prompt": {
9111
- "description": "The blocks of content that compose the user's message.\n\nAs a baseline, the Agent MUST support [`ContentBlock::Text`] and [`ContentBlock::ResourceLink`],\nwhile other variants are optionally enabled via [`PromptCapabilities`].\n\nThe Client MUST adapt its interface according to [`PromptCapabilities`].\n\nThe client MAY include referenced pieces of context as either\n[`ContentBlock::Resource`] or [`ContentBlock::ResourceLink`].\n\nWhen available, [`ContentBlock::Resource`] is preferred\nas it avoids extra round-trips and allows the message to include\npieces of context from sources the agent may not have access to.",
9112
- "type": "array",
9113
- "items": {
9114
- "$ref": "#/$defs/ContentBlock"
9115
- }
7664
+ "value": {
7665
+ "description": "The value to set for the HTTP header.",
7666
+ "type": "string"
9116
7667
  },
9117
7668
  "_meta": {
9118
7669
  "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/v2/draft/extensibility)",
@@ -9121,38 +7672,52 @@
9121
7672
  "additionalProperties": true
9122
7673
  }
9123
7674
  },
9124
- "required": ["sessionId", "prompt"],
9125
- "x-side": "agent",
9126
- "x-method": "session/prompt"
7675
+ "required": ["name", "value"]
9127
7676
  },
9128
- "StartNesRequest": {
9129
- "description": "Request to start an NES session.",
7677
+ "McpServerHttp": {
7678
+ "description": "HTTP transport configuration for MCP.",
9130
7679
  "type": "object",
9131
7680
  "properties": {
9132
- "workspaceUri": {
9133
- "description": "The root URI of the workspace.",
9134
- "type": ["string", "null"],
9135
- "format": "uri",
9136
- "x-deserialize-default-on-error": true
7681
+ "name": {
7682
+ "description": "Human-readable name identifying this MCP server.",
7683
+ "type": "string"
9137
7684
  },
9138
- "workspaceFolders": {
9139
- "description": "The workspace folders.",
9140
- "type": ["array", "null"],
7685
+ "url": {
7686
+ "description": "URL to the MCP server.",
7687
+ "type": "string",
7688
+ "format": "uri"
7689
+ },
7690
+ "headers": {
7691
+ "description": "HTTP headers to set when making requests to the MCP server.",
7692
+ "type": "array",
9141
7693
  "items": {
9142
- "$ref": "#/$defs/WorkspaceFolder"
7694
+ "$ref": "#/$defs/HttpHeader"
9143
7695
  }
9144
7696
  },
9145
- "repository": {
9146
- "description": "Repository metadata, if the workspace is a git repository.",
9147
- "anyOf": [
9148
- {
9149
- "$ref": "#/$defs/NesRepository"
9150
- },
7697
+ "_meta": {
7698
+ "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/v2/draft/extensibility)",
7699
+ "type": ["object", "null"],
7700
+ "x-deserialize-default-on-error": true,
7701
+ "additionalProperties": true
7702
+ }
7703
+ },
7704
+ "required": ["name", "url"]
7705
+ },
7706
+ "McpServerAcp": {
7707
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nACP transport configuration for MCP.\n\nThe MCP server is provided by an ACP component and communicates over the ACP channel\nusing `mcp/message`.",
7708
+ "type": "object",
7709
+ "properties": {
7710
+ "name": {
7711
+ "description": "Human-readable name identifying this MCP server.",
7712
+ "type": "string"
7713
+ },
7714
+ "serverId": {
7715
+ "description": "Unique identifier for this MCP server, generated by the component providing it.\n\nProviders MUST NOT reuse an ID for multiple ACP-transport MCP servers that are visible\non the same ACP connection.",
7716
+ "allOf": [
9151
7717
  {
9152
- "type": "null"
7718
+ "$ref": "#/$defs/McpServerAcpId"
9153
7719
  }
9154
- ],
9155
- "x-deserialize-default-on-error": true
7720
+ ]
9156
7721
  },
9157
7722
  "_meta": {
9158
7723
  "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/v2/draft/extensibility)",
@@ -9161,22 +7726,38 @@
9161
7726
  "additionalProperties": true
9162
7727
  }
9163
7728
  },
9164
- "x-side": "agent",
9165
- "x-method": "nes/start"
7729
+ "required": ["name", "serverId"]
9166
7730
  },
9167
- "WorkspaceFolder": {
9168
- "description": "A workspace folder.",
7731
+ "McpServerStdio": {
7732
+ "description": "Stdio transport configuration for MCP.",
9169
7733
  "type": "object",
9170
7734
  "properties": {
9171
- "uri": {
9172
- "description": "The URI of the folder.",
9173
- "type": "string",
9174
- "format": "uri"
9175
- },
9176
7735
  "name": {
9177
- "description": "The display name of the folder.",
7736
+ "description": "Human-readable name identifying this MCP server.",
9178
7737
  "type": "string"
9179
7738
  },
7739
+ "command": {
7740
+ "description": "Absolute path to the MCP server executable.",
7741
+ "allOf": [
7742
+ {
7743
+ "$ref": "#/$defs/AbsolutePath"
7744
+ }
7745
+ ]
7746
+ },
7747
+ "args": {
7748
+ "description": "Command-line arguments to pass to the MCP server.",
7749
+ "type": "array",
7750
+ "items": {
7751
+ "type": "string"
7752
+ }
7753
+ },
7754
+ "env": {
7755
+ "description": "Environment variables to set when launching the MCP server.",
7756
+ "type": "array",
7757
+ "items": {
7758
+ "$ref": "#/$defs/EnvVariable"
7759
+ }
7760
+ },
9180
7761
  "_meta": {
9181
7762
  "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/v2/draft/extensibility)",
9182
7763
  "type": ["object", "null"],
@@ -9184,23 +7765,26 @@
9184
7765
  "additionalProperties": true
9185
7766
  }
9186
7767
  },
9187
- "required": ["uri", "name"]
7768
+ "required": ["name", "command"]
9188
7769
  },
9189
- "NesRepository": {
9190
- "description": "Repository metadata for an NES session.",
7770
+ "SystemPrompt": {
7771
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nClient-provided system-level instructions for a session.\n\nClients MUST only send this when the Agent advertises\n`session.systemPrompt`. Agents that cannot apply it, for example because of\nan unadvertised mode or an unsupported content block type, MUST return an\nerror instead of creating, resuming, or forking the session.",
9191
7772
  "type": "object",
9192
7773
  "properties": {
9193
- "name": {
9194
- "description": "The repository name.",
9195
- "type": "string"
9196
- },
9197
- "owner": {
9198
- "description": "The repository owner.",
9199
- "type": "string"
7774
+ "mode": {
7775
+ "description": "How the Agent combines `content` with its own instructions.\n\nRequired on the wire, so every request states its mode. In Rust,\n[`SystemPrompt::new`] starts it as [`SystemPromptMode::Append`]. Unknown\nvalues parse as [`SystemPromptMode::Other`]; Agents MUST return an error\nfor modes they do not support.",
7776
+ "allOf": [
7777
+ {
7778
+ "$ref": "#/$defs/SystemPromptMode"
7779
+ }
7780
+ ]
9200
7781
  },
9201
- "remoteUrl": {
9202
- "description": "The remote URL of the repository.",
9203
- "type": "string"
7782
+ "content": {
7783
+ "description": "The system prompt content.\n\nAgents advertising the capability MUST accept [`ContentBlock::Text`].\nClients MUST NOT send other content block types until a future\ncapability allows them, and Agents MUST return an error for content\nblocks they do not support, including unknown types preserved as\n[`ContentBlock::Other`].",
7784
+ "type": "array",
7785
+ "items": {
7786
+ "$ref": "#/$defs/ContentBlock"
7787
+ }
9204
7788
  },
9205
7789
  "_meta": {
9206
7790
  "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/v2/draft/extensibility)",
@@ -9209,62 +7793,48 @@
9209
7793
  "additionalProperties": true
9210
7794
  }
9211
7795
  },
9212
- "required": ["name", "owner", "remoteUrl"]
7796
+ "required": ["mode", "content"]
9213
7797
  },
9214
- "SuggestNesRequest": {
9215
- "description": "Request for a code suggestion.",
9216
- "type": "object",
9217
- "properties": {
9218
- "sessionId": {
9219
- "description": "The session ID for this request.",
9220
- "allOf": [
9221
- {
9222
- "$ref": "#/$defs/SessionId"
9223
- }
9224
- ]
9225
- },
9226
- "uri": {
9227
- "description": "The URI of the document to suggest for.",
7798
+ "SystemPromptMode": {
7799
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nHow the Agent combines a client-provided system prompt with its own instructions.\n\nUnknown modes parse as [`SystemPromptMode::Other`] so they can be stored,\nproxied, or forwarded. An Agent MUST return an error for a mode it does not\nsupport rather than treating it as `append` or `override`.",
7800
+ "anyOf": [
7801
+ {
7802
+ "description": "Add the content to the Agent's own instructions rather than replacing them.\n\nEvery Agent that advertises `session.systemPrompt` supports this mode.\nAgents SHOULD give the content system-level precedence, for example in the\nmodel's system prompt or developer instructions rather than in user-turn\ncontent. Where it is placed and how it is formatted is implementation-defined.",
9228
7803
  "type": "string",
9229
- "format": "uri"
7804
+ "const": "append"
9230
7805
  },
9231
- "version": {
9232
- "description": "The version number of the document.",
9233
- "type": "integer",
9234
- "format": "int64"
9235
- },
9236
- "position": {
9237
- "description": "The current cursor position.",
9238
- "allOf": [
9239
- {
9240
- "$ref": "#/$defs/Position"
9241
- }
9242
- ]
7806
+ {
7807
+ "description": "Replace the Agent's built-in default instructions with the content.\n\nThis does not change tool availability, MCP servers, permissions, or session\nconfiguration. Context the Agent supplies from the workspace or environment\nMAY still be included. Clients that use this mode take responsibility for any\ntool guidance or safety instructions the Agent's default instructions\nprovided, and MUST only use it when the Agent advertises\n`session.systemPrompt.mode.override`.",
7808
+ "type": "string",
7809
+ "const": "override"
9243
7810
  },
9244
- "selection": {
9245
- "description": "The current text selection range, if any.",
7811
+ {
7812
+ "title": "other",
7813
+ "description": "Custom or future system prompt mode.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
7814
+ "type": "string"
7815
+ }
7816
+ ]
7817
+ },
7818
+ "ListSessionsRequest": {
7819
+ "description": "Request parameters for listing existing sessions.",
7820
+ "type": "object",
7821
+ "properties": {
7822
+ "cwd": {
7823
+ "description": "Filter sessions by working directory. Must be an absolute path.",
9246
7824
  "anyOf": [
9247
7825
  {
9248
- "$ref": "#/$defs/Range"
7826
+ "$ref": "#/$defs/AbsolutePath"
9249
7827
  },
9250
7828
  {
9251
7829
  "type": "null"
9252
7830
  }
9253
7831
  ]
9254
7832
  },
9255
- "triggerKind": {
9256
- "description": "What triggered this suggestion request.",
9257
- "allOf": [
9258
- {
9259
- "$ref": "#/$defs/NesTriggerKind"
9260
- }
9261
- ]
9262
- },
9263
- "context": {
9264
- "description": "Context for the suggestion, included based on agent capabilities.",
7833
+ "cursor": {
7834
+ "description": "Opaque cursor token from a previous response's nextCursor field for cursor-based pagination",
9265
7835
  "anyOf": [
9266
7836
  {
9267
- "$ref": "#/$defs/NesSuggestContext"
7837
+ "$ref": "#/$defs/SessionListCursor"
9268
7838
  },
9269
7839
  {
9270
7840
  "type": "null"
@@ -9278,80 +7848,20 @@
9278
7848
  "additionalProperties": true
9279
7849
  }
9280
7850
  },
9281
- "required": ["sessionId", "uri", "version", "position", "triggerKind"],
9282
7851
  "x-side": "agent",
9283
- "x-method": "nes/suggest"
9284
- },
9285
- "NesTriggerKind": {
9286
- "description": "What triggered the suggestion request.",
9287
- "anyOf": [
9288
- {
9289
- "description": "Triggered by user typing or cursor movement.",
9290
- "type": "string",
9291
- "const": "automatic"
9292
- },
9293
- {
9294
- "description": "Triggered by a diagnostic appearing at or near the cursor.",
9295
- "type": "string",
9296
- "const": "diagnostic"
9297
- },
9298
- {
9299
- "description": "Triggered by an explicit user action (keyboard shortcut).",
9300
- "type": "string",
9301
- "const": "manual"
9302
- },
9303
- {
9304
- "title": "Other",
9305
- "description": "Custom or future suggestion trigger kind.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
9306
- "type": "string"
9307
- }
9308
- ]
7852
+ "x-method": "session/list"
9309
7853
  },
9310
- "NesSuggestContext": {
9311
- "description": "Context attached to a suggestion request.",
7854
+ "DeleteSessionRequest": {
7855
+ "description": "Request parameters for deleting an existing session from `session/list`.\n\nOnly available if the Agent supports the `session.delete` capability.",
9312
7856
  "type": "object",
9313
7857
  "properties": {
9314
- "recentFiles": {
9315
- "description": "Recently accessed files.",
9316
- "type": ["array", "null"],
9317
- "items": {
9318
- "$ref": "#/$defs/NesRecentFile"
9319
- }
9320
- },
9321
- "relatedSnippets": {
9322
- "description": "Related code snippets.",
9323
- "type": ["array", "null"],
9324
- "items": {
9325
- "$ref": "#/$defs/NesRelatedSnippet"
9326
- }
9327
- },
9328
- "editHistory": {
9329
- "description": "Recent edit history.",
9330
- "type": ["array", "null"],
9331
- "items": {
9332
- "$ref": "#/$defs/NesEditHistoryEntry"
9333
- }
9334
- },
9335
- "userActions": {
9336
- "description": "Recent user actions (typing, navigation, etc.).",
9337
- "type": ["array", "null"],
9338
- "items": {
9339
- "$ref": "#/$defs/NesUserAction"
9340
- }
9341
- },
9342
- "openFiles": {
9343
- "description": "Currently open files in the editor.",
9344
- "type": ["array", "null"],
9345
- "items": {
9346
- "$ref": "#/$defs/NesOpenFile"
9347
- }
9348
- },
9349
- "diagnostics": {
9350
- "description": "Current diagnostics (errors, warnings).",
9351
- "type": ["array", "null"],
9352
- "items": {
9353
- "$ref": "#/$defs/NesDiagnostic"
9354
- }
7858
+ "sessionId": {
7859
+ "description": "The ID of the session to delete.",
7860
+ "allOf": [
7861
+ {
7862
+ "$ref": "#/$defs/SessionId"
7863
+ }
7864
+ ]
9355
7865
  },
9356
7866
  "_meta": {
9357
7867
  "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/v2/draft/extensibility)",
@@ -9359,24 +7869,55 @@
9359
7869
  "x-deserialize-default-on-error": true,
9360
7870
  "additionalProperties": true
9361
7871
  }
9362
- }
7872
+ },
7873
+ "required": ["sessionId"],
7874
+ "x-side": "agent",
7875
+ "x-method": "session/delete"
9363
7876
  },
9364
- "NesRecentFile": {
9365
- "description": "A recently accessed file.",
7877
+ "ForkSessionRequest": {
7878
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nRequest parameters for forking an existing session.\n\nCreates a new session based on the context of an existing one, allowing\noperations like generating summaries without affecting the original session's history.\n\nOnly available if the Agent supports the `session.fork` capability.",
9366
7879
  "type": "object",
9367
7880
  "properties": {
9368
- "uri": {
9369
- "description": "The URI of the file.",
9370
- "type": "string",
9371
- "format": "uri"
7881
+ "sessionId": {
7882
+ "description": "The ID of the session to fork.",
7883
+ "allOf": [
7884
+ {
7885
+ "$ref": "#/$defs/SessionId"
7886
+ }
7887
+ ]
9372
7888
  },
9373
- "languageId": {
9374
- "description": "The language identifier.",
9375
- "type": "string"
7889
+ "cwd": {
7890
+ "description": "The working directory for this session. Must be an absolute path.",
7891
+ "allOf": [
7892
+ {
7893
+ "$ref": "#/$defs/AbsolutePath"
7894
+ }
7895
+ ]
9376
7896
  },
9377
- "text": {
9378
- "description": "The full text content of the file.",
9379
- "type": "string"
7897
+ "additionalDirectories": {
7898
+ "description": "Additional workspace roots to activate for this session. Each path must be absolute.\n\nWhen omitted or empty, no additional roots are activated. When non-empty,\nthis is the complete resulting additional-root list for the forked\nsession.",
7899
+ "type": "array",
7900
+ "items": {
7901
+ "$ref": "#/$defs/AbsolutePath"
7902
+ }
7903
+ },
7904
+ "mcpServers": {
7905
+ "description": "List of MCP servers to connect to for this session.",
7906
+ "type": "array",
7907
+ "items": {
7908
+ "$ref": "#/$defs/McpServer"
7909
+ }
7910
+ },
7911
+ "systemPrompt": {
7912
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nSystem-level instructions for the forked session.\n\nOptional. Omitted and `null` are equivalent; the Agent may then keep a\nsystem prompt it stored with the source session or use its default\ninstructions. Clients MUST only send this when the Agent advertises\n`session.systemPrompt`, and SHOULD send the same value they used for the\nsource session.",
7913
+ "anyOf": [
7914
+ {
7915
+ "$ref": "#/$defs/SystemPrompt"
7916
+ },
7917
+ {
7918
+ "type": "null"
7919
+ }
7920
+ ]
9380
7921
  },
9381
7922
  "_meta": {
9382
7923
  "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/v2/draft/extensibility)",
@@ -9385,24 +7926,66 @@
9385
7926
  "additionalProperties": true
9386
7927
  }
9387
7928
  },
9388
- "required": ["uri", "languageId", "text"]
7929
+ "required": ["sessionId", "cwd"],
7930
+ "x-side": "agent",
7931
+ "x-method": "session/fork"
9389
7932
  },
9390
- "NesRelatedSnippet": {
9391
- "description": "A related code snippet from a file.",
7933
+ "ResumeSessionRequest": {
7934
+ "description": "Request parameters for resuming an existing session.\n\nResumes an existing session and optionally replays retained conversation\nhistory according to `replayFrom`.",
9392
7935
  "type": "object",
9393
7936
  "properties": {
9394
- "uri": {
9395
- "description": "The URI of the file containing the snippets.",
9396
- "type": "string",
9397
- "format": "uri"
7937
+ "sessionId": {
7938
+ "description": "The ID of the session to resume.",
7939
+ "allOf": [
7940
+ {
7941
+ "$ref": "#/$defs/SessionId"
7942
+ }
7943
+ ]
7944
+ },
7945
+ "cwd": {
7946
+ "description": "The working directory for this session. Must be an absolute path.",
7947
+ "allOf": [
7948
+ {
7949
+ "$ref": "#/$defs/AbsolutePath"
7950
+ }
7951
+ ]
7952
+ },
7953
+ "additionalDirectories": {
7954
+ "description": "Additional workspace roots to activate for this session. Each path must be absolute.\n\nWhen omitted or empty, no additional roots are activated. When non-empty,\nthis is the complete resulting additional-root list for the resumed\nsession. It may differ from any previously used or reported list as long as\nthe request `cwd` matches the session's `cwd`.",
7955
+ "type": "array",
7956
+ "items": {
7957
+ "$ref": "#/$defs/AbsolutePath"
7958
+ }
9398
7959
  },
9399
- "excerpts": {
9400
- "description": "The code excerpts.",
7960
+ "mcpServers": {
7961
+ "description": "List of MCP servers to connect to for this session.",
9401
7962
  "type": "array",
9402
7963
  "items": {
9403
- "$ref": "#/$defs/NesExcerpt"
7964
+ "$ref": "#/$defs/McpServer"
9404
7965
  }
9405
7966
  },
7967
+ "replayFrom": {
7968
+ "description": "Inclusive cursor describing where conversation replay should begin.\n\nOptional. Omitted or `null` both mean the Agent should resume without\nreplaying previous conversation history. Replay cursors are inclusive:\nreplay includes the position identified by the cursor. Supplying\n`{ \"type\": \"start\" }` means the Agent should replay all retained\nconversation history before responding.\n\nAgents MUST reject unsupported cursor types or malformed cursor values\nwith `-32602` (Invalid params), rather than substituting another cursor\nor resuming without replay.",
7969
+ "anyOf": [
7970
+ {
7971
+ "$ref": "#/$defs/ReplayFrom"
7972
+ },
7973
+ {
7974
+ "type": "null"
7975
+ }
7976
+ ]
7977
+ },
7978
+ "systemPrompt": {
7979
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nSystem-level instructions for the resumed session.\n\nOptional. Omitted and `null` are equivalent; the Agent may then keep a\nsystem prompt it stored with the session or use its default instructions.\nClients MUST only send this when the Agent advertises\n`session.systemPrompt`, and SHOULD send the same value they used when the\nsession was created.",
7980
+ "anyOf": [
7981
+ {
7982
+ "$ref": "#/$defs/SystemPrompt"
7983
+ },
7984
+ {
7985
+ "type": "null"
7986
+ }
7987
+ ]
7988
+ },
9406
7989
  "_meta": {
9407
7990
  "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/v2/draft/extensibility)",
9408
7991
  "type": ["object", "null"],
@@ -9410,127 +7993,88 @@
9410
7993
  "additionalProperties": true
9411
7994
  }
9412
7995
  },
9413
- "required": ["uri", "excerpts"]
7996
+ "required": ["sessionId", "cwd"],
7997
+ "x-side": "agent",
7998
+ "x-method": "session/resume"
9414
7999
  },
9415
- "NesExcerpt": {
9416
- "description": "A code excerpt from a file.",
9417
- "type": "object",
9418
- "properties": {
9419
- "startLine": {
9420
- "description": "The start line of the excerpt (zero-based).",
9421
- "type": "integer",
9422
- "format": "uint32",
9423
- "minimum": 0
9424
- },
9425
- "endLine": {
9426
- "description": "The end line of the excerpt (zero-based).",
9427
- "type": "integer",
9428
- "format": "uint32",
9429
- "minimum": 0
9430
- },
9431
- "text": {
9432
- "description": "The text content of the excerpt.",
9433
- "type": "string"
8000
+ "ReplayFrom": {
8001
+ "description": "Inclusive cursor describing where replayed session history should begin.\n\nReplay includes the position identified by the cursor.",
8002
+ "anyOf": [
8003
+ {
8004
+ "description": "Replay all retained conversation history from its first replayable entry.",
8005
+ "type": "object",
8006
+ "properties": {
8007
+ "type": {
8008
+ "type": "string",
8009
+ "const": "start"
8010
+ }
8011
+ },
8012
+ "required": ["type"],
8013
+ "allOf": [
8014
+ {
8015
+ "$ref": "#/$defs/ReplayFromStart"
8016
+ }
8017
+ ]
9434
8018
  },
9435
- "_meta": {
9436
- "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/v2/draft/extensibility)",
9437
- "type": ["object", "null"],
9438
- "x-deserialize-default-on-error": true,
8019
+ {
8020
+ "title": "other",
8021
+ "description": "Custom or future replay cursor.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.\n\nIntermediaries SHOULD preserve the raw payload when storing, replaying,\nproxying, or forwarding requests. Agents that do not support this cursor\nMUST reject the request with `-32602` (Invalid params), rather than\nsubstituting another cursor or resuming without replay.",
8022
+ "type": "object",
8023
+ "properties": {
8024
+ "type": {
8025
+ "description": "Custom or future replay cursor type.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
8026
+ "type": "string"
8027
+ },
8028
+ "_meta": {
8029
+ "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/v2/draft/extensibility)",
8030
+ "type": ["object", "null"],
8031
+ "x-deserialize-default-on-error": true,
8032
+ "additionalProperties": true
8033
+ }
8034
+ },
8035
+ "required": ["type"],
8036
+ "not": {
8037
+ "anyOf": [
8038
+ {
8039
+ "type": "object",
8040
+ "properties": {
8041
+ "type": {
8042
+ "type": "string",
8043
+ "const": "start"
8044
+ }
8045
+ },
8046
+ "required": ["type"]
8047
+ }
8048
+ ]
8049
+ },
9439
8050
  "additionalProperties": true
9440
8051
  }
9441
- },
9442
- "required": ["startLine", "endLine", "text"]
8052
+ ]
9443
8053
  },
9444
- "NesEditHistoryEntry": {
9445
- "description": "An entry in the edit history.",
8054
+ "ReplayFromStart": {
8055
+ "description": "Inclusive replay cursor requesting replay from the start of retained conversation history.",
9446
8056
  "type": "object",
9447
8057
  "properties": {
9448
- "uri": {
9449
- "description": "The URI of the edited file.",
9450
- "type": "string",
9451
- "format": "uri"
9452
- },
9453
- "diff": {
9454
- "description": "A diff representing the edit.",
9455
- "type": "string"
9456
- },
9457
8058
  "_meta": {
9458
8059
  "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/v2/draft/extensibility)",
9459
8060
  "type": ["object", "null"],
9460
8061
  "x-deserialize-default-on-error": true,
9461
8062
  "additionalProperties": true
9462
8063
  }
9463
- },
9464
- "required": ["uri", "diff"]
8064
+ }
9465
8065
  },
9466
- "NesUserAction": {
9467
- "description": "A user action (typing, cursor movement, etc.).",
8066
+ "CloseSessionRequest": {
8067
+ "description": "Request parameters for closing an active session.\n\nThe agent **must** cancel any ongoing work related to the session (treat it\nas if `session/cancel` was called) and then free up any resources associated\nwith the session.\n\nWhen closing cancels active foreground work, the Agent MUST send the final\nupdates for that work and the idle `state_update` with `stopReason: \"cancelled\"`\nbefore responding successfully to `session/close`. Closing an idle session\ndoes not itself require another idle update.\n\nClosing may also cancel pending `session/prompt` requests, including queued\nprompts. If closing prevents a prompt's user message from being inserted, the\nAgent MUST answer that request with `-32800` (Request Cancelled). If the message\nhas already been inserted, the Agent MUST respond successfully with its\n`messageId`. Prompt responses need not precede the close response.",
9468
8068
  "type": "object",
9469
8069
  "properties": {
9470
- "action": {
9471
- "description": "The kind of action (e.g., \"insertChar\", \"cursorMovement\").",
9472
- "type": "string"
9473
- },
9474
- "uri": {
9475
- "description": "The URI of the file where the action occurred.",
9476
- "type": "string",
9477
- "format": "uri"
9478
- },
9479
- "position": {
9480
- "description": "The position where the action occurred.",
8070
+ "sessionId": {
8071
+ "description": "The ID of the session to close.",
9481
8072
  "allOf": [
9482
8073
  {
9483
- "$ref": "#/$defs/Position"
8074
+ "$ref": "#/$defs/SessionId"
9484
8075
  }
9485
8076
  ]
9486
8077
  },
9487
- "timestampMs": {
9488
- "description": "Timestamp in milliseconds since epoch.",
9489
- "type": "integer",
9490
- "format": "uint64",
9491
- "minimum": 0
9492
- },
9493
- "_meta": {
9494
- "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/v2/draft/extensibility)",
9495
- "type": ["object", "null"],
9496
- "x-deserialize-default-on-error": true,
9497
- "additionalProperties": true
9498
- }
9499
- },
9500
- "required": ["action", "uri", "position", "timestampMs"]
9501
- },
9502
- "NesOpenFile": {
9503
- "description": "An open file in the editor.",
9504
- "type": "object",
9505
- "properties": {
9506
- "uri": {
9507
- "description": "The URI of the file.",
9508
- "type": "string",
9509
- "format": "uri"
9510
- },
9511
- "languageId": {
9512
- "description": "The language identifier.",
9513
- "type": "string"
9514
- },
9515
- "visibleRange": {
9516
- "description": "The visible range in the editor, if any.",
9517
- "anyOf": [
9518
- {
9519
- "$ref": "#/$defs/Range"
9520
- },
9521
- {
9522
- "type": "null"
9523
- }
9524
- ],
9525
- "x-deserialize-default-on-error": true
9526
- },
9527
- "lastFocusedMs": {
9528
- "description": "Timestamp in milliseconds since epoch of when the file was last focused.",
9529
- "type": ["integer", "null"],
9530
- "format": "uint64",
9531
- "minimum": 0,
9532
- "x-deserialize-default-on-error": true
9533
- },
9534
8078
  "_meta": {
9535
8079
  "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/v2/draft/extensibility)",
9536
8080
  "type": ["object", "null"],
@@ -9538,37 +8082,30 @@
9538
8082
  "additionalProperties": true
9539
8083
  }
9540
8084
  },
9541
- "required": ["uri", "languageId"]
8085
+ "required": ["sessionId"],
8086
+ "x-side": "agent",
8087
+ "x-method": "session/close"
9542
8088
  },
9543
- "NesDiagnostic": {
9544
- "description": "A diagnostic (error, warning, etc.).",
8089
+ "SetSessionConfigOptionRequest": {
8090
+ "description": "Request parameters for setting a session configuration option.",
9545
8091
  "type": "object",
9546
8092
  "properties": {
9547
- "uri": {
9548
- "description": "The URI of the file containing the diagnostic.",
9549
- "type": "string",
9550
- "format": "uri"
9551
- },
9552
- "range": {
9553
- "description": "The range of the diagnostic.",
8093
+ "sessionId": {
8094
+ "description": "The ID of the session to set the configuration option for.",
9554
8095
  "allOf": [
9555
8096
  {
9556
- "$ref": "#/$defs/Range"
8097
+ "$ref": "#/$defs/SessionId"
9557
8098
  }
9558
8099
  ]
9559
8100
  },
9560
- "severity": {
9561
- "description": "The severity of the diagnostic.",
8101
+ "configId": {
8102
+ "description": "The ID of the configuration option to set.",
9562
8103
  "allOf": [
9563
8104
  {
9564
- "$ref": "#/$defs/NesDiagnosticSeverity"
8105
+ "$ref": "#/$defs/SessionConfigId"
9565
8106
  }
9566
8107
  ]
9567
8108
  },
9568
- "message": {
9569
- "description": "The diagnostic message.",
9570
- "type": "string"
9571
- },
9572
8109
  "_meta": {
9573
8110
  "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/v2/draft/extensibility)",
9574
8111
  "type": ["object", "null"],
@@ -9576,50 +8113,105 @@
9576
8113
  "additionalProperties": true
9577
8114
  }
9578
8115
  },
9579
- "required": ["uri", "range", "severity", "message"]
9580
- },
9581
- "NesDiagnosticSeverity": {
9582
- "description": "Severity of a diagnostic.",
8116
+ "required": ["sessionId", "configId"],
9583
8117
  "anyOf": [
9584
8118
  {
9585
- "description": "An error.",
9586
- "type": "string",
9587
- "const": "error"
9588
- },
9589
- {
9590
- "description": "A warning.",
9591
- "type": "string",
9592
- "const": "warning"
9593
- },
9594
- {
9595
- "description": "An informational message.",
9596
- "type": "string",
9597
- "const": "information"
8119
+ "description": "A [`SessionConfigValueId`] string value (`type: \"id\"`).",
8120
+ "type": "object",
8121
+ "properties": {
8122
+ "value": {
8123
+ "description": "The value ID.",
8124
+ "allOf": [
8125
+ {
8126
+ "$ref": "#/$defs/SessionConfigValueId"
8127
+ }
8128
+ ]
8129
+ },
8130
+ "type": {
8131
+ "type": "string",
8132
+ "const": "id"
8133
+ }
8134
+ },
8135
+ "required": ["type", "value"]
9598
8136
  },
9599
8137
  {
9600
- "description": "A hint.",
9601
- "type": "string",
9602
- "const": "hint"
8138
+ "description": "A boolean value (`type: \"boolean\"`).",
8139
+ "type": "object",
8140
+ "properties": {
8141
+ "value": {
8142
+ "description": "The boolean value.",
8143
+ "type": "boolean"
8144
+ },
8145
+ "type": {
8146
+ "type": "string",
8147
+ "const": "boolean"
8148
+ }
8149
+ },
8150
+ "required": ["type", "value"]
9603
8151
  },
9604
8152
  {
9605
- "title": "Other",
9606
- "description": "Custom or future diagnostic severity.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
9607
- "type": "string"
8153
+ "title": "other",
8154
+ "description": "Custom or future session configuration option value payload.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
8155
+ "type": "object",
8156
+ "properties": {
8157
+ "type": {
8158
+ "description": "Custom or future session configuration option value type.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
8159
+ "type": "string"
8160
+ },
8161
+ "value": {
8162
+ "description": "Raw value payload for the custom or future value type."
8163
+ }
8164
+ },
8165
+ "required": ["type", "value"],
8166
+ "not": {
8167
+ "anyOf": [
8168
+ {
8169
+ "type": "object",
8170
+ "properties": {
8171
+ "type": {
8172
+ "type": "string",
8173
+ "const": "id"
8174
+ }
8175
+ },
8176
+ "required": ["type"]
8177
+ },
8178
+ {
8179
+ "type": "object",
8180
+ "properties": {
8181
+ "type": {
8182
+ "type": "string",
8183
+ "const": "boolean"
8184
+ }
8185
+ },
8186
+ "required": ["type"]
8187
+ }
8188
+ ]
8189
+ },
8190
+ "additionalProperties": true
9608
8191
  }
9609
- ]
8192
+ ],
8193
+ "x-side": "agent",
8194
+ "x-method": "session/set_config_option"
9610
8195
  },
9611
- "CloseNesRequest": {
9612
- "description": "Request to close an NES session.\n\nThe agent **must** cancel any ongoing work related to the NES session\nand then free up any resources associated with the session.",
8196
+ "PromptRequest": {
8197
+ "description": "Request parameters for sending a user prompt to the agent.\n\nContains the user's message and any additional context.\n\nSee protocol docs: [User Message](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#1-user-message)",
9613
8198
  "type": "object",
9614
8199
  "properties": {
9615
8200
  "sessionId": {
9616
- "description": "The ID of the NES session to close.",
8201
+ "description": "The ID of the session to send this user message to",
9617
8202
  "allOf": [
9618
8203
  {
9619
8204
  "$ref": "#/$defs/SessionId"
9620
8205
  }
9621
8206
  ]
9622
8207
  },
8208
+ "prompt": {
8209
+ "description": "The blocks of content that compose the user's message.\n\nAs a baseline, the Agent MUST support [`ContentBlock::Text`] and [`ContentBlock::ResourceLink`],\nwhile other variants are optionally enabled via [`PromptCapabilities`].\n\nThe Client MUST adapt its interface according to [`PromptCapabilities`].\n\nThe client MAY include referenced pieces of context as either\n[`ContentBlock::Resource`] or [`ContentBlock::ResourceLink`].\n\nWhen available, [`ContentBlock::Resource`] is preferred\nas it avoids extra round-trips and allows the message to include\npieces of context from sources the agent may not have access to.",
8210
+ "type": "array",
8211
+ "items": {
8212
+ "$ref": "#/$defs/ContentBlock"
8213
+ }
8214
+ },
9623
8215
  "_meta": {
9624
8216
  "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/v2/draft/extensibility)",
9625
8217
  "type": ["object", "null"],
@@ -9627,9 +8219,9 @@
9627
8219
  "additionalProperties": true
9628
8220
  }
9629
8221
  },
9630
- "required": ["sessionId"],
8222
+ "required": ["sessionId", "prompt"],
9631
8223
  "x-side": "agent",
9632
- "x-method": "nes/close"
8224
+ "x-method": "session/prompt"
9633
8225
  },
9634
8226
  "ClientResponse": {
9635
8227
  "description": "A JSON-RPC response object.",
@@ -9745,7 +8337,7 @@
9745
8337
  "description": "The outcome of a permission request.",
9746
8338
  "anyOf": [
9747
8339
  {
9748
- "description": "Active session work was cancelled before the user responded.\n\nWhen a client sends a `session/cancel` notification to cancel active\nsession work, it MUST respond to all pending `session/request_permission`\nrequests with this `Cancelled` outcome.\n\nSee protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#cancellation)",
8340
+ "description": "Active session work was cancelled before the user responded.\n\nWhen a client sends a `session/cancel` notification to cancel active\nsession work, it MUST respond to all pending `session/request_permission`\nrequests in that session with this `Cancelled` outcome, without answering\nany request twice. Requests in other sessions are unaffected.\n\nSee protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#cancellation)",
9749
8341
  "type": "object",
9750
8342
  "properties": {
9751
8343
  "outcome": {
@@ -10044,91 +8636,28 @@
10044
8636
  }
10045
8637
  },
10046
8638
  "required": ["code", "message"],
10047
- "additionalProperties": true
10048
- },
10049
- "ClientNotification": {
10050
- "description": "A JSON-RPC notification object.",
10051
- "type": "object",
10052
- "properties": {
10053
- "method": {
10054
- "description": "The notification method name.",
10055
- "type": "string"
10056
- },
10057
- "params": {
10058
- "description": "Method-specific notification parameters.",
10059
- "anyOf": [
10060
- {
10061
- "description": "All possible notifications that a client can send to an agent.\n\nThis enum is used internally for routing RPC notifications. You typically won't need\nto use this directly.\n\nNotifications do not expect a response.",
10062
- "anyOf": [
10063
- {
10064
- "title": "CancelSessionNotification",
10065
- "description": "Cancels ongoing operations for a session.\n\nThis is a notification sent by the client to cancel active work in a\nsession.\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- Report an idle `state_update` with `StopReason::Cancelled` after\n cancellation succeeds\n\nSee protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#cancellation)",
10066
- "allOf": [
10067
- {
10068
- "$ref": "#/$defs/CancelSessionNotification"
10069
- }
10070
- ]
10071
- },
10072
- {
10073
- "title": "DidOpenDocumentNotification",
10074
- "description": "**UNSTABLE**\n\nNotification sent when a file is opened in the editor.",
10075
- "allOf": [
10076
- {
10077
- "$ref": "#/$defs/DidOpenDocumentNotification"
10078
- }
10079
- ]
10080
- },
10081
- {
10082
- "title": "DidChangeDocumentNotification",
10083
- "description": "**UNSTABLE**\n\nNotification sent when a file is edited.",
10084
- "allOf": [
10085
- {
10086
- "$ref": "#/$defs/DidChangeDocumentNotification"
10087
- }
10088
- ]
10089
- },
10090
- {
10091
- "title": "DidCloseDocumentNotification",
10092
- "description": "**UNSTABLE**\n\nNotification sent when a file is closed.",
10093
- "allOf": [
10094
- {
10095
- "$ref": "#/$defs/DidCloseDocumentNotification"
10096
- }
10097
- ]
10098
- },
10099
- {
10100
- "title": "DidSaveDocumentNotification",
10101
- "description": "**UNSTABLE**\n\nNotification sent when a file is saved.",
10102
- "allOf": [
10103
- {
10104
- "$ref": "#/$defs/DidSaveDocumentNotification"
10105
- }
10106
- ]
10107
- },
10108
- {
10109
- "title": "DidFocusDocumentNotification",
10110
- "description": "**UNSTABLE**\n\nNotification sent when a file becomes the active editor tab.",
10111
- "allOf": [
10112
- {
10113
- "$ref": "#/$defs/DidFocusDocumentNotification"
10114
- }
10115
- ]
10116
- },
10117
- {
10118
- "title": "AcceptNesNotification",
10119
- "description": "**UNSTABLE**\n\nNotification sent when a suggestion is accepted.",
10120
- "allOf": [
10121
- {
10122
- "$ref": "#/$defs/AcceptNesNotification"
10123
- }
10124
- ]
10125
- },
8639
+ "additionalProperties": true
8640
+ },
8641
+ "ClientNotification": {
8642
+ "description": "A JSON-RPC notification object.",
8643
+ "type": "object",
8644
+ "properties": {
8645
+ "method": {
8646
+ "description": "The notification method name.",
8647
+ "type": "string"
8648
+ },
8649
+ "params": {
8650
+ "description": "Method-specific notification parameters.",
8651
+ "anyOf": [
8652
+ {
8653
+ "description": "All possible notifications that a client can send to an agent.\n\nThis enum is used internally for routing RPC notifications. You typically won't need\nto use this directly.\n\nNotifications do not expect a response.",
8654
+ "anyOf": [
10126
8655
  {
10127
- "title": "RejectNesNotification",
10128
- "description": "**UNSTABLE**\n\nNotification sent when a suggestion is rejected.",
8656
+ "title": "CancelSessionNotification",
8657
+ "description": "Cancels ongoing operations for a session.\n\nThis is a notification sent by the client to cancel active work in a\nsession.\n\nUpon receiving this notification, the Agent SHOULD stop all language model\nrequests and all tool call invocations as soon as possible.\n\nAfter all ongoing operations have been successfully aborted and pending\nupdates have been sent, the Agent MUST send an idle `state_update` session\nupdate with the `cancelled` stop reason if cancellation ended active\nforeground work. No additional completion update is required if no\nforeground work was active.\n\nAfter cancellation completes, the Agent SHOULD ignore late answers rather\nthan use them to resume the cancelled work.\n\nAgents MUST catch errors caused by aborting cancelled work and report the\n`cancelled` stop reason, not `error`.\n\nThe Agent MAY send content or tool call updates after receiving\n`session/cancel`, but MUST send them before the idle `state_update` that\nreports cancellation.\n\nSee protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/v2/draft/prompt-lifecycle#cancellation)",
10129
8658
  "allOf": [
10130
8659
  {
10131
- "$ref": "#/$defs/RejectNesNotification"
8660
+ "$ref": "#/$defs/CancelSessionNotification"
10132
8661
  }
10133
8662
  ]
10134
8663
  },
@@ -10184,324 +8713,6 @@
10184
8713
  "x-side": "agent",
10185
8714
  "x-method": "session/cancel"
10186
8715
  },
10187
- "DidOpenDocumentNotification": {
10188
- "description": "Notification sent when a file is opened in the editor.",
10189
- "type": "object",
10190
- "properties": {
10191
- "sessionId": {
10192
- "description": "The session ID for this notification.",
10193
- "allOf": [
10194
- {
10195
- "$ref": "#/$defs/SessionId"
10196
- }
10197
- ]
10198
- },
10199
- "uri": {
10200
- "description": "The URI of the opened document.",
10201
- "type": "string",
10202
- "format": "uri"
10203
- },
10204
- "languageId": {
10205
- "description": "The language identifier of the document (e.g., \"rust\", \"python\").",
10206
- "type": "string"
10207
- },
10208
- "version": {
10209
- "description": "The version number of the document.",
10210
- "type": "integer",
10211
- "format": "int64"
10212
- },
10213
- "text": {
10214
- "description": "The full text content of the document.",
10215
- "type": "string"
10216
- },
10217
- "_meta": {
10218
- "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/v2/draft/extensibility)",
10219
- "type": ["object", "null"],
10220
- "x-deserialize-default-on-error": true,
10221
- "additionalProperties": true
10222
- }
10223
- },
10224
- "required": ["sessionId", "uri", "languageId", "version", "text"],
10225
- "x-side": "agent",
10226
- "x-method": "document/didOpen"
10227
- },
10228
- "DidChangeDocumentNotification": {
10229
- "description": "Notification sent when a file is edited.",
10230
- "type": "object",
10231
- "properties": {
10232
- "sessionId": {
10233
- "description": "The session ID for this notification.",
10234
- "allOf": [
10235
- {
10236
- "$ref": "#/$defs/SessionId"
10237
- }
10238
- ]
10239
- },
10240
- "uri": {
10241
- "description": "The URI of the changed document.",
10242
- "type": "string",
10243
- "format": "uri"
10244
- },
10245
- "version": {
10246
- "description": "The new version number of the document.",
10247
- "type": "integer",
10248
- "format": "int64"
10249
- },
10250
- "contentChanges": {
10251
- "description": "The content changes.",
10252
- "type": "array",
10253
- "items": {
10254
- "$ref": "#/$defs/TextDocumentContentChangeEvent"
10255
- }
10256
- },
10257
- "_meta": {
10258
- "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/v2/draft/extensibility)",
10259
- "type": ["object", "null"],
10260
- "x-deserialize-default-on-error": true,
10261
- "additionalProperties": true
10262
- }
10263
- },
10264
- "required": ["sessionId", "uri", "version", "contentChanges"],
10265
- "x-side": "agent",
10266
- "x-method": "document/didChange"
10267
- },
10268
- "TextDocumentContentChangeEvent": {
10269
- "description": "A content change event for a document.\n\nWhen `range` is `None`, `text` is the full content of the document.\nWhen `range` is `Some`, `text` replaces the given range.",
10270
- "type": "object",
10271
- "properties": {
10272
- "range": {
10273
- "description": "The range of the document that changed. If `None`, the entire content is replaced.",
10274
- "anyOf": [
10275
- {
10276
- "$ref": "#/$defs/Range"
10277
- },
10278
- {
10279
- "type": "null"
10280
- }
10281
- ]
10282
- },
10283
- "text": {
10284
- "description": "The new text for the range, or the full document content if `range` is `None`.",
10285
- "type": "string"
10286
- },
10287
- "_meta": {
10288
- "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/v2/draft/extensibility)",
10289
- "type": ["object", "null"],
10290
- "x-deserialize-default-on-error": true,
10291
- "additionalProperties": true
10292
- }
10293
- },
10294
- "required": ["text"]
10295
- },
10296
- "DidCloseDocumentNotification": {
10297
- "description": "Notification sent when a file is closed.",
10298
- "type": "object",
10299
- "properties": {
10300
- "sessionId": {
10301
- "description": "The session ID for this notification.",
10302
- "allOf": [
10303
- {
10304
- "$ref": "#/$defs/SessionId"
10305
- }
10306
- ]
10307
- },
10308
- "uri": {
10309
- "description": "The URI of the closed document.",
10310
- "type": "string",
10311
- "format": "uri"
10312
- },
10313
- "_meta": {
10314
- "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/v2/draft/extensibility)",
10315
- "type": ["object", "null"],
10316
- "x-deserialize-default-on-error": true,
10317
- "additionalProperties": true
10318
- }
10319
- },
10320
- "required": ["sessionId", "uri"],
10321
- "x-side": "agent",
10322
- "x-method": "document/didClose"
10323
- },
10324
- "DidSaveDocumentNotification": {
10325
- "description": "Notification sent when a file is saved.",
10326
- "type": "object",
10327
- "properties": {
10328
- "sessionId": {
10329
- "description": "The session ID for this notification.",
10330
- "allOf": [
10331
- {
10332
- "$ref": "#/$defs/SessionId"
10333
- }
10334
- ]
10335
- },
10336
- "uri": {
10337
- "description": "The URI of the saved document.",
10338
- "type": "string",
10339
- "format": "uri"
10340
- },
10341
- "_meta": {
10342
- "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/v2/draft/extensibility)",
10343
- "type": ["object", "null"],
10344
- "x-deserialize-default-on-error": true,
10345
- "additionalProperties": true
10346
- }
10347
- },
10348
- "required": ["sessionId", "uri"],
10349
- "x-side": "agent",
10350
- "x-method": "document/didSave"
10351
- },
10352
- "DidFocusDocumentNotification": {
10353
- "description": "Notification sent when a file becomes the active editor tab.",
10354
- "type": "object",
10355
- "properties": {
10356
- "sessionId": {
10357
- "description": "The session ID for this notification.",
10358
- "allOf": [
10359
- {
10360
- "$ref": "#/$defs/SessionId"
10361
- }
10362
- ]
10363
- },
10364
- "uri": {
10365
- "description": "The URI of the focused document.",
10366
- "type": "string",
10367
- "format": "uri"
10368
- },
10369
- "version": {
10370
- "description": "The version number of the document.",
10371
- "type": "integer",
10372
- "format": "int64"
10373
- },
10374
- "position": {
10375
- "description": "The current cursor position.",
10376
- "allOf": [
10377
- {
10378
- "$ref": "#/$defs/Position"
10379
- }
10380
- ]
10381
- },
10382
- "visibleRange": {
10383
- "description": "The portion of the file currently visible in the editor viewport.",
10384
- "allOf": [
10385
- {
10386
- "$ref": "#/$defs/Range"
10387
- }
10388
- ]
10389
- },
10390
- "_meta": {
10391
- "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/v2/draft/extensibility)",
10392
- "type": ["object", "null"],
10393
- "x-deserialize-default-on-error": true,
10394
- "additionalProperties": true
10395
- }
10396
- },
10397
- "required": ["sessionId", "uri", "version", "position", "visibleRange"],
10398
- "x-side": "agent",
10399
- "x-method": "document/didFocus"
10400
- },
10401
- "AcceptNesNotification": {
10402
- "description": "Notification sent when a suggestion is accepted.",
10403
- "type": "object",
10404
- "properties": {
10405
- "sessionId": {
10406
- "description": "The session ID for this notification.",
10407
- "allOf": [
10408
- {
10409
- "$ref": "#/$defs/SessionId"
10410
- }
10411
- ]
10412
- },
10413
- "suggestionId": {
10414
- "description": "The ID of the accepted suggestion.",
10415
- "allOf": [
10416
- {
10417
- "$ref": "#/$defs/NesSuggestionId"
10418
- }
10419
- ]
10420
- },
10421
- "_meta": {
10422
- "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/v2/draft/extensibility)",
10423
- "type": ["object", "null"],
10424
- "x-deserialize-default-on-error": true,
10425
- "additionalProperties": true
10426
- }
10427
- },
10428
- "required": ["sessionId", "suggestionId"],
10429
- "x-side": "agent",
10430
- "x-method": "nes/accept"
10431
- },
10432
- "RejectNesNotification": {
10433
- "description": "Notification sent when a suggestion is rejected.",
10434
- "type": "object",
10435
- "properties": {
10436
- "sessionId": {
10437
- "description": "The session ID for this notification.",
10438
- "allOf": [
10439
- {
10440
- "$ref": "#/$defs/SessionId"
10441
- }
10442
- ]
10443
- },
10444
- "suggestionId": {
10445
- "description": "The ID of the rejected suggestion.",
10446
- "allOf": [
10447
- {
10448
- "$ref": "#/$defs/NesSuggestionId"
10449
- }
10450
- ]
10451
- },
10452
- "reason": {
10453
- "description": "The reason for rejection.",
10454
- "anyOf": [
10455
- {
10456
- "$ref": "#/$defs/NesRejectReason"
10457
- },
10458
- {
10459
- "type": "null"
10460
- }
10461
- ],
10462
- "x-deserialize-default-on-error": true
10463
- },
10464
- "_meta": {
10465
- "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/v2/draft/extensibility)",
10466
- "type": ["object", "null"],
10467
- "x-deserialize-default-on-error": true,
10468
- "additionalProperties": true
10469
- }
10470
- },
10471
- "required": ["sessionId", "suggestionId"],
10472
- "x-side": "agent",
10473
- "x-method": "nes/reject"
10474
- },
10475
- "NesRejectReason": {
10476
- "description": "The reason a suggestion was rejected.",
10477
- "anyOf": [
10478
- {
10479
- "description": "The user explicitly dismissed the suggestion.",
10480
- "type": "string",
10481
- "const": "rejected"
10482
- },
10483
- {
10484
- "description": "The suggestion was shown but the user continued editing without interacting.",
10485
- "type": "string",
10486
- "const": "ignored"
10487
- },
10488
- {
10489
- "description": "The suggestion was superseded by a newer suggestion.",
10490
- "type": "string",
10491
- "const": "replaced"
10492
- },
10493
- {
10494
- "description": "The request was cancelled before the agent returned a response.",
10495
- "type": "string",
10496
- "const": "cancelled"
10497
- },
10498
- {
10499
- "title": "Other",
10500
- "description": "Custom or future rejection reason.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
10501
- "type": "string"
10502
- }
10503
- ]
10504
- },
10505
8716
  "MessageMcpNotification": {
10506
8717
  "description": "**UNSTABLE**\n\nNotification for an active request, sent from provider to consumer.\nIncludes subscription acknowledgements and updates.",
10507
8718
  "type": "object",