@adcp/sdk 14.0.0-beta.0 → 14.0.0-beta.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 (140) hide show
  1. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-request.json +610 -0
  2. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-response.json +1055 -0
  3. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-request.json +629 -0
  4. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-response.json +1558 -0
  5. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-request.json +702 -0
  6. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-response.json +309 -0
  7. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-request.json +1113 -0
  8. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-response.json +1567 -0
  9. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-request.json +662 -0
  10. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-response.json +921 -0
  11. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-request.json +992 -0
  12. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-response.json +5965 -0
  13. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-request.json +3936 -0
  14. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-response.json +3859 -0
  15. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/manifest.json +206 -0
  16. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-request.json +601 -0
  17. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-response.json +4799 -0
  18. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-request.json +4107 -0
  19. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-response.json +4799 -0
  20. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-request.json +3365 -0
  21. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-response.json +656 -0
  22. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-request.json +334 -0
  23. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-response.json +271 -0
  24. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-request.json +1236 -0
  25. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-response.json +2861 -0
  26. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-request.json +678 -0
  27. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-response.json +10861 -0
  28. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-request.json +4229 -0
  29. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-response.json +3824 -0
  30. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-request.json +421 -0
  31. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-response.json +394 -0
  32. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/media-buy-delivery-webhook-result.json +1366 -0
  33. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-request.json +884 -0
  34. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-response.json +422 -0
  35. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-request.json +4335 -0
  36. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-response.json +7328 -0
  37. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-request.json +4307 -0
  38. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-response.json +7105 -0
  39. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-request.json +760 -0
  40. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-response.json +541 -0
  41. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-request.json +1142 -0
  42. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-response.json +1153 -0
  43. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-request.json +743 -0
  44. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-response.json +619 -0
  45. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/get-account-financials-request.json +544 -0
  46. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/list-accounts-request.json +557 -0
  47. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/report-usage-request.json +617 -0
  48. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-accounts-request.json +984 -0
  49. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-governance-request.json +581 -0
  50. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/list-creatives-request.json +878 -0
  51. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/sync-creatives-request.json +3456 -0
  52. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/manifest.json +175 -0
  53. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/accept-proposal-request.json +498 -0
  54. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/buy-products-request.json +3675 -0
  55. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/control-media-buy-request.json +3030 -0
  56. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/decline-proposals-request.json +282 -0
  57. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buy-delivery-request.json +1136 -0
  58. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buys-request.json +597 -0
  59. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/list-products-request.json +3780 -0
  60. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/log-event-request.json +386 -0
  61. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/provide-performance-feedback-request.json +784 -0
  62. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/refine-proposals-request.json +3878 -0
  63. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/request-proposals-request.json +3852 -0
  64. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-audiences-request.json +682 -0
  65. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-catalogs-request.json +1016 -0
  66. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-event-sources-request.json +660 -0
  67. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-adcp-capabilities-request.json +51 -0
  68. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-task-status-request.json +534 -0
  69. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/list-tasks-request.json +692 -0
  70. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/sync-agent-notification-configs-request.json +129 -0
  71. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-request.json +58 -0
  72. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-response.json +8069 -0
  73. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-request.json +601 -0
  74. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-response.json +612 -0
  75. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-request.json +775 -0
  76. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-response.json +483 -0
  77. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-request.json +155 -0
  78. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-response.json +382 -0
  79. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  80. package/dist/lib/server/create-adcp-server.d.mts +27 -0
  81. package/dist/lib/server/create-adcp-server.d.ts +27 -0
  82. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  83. package/dist/lib/server/create-adcp-server.js +120 -4
  84. package/dist/lib/server/create-adcp-server.js.map +1 -1
  85. package/dist/lib/server/create-adcp-server.mjs +121 -6
  86. package/dist/lib/server/create-adcp-server.mjs.map +1 -1
  87. package/dist/lib/server/decisioning/context.d.mts +6 -0
  88. package/dist/lib/server/decisioning/context.d.ts +6 -0
  89. package/dist/lib/server/decisioning/context.d.ts.map +1 -1
  90. package/dist/lib/server/decisioning/context.js.map +1 -1
  91. package/dist/lib/server/decisioning/index.d.mts +1 -1
  92. package/dist/lib/server/decisioning/index.d.ts +1 -1
  93. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  94. package/dist/lib/server/decisioning/index.js.map +1 -1
  95. package/dist/lib/server/decisioning/index.mjs.map +1 -1
  96. package/dist/lib/server/decisioning/platform.d.mts +21 -6
  97. package/dist/lib/server/decisioning/platform.d.ts +21 -6
  98. package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
  99. package/dist/lib/server/decisioning/platform.js.map +1 -1
  100. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  101. package/dist/lib/server/decisioning/runtime/from-platform.js +201 -18
  102. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  103. package/dist/lib/server/decisioning/runtime/from-platform.mjs +203 -19
  104. package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
  105. package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
  106. package/dist/lib/server/decisioning/runtime/to-context.js +6 -0
  107. package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
  108. package/dist/lib/server/decisioning/runtime/to-context.mjs +6 -0
  109. package/dist/lib/server/decisioning/runtime/to-context.mjs.map +1 -1
  110. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
  111. package/dist/lib/server/decisioning/runtime/validate-platform.js +35 -4
  112. package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
  113. package/dist/lib/server/decisioning/runtime/validate-platform.mjs +35 -4
  114. package/dist/lib/server/decisioning/runtime/validate-platform.mjs.map +1 -1
  115. package/dist/lib/server/decisioning/specialisms/sales.d.mts +39 -0
  116. package/dist/lib/server/decisioning/specialisms/sales.d.ts +39 -0
  117. package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
  118. package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
  119. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  120. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  121. package/dist/lib/validation/schema-loader.d.mts +2 -0
  122. package/dist/lib/validation/schema-loader.d.ts +2 -0
  123. package/dist/lib/validation/schema-loader.d.ts.map +1 -1
  124. package/dist/lib/validation/schema-loader.js +31 -0
  125. package/dist/lib/validation/schema-loader.js.map +1 -1
  126. package/dist/lib/validation/schema-loader.mjs +30 -0
  127. package/dist/lib/validation/schema-loader.mjs.map +1 -1
  128. package/dist/lib/version.d.mts +3 -3
  129. package/dist/lib/version.d.ts +3 -3
  130. package/dist/lib/version.js +3 -3
  131. package/dist/lib/version.js.map +1 -1
  132. package/dist/lib/version.mjs +3 -3
  133. package/dist/lib/version.mjs.map +1 -1
  134. package/docs/guides/BUILD-AN-AGENT.md +10 -1
  135. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +119 -0
  136. package/docs/llms.txt +1 -1
  137. package/docs/migration-12-to-14.md +8 -0
  138. package/docs/migration-13-to-14.md +30 -4
  139. package/docs/releases/14.0.0-beta.0.md +19 -1
  140. package/package.json +2 -1
@@ -0,0 +1,619 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://adcontextprotocol.org/schemas/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-response.json",
4
+ "type": "object",
5
+ "allOf": [
6
+ {
7
+ "$ref": "#/$defs/external:core~1version-envelope.json"
8
+ },
9
+ {
10
+ "$ref": "#/$defs/external:core~1protocol-envelope.json"
11
+ }
12
+ ],
13
+ "oneOf": [
14
+ {
15
+ "type": "object",
16
+ "properties": {
17
+ "event_sources": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "event_source_id": {
23
+ "type": "string",
24
+ "x-entity": "event_source"
25
+ },
26
+ "name": {
27
+ "type": "string"
28
+ },
29
+ "seller_id": {
30
+ "type": "string"
31
+ },
32
+ "event_types": {
33
+ "type": "array",
34
+ "items": {
35
+ "$ref": "#/$defs/external:enums~1event-type.json"
36
+ }
37
+ },
38
+ "value_currencies": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string",
42
+ "pattern": "^[A-Z]{3}$"
43
+ },
44
+ "minItems": 1,
45
+ "uniqueItems": true
46
+ },
47
+ "action_source": {
48
+ "$ref": "#/$defs/external:enums~1action-source.json"
49
+ },
50
+ "surface": {
51
+ "$ref": "#/$defs/external:core~1event-surface.json"
52
+ },
53
+ "managed_by": {
54
+ "type": "string",
55
+ "enum": [
56
+ "buyer",
57
+ "seller"
58
+ ]
59
+ },
60
+ "setup": {
61
+ "type": "object",
62
+ "properties": {
63
+ "snippet": {
64
+ "type": "string"
65
+ },
66
+ "snippet_type": {
67
+ "type": "string",
68
+ "enum": [
69
+ "javascript",
70
+ "html",
71
+ "pixel_url",
72
+ "server_only"
73
+ ]
74
+ },
75
+ "instructions": {
76
+ "type": "string"
77
+ }
78
+ },
79
+ "additionalProperties": true
80
+ },
81
+ "action": {
82
+ "type": "string",
83
+ "enum": [
84
+ "created",
85
+ "updated",
86
+ "unchanged",
87
+ "deleted",
88
+ "failed"
89
+ ]
90
+ },
91
+ "health": {
92
+ "$ref": "#/$defs/external:core~1event-source-health.json"
93
+ },
94
+ "errors": {
95
+ "type": "array",
96
+ "items": {
97
+ "$ref": "#/$defs/external:core~1error.json"
98
+ }
99
+ },
100
+ "ext": {
101
+ "$ref": "#/$defs/external:core~1ext.json"
102
+ }
103
+ },
104
+ "required": [
105
+ "event_source_id",
106
+ "action"
107
+ ],
108
+ "additionalProperties": true
109
+ }
110
+ },
111
+ "sandbox": {
112
+ "type": "boolean"
113
+ },
114
+ "context": {
115
+ "$ref": "#/$defs/external:core~1context.json"
116
+ },
117
+ "ext": {
118
+ "$ref": "#/$defs/external:core~1ext.json"
119
+ }
120
+ },
121
+ "required": [
122
+ "event_sources"
123
+ ],
124
+ "additionalProperties": true,
125
+ "not": {
126
+ "required": [
127
+ "errors"
128
+ ]
129
+ }
130
+ },
131
+ {
132
+ "type": "object",
133
+ "properties": {
134
+ "errors": {
135
+ "type": "array",
136
+ "items": {
137
+ "$ref": "#/$defs/external:core~1error.json"
138
+ },
139
+ "minItems": 1
140
+ },
141
+ "context": {
142
+ "$ref": "#/$defs/external:core~1context.json"
143
+ },
144
+ "ext": {
145
+ "$ref": "#/$defs/external:core~1ext.json"
146
+ }
147
+ },
148
+ "required": [
149
+ "errors"
150
+ ],
151
+ "additionalProperties": true,
152
+ "not": {
153
+ "anyOf": [
154
+ {
155
+ "required": [
156
+ "event_sources"
157
+ ]
158
+ },
159
+ {
160
+ "required": [
161
+ "sandbox"
162
+ ]
163
+ }
164
+ ]
165
+ }
166
+ }
167
+ ],
168
+ "properties": {},
169
+ "$defs": {
170
+ "external:core/version-envelope.json": {
171
+ "type": "object",
172
+ "properties": {
173
+ "adcp_version": {
174
+ "type": "string",
175
+ "pattern": "^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?)?$"
176
+ },
177
+ "adcp_major_version": {
178
+ "type": "integer",
179
+ "deprecated": true,
180
+ "minimum": 1,
181
+ "maximum": 99
182
+ }
183
+ }
184
+ },
185
+ "external:core/protocol-envelope.json": {
186
+ "type": "object",
187
+ "properties": {
188
+ "context_id": {
189
+ "type": "string"
190
+ },
191
+ "context": {
192
+ "$ref": "#/$defs/external:core~1context.json"
193
+ },
194
+ "task_id": {
195
+ "type": "string",
196
+ "x-entity": "task"
197
+ },
198
+ "status": {
199
+ "$ref": "#/$defs/external:enums~1task-status.json"
200
+ },
201
+ "message": {
202
+ "type": "string"
203
+ },
204
+ "timestamp": {
205
+ "type": "string",
206
+ "format": "date-time"
207
+ },
208
+ "replayed": {
209
+ "type": "boolean",
210
+ "default": false
211
+ },
212
+ "adcp_error": {
213
+ "$ref": "#/$defs/external:core~1error.json"
214
+ },
215
+ "push_notification_config": {
216
+ "$ref": "#/$defs/external:core~1push-notification-config.json"
217
+ },
218
+ "governance_context": {
219
+ "type": "string",
220
+ "minLength": 1,
221
+ "maxLength": 4096,
222
+ "pattern": "^[\\x20-\\x7E]+$"
223
+ },
224
+ "payload": {
225
+ "type": "object",
226
+ "x-adcp-open-payload": true,
227
+ "additionalProperties": true
228
+ }
229
+ },
230
+ "required": [
231
+ "status"
232
+ ],
233
+ "additionalProperties": true,
234
+ "not": {
235
+ "anyOf": [
236
+ {
237
+ "required": [
238
+ "task_status"
239
+ ]
240
+ },
241
+ {
242
+ "required": [
243
+ "response_status"
244
+ ]
245
+ }
246
+ ]
247
+ },
248
+ "notes": [
249
+ "Task response schemas (e.g., get-products-response.json) define ONLY the body fields; protocol-layer fields live on this envelope.",
250
+ "Transport serialization (normative):",
251
+ " - MCP: envelope fields and task-body fields are siblings at the root of the tool response. The `payload` object is NOT serialized as a nested key — its body fields are flattened to the root alongside `status`, `context_id`, `context`, etc. This matches MCP's native `structuredContent` convention and is what shipping SDKs (@adcp/client) emit. Conformant MCP receivers parse from the flat root; receivers that expect a nested `payload` key MUST migrate.",
252
+ " - A2A 1.0 with the AdCP profile extension: `task.status.state` carries the transport invocation lifecycle used to select the extraction location; `task.contextId` carries `context_id`, while `task.id` is an independent A2A transport identifier. The complete AdCP response, including its protocol-level `status` and any application-layer `task_id`, is canonically carried in `task.artifacts[0].parts[].DataPart` on final states; `task.status.message.parts[].DataPart` is the fallback container used only for interim A2A states (working, native submitted, input-required) where no final artifact has been emitted yet. For a structured AdCP business rejection or Submitted response, A2A is `completed` while the DataPart carries `status: rejected` or `status: submitted` because the handler invocation succeeded. An AdCP `task_id` MUST NOT be copied into artifact metadata or inferred from `task.id`. Receivers MUST prefer artifacts when present and MUST NOT overwrite a DataPart's status with the A2A state. See `a2a-profile-extension.mdx` and `a2a-response-extraction.mdx` for the full binding and extraction algorithm.",
253
+ " - REST: envelope fields MAY ride on HTTP headers (e.g., `X-AdCP-Status`, `X-AdCP-Context-Id`) or as JSON body siblings; body fields appear at the JSON body root. Implementers choosing the header path SHOULD also mirror to body siblings for non-streaming callers.",
254
+ "Across all three: envelope and body fields are conceptually a single response object. A task response schema MAY declare body fields with the same name as envelope fields (e.g., `errors[]` body-level for per-record validation results vs envelope-level for fatal task failure) and the two MUST be treated as distinct fields by name within their respective namespaces — see `error-handling.mdx#envelope-vs-payload-errors-the-two-layer-model`.",
255
+ "`status` is REQUIRED on the conceptual AdCP response across all transports. On MCP and REST it appears as a sibling field at the JSON root (or `structuredContent` root for MCP). On A2A it is carried inside the authoritative DataPart alongside the task body; `task.status.state` separately carries the A2A transport lifecycle and selects where that DataPart is found. Receivers MUST preserve the DataPart status when present. The schema-level `required: [status]` enforces the post-extraction AdCP shape. `payload` remains intentionally NOT required — it is a documentary grouping construct, never a required wire field. See `mcp-guide.mdx` and `a2a-guide.mdx` for the wire-level patterns receivers MUST implement.",
256
+ "Receivers MUST handle absence of an envelope field (e.g., `replayed` omitted) as the field's documented default — see each field's `default` clause."
257
+ ]
258
+ },
259
+ "external:core/context.json": {
260
+ "type": "object",
261
+ "additionalProperties": true
262
+ },
263
+ "external:enums/task-status.json": {
264
+ "type": "string",
265
+ "enum": [
266
+ "submitted",
267
+ "working",
268
+ "input-required",
269
+ "completed",
270
+ "canceled",
271
+ "failed",
272
+ "rejected",
273
+ "auth-required",
274
+ "unknown"
275
+ ]
276
+ },
277
+ "external:core/error.json": {
278
+ "type": "object",
279
+ "properties": {
280
+ "code": {
281
+ "type": "string",
282
+ "minLength": 1,
283
+ "maxLength": 64
284
+ },
285
+ "message": {
286
+ "type": "string"
287
+ },
288
+ "field": {
289
+ "type": "string"
290
+ },
291
+ "suggestion": {
292
+ "type": "string"
293
+ },
294
+ "retry_after": {
295
+ "type": "number",
296
+ "minimum": 1,
297
+ "maximum": 3600
298
+ },
299
+ "issues": {
300
+ "type": "array",
301
+ "items": {
302
+ "type": "object",
303
+ "properties": {
304
+ "pointer": {
305
+ "type": "string"
306
+ },
307
+ "message": {
308
+ "type": "string"
309
+ },
310
+ "keyword": {
311
+ "type": "string"
312
+ },
313
+ "schemaPath": {
314
+ "type": "string"
315
+ },
316
+ "schema_id": {
317
+ "type": "string"
318
+ },
319
+ "discriminator": {
320
+ "type": "array",
321
+ "items": {
322
+ "type": "object",
323
+ "properties": {
324
+ "property_name": {
325
+ "type": "string"
326
+ },
327
+ "value": {
328
+ "type": [
329
+ "string",
330
+ "number",
331
+ "boolean",
332
+ "null"
333
+ ]
334
+ }
335
+ },
336
+ "required": [
337
+ "property_name",
338
+ "value"
339
+ ],
340
+ "additionalProperties": false
341
+ }
342
+ }
343
+ },
344
+ "required": [
345
+ "pointer",
346
+ "message",
347
+ "keyword"
348
+ ],
349
+ "additionalProperties": true
350
+ }
351
+ },
352
+ "details": {
353
+ "type": "object",
354
+ "additionalProperties": true
355
+ },
356
+ "recovery": {
357
+ "type": "string",
358
+ "enum": [
359
+ "transient",
360
+ "correctable",
361
+ "terminal"
362
+ ]
363
+ },
364
+ "source": {
365
+ "type": "string",
366
+ "enum": [
367
+ "producer",
368
+ "sdk"
369
+ ]
370
+ },
371
+ "sdk_id": {
372
+ "type": "string"
373
+ }
374
+ },
375
+ "required": [
376
+ "code",
377
+ "message"
378
+ ],
379
+ "additionalProperties": true
380
+ },
381
+ "external:core/push-notification-config.json": {
382
+ "type": "object",
383
+ "properties": {
384
+ "url": {
385
+ "type": "string",
386
+ "format": "uri"
387
+ },
388
+ "operation_id": {
389
+ "type": "string",
390
+ "minLength": 1,
391
+ "maxLength": 255,
392
+ "pattern": "^[A-Za-z0-9_.:-]{1,255}$"
393
+ },
394
+ "token": {
395
+ "type": "string",
396
+ "minLength": 16,
397
+ "maxLength": 4096
398
+ },
399
+ "authentication": {
400
+ "type": "object",
401
+ "deprecated": true,
402
+ "properties": {
403
+ "schemes": {
404
+ "type": "array",
405
+ "items": {
406
+ "$ref": "#/$defs/external:enums~1auth-scheme.json"
407
+ },
408
+ "minItems": 1,
409
+ "maxItems": 1
410
+ },
411
+ "credentials": {
412
+ "type": "string",
413
+ "minLength": 32
414
+ }
415
+ },
416
+ "required": [
417
+ "schemes",
418
+ "credentials"
419
+ ],
420
+ "additionalProperties": false
421
+ }
422
+ },
423
+ "required": [
424
+ "url"
425
+ ]
426
+ },
427
+ "external:enums/auth-scheme.json": {
428
+ "deprecated": true,
429
+ "type": "string",
430
+ "enum": [
431
+ "Bearer",
432
+ "HMAC-SHA256"
433
+ ]
434
+ },
435
+ "external:enums/event-type.json": {
436
+ "type": "string",
437
+ "enum": [
438
+ "page_view",
439
+ "view_content",
440
+ "select_content",
441
+ "select_item",
442
+ "search",
443
+ "share",
444
+ "add_to_cart",
445
+ "remove_from_cart",
446
+ "viewed_cart",
447
+ "add_to_wishlist",
448
+ "initiate_checkout",
449
+ "add_payment_info",
450
+ "purchase",
451
+ "refund",
452
+ "lead",
453
+ "qualify_lead",
454
+ "close_convert_lead",
455
+ "disqualify_lead",
456
+ "complete_registration",
457
+ "subscribe",
458
+ "follow",
459
+ "content_view",
460
+ "watch_milestone",
461
+ "start_trial",
462
+ "app_install",
463
+ "app_launch",
464
+ "contact",
465
+ "schedule",
466
+ "donate",
467
+ "submit_application",
468
+ "custom"
469
+ ]
470
+ },
471
+ "external:enums/action-source.json": {
472
+ "type": "string",
473
+ "enum": [
474
+ "website",
475
+ "app",
476
+ "offline",
477
+ "phone_call",
478
+ "chat",
479
+ "email",
480
+ "in_store",
481
+ "system_generated",
482
+ "other"
483
+ ]
484
+ },
485
+ "external:core/event-surface.json": {
486
+ "type": "object",
487
+ "properties": {
488
+ "category": {
489
+ "type": "string",
490
+ "enum": [
491
+ "owned_property",
492
+ "website",
493
+ "app",
494
+ "offline",
495
+ "phone_call",
496
+ "chat",
497
+ "email",
498
+ "in_store",
499
+ "system_generated",
500
+ "other"
501
+ ]
502
+ },
503
+ "property_type": {
504
+ "type": "string",
505
+ "minLength": 1,
506
+ "maxLength": 128
507
+ },
508
+ "namespace": {
509
+ "type": "string",
510
+ "minLength": 1,
511
+ "maxLength": 128
512
+ },
513
+ "property_id": {
514
+ "type": "string",
515
+ "minLength": 1,
516
+ "maxLength": 256,
517
+ "x-entity": "property"
518
+ },
519
+ "ext": {
520
+ "$ref": "#/$defs/external:core~1ext.json"
521
+ }
522
+ },
523
+ "required": [
524
+ "category"
525
+ ],
526
+ "additionalProperties": true
527
+ },
528
+ "external:core/ext.json": {
529
+ "type": "object",
530
+ "additionalProperties": true
531
+ },
532
+ "external:core/event-source-health.json": {
533
+ "type": "object",
534
+ "properties": {
535
+ "status": {
536
+ "$ref": "#/$defs/external:enums~1assessment-status.json"
537
+ },
538
+ "detail": {
539
+ "type": "object",
540
+ "properties": {
541
+ "score": {
542
+ "type": "number",
543
+ "minimum": 0
544
+ },
545
+ "max_score": {
546
+ "type": "number",
547
+ "minimum": 1
548
+ },
549
+ "label": {
550
+ "type": "string"
551
+ }
552
+ },
553
+ "required": [
554
+ "score",
555
+ "max_score"
556
+ ],
557
+ "additionalProperties": true
558
+ },
559
+ "match_rate": {
560
+ "type": "number",
561
+ "minimum": 0,
562
+ "maximum": 1
563
+ },
564
+ "last_event_at": {
565
+ "type": "string",
566
+ "format": "date-time"
567
+ },
568
+ "evaluated_at": {
569
+ "type": "string",
570
+ "format": "date-time"
571
+ },
572
+ "events_received_24h": {
573
+ "type": "integer",
574
+ "minimum": 0
575
+ },
576
+ "issues": {
577
+ "type": "array",
578
+ "items": {
579
+ "$ref": "#/$defs/external:core~1diagnostic-issue.json"
580
+ }
581
+ }
582
+ },
583
+ "required": [
584
+ "status"
585
+ ],
586
+ "additionalProperties": true
587
+ },
588
+ "external:enums/assessment-status.json": {
589
+ "type": "string",
590
+ "enum": [
591
+ "insufficient",
592
+ "minimum",
593
+ "good",
594
+ "excellent"
595
+ ]
596
+ },
597
+ "external:core/diagnostic-issue.json": {
598
+ "type": "object",
599
+ "properties": {
600
+ "severity": {
601
+ "type": "string",
602
+ "enum": [
603
+ "error",
604
+ "warning",
605
+ "info"
606
+ ]
607
+ },
608
+ "message": {
609
+ "type": "string"
610
+ }
611
+ },
612
+ "required": [
613
+ "severity",
614
+ "message"
615
+ ],
616
+ "additionalProperties": true
617
+ }
618
+ }
619
+ }