@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,541 @@
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-audiences-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
+ "audiences": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "audience_id": {
23
+ "type": "string",
24
+ "x-entity": "audience"
25
+ },
26
+ "name": {
27
+ "type": "string"
28
+ },
29
+ "seller_id": {
30
+ "type": "string"
31
+ },
32
+ "action": {
33
+ "type": "string",
34
+ "enum": [
35
+ "created",
36
+ "updated",
37
+ "unchanged",
38
+ "deleted",
39
+ "failed"
40
+ ]
41
+ },
42
+ "status": {
43
+ "$ref": "#/$defs/external:enums~1audience-status.json"
44
+ },
45
+ "uploaded_count": {
46
+ "type": "integer",
47
+ "minimum": 0
48
+ },
49
+ "total_uploaded_count": {
50
+ "type": "integer",
51
+ "minimum": 0
52
+ },
53
+ "matched_count": {
54
+ "type": "integer",
55
+ "minimum": 0
56
+ },
57
+ "effective_match_rate": {
58
+ "type": "number",
59
+ "minimum": 0,
60
+ "maximum": 1
61
+ },
62
+ "match_breakdown": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "object",
66
+ "properties": {
67
+ "id_type": {
68
+ "$ref": "#/$defs/external:enums~1match-id-type.json"
69
+ },
70
+ "submitted": {
71
+ "type": "integer",
72
+ "minimum": 0
73
+ },
74
+ "matched": {
75
+ "type": "integer",
76
+ "minimum": 0
77
+ },
78
+ "match_rate": {
79
+ "type": "number",
80
+ "minimum": 0,
81
+ "maximum": 1
82
+ }
83
+ },
84
+ "required": [
85
+ "id_type",
86
+ "submitted",
87
+ "matched",
88
+ "match_rate"
89
+ ],
90
+ "additionalProperties": true
91
+ },
92
+ "minItems": 1
93
+ },
94
+ "last_synced_at": {
95
+ "type": "string",
96
+ "format": "date-time"
97
+ },
98
+ "minimum_size": {
99
+ "type": "integer",
100
+ "minimum": 1
101
+ },
102
+ "errors": {
103
+ "type": "array",
104
+ "items": {
105
+ "$ref": "#/$defs/external:core~1error.json"
106
+ }
107
+ }
108
+ },
109
+ "required": [
110
+ "audience_id",
111
+ "action"
112
+ ],
113
+ "additionalProperties": true
114
+ }
115
+ },
116
+ "sandbox": {
117
+ "type": "boolean"
118
+ },
119
+ "context": {
120
+ "$ref": "#/$defs/external:core~1context.json"
121
+ },
122
+ "ext": {
123
+ "$ref": "#/$defs/external:core~1ext.json"
124
+ }
125
+ },
126
+ "required": [
127
+ "audiences"
128
+ ],
129
+ "additionalProperties": true,
130
+ "not": {
131
+ "anyOf": [
132
+ {
133
+ "required": [
134
+ "errors"
135
+ ]
136
+ },
137
+ {
138
+ "required": [
139
+ "task_id"
140
+ ]
141
+ },
142
+ {
143
+ "properties": {
144
+ "status": {
145
+ "const": "submitted"
146
+ }
147
+ },
148
+ "required": [
149
+ "status"
150
+ ]
151
+ }
152
+ ]
153
+ }
154
+ },
155
+ {
156
+ "type": "object",
157
+ "properties": {
158
+ "errors": {
159
+ "type": "array",
160
+ "items": {
161
+ "$ref": "#/$defs/external:core~1error.json"
162
+ },
163
+ "minItems": 1
164
+ },
165
+ "context": {
166
+ "$ref": "#/$defs/external:core~1context.json"
167
+ },
168
+ "ext": {
169
+ "$ref": "#/$defs/external:core~1ext.json"
170
+ }
171
+ },
172
+ "required": [
173
+ "errors"
174
+ ],
175
+ "additionalProperties": true,
176
+ "not": {
177
+ "anyOf": [
178
+ {
179
+ "required": [
180
+ "audiences"
181
+ ]
182
+ },
183
+ {
184
+ "required": [
185
+ "sandbox"
186
+ ]
187
+ },
188
+ {
189
+ "required": [
190
+ "task_id"
191
+ ]
192
+ },
193
+ {
194
+ "properties": {
195
+ "status": {
196
+ "const": "submitted"
197
+ }
198
+ },
199
+ "required": [
200
+ "status"
201
+ ]
202
+ }
203
+ ]
204
+ }
205
+ },
206
+ {
207
+ "type": "object",
208
+ "properties": {
209
+ "status": {
210
+ "type": "string",
211
+ "const": "submitted"
212
+ },
213
+ "task_id": {
214
+ "type": "string",
215
+ "x-entity": "task"
216
+ },
217
+ "message": {
218
+ "type": "string",
219
+ "maxLength": 2000
220
+ },
221
+ "errors": {
222
+ "type": "array",
223
+ "items": {
224
+ "$ref": "#/$defs/external:core~1error.json"
225
+ }
226
+ },
227
+ "context": {
228
+ "$ref": "#/$defs/external:core~1context.json"
229
+ },
230
+ "ext": {
231
+ "$ref": "#/$defs/external:core~1ext.json"
232
+ }
233
+ },
234
+ "required": [
235
+ "status",
236
+ "task_id"
237
+ ],
238
+ "additionalProperties": true,
239
+ "not": {
240
+ "required": [
241
+ "audiences"
242
+ ]
243
+ }
244
+ }
245
+ ],
246
+ "properties": {},
247
+ "$defs": {
248
+ "external:core/version-envelope.json": {
249
+ "type": "object",
250
+ "properties": {
251
+ "adcp_version": {
252
+ "type": "string",
253
+ "pattern": "^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?)?$"
254
+ },
255
+ "adcp_major_version": {
256
+ "type": "integer",
257
+ "deprecated": true,
258
+ "minimum": 1,
259
+ "maximum": 99
260
+ }
261
+ }
262
+ },
263
+ "external:core/protocol-envelope.json": {
264
+ "type": "object",
265
+ "properties": {
266
+ "context_id": {
267
+ "type": "string"
268
+ },
269
+ "context": {
270
+ "$ref": "#/$defs/external:core~1context.json"
271
+ },
272
+ "task_id": {
273
+ "type": "string",
274
+ "x-entity": "task"
275
+ },
276
+ "status": {
277
+ "$ref": "#/$defs/external:enums~1task-status.json"
278
+ },
279
+ "message": {
280
+ "type": "string"
281
+ },
282
+ "timestamp": {
283
+ "type": "string",
284
+ "format": "date-time"
285
+ },
286
+ "replayed": {
287
+ "type": "boolean",
288
+ "default": false
289
+ },
290
+ "adcp_error": {
291
+ "$ref": "#/$defs/external:core~1error.json"
292
+ },
293
+ "push_notification_config": {
294
+ "$ref": "#/$defs/external:core~1push-notification-config.json"
295
+ },
296
+ "governance_context": {
297
+ "type": "string",
298
+ "minLength": 1,
299
+ "maxLength": 4096,
300
+ "pattern": "^[\\x20-\\x7E]+$"
301
+ },
302
+ "payload": {
303
+ "type": "object",
304
+ "x-adcp-open-payload": true,
305
+ "additionalProperties": true
306
+ }
307
+ },
308
+ "required": [
309
+ "status"
310
+ ],
311
+ "additionalProperties": true,
312
+ "not": {
313
+ "anyOf": [
314
+ {
315
+ "required": [
316
+ "task_status"
317
+ ]
318
+ },
319
+ {
320
+ "required": [
321
+ "response_status"
322
+ ]
323
+ }
324
+ ]
325
+ },
326
+ "notes": [
327
+ "Task response schemas (e.g., get-products-response.json) define ONLY the body fields; protocol-layer fields live on this envelope.",
328
+ "Transport serialization (normative):",
329
+ " - 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.",
330
+ " - 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.",
331
+ " - 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.",
332
+ "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`.",
333
+ "`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.",
334
+ "Receivers MUST handle absence of an envelope field (e.g., `replayed` omitted) as the field's documented default — see each field's `default` clause."
335
+ ]
336
+ },
337
+ "external:core/context.json": {
338
+ "type": "object",
339
+ "additionalProperties": true
340
+ },
341
+ "external:enums/task-status.json": {
342
+ "type": "string",
343
+ "enum": [
344
+ "submitted",
345
+ "working",
346
+ "input-required",
347
+ "completed",
348
+ "canceled",
349
+ "failed",
350
+ "rejected",
351
+ "auth-required",
352
+ "unknown"
353
+ ]
354
+ },
355
+ "external:core/error.json": {
356
+ "type": "object",
357
+ "properties": {
358
+ "code": {
359
+ "type": "string",
360
+ "minLength": 1,
361
+ "maxLength": 64
362
+ },
363
+ "message": {
364
+ "type": "string"
365
+ },
366
+ "field": {
367
+ "type": "string"
368
+ },
369
+ "suggestion": {
370
+ "type": "string"
371
+ },
372
+ "retry_after": {
373
+ "type": "number",
374
+ "minimum": 1,
375
+ "maximum": 3600
376
+ },
377
+ "issues": {
378
+ "type": "array",
379
+ "items": {
380
+ "type": "object",
381
+ "properties": {
382
+ "pointer": {
383
+ "type": "string"
384
+ },
385
+ "message": {
386
+ "type": "string"
387
+ },
388
+ "keyword": {
389
+ "type": "string"
390
+ },
391
+ "schemaPath": {
392
+ "type": "string"
393
+ },
394
+ "schema_id": {
395
+ "type": "string"
396
+ },
397
+ "discriminator": {
398
+ "type": "array",
399
+ "items": {
400
+ "type": "object",
401
+ "properties": {
402
+ "property_name": {
403
+ "type": "string"
404
+ },
405
+ "value": {
406
+ "type": [
407
+ "string",
408
+ "number",
409
+ "boolean",
410
+ "null"
411
+ ]
412
+ }
413
+ },
414
+ "required": [
415
+ "property_name",
416
+ "value"
417
+ ],
418
+ "additionalProperties": false
419
+ }
420
+ }
421
+ },
422
+ "required": [
423
+ "pointer",
424
+ "message",
425
+ "keyword"
426
+ ],
427
+ "additionalProperties": true
428
+ }
429
+ },
430
+ "details": {
431
+ "type": "object",
432
+ "additionalProperties": true
433
+ },
434
+ "recovery": {
435
+ "type": "string",
436
+ "enum": [
437
+ "transient",
438
+ "correctable",
439
+ "terminal"
440
+ ]
441
+ },
442
+ "source": {
443
+ "type": "string",
444
+ "enum": [
445
+ "producer",
446
+ "sdk"
447
+ ]
448
+ },
449
+ "sdk_id": {
450
+ "type": "string"
451
+ }
452
+ },
453
+ "required": [
454
+ "code",
455
+ "message"
456
+ ],
457
+ "additionalProperties": true
458
+ },
459
+ "external:core/push-notification-config.json": {
460
+ "type": "object",
461
+ "properties": {
462
+ "url": {
463
+ "type": "string",
464
+ "format": "uri"
465
+ },
466
+ "operation_id": {
467
+ "type": "string",
468
+ "minLength": 1,
469
+ "maxLength": 255,
470
+ "pattern": "^[A-Za-z0-9_.:-]{1,255}$"
471
+ },
472
+ "token": {
473
+ "type": "string",
474
+ "minLength": 16,
475
+ "maxLength": 4096
476
+ },
477
+ "authentication": {
478
+ "type": "object",
479
+ "deprecated": true,
480
+ "properties": {
481
+ "schemes": {
482
+ "type": "array",
483
+ "items": {
484
+ "$ref": "#/$defs/external:enums~1auth-scheme.json"
485
+ },
486
+ "minItems": 1,
487
+ "maxItems": 1
488
+ },
489
+ "credentials": {
490
+ "type": "string",
491
+ "minLength": 32
492
+ }
493
+ },
494
+ "required": [
495
+ "schemes",
496
+ "credentials"
497
+ ],
498
+ "additionalProperties": false
499
+ }
500
+ },
501
+ "required": [
502
+ "url"
503
+ ]
504
+ },
505
+ "external:enums/auth-scheme.json": {
506
+ "deprecated": true,
507
+ "type": "string",
508
+ "enum": [
509
+ "Bearer",
510
+ "HMAC-SHA256"
511
+ ]
512
+ },
513
+ "external:enums/audience-status.json": {
514
+ "type": "string",
515
+ "enum": [
516
+ "processing",
517
+ "ready",
518
+ "too_small",
519
+ "suspended"
520
+ ]
521
+ },
522
+ "external:enums/match-id-type.json": {
523
+ "type": "string",
524
+ "enum": [
525
+ "hashed_email",
526
+ "hashed_phone",
527
+ "rampid",
528
+ "id5",
529
+ "uid2",
530
+ "euid",
531
+ "pairid",
532
+ "maid",
533
+ "other"
534
+ ]
535
+ },
536
+ "external:core/ext.json": {
537
+ "type": "object",
538
+ "additionalProperties": true
539
+ }
540
+ }
541
+ }