@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,921 @@
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/account/sync-governance-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
+ "accounts": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "account": {
23
+ "$ref": "#/$defs/external:core~1account-ref.json"
24
+ },
25
+ "status": {
26
+ "type": "string",
27
+ "enum": [
28
+ "synced",
29
+ "failed"
30
+ ]
31
+ },
32
+ "governance_agents": {
33
+ "type": "array",
34
+ "items": {
35
+ "type": "object",
36
+ "properties": {
37
+ "url": {
38
+ "type": "string",
39
+ "format": "uri",
40
+ "pattern": "^https://"
41
+ }
42
+ },
43
+ "required": [
44
+ "url"
45
+ ],
46
+ "additionalProperties": false
47
+ },
48
+ "minItems": 1,
49
+ "maxItems": 1
50
+ },
51
+ "errors": {
52
+ "type": "array",
53
+ "items": {
54
+ "$ref": "#/$defs/external:core~1error.json"
55
+ }
56
+ }
57
+ },
58
+ "required": [
59
+ "account",
60
+ "status"
61
+ ],
62
+ "additionalProperties": true
63
+ }
64
+ },
65
+ "context": {
66
+ "$ref": "#/$defs/external:core~1context.json"
67
+ },
68
+ "ext": {
69
+ "$ref": "#/$defs/external:core~1ext.json"
70
+ }
71
+ },
72
+ "required": [
73
+ "accounts"
74
+ ],
75
+ "additionalProperties": true,
76
+ "not": {
77
+ "required": [
78
+ "errors"
79
+ ]
80
+ }
81
+ },
82
+ {
83
+ "type": "object",
84
+ "properties": {
85
+ "errors": {
86
+ "type": "array",
87
+ "items": {
88
+ "$ref": "#/$defs/external:core~1error.json"
89
+ },
90
+ "minItems": 1
91
+ },
92
+ "context": {
93
+ "$ref": "#/$defs/external:core~1context.json"
94
+ },
95
+ "ext": {
96
+ "$ref": "#/$defs/external:core~1ext.json"
97
+ }
98
+ },
99
+ "required": [
100
+ "errors"
101
+ ],
102
+ "additionalProperties": true,
103
+ "not": {
104
+ "required": [
105
+ "accounts"
106
+ ]
107
+ }
108
+ }
109
+ ],
110
+ "properties": {},
111
+ "$defs": {
112
+ "external:core/version-envelope.json": {
113
+ "type": "object",
114
+ "properties": {
115
+ "adcp_version": {
116
+ "type": "string",
117
+ "pattern": "^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?)?$"
118
+ },
119
+ "adcp_major_version": {
120
+ "type": "integer",
121
+ "deprecated": true,
122
+ "minimum": 1,
123
+ "maximum": 99
124
+ }
125
+ }
126
+ },
127
+ "external:core/protocol-envelope.json": {
128
+ "type": "object",
129
+ "properties": {
130
+ "context_id": {
131
+ "type": "string"
132
+ },
133
+ "context": {
134
+ "$ref": "#/$defs/external:core~1context.json"
135
+ },
136
+ "task_id": {
137
+ "type": "string",
138
+ "x-entity": "task"
139
+ },
140
+ "status": {
141
+ "$ref": "#/$defs/external:enums~1task-status.json"
142
+ },
143
+ "message": {
144
+ "type": "string"
145
+ },
146
+ "timestamp": {
147
+ "type": "string",
148
+ "format": "date-time"
149
+ },
150
+ "replayed": {
151
+ "type": "boolean",
152
+ "default": false
153
+ },
154
+ "adcp_error": {
155
+ "$ref": "#/$defs/external:core~1error.json"
156
+ },
157
+ "push_notification_config": {
158
+ "$ref": "#/$defs/external:core~1push-notification-config.json"
159
+ },
160
+ "governance_context": {
161
+ "type": "string",
162
+ "minLength": 1,
163
+ "maxLength": 4096,
164
+ "pattern": "^[\\x20-\\x7E]+$"
165
+ },
166
+ "payload": {
167
+ "type": "object",
168
+ "x-adcp-open-payload": true,
169
+ "additionalProperties": true
170
+ }
171
+ },
172
+ "required": [
173
+ "status"
174
+ ],
175
+ "additionalProperties": true,
176
+ "not": {
177
+ "anyOf": [
178
+ {
179
+ "required": [
180
+ "task_status"
181
+ ]
182
+ },
183
+ {
184
+ "required": [
185
+ "response_status"
186
+ ]
187
+ }
188
+ ]
189
+ },
190
+ "notes": [
191
+ "Task response schemas (e.g., get-products-response.json) define ONLY the body fields; protocol-layer fields live on this envelope.",
192
+ "Transport serialization (normative):",
193
+ " - 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.",
194
+ " - 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.",
195
+ " - 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.",
196
+ "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`.",
197
+ "`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.",
198
+ "Receivers MUST handle absence of an envelope field (e.g., `replayed` omitted) as the field's documented default — see each field's `default` clause."
199
+ ]
200
+ },
201
+ "external:core/context.json": {
202
+ "type": "object",
203
+ "additionalProperties": true
204
+ },
205
+ "external:enums/task-status.json": {
206
+ "type": "string",
207
+ "enum": [
208
+ "submitted",
209
+ "working",
210
+ "input-required",
211
+ "completed",
212
+ "canceled",
213
+ "failed",
214
+ "rejected",
215
+ "auth-required",
216
+ "unknown"
217
+ ]
218
+ },
219
+ "external:core/error.json": {
220
+ "type": "object",
221
+ "properties": {
222
+ "code": {
223
+ "type": "string",
224
+ "minLength": 1,
225
+ "maxLength": 64
226
+ },
227
+ "message": {
228
+ "type": "string"
229
+ },
230
+ "field": {
231
+ "type": "string"
232
+ },
233
+ "suggestion": {
234
+ "type": "string"
235
+ },
236
+ "retry_after": {
237
+ "type": "number",
238
+ "minimum": 1,
239
+ "maximum": 3600
240
+ },
241
+ "issues": {
242
+ "type": "array",
243
+ "items": {
244
+ "type": "object",
245
+ "properties": {
246
+ "pointer": {
247
+ "type": "string"
248
+ },
249
+ "message": {
250
+ "type": "string"
251
+ },
252
+ "keyword": {
253
+ "type": "string"
254
+ },
255
+ "schemaPath": {
256
+ "type": "string"
257
+ },
258
+ "schema_id": {
259
+ "type": "string"
260
+ },
261
+ "discriminator": {
262
+ "type": "array",
263
+ "items": {
264
+ "type": "object",
265
+ "properties": {
266
+ "property_name": {
267
+ "type": "string"
268
+ },
269
+ "value": {
270
+ "type": [
271
+ "string",
272
+ "number",
273
+ "boolean",
274
+ "null"
275
+ ]
276
+ }
277
+ },
278
+ "required": [
279
+ "property_name",
280
+ "value"
281
+ ],
282
+ "additionalProperties": false
283
+ }
284
+ }
285
+ },
286
+ "required": [
287
+ "pointer",
288
+ "message",
289
+ "keyword"
290
+ ],
291
+ "additionalProperties": true
292
+ }
293
+ },
294
+ "details": {
295
+ "type": "object",
296
+ "additionalProperties": true
297
+ },
298
+ "recovery": {
299
+ "type": "string",
300
+ "enum": [
301
+ "transient",
302
+ "correctable",
303
+ "terminal"
304
+ ]
305
+ },
306
+ "source": {
307
+ "type": "string",
308
+ "enum": [
309
+ "producer",
310
+ "sdk"
311
+ ]
312
+ },
313
+ "sdk_id": {
314
+ "type": "string"
315
+ }
316
+ },
317
+ "required": [
318
+ "code",
319
+ "message"
320
+ ],
321
+ "additionalProperties": true
322
+ },
323
+ "external:core/push-notification-config.json": {
324
+ "type": "object",
325
+ "properties": {
326
+ "url": {
327
+ "type": "string",
328
+ "format": "uri"
329
+ },
330
+ "operation_id": {
331
+ "type": "string",
332
+ "minLength": 1,
333
+ "maxLength": 255,
334
+ "pattern": "^[A-Za-z0-9_.:-]{1,255}$"
335
+ },
336
+ "token": {
337
+ "type": "string",
338
+ "minLength": 16,
339
+ "maxLength": 4096
340
+ },
341
+ "authentication": {
342
+ "type": "object",
343
+ "deprecated": true,
344
+ "properties": {
345
+ "schemes": {
346
+ "type": "array",
347
+ "items": {
348
+ "$ref": "#/$defs/external:enums~1auth-scheme.json"
349
+ },
350
+ "minItems": 1,
351
+ "maxItems": 1
352
+ },
353
+ "credentials": {
354
+ "type": "string",
355
+ "minLength": 32
356
+ }
357
+ },
358
+ "required": [
359
+ "schemes",
360
+ "credentials"
361
+ ],
362
+ "additionalProperties": false
363
+ }
364
+ },
365
+ "required": [
366
+ "url"
367
+ ]
368
+ },
369
+ "external:enums/auth-scheme.json": {
370
+ "deprecated": true,
371
+ "type": "string",
372
+ "enum": [
373
+ "Bearer",
374
+ "HMAC-SHA256"
375
+ ]
376
+ },
377
+ "external:core/account-ref.json": {
378
+ "type": "object",
379
+ "oneOf": [
380
+ {
381
+ "properties": {
382
+ "account_id": {
383
+ "type": "string",
384
+ "x-entity": "account"
385
+ }
386
+ },
387
+ "required": [
388
+ "account_id"
389
+ ],
390
+ "additionalProperties": false
391
+ },
392
+ {
393
+ "properties": {
394
+ "brand": {
395
+ "$ref": "#/$defs/external:core~1brand-ref.json"
396
+ },
397
+ "operator": {
398
+ "type": "string",
399
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$",
400
+ "x-entity": "operator"
401
+ },
402
+ "operator_unit": {
403
+ "$ref": "#/$defs/external:core~1operator-unit.json"
404
+ },
405
+ "currency": {
406
+ "type": "string",
407
+ "pattern": "^[A-Z]{3}$"
408
+ },
409
+ "timezone": {
410
+ "type": "string",
411
+ "minLength": 1
412
+ },
413
+ "sandbox": {
414
+ "type": "boolean",
415
+ "default": false
416
+ }
417
+ },
418
+ "required": [
419
+ "brand",
420
+ "operator"
421
+ ],
422
+ "additionalProperties": false
423
+ }
424
+ ]
425
+ },
426
+ "external:core/brand-ref.json": {
427
+ "type": "object",
428
+ "properties": {
429
+ "domain": {
430
+ "type": "string",
431
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$"
432
+ },
433
+ "brand_id": {
434
+ "$ref": "#/$defs/external:core~1brand-id.json"
435
+ },
436
+ "countries": {
437
+ "type": "array",
438
+ "items": {
439
+ "type": "string",
440
+ "pattern": "^[A-Z]{2}$"
441
+ },
442
+ "minItems": 1,
443
+ "uniqueItems": true
444
+ },
445
+ "industries": {
446
+ "type": "array",
447
+ "items": {
448
+ "type": "string"
449
+ }
450
+ },
451
+ "data_subject_contestation": {
452
+ "type": "object",
453
+ "properties": {
454
+ "url": {
455
+ "type": "string",
456
+ "format": "uri",
457
+ "pattern": "^https://"
458
+ },
459
+ "email": {
460
+ "type": "string",
461
+ "format": "email"
462
+ },
463
+ "languages": {
464
+ "type": "array",
465
+ "items": {
466
+ "type": "string"
467
+ }
468
+ }
469
+ },
470
+ "anyOf": [
471
+ {
472
+ "required": [
473
+ "url"
474
+ ]
475
+ },
476
+ {
477
+ "required": [
478
+ "email"
479
+ ]
480
+ }
481
+ ],
482
+ "additionalProperties": false
483
+ },
484
+ "brand_kit_override": {
485
+ "type": "object",
486
+ "properties": {
487
+ "logo": {
488
+ "$ref": "#/$defs/external:core~1assets~1image-asset.json"
489
+ },
490
+ "colors": {
491
+ "type": "object",
492
+ "properties": {
493
+ "primary": {
494
+ "type": "string",
495
+ "pattern": "^#[0-9a-fA-F]{6}$"
496
+ },
497
+ "secondary": {
498
+ "type": "string",
499
+ "pattern": "^#[0-9a-fA-F]{6}$"
500
+ },
501
+ "accent": {
502
+ "type": "string",
503
+ "pattern": "^#[0-9a-fA-F]{6}$"
504
+ }
505
+ },
506
+ "additionalProperties": true
507
+ },
508
+ "voice": {
509
+ "type": "string"
510
+ },
511
+ "tagline": {
512
+ "type": "string"
513
+ }
514
+ },
515
+ "additionalProperties": true
516
+ }
517
+ },
518
+ "required": [
519
+ "domain"
520
+ ],
521
+ "additionalProperties": false
522
+ },
523
+ "external:core/brand-id.json": {
524
+ "type": "string",
525
+ "pattern": "^[a-z0-9_]+$",
526
+ "x-entity": "advertiser_brand"
527
+ },
528
+ "external:core/assets/image-asset.json": {
529
+ "type": "object",
530
+ "properties": {
531
+ "asset_type": {
532
+ "type": "string",
533
+ "const": "image"
534
+ },
535
+ "url": {
536
+ "type": "string",
537
+ "format": "uri"
538
+ },
539
+ "width": {
540
+ "type": "integer",
541
+ "minimum": 1
542
+ },
543
+ "height": {
544
+ "type": "integer",
545
+ "minimum": 1
546
+ },
547
+ "pixel_ratio": {
548
+ "type": "number",
549
+ "exclusiveMinimum": 0
550
+ },
551
+ "format": {
552
+ "type": "string"
553
+ },
554
+ "alt_text": {
555
+ "type": "string",
556
+ "x-accessibility": true
557
+ },
558
+ "provenance": {
559
+ "$ref": "#/$defs/external:core~1provenance.json"
560
+ }
561
+ },
562
+ "required": [
563
+ "asset_type",
564
+ "url",
565
+ "width",
566
+ "height"
567
+ ],
568
+ "additionalProperties": true
569
+ },
570
+ "external:core/provenance.json": {
571
+ "type": "object",
572
+ "properties": {
573
+ "digital_source_type": {
574
+ "$ref": "#/$defs/external:enums~1digital-source-type.json"
575
+ },
576
+ "synthetic_depiction": {
577
+ "type": "boolean"
578
+ },
579
+ "ai_tool": {
580
+ "type": "object",
581
+ "properties": {
582
+ "name": {
583
+ "type": "string"
584
+ },
585
+ "version": {
586
+ "type": "string"
587
+ },
588
+ "provider": {
589
+ "type": "string"
590
+ }
591
+ },
592
+ "required": [
593
+ "name"
594
+ ]
595
+ },
596
+ "human_oversight": {
597
+ "type": "string",
598
+ "enum": [
599
+ "none",
600
+ "prompt_only",
601
+ "selected",
602
+ "edited",
603
+ "directed"
604
+ ]
605
+ },
606
+ "declared_by": {
607
+ "type": "object",
608
+ "properties": {
609
+ "agent_url": {
610
+ "type": "string",
611
+ "format": "uri"
612
+ },
613
+ "role": {
614
+ "type": "string",
615
+ "enum": [
616
+ "creator",
617
+ "advertiser",
618
+ "agency",
619
+ "platform",
620
+ "tool"
621
+ ]
622
+ }
623
+ },
624
+ "required": [
625
+ "role"
626
+ ]
627
+ },
628
+ "declared_at": {
629
+ "type": "string",
630
+ "format": "date-time"
631
+ },
632
+ "created_time": {
633
+ "type": "string",
634
+ "format": "date-time"
635
+ },
636
+ "c2pa": {
637
+ "type": "object",
638
+ "properties": {
639
+ "manifest_url": {
640
+ "type": "string",
641
+ "format": "uri"
642
+ }
643
+ },
644
+ "required": [
645
+ "manifest_url"
646
+ ]
647
+ },
648
+ "embedded_provenance": {
649
+ "type": "array",
650
+ "minItems": 1,
651
+ "items": {
652
+ "type": "object",
653
+ "properties": {
654
+ "method": {
655
+ "$ref": "#/$defs/external:enums~1embedded-provenance-method.json"
656
+ },
657
+ "standard": {
658
+ "type": "string"
659
+ },
660
+ "provider": {
661
+ "type": "string"
662
+ },
663
+ "verify_agent": {
664
+ "type": "object",
665
+ "properties": {
666
+ "agent_url": {
667
+ "type": "string",
668
+ "format": "uri",
669
+ "pattern": "^https://"
670
+ },
671
+ "feature_id": {
672
+ "type": "string"
673
+ }
674
+ },
675
+ "required": [
676
+ "agent_url"
677
+ ],
678
+ "additionalProperties": false
679
+ },
680
+ "embedded_at": {
681
+ "type": "string",
682
+ "format": "date-time"
683
+ }
684
+ },
685
+ "required": [
686
+ "method",
687
+ "provider"
688
+ ]
689
+ }
690
+ },
691
+ "watermarks": {
692
+ "type": "array",
693
+ "minItems": 1,
694
+ "items": {
695
+ "type": "object",
696
+ "properties": {
697
+ "media_type": {
698
+ "$ref": "#/$defs/external:enums~1watermark-media-type.json"
699
+ },
700
+ "provider": {
701
+ "type": "string"
702
+ },
703
+ "verify_agent": {
704
+ "type": "object",
705
+ "properties": {
706
+ "agent_url": {
707
+ "type": "string",
708
+ "format": "uri",
709
+ "pattern": "^https://"
710
+ },
711
+ "feature_id": {
712
+ "type": "string"
713
+ }
714
+ },
715
+ "required": [
716
+ "agent_url"
717
+ ],
718
+ "additionalProperties": false
719
+ },
720
+ "c2pa_action": {
721
+ "$ref": "#/$defs/external:enums~1c2pa-watermark-action.json"
722
+ },
723
+ "embedded_at": {
724
+ "type": "string",
725
+ "format": "date-time"
726
+ }
727
+ },
728
+ "required": [
729
+ "media_type",
730
+ "provider"
731
+ ]
732
+ }
733
+ },
734
+ "disclosure": {
735
+ "type": "object",
736
+ "properties": {
737
+ "required": {
738
+ "type": "boolean"
739
+ },
740
+ "jurisdictions": {
741
+ "type": "array",
742
+ "items": {
743
+ "type": "object",
744
+ "properties": {
745
+ "country": {
746
+ "type": "string"
747
+ },
748
+ "region": {
749
+ "type": "string"
750
+ },
751
+ "regulation": {
752
+ "type": "string"
753
+ },
754
+ "label_text": {
755
+ "type": "string"
756
+ },
757
+ "render_guidance": {
758
+ "type": "object",
759
+ "minProperties": 1,
760
+ "properties": {
761
+ "persistence": {
762
+ "$ref": "#/$defs/external:enums~1disclosure-persistence.json"
763
+ },
764
+ "min_duration_ms": {
765
+ "type": "integer",
766
+ "minimum": 1
767
+ },
768
+ "positions": {
769
+ "type": "array",
770
+ "items": {
771
+ "$ref": "#/$defs/external:enums~1disclosure-position.json"
772
+ },
773
+ "minItems": 1,
774
+ "uniqueItems": true
775
+ },
776
+ "ext": {
777
+ "$ref": "#/$defs/external:core~1ext.json"
778
+ }
779
+ }
780
+ }
781
+ },
782
+ "required": [
783
+ "country",
784
+ "regulation"
785
+ ]
786
+ },
787
+ "minItems": 1
788
+ }
789
+ },
790
+ "required": [
791
+ "required"
792
+ ]
793
+ },
794
+ "verification": {
795
+ "type": "array",
796
+ "minItems": 1,
797
+ "items": {
798
+ "type": "object",
799
+ "properties": {
800
+ "verified_by": {
801
+ "type": "string"
802
+ },
803
+ "verified_time": {
804
+ "type": "string",
805
+ "format": "date-time"
806
+ },
807
+ "result": {
808
+ "type": "string",
809
+ "enum": [
810
+ "authentic",
811
+ "ai_generated",
812
+ "ai_modified",
813
+ "inconclusive"
814
+ ]
815
+ },
816
+ "confidence": {
817
+ "type": "number",
818
+ "minimum": 0,
819
+ "maximum": 1
820
+ },
821
+ "details_url": {
822
+ "type": "string",
823
+ "format": "uri"
824
+ }
825
+ },
826
+ "required": [
827
+ "verified_by",
828
+ "result"
829
+ ]
830
+ }
831
+ },
832
+ "ext": {
833
+ "$ref": "#/$defs/external:core~1ext.json"
834
+ }
835
+ }
836
+ },
837
+ "external:enums/digital-source-type.json": {
838
+ "type": "string",
839
+ "enum": [
840
+ "digital_capture",
841
+ "digital_creation",
842
+ "trained_algorithmic_media",
843
+ "composite_with_trained_algorithmic_media",
844
+ "algorithmic_media",
845
+ "composite_capture",
846
+ "composite_synthetic",
847
+ "human_edits",
848
+ "data_driven_media"
849
+ ]
850
+ },
851
+ "external:enums/embedded-provenance-method.json": {
852
+ "type": "string",
853
+ "enum": [
854
+ "manifest_wrapper",
855
+ "provenance_markers"
856
+ ]
857
+ },
858
+ "external:enums/watermark-media-type.json": {
859
+ "type": "string",
860
+ "enum": [
861
+ "audio",
862
+ "image",
863
+ "video",
864
+ "text"
865
+ ]
866
+ },
867
+ "external:enums/c2pa-watermark-action.json": {
868
+ "type": "string",
869
+ "enum": [
870
+ "c2pa.watermarked.bound",
871
+ "c2pa.watermarked.unbound"
872
+ ]
873
+ },
874
+ "external:enums/disclosure-persistence.json": {
875
+ "type": "string",
876
+ "enum": [
877
+ "continuous",
878
+ "initial",
879
+ "flexible"
880
+ ]
881
+ },
882
+ "external:enums/disclosure-position.json": {
883
+ "type": "string",
884
+ "enum": [
885
+ "prominent",
886
+ "footer",
887
+ "audio",
888
+ "subtitle",
889
+ "overlay",
890
+ "end_card",
891
+ "pre_roll",
892
+ "companion"
893
+ ]
894
+ },
895
+ "external:core/ext.json": {
896
+ "type": "object",
897
+ "additionalProperties": true
898
+ },
899
+ "external:core/operator-unit.json": {
900
+ "x-entity": "operator_unit",
901
+ "type": "object",
902
+ "properties": {
903
+ "id": {
904
+ "type": "string",
905
+ "minLength": 1,
906
+ "maxLength": 255,
907
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]*$"
908
+ },
909
+ "name": {
910
+ "type": "string",
911
+ "minLength": 1,
912
+ "maxLength": 200
913
+ }
914
+ },
915
+ "required": [
916
+ "id"
917
+ ],
918
+ "additionalProperties": false
919
+ }
920
+ }
921
+ }