@tickernelz/paperclip-pro-adapter-utils 2026.1001.2 → 2026.1002.1

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 (34) hide show
  1. package/node_modules/@agentclientprotocol/sdk/dist/acp.d.ts +1 -1
  2. package/node_modules/@agentclientprotocol/sdk/dist/acp.js +1 -1
  3. package/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +1 -1
  4. package/node_modules/@agentclientprotocol/sdk/dist/acp.test.js +8 -31
  5. package/node_modules/@agentclientprotocol/sdk/dist/acp.test.js.map +1 -1
  6. package/node_modules/@agentclientprotocol/sdk/dist/schema/guards.gen.d.ts +60 -0
  7. package/node_modules/@agentclientprotocol/sdk/dist/schema/guards.gen.js +55 -0
  8. package/node_modules/@agentclientprotocol/sdk/dist/schema/guards.gen.js.map +1 -1
  9. package/node_modules/@agentclientprotocol/sdk/dist/schema/index.d.ts +1 -3
  10. package/node_modules/@agentclientprotocol/sdk/dist/schema/index.js +0 -2
  11. package/node_modules/@agentclientprotocol/sdk/dist/schema/index.js.map +1 -1
  12. package/node_modules/@agentclientprotocol/sdk/dist/schema/types.gen.d.ts +428 -114
  13. package/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.d.ts +3516 -1530
  14. package/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.js +256 -78
  15. package/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.js.map +1 -1
  16. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.d.ts +0 -7
  17. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.js +0 -6
  18. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.js.map +1 -1
  19. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.test.js +19 -7
  20. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.test.js.map +1 -1
  21. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.d.ts +52 -36
  22. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.js +62 -35
  23. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/guards.gen.js.map +1 -1
  24. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.d.ts +1 -3
  25. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.js +0 -2
  26. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/index.js.map +1 -1
  27. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/types.gen.d.ts +394 -188
  28. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.d.ts +4535 -464
  29. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.js +236 -117
  30. package/node_modules/@agentclientprotocol/sdk/dist/v2/schema/zod.gen.js.map +1 -1
  31. package/node_modules/@agentclientprotocol/sdk/package.json +1 -1
  32. package/node_modules/@agentclientprotocol/sdk/schema/schema.json +591 -193
  33. package/node_modules/@agentclientprotocol/sdk/schema/v2/schema.unstable.json +547 -303
  34. package/package.json +2 -2
@@ -313,15 +313,6 @@
313
313
  "$ref": "#/$defs/ExtResponse"
314
314
  }
315
315
  ]
316
- },
317
- {
318
- "title": "MessageMcpResponse",
319
- "description": "Successful result returned by an MCP-over-ACP `mcp/message` request.",
320
- "allOf": [
321
- {
322
- "$ref": "#/$defs/MessageMcpResponse"
323
- }
324
- ]
325
316
  }
326
317
  ]
327
318
  }
@@ -449,24 +440,6 @@
449
440
  }
450
441
  ]
451
442
  },
452
- {
453
- "title": "ConnectMcpResponse",
454
- "description": "Successful result returned for a `mcp/connect` request.",
455
- "allOf": [
456
- {
457
- "$ref": "#/$defs/ConnectMcpResponse"
458
- }
459
- ]
460
- },
461
- {
462
- "title": "DisconnectMcpResponse",
463
- "description": "Successful result returned for a `mcp/disconnect` request.",
464
- "allOf": [
465
- {
466
- "$ref": "#/$defs/DisconnectMcpResponse"
467
- }
468
- ]
469
- },
470
443
  {
471
444
  "title": "MessageMcpResponse",
472
445
  "description": "Successful result returned by an MCP-over-ACP `mcp/message` request.",
@@ -600,15 +573,6 @@
600
573
  }
601
574
  ]
602
575
  },
603
- {
604
- "title": "ConnectMcpRequest",
605
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nOpens an MCP-over-ACP connection.",
606
- "allOf": [
607
- {
608
- "$ref": "#/$defs/ConnectMcpRequest"
609
- }
610
- ]
611
- },
612
576
  {
613
577
  "title": "MessageMcpRequest",
614
578
  "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nExchanges an MCP-over-ACP message.",
@@ -618,15 +582,6 @@
618
582
  }
619
583
  ]
620
584
  },
621
- {
622
- "title": "DisconnectMcpRequest",
623
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCloses an MCP-over-ACP connection.",
624
- "allOf": [
625
- {
626
- "$ref": "#/$defs/DisconnectMcpRequest"
627
- }
628
- ]
629
- },
630
585
  {
631
586
  "title": "ExtMethodRequest",
632
587
  "description": "Handles extension method requests from the agent.\n\nAllows the Agent to send an arbitrary request 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)",
@@ -3010,42 +2965,23 @@
3010
2965
  ],
3011
2966
  "required": ["elicitationId", "url"]
3012
2967
  },
3013
- "ConnectMcpRequest": {
3014
- "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 `mcp/connect`.",
2968
+ "MessageMcpRequest": {
2969
+ "description": "**UNSTABLE**\n\nRequest parameters for `mcp/message`, sent from consumer to provider.",
3015
2970
  "type": "object",
3016
2971
  "properties": {
3017
2972
  "serverId": {
3018
- "description": "The ACP MCP server ID that was provided by the component declaring the MCP server.",
2973
+ "description": "The declared ACP MCP server receiving this request.",
3019
2974
  "allOf": [
3020
2975
  {
3021
2976
  "$ref": "#/$defs/McpServerAcpId"
3022
2977
  }
3023
2978
  ]
3024
2979
  },
3025
- "_meta": {
3026
- "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)",
3027
- "type": ["object", "null"],
3028
- "x-deserialize-default-on-error": true,
3029
- "additionalProperties": true
3030
- }
3031
- },
3032
- "required": ["serverId"],
3033
- "x-side": "client",
3034
- "x-method": "mcp/connect"
3035
- },
3036
- "McpServerAcpId": {
3037
- "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 MCP server using the ACP transport.\n\nThe value is opaque and generated by the ACP component providing the MCP server. It is\nused by `mcp/connect` to route connection requests back to the component that declared the\nserver.",
3038
- "type": "string"
3039
- },
3040
- "MessageMcpRequest": {
3041
- "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 `mcp/message`.",
3042
- "type": "object",
3043
- "properties": {
3044
- "connectionId": {
3045
- "description": "The MCP-over-ACP connection this message is sent on.",
2980
+ "requestId": {
2981
+ "description": "The caller-generated identifier for the inner MCP request.",
3046
2982
  "allOf": [
3047
2983
  {
3048
- "$ref": "#/$defs/McpConnectionId"
2984
+ "$ref": "#/$defs/McpRequestId"
3049
2985
  }
3050
2986
  ]
3051
2987
  },
@@ -3054,47 +2990,28 @@
3054
2990
  "type": "string"
3055
2991
  },
3056
2992
  "params": {
3057
- "description": "Optional inner MCP params.\n\nIf omitted or set to `null`, the inner MCP message has no params.",
2993
+ "description": "Optional inner MCP params; null is equivalent to omission.",
3058
2994
  "type": ["object", "null"],
3059
2995
  "additionalProperties": true
3060
2996
  },
3061
2997
  "_meta": {
3062
- "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)",
2998
+ "description": "ACP extension metadata (not inner MCP params._meta); null is equivalent to omission.",
3063
2999
  "type": ["object", "null"],
3064
3000
  "x-deserialize-default-on-error": true,
3065
3001
  "additionalProperties": true
3066
3002
  }
3067
3003
  },
3068
- "required": ["connectionId", "method"],
3069
- "x-side": "both",
3004
+ "required": ["serverId", "requestId", "method"],
3005
+ "x-side": "client",
3070
3006
  "x-method": "mcp/message"
3071
3007
  },
3072
- "McpConnectionId": {
3073
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nA unique identifier for an active MCP-over-ACP connection.",
3008
+ "McpServerAcpId": {
3009
+ "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 MCP server using the ACP transport.\n\nThe value is opaque and generated by the ACP component providing the MCP server. It is\nused by `mcp/message` to route requests to the component that declared the server.",
3074
3010
  "type": "string"
3075
3011
  },
3076
- "DisconnectMcpRequest": {
3077
- "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 `mcp/disconnect`.",
3078
- "type": "object",
3079
- "properties": {
3080
- "connectionId": {
3081
- "description": "The MCP-over-ACP connection to close.",
3082
- "allOf": [
3083
- {
3084
- "$ref": "#/$defs/McpConnectionId"
3085
- }
3086
- ]
3087
- },
3088
- "_meta": {
3089
- "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)",
3090
- "type": ["object", "null"],
3091
- "x-deserialize-default-on-error": true,
3092
- "additionalProperties": true
3093
- }
3094
- },
3095
- "required": ["connectionId"],
3096
- "x-side": "client",
3097
- "x-method": "mcp/disconnect"
3012
+ "McpRequestId": {
3013
+ "description": "**UNSTABLE**\n\nIdentifies an inner MCP request active against a server on this ACP connection.\nGenerated by the caller and preserved unchanged by proxies, independently of\nthe outer ACP JSON-RPC request ID.",
3014
+ "type": "string"
3098
3015
  },
3099
3016
  "ExtRequest": {
3100
3017
  "description": "Allows for sending an arbitrary request 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)"
@@ -3279,15 +3196,6 @@
3279
3196
  "$ref": "#/$defs/ExtResponse"
3280
3197
  }
3281
3198
  ]
3282
- },
3283
- {
3284
- "title": "MessageMcpResponse",
3285
- "description": "Successful result returned by an MCP-over-ACP `mcp/message` request.",
3286
- "allOf": [
3287
- {
3288
- "$ref": "#/$defs/MessageMcpResponse"
3289
- }
3290
- ]
3291
3199
  }
3292
3200
  ]
3293
3201
  }
@@ -4598,6 +4506,15 @@
4598
4506
  "x-deserialize-default-on-error": true,
4599
4507
  "x-deserialize-skip-invalid-items": true
4600
4508
  },
4509
+ "availableCommands": {
4510
+ "description": "Initial commands the agent can execute in this session.\n\nOptional. Omitted or empty means no initial commands are advertised.\nSenders MUST use an array, not `null`; receivers treat `null` like omission.\nLater `available_commands_update` notifications replace this list.",
4511
+ "type": "array",
4512
+ "items": {
4513
+ "$ref": "#/$defs/AvailableCommand"
4514
+ },
4515
+ "x-deserialize-default-on-error": true,
4516
+ "x-deserialize-skip-invalid-items": true
4517
+ },
4601
4518
  "_meta": {
4602
4519
  "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)",
4603
4520
  "type": ["object", "null"],
@@ -4883,6 +4800,104 @@
4883
4800
  },
4884
4801
  "required": ["currentValue"]
4885
4802
  },
4803
+ "AvailableCommand": {
4804
+ "description": "Information about a command.",
4805
+ "type": "object",
4806
+ "properties": {
4807
+ "name": {
4808
+ "description": "Command name (e.g., `create_plan`, `research_codebase`).",
4809
+ "type": "string"
4810
+ },
4811
+ "description": {
4812
+ "description": "Human-readable description of what the command does.",
4813
+ "type": "string"
4814
+ },
4815
+ "input": {
4816
+ "description": "Input for the command if required",
4817
+ "anyOf": [
4818
+ {
4819
+ "$ref": "#/$defs/AvailableCommandInput"
4820
+ },
4821
+ {
4822
+ "type": "null"
4823
+ }
4824
+ ],
4825
+ "x-deserialize-default-on-error": true
4826
+ },
4827
+ "_meta": {
4828
+ "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)",
4829
+ "type": ["object", "null"],
4830
+ "x-deserialize-default-on-error": true,
4831
+ "additionalProperties": true
4832
+ }
4833
+ },
4834
+ "required": ["name", "description"]
4835
+ },
4836
+ "AvailableCommandInput": {
4837
+ "description": "The input specification for a command.",
4838
+ "anyOf": [
4839
+ {
4840
+ "description": "All text that was typed after the command name is provided as input.",
4841
+ "type": "object",
4842
+ "properties": {
4843
+ "type": {
4844
+ "type": "string",
4845
+ "const": "text"
4846
+ }
4847
+ },
4848
+ "required": ["type"],
4849
+ "allOf": [
4850
+ {
4851
+ "$ref": "#/$defs/TextCommandInput"
4852
+ }
4853
+ ]
4854
+ },
4855
+ {
4856
+ "title": "other",
4857
+ "description": "Custom or future command input specification.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.\n\nClients that do not understand this input type should preserve the raw\npayload when storing, replaying, proxying, or forwarding command\nmetadata, and otherwise ignore the input specification or display the\ncommand without structured input.",
4858
+ "type": "object",
4859
+ "properties": {
4860
+ "type": {
4861
+ "description": "Custom or future command input type.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
4862
+ "type": "string"
4863
+ }
4864
+ },
4865
+ "required": ["type"],
4866
+ "not": {
4867
+ "anyOf": [
4868
+ {
4869
+ "type": "object",
4870
+ "properties": {
4871
+ "type": {
4872
+ "type": "string",
4873
+ "const": "text"
4874
+ }
4875
+ },
4876
+ "required": ["type"]
4877
+ }
4878
+ ]
4879
+ },
4880
+ "additionalProperties": true
4881
+ }
4882
+ ]
4883
+ },
4884
+ "TextCommandInput": {
4885
+ "description": "All text that was typed after the command name is provided as input.",
4886
+ "type": "object",
4887
+ "properties": {
4888
+ "hint": {
4889
+ "description": "A hint to display when the input hasn't been provided yet",
4890
+ "type": "string"
4891
+ },
4892
+ "_meta": {
4893
+ "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)",
4894
+ "type": ["object", "null"],
4895
+ "x-deserialize-default-on-error": true,
4896
+ "additionalProperties": true
4897
+ }
4898
+ },
4899
+ "required": ["hint"]
4900
+ },
4886
4901
  "ListSessionsResponse": {
4887
4902
  "description": "Response from listing sessions.",
4888
4903
  "type": "object",
@@ -5007,6 +5022,15 @@
5007
5022
  "x-deserialize-default-on-error": true,
5008
5023
  "x-deserialize-skip-invalid-items": true
5009
5024
  },
5025
+ "availableCommands": {
5026
+ "description": "Initial commands the agent can execute in this session.\n\nOptional. Omitted or empty means no initial commands are advertised.\nSenders MUST use an array, not `null`; receivers treat `null` like omission.\nLater `available_commands_update` notifications replace this list.",
5027
+ "type": "array",
5028
+ "items": {
5029
+ "$ref": "#/$defs/AvailableCommand"
5030
+ },
5031
+ "x-deserialize-default-on-error": true,
5032
+ "x-deserialize-skip-invalid-items": true
5033
+ },
5010
5034
  "_meta": {
5011
5035
  "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)",
5012
5036
  "type": ["object", "null"],
@@ -5031,6 +5055,15 @@
5031
5055
  "x-deserialize-default-on-error": true,
5032
5056
  "x-deserialize-skip-invalid-items": true
5033
5057
  },
5058
+ "availableCommands": {
5059
+ "description": "Initial commands the agent can execute in this session.\n\nOptional. Omitted or empty means no initial commands are advertised.\nSenders MUST use an array, not `null`; receivers treat `null` like omission.\nLater `available_commands_update` notifications replace this list.",
5060
+ "type": "array",
5061
+ "items": {
5062
+ "$ref": "#/$defs/AvailableCommand"
5063
+ },
5064
+ "x-deserialize-default-on-error": true,
5065
+ "x-deserialize-skip-invalid-items": true
5066
+ },
5034
5067
  "_meta": {
5035
5068
  "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)",
5036
5069
  "type": ["object", "null"],
@@ -5541,11 +5574,6 @@
5541
5574
  "ExtResponse": {
5542
5575
  "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)"
5543
5576
  },
5544
- "MessageMcpResponse": {
5545
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nResponse to `mcp/message`.\n\nThis is the inner MCP response result payload. Any JSON value is valid.",
5546
- "x-side": "both",
5547
- "x-method": "mcp/message"
5548
- },
5549
5577
  "Error": {
5550
5578
  "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)",
5551
5579
  "type": "object",
@@ -5668,15 +5696,6 @@
5668
5696
  }
5669
5697
  ]
5670
5698
  },
5671
- {
5672
- "title": "MessageMcpNotification",
5673
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nReceives an MCP-over-ACP notification.",
5674
- "allOf": [
5675
- {
5676
- "$ref": "#/$defs/MessageMcpNotification"
5677
- }
5678
- ]
5679
- },
5680
5699
  {
5681
5700
  "title": "ExtNotification",
5682
5701
  "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)",
@@ -6051,6 +6070,54 @@
6051
6070
  }
6052
6071
  ]
6053
6072
  },
6073
+ {
6074
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nAnnounces a child session created and owned by this session, or updates\nthat ownership association's metadata.",
6075
+ "type": "object",
6076
+ "properties": {
6077
+ "sessionUpdate": {
6078
+ "type": "string",
6079
+ "const": "subagent_update"
6080
+ }
6081
+ },
6082
+ "required": ["sessionUpdate"],
6083
+ "allOf": [
6084
+ {
6085
+ "$ref": "#/$defs/SubagentUpdate"
6086
+ }
6087
+ ]
6088
+ },
6089
+ {
6090
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nA message upsert observed in this session's transcript, sent to or\nreceived from another session.",
6091
+ "type": "object",
6092
+ "properties": {
6093
+ "sessionUpdate": {
6094
+ "type": "string",
6095
+ "const": "session_message"
6096
+ }
6097
+ },
6098
+ "required": ["sessionUpdate"],
6099
+ "allOf": [
6100
+ {
6101
+ "$ref": "#/$defs/SessionMessage"
6102
+ }
6103
+ ]
6104
+ },
6105
+ {
6106
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nOne content block appended to a sent or received session message.",
6107
+ "type": "object",
6108
+ "properties": {
6109
+ "sessionUpdate": {
6110
+ "type": "string",
6111
+ "const": "session_message_chunk"
6112
+ }
6113
+ },
6114
+ "required": ["sessionUpdate"],
6115
+ "allOf": [
6116
+ {
6117
+ "$ref": "#/$defs/SessionMessageChunk"
6118
+ }
6119
+ ]
6120
+ },
6054
6121
  {
6055
6122
  "title": "other",
6056
6123
  "description": "Custom or future session update.\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 update type should preserve the\nraw payload when storing, replaying, proxying, or forwarding session\nhistory, and otherwise ignore it or display it generically.",
@@ -6263,12 +6330,42 @@
6263
6330
  }
6264
6331
  },
6265
6332
  "required": ["sessionUpdate"]
6266
- }
6267
- ]
6268
- },
6269
- "additionalProperties": true
6270
- }
6271
- ]
6333
+ },
6334
+ {
6335
+ "type": "object",
6336
+ "properties": {
6337
+ "sessionUpdate": {
6338
+ "type": "string",
6339
+ "const": "subagent_update"
6340
+ }
6341
+ },
6342
+ "required": ["sessionUpdate"]
6343
+ },
6344
+ {
6345
+ "type": "object",
6346
+ "properties": {
6347
+ "sessionUpdate": {
6348
+ "type": "string",
6349
+ "const": "session_message"
6350
+ }
6351
+ },
6352
+ "required": ["sessionUpdate"]
6353
+ },
6354
+ {
6355
+ "type": "object",
6356
+ "properties": {
6357
+ "sessionUpdate": {
6358
+ "type": "string",
6359
+ "const": "session_message_chunk"
6360
+ }
6361
+ },
6362
+ "required": ["sessionUpdate"]
6363
+ }
6364
+ ]
6365
+ },
6366
+ "additionalProperties": true
6367
+ }
6368
+ ]
6272
6369
  },
6273
6370
  "ContentChunk": {
6274
6371
  "description": "A streamed item of message content.",
@@ -6536,6 +6633,18 @@
6536
6633
  }
6537
6634
  }
6538
6635
  },
6636
+ "UnknownStateUpdate": {
6637
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nThe Agent cannot currently determine foreground activity.\n\nReport this when activity becomes unobservable, not merely because the session\nhas been quiet. The Client MUST stop presenting the previous state as confirmed\ncurrent activity, but may retain it as last known. A later state replaces this\nsnapshot normally.\n\nThis is not a task outcome or session closure. It does not cancel work, resolve\npending requests, or revoke capabilities; capabilities are updated separately.",
6638
+ "type": "object",
6639
+ "properties": {
6640
+ "_meta": {
6641
+ "description": "The _meta property is reserved by ACP for additional metadata.\nImplementations MUST NOT make assumptions about values at these keys.\nOptional; omitted and `null` mean no metadata for this state snapshot.",
6642
+ "type": ["object", "null"],
6643
+ "x-deserialize-default-on-error": true,
6644
+ "additionalProperties": true
6645
+ }
6646
+ }
6647
+ },
6539
6648
  "StateUpdate": {
6540
6649
  "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.",
6541
6650
  "anyOf": [
@@ -6587,6 +6696,22 @@
6587
6696
  }
6588
6697
  ]
6589
6698
  },
6699
+ {
6700
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nThe Agent cannot currently determine foreground activity.\nThis replaces previously confirmed activity without ending the work or session.",
6701
+ "type": "object",
6702
+ "properties": {
6703
+ "state": {
6704
+ "type": "string",
6705
+ "const": "unknown"
6706
+ }
6707
+ },
6708
+ "required": ["state"],
6709
+ "allOf": [
6710
+ {
6711
+ "$ref": "#/$defs/UnknownStateUpdate"
6712
+ }
6713
+ ]
6714
+ },
6590
6715
  {
6591
6716
  "title": "other",
6592
6717
  "description": "Custom or future session state.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
@@ -6629,6 +6754,16 @@
6629
6754
  }
6630
6755
  },
6631
6756
  "required": ["state"]
6757
+ },
6758
+ {
6759
+ "type": "object",
6760
+ "properties": {
6761
+ "state": {
6762
+ "type": "string",
6763
+ "const": "unknown"
6764
+ }
6765
+ },
6766
+ "required": ["state"]
6632
6767
  }
6633
6768
  ]
6634
6769
  },
@@ -7118,104 +7253,6 @@
7118
7253
  },
7119
7254
  "required": ["planId"]
7120
7255
  },
7121
- "AvailableCommand": {
7122
- "description": "Information about a command.",
7123
- "type": "object",
7124
- "properties": {
7125
- "name": {
7126
- "description": "Command name (e.g., `create_plan`, `research_codebase`).",
7127
- "type": "string"
7128
- },
7129
- "description": {
7130
- "description": "Human-readable description of what the command does.",
7131
- "type": "string"
7132
- },
7133
- "input": {
7134
- "description": "Input for the command if required",
7135
- "anyOf": [
7136
- {
7137
- "$ref": "#/$defs/AvailableCommandInput"
7138
- },
7139
- {
7140
- "type": "null"
7141
- }
7142
- ],
7143
- "x-deserialize-default-on-error": true
7144
- },
7145
- "_meta": {
7146
- "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)",
7147
- "type": ["object", "null"],
7148
- "x-deserialize-default-on-error": true,
7149
- "additionalProperties": true
7150
- }
7151
- },
7152
- "required": ["name", "description"]
7153
- },
7154
- "AvailableCommandInput": {
7155
- "description": "The input specification for a command.",
7156
- "anyOf": [
7157
- {
7158
- "description": "All text that was typed after the command name is provided as input.",
7159
- "type": "object",
7160
- "properties": {
7161
- "type": {
7162
- "type": "string",
7163
- "const": "text"
7164
- }
7165
- },
7166
- "required": ["type"],
7167
- "allOf": [
7168
- {
7169
- "$ref": "#/$defs/TextCommandInput"
7170
- }
7171
- ]
7172
- },
7173
- {
7174
- "title": "other",
7175
- "description": "Custom or future command input specification.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.\n\nClients that do not understand this input type should preserve the raw\npayload when storing, replaying, proxying, or forwarding command\nmetadata, and otherwise ignore the input specification or display the\ncommand without structured input.",
7176
- "type": "object",
7177
- "properties": {
7178
- "type": {
7179
- "description": "Custom or future command input type.\n\nValues beginning with `_` are reserved for implementation-specific\nextensions. Unknown values that do not begin with `_` are reserved for\nfuture ACP variants.",
7180
- "type": "string"
7181
- }
7182
- },
7183
- "required": ["type"],
7184
- "not": {
7185
- "anyOf": [
7186
- {
7187
- "type": "object",
7188
- "properties": {
7189
- "type": {
7190
- "type": "string",
7191
- "const": "text"
7192
- }
7193
- },
7194
- "required": ["type"]
7195
- }
7196
- ]
7197
- },
7198
- "additionalProperties": true
7199
- }
7200
- ]
7201
- },
7202
- "TextCommandInput": {
7203
- "description": "All text that was typed after the command name is provided as input.",
7204
- "type": "object",
7205
- "properties": {
7206
- "hint": {
7207
- "description": "A hint to display when the input hasn't been provided yet",
7208
- "type": "string"
7209
- },
7210
- "_meta": {
7211
- "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)",
7212
- "type": ["object", "null"],
7213
- "x-deserialize-default-on-error": true,
7214
- "additionalProperties": true
7215
- }
7216
- },
7217
- "required": ["hint"]
7218
- },
7219
7256
  "AvailableCommandsUpdate": {
7220
7257
  "description": "Available commands are ready or have changed",
7221
7258
  "type": "object",
@@ -7505,61 +7542,226 @@
7505
7542
  },
7506
7543
  "required": ["compactionId", "content"]
7507
7544
  },
7508
- "CompleteElicitationNotification": {
7509
- "description": "Notification sent by the agent when a URL-based elicitation is complete.",
7545
+ "SubagentSessionCapabilities": {
7546
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nClient-initiated session mutations permitted for a specific subagent session.\n\nA mutation requires an explicit per-child capability; support for the method\non ordinary sessions does not grant support on a child.",
7510
7547
  "type": "object",
7511
7548
  "properties": {
7512
- "elicitationId": {
7513
- "description": "The ID of the elicitation that completed.",
7549
+ "cancel": {
7550
+ "description": "Permits the client to cancel this child's current work without ending\nthe session. Omitted or `null` means unsupported; an object (including\n`{}`) means supported.",
7551
+ "anyOf": [
7552
+ {
7553
+ "$ref": "#/$defs/SessionCancelCapabilities"
7554
+ },
7555
+ {
7556
+ "type": "null"
7557
+ }
7558
+ ],
7559
+ "x-deserialize-default-on-error": true
7560
+ },
7561
+ "_meta": {
7562
+ "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.",
7563
+ "type": ["object", "null"],
7564
+ "x-deserialize-default-on-error": true,
7565
+ "additionalProperties": true
7566
+ }
7567
+ }
7568
+ },
7569
+ "SessionCancelCapabilities": {
7570
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nCapability to cancel work in a subagent session without ending that session.\n\nSupplying `{}` advertises support; an omitted or `null` `cancel` does not.",
7571
+ "type": "object",
7572
+ "properties": {
7573
+ "_meta": {
7574
+ "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)",
7575
+ "type": ["object", "null"],
7576
+ "x-deserialize-default-on-error": true,
7577
+ "additionalProperties": true
7578
+ }
7579
+ }
7580
+ },
7581
+ "SubagentUpdate": {
7582
+ "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.",
7583
+ "type": "object",
7584
+ "properties": {
7585
+ "sessionId": {
7586
+ "description": "The opaque session ID identifying the child in all ACP messages.",
7514
7587
  "allOf": [
7515
7588
  {
7516
- "$ref": "#/$defs/ElicitationId"
7589
+ "$ref": "#/$defs/SessionId"
7517
7590
  }
7518
7591
  ]
7519
7592
  },
7593
+ "title": {
7594
+ "description": "The parent's human-readable display title for this child. It need not be unique.\n\nOptional and nullable. Omitted means unchanged; `null` clears it. If no\ntitle is set, the Client chooses a fallback presentation.",
7595
+ "type": ["string", "null"],
7596
+ "x-deserialize-default-on-error": true
7597
+ },
7598
+ "description": {
7599
+ "description": "The parent's human-readable description of the child's role or purpose.\n\nOptional and nullable. Omitted means unchanged; `null` clears it. This is\ncurrent display metadata, not the history of instructions sent to the child.",
7600
+ "type": ["string", "null"],
7601
+ "x-deserialize-default-on-error": true
7602
+ },
7603
+ "capabilities": {
7604
+ "description": "Client-initiated session mutations permitted for this subagent session.\n\nRead-only operations retain their normal protocol semantics and\ncapability requirements.",
7605
+ "anyOf": [
7606
+ {
7607
+ "$ref": "#/$defs/SubagentSessionCapabilities"
7608
+ },
7609
+ {
7610
+ "type": "null"
7611
+ }
7612
+ ],
7613
+ "x-deserialize-default-on-error": true
7614
+ },
7615
+ "state": {
7616
+ "description": "The child's current foreground state, mirrored onto its parent association.\n\nOptional and nullable. Omitted means unchanged; `null` removes the\ncurrent report and leaves activity unconfirmed (not idle or cancelled).\nA concrete [`StateUpdate`] replaces the entire previous snapshot.",
7617
+ "anyOf": [
7618
+ {
7619
+ "$ref": "#/$defs/StateUpdate"
7620
+ },
7621
+ {
7622
+ "type": "null"
7623
+ }
7624
+ ],
7625
+ "x-deserialize-default-on-error": true
7626
+ },
7520
7627
  "_meta": {
7521
- "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)",
7628
+ "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)",
7522
7629
  "type": ["object", "null"],
7523
7630
  "x-deserialize-default-on-error": true,
7524
7631
  "additionalProperties": true
7525
7632
  }
7526
7633
  },
7527
- "required": ["elicitationId"],
7528
- "x-side": "client",
7529
- "x-method": "elicitation/complete"
7634
+ "required": ["sessionId"]
7530
7635
  },
7531
- "MessageMcpNotification": {
7532
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nNotification parameters for `mcp/message`.\n\nThis is used when the wrapped MCP message is a notification and the outer JSON-RPC\nenvelope has no `id`.",
7636
+ "SessionMessage": {
7637
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nAn upsert for an inter-session message.",
7533
7638
  "type": "object",
7534
7639
  "properties": {
7535
- "connectionId": {
7536
- "description": "The MCP-over-ACP connection this message is sent on.",
7640
+ "messageId": {
7641
+ "description": "Identifier of this message within the enclosing session's transcript.",
7537
7642
  "allOf": [
7538
7643
  {
7539
- "$ref": "#/$defs/McpConnectionId"
7644
+ "$ref": "#/$defs/MessageId"
7540
7645
  }
7541
7646
  ]
7542
7647
  },
7543
- "method": {
7544
- "description": "The inner MCP method name.",
7545
- "type": "string"
7648
+ "senderSessionId": {
7649
+ "description": "Optional sending session identity; omission or `null` retains a known value.",
7650
+ "anyOf": [
7651
+ {
7652
+ "$ref": "#/$defs/SessionId"
7653
+ },
7654
+ {
7655
+ "type": "null"
7656
+ }
7657
+ ],
7658
+ "x-deserialize-default-on-error": true
7546
7659
  },
7547
- "params": {
7548
- "description": "Optional inner MCP params.\n\nIf omitted or set to `null`, the inner MCP message has no params.",
7660
+ "recipientSessionId": {
7661
+ "description": "Optional receiving session identity; omission or `null` retains a known value.",
7662
+ "anyOf": [
7663
+ {
7664
+ "$ref": "#/$defs/SessionId"
7665
+ },
7666
+ {
7667
+ "type": "null"
7668
+ }
7669
+ ],
7670
+ "x-deserialize-default-on-error": true
7671
+ },
7672
+ "content": {
7673
+ "description": "Omitted leaves content unchanged; `null` clears it; a concrete array\nreplaces the whole content collection.",
7674
+ "type": ["array", "null"],
7675
+ "items": {
7676
+ "$ref": "#/$defs/ContentBlock"
7677
+ },
7678
+ "x-deserialize-default-on-error": true,
7679
+ "x-deserialize-skip-invalid-items": true
7680
+ },
7681
+ "_meta": {
7682
+ "description": "Omitted leaves metadata unchanged; `null` clears it.\n\nImplementations MUST NOT make assumptions about values in `_meta`.",
7683
+ "type": ["object", "null"],
7684
+ "x-deserialize-default-on-error": true,
7685
+ "additionalProperties": true
7686
+ }
7687
+ },
7688
+ "required": ["messageId"]
7689
+ },
7690
+ "SessionMessageChunk": {
7691
+ "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nA streamed content block of an inter-session message.",
7692
+ "type": "object",
7693
+ "properties": {
7694
+ "messageId": {
7695
+ "description": "Identifier of this message within the enclosing session's transcript.",
7696
+ "allOf": [
7697
+ {
7698
+ "$ref": "#/$defs/MessageId"
7699
+ }
7700
+ ]
7701
+ },
7702
+ "senderSessionId": {
7703
+ "description": "Optional sending session identity; omission or `null` retains a known value.",
7704
+ "anyOf": [
7705
+ {
7706
+ "$ref": "#/$defs/SessionId"
7707
+ },
7708
+ {
7709
+ "type": "null"
7710
+ }
7711
+ ],
7712
+ "x-deserialize-default-on-error": true
7713
+ },
7714
+ "recipientSessionId": {
7715
+ "description": "Optional receiving session identity; omission or `null` retains a known value.",
7716
+ "anyOf": [
7717
+ {
7718
+ "$ref": "#/$defs/SessionId"
7719
+ },
7720
+ {
7721
+ "type": "null"
7722
+ }
7723
+ ],
7724
+ "x-deserialize-default-on-error": true
7725
+ },
7726
+ "content": {
7727
+ "description": "A single content block appended to the message.",
7728
+ "allOf": [
7729
+ {
7730
+ "$ref": "#/$defs/ContentBlock"
7731
+ }
7732
+ ]
7733
+ },
7734
+ "_meta": {
7735
+ "description": "Optional and nullable chunk-scoped metadata; omitted or `null` means none.\n\nImplementations MUST NOT make assumptions about values in `_meta`.",
7549
7736
  "type": ["object", "null"],
7550
7737
  "x-deserialize-default-on-error": true,
7551
7738
  "additionalProperties": true
7739
+ }
7740
+ },
7741
+ "required": ["messageId", "content"]
7742
+ },
7743
+ "CompleteElicitationNotification": {
7744
+ "description": "Notification sent by the agent when a URL-based elicitation is complete.",
7745
+ "type": "object",
7746
+ "properties": {
7747
+ "elicitationId": {
7748
+ "description": "The ID of the elicitation that completed.",
7749
+ "allOf": [
7750
+ {
7751
+ "$ref": "#/$defs/ElicitationId"
7752
+ }
7753
+ ]
7552
7754
  },
7553
7755
  "_meta": {
7554
- "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)",
7756
+ "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)",
7555
7757
  "type": ["object", "null"],
7556
7758
  "x-deserialize-default-on-error": true,
7557
7759
  "additionalProperties": true
7558
7760
  }
7559
7761
  },
7560
- "required": ["connectionId", "method"],
7561
- "x-side": "both",
7562
- "x-method": "mcp/message"
7762
+ "required": ["elicitationId"],
7763
+ "x-side": "client",
7764
+ "x-method": "elicitation/complete"
7563
7765
  },
7564
7766
  "ExtNotification": {
7565
7767
  "description": "Allows 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)"
@@ -7739,15 +7941,6 @@
7739
7941
  }
7740
7942
  ]
7741
7943
  },
7742
- {
7743
- "title": "MessageMcpRequest",
7744
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nExchanges an MCP-over-ACP message.",
7745
- "allOf": [
7746
- {
7747
- "$ref": "#/$defs/MessageMcpRequest"
7748
- }
7749
- ]
7750
- },
7751
7944
  {
7752
7945
  "title": "ExtMethodRequest",
7753
7946
  "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)",
@@ -8355,7 +8548,7 @@
8355
8548
  "required": ["name", "url"]
8356
8549
  },
8357
8550
  "McpServerAcp": {
8358
- "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/connect`, `mcp/message`, and `mcp/disconnect`.",
8551
+ "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`.",
8359
8552
  "type": "object",
8360
8553
  "properties": {
8361
8554
  "name": {
@@ -9356,24 +9549,6 @@
9356
9549
  }
9357
9550
  ]
9358
9551
  },
9359
- {
9360
- "title": "ConnectMcpResponse",
9361
- "description": "Successful result returned for a `mcp/connect` request.",
9362
- "allOf": [
9363
- {
9364
- "$ref": "#/$defs/ConnectMcpResponse"
9365
- }
9366
- ]
9367
- },
9368
- {
9369
- "title": "DisconnectMcpResponse",
9370
- "description": "Successful result returned for a `mcp/disconnect` request.",
9371
- "allOf": [
9372
- {
9373
- "$ref": "#/$defs/DisconnectMcpResponse"
9374
- }
9375
- ]
9376
- },
9377
9552
  {
9378
9553
  "title": "MessageMcpResponse",
9379
9554
  "description": "Successful result returned by an MCP-over-ACP `mcp/message` request.",
@@ -9686,42 +9861,71 @@
9686
9861
  }
9687
9862
  }
9688
9863
  },
9689
- "ConnectMcpResponse": {
9690
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nResponse to `mcp/connect`.",
9691
- "type": "object",
9692
- "properties": {
9693
- "connectionId": {
9694
- "description": "The unique identifier for this MCP-over-ACP connection.",
9695
- "allOf": [
9696
- {
9697
- "$ref": "#/$defs/McpConnectionId"
9864
+ "MessageMcpResponse": {
9865
+ "description": "**UNSTABLE**\n\nThe successful outer ACP `mcp/message` response carries exactly one\ninner MCP outcome: an opaque result (including JSON null), or an MCP error.\nOuter ACP errors are reserved for binding and runtime failures.\n\nBoth branches require their carrier key. An error must be a non-null object.\nUnknown outer fields are ignored; inner result and error fields are preserved.\nCarrier `_meta` is optional; null or invalid values are treated as absent.\nSenders must include exactly one outcome; receivers prefer `result` if both are present.",
9866
+ "anyOf": [
9867
+ {
9868
+ "title": "Result",
9869
+ "description": "An opaque inner MCP result.",
9870
+ "type": "object",
9871
+ "properties": {
9872
+ "result": {
9873
+ "description": "Required, even if JSON null."
9874
+ },
9875
+ "_meta": {
9876
+ "description": "Optional ACP carrier metadata.",
9877
+ "type": ["object", "null"],
9878
+ "x-deserialize-default-on-error": true,
9879
+ "additionalProperties": true
9698
9880
  }
9699
- ]
9881
+ },
9882
+ "required": ["result"]
9700
9883
  },
9701
- "_meta": {
9702
- "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)",
9703
- "type": ["object", "null"],
9704
- "x-deserialize-default-on-error": true,
9705
- "additionalProperties": true
9884
+ {
9885
+ "title": "Error",
9886
+ "description": "A structured inner MCP error.",
9887
+ "type": "object",
9888
+ "properties": {
9889
+ "error": {
9890
+ "description": "Required, non-null MCP error object.",
9891
+ "allOf": [
9892
+ {
9893
+ "$ref": "#/$defs/McpError"
9894
+ }
9895
+ ]
9896
+ },
9897
+ "_meta": {
9898
+ "description": "Optional ACP carrier metadata.",
9899
+ "type": ["object", "null"],
9900
+ "x-deserialize-default-on-error": true,
9901
+ "additionalProperties": true
9902
+ }
9903
+ },
9904
+ "required": ["error"]
9706
9905
  }
9707
- },
9708
- "required": ["connectionId"],
9906
+ ],
9709
9907
  "x-side": "client",
9710
- "x-method": "mcp/connect"
9908
+ "x-method": "mcp/message"
9711
9909
  },
9712
- "DisconnectMcpResponse": {
9713
- "description": "**UNSTABLE**\n\nThis capability is not part of the spec yet, and may be removed or changed at any point.\n\nResponse to `mcp/disconnect`.",
9910
+ "McpError": {
9911
+ "description": "**UNSTABLE**\n\nAn inner MCP error, distinct from an outer ACP binding or runtime error.\n\n`code` and `message` are required and non-null. `data` is optional;\nexplicit `null` is preserved separately from an omitted key.",
9714
9912
  "type": "object",
9715
9913
  "properties": {
9716
- "_meta": {
9717
- "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)",
9718
- "type": ["object", "null"],
9719
- "x-deserialize-default-on-error": true,
9720
- "additionalProperties": true
9914
+ "code": {
9915
+ "description": "Inner MCP error code; never an ACP error code.",
9916
+ "type": "integer",
9917
+ "format": "int32"
9918
+ },
9919
+ "message": {
9920
+ "description": "Inner MCP error message.",
9921
+ "type": "string"
9922
+ },
9923
+ "data": {
9924
+ "description": "Optional error data; explicit null is retained."
9721
9925
  }
9722
9926
  },
9723
- "x-side": "client",
9724
- "x-method": "mcp/disconnect"
9927
+ "required": ["code", "message"],
9928
+ "additionalProperties": true
9725
9929
  },
9726
9930
  "ClientNotification": {
9727
9931
  "description": "A JSON-RPC notification object.",
@@ -10181,6 +10385,46 @@
10181
10385
  }
10182
10386
  ]
10183
10387
  },
10388
+ "MessageMcpNotification": {
10389
+ "description": "**UNSTABLE**\n\nNotification for an active request, sent from provider to consumer.\nIncludes subscription acknowledgements and updates.",
10390
+ "type": "object",
10391
+ "properties": {
10392
+ "serverId": {
10393
+ "description": "The declared ACP MCP server handling the associated request.",
10394
+ "allOf": [
10395
+ {
10396
+ "$ref": "#/$defs/McpServerAcpId"
10397
+ }
10398
+ ]
10399
+ },
10400
+ "requestId": {
10401
+ "description": "The identifier of the active inner MCP request.",
10402
+ "allOf": [
10403
+ {
10404
+ "$ref": "#/$defs/McpRequestId"
10405
+ }
10406
+ ]
10407
+ },
10408
+ "method": {
10409
+ "description": "The inner MCP method name.",
10410
+ "type": "string"
10411
+ },
10412
+ "params": {
10413
+ "description": "Optional inner MCP params; null is equivalent to omission.",
10414
+ "type": ["object", "null"],
10415
+ "additionalProperties": true
10416
+ },
10417
+ "_meta": {
10418
+ "description": "ACP extension metadata (not inner MCP params._meta); null is equivalent to omission.",
10419
+ "type": ["object", "null"],
10420
+ "x-deserialize-default-on-error": true,
10421
+ "additionalProperties": true
10422
+ }
10423
+ },
10424
+ "required": ["serverId", "requestId", "method"],
10425
+ "x-side": "agent",
10426
+ "x-method": "mcp/message"
10427
+ },
10184
10428
  "ProtocolLevelNotification": {
10185
10429
  "description": "A JSON-RPC notification object.",
10186
10430
  "type": "object",