@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.
- 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
- 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
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-request.json +629 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-response.json +1558 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-request.json +702 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-response.json +309 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-request.json +1113 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-response.json +1567 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-request.json +662 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-response.json +921 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-request.json +992 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-response.json +5965 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-request.json +3936 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-response.json +3859 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/manifest.json +206 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/manifest.json +175 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-request.json +775 -0
- package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-response.json +483 -0
- 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
- 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
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.d.mts +27 -0
- package/dist/lib/server/create-adcp-server.d.ts +27 -0
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +120 -4
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/create-adcp-server.mjs +121 -6
- package/dist/lib/server/create-adcp-server.mjs.map +1 -1
- package/dist/lib/server/decisioning/context.d.mts +6 -0
- package/dist/lib/server/decisioning/context.d.ts +6 -0
- package/dist/lib/server/decisioning/context.d.ts.map +1 -1
- package/dist/lib/server/decisioning/context.js.map +1 -1
- package/dist/lib/server/decisioning/index.d.mts +1 -1
- package/dist/lib/server/decisioning/index.d.ts +1 -1
- package/dist/lib/server/decisioning/index.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.js.map +1 -1
- package/dist/lib/server/decisioning/index.mjs.map +1 -1
- package/dist/lib/server/decisioning/platform.d.mts +21 -6
- package/dist/lib/server/decisioning/platform.d.ts +21 -6
- package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +201 -18
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +203 -19
- package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.js +6 -0
- package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.mjs +6 -0
- package/dist/lib/server/decisioning/runtime/to-context.mjs.map +1 -1
- package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/validate-platform.js +35 -4
- package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/validate-platform.mjs +35 -4
- package/dist/lib/server/decisioning/runtime/validate-platform.mjs.map +1 -1
- package/dist/lib/server/decisioning/specialisms/sales.d.mts +39 -0
- package/dist/lib/server/decisioning/specialisms/sales.d.ts +39 -0
- package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
- package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/validation/schema-loader.d.mts +2 -0
- package/dist/lib/validation/schema-loader.d.ts +2 -0
- package/dist/lib/validation/schema-loader.d.ts.map +1 -1
- package/dist/lib/validation/schema-loader.js +31 -0
- package/dist/lib/validation/schema-loader.js.map +1 -1
- package/dist/lib/validation/schema-loader.mjs +30 -0
- package/dist/lib/validation/schema-loader.mjs.map +1 -1
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.js.map +1 -1
- package/dist/lib/version.mjs +3 -3
- package/dist/lib/version.mjs.map +1 -1
- package/docs/guides/BUILD-AN-AGENT.md +10 -1
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +119 -0
- package/docs/llms.txt +1 -1
- package/docs/migration-12-to-14.md +8 -0
- package/docs/migration-13-to-14.md +30 -4
- package/docs/releases/14.0.0-beta.0.md +19 -1
- package/package.json +2 -1
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# AdCP 3.2 media-buy lifecycle compatibility
|
|
2
|
+
|
|
3
|
+
SDK 14 separates the tools an MCP seller **advertises** from the compatibility
|
|
4
|
+
routes it can still **call**. A 3.2 seller should make the compact lifecycle the
|
|
5
|
+
obvious path for new buyers without breaking a 3.0 or 3.1 buyer that already
|
|
6
|
+
calls the established names.
|
|
7
|
+
|
|
8
|
+
## MCP surface comparison
|
|
9
|
+
|
|
10
|
+
The active 3.2 `media-buy` profile advertises these registered tools:
|
|
11
|
+
|
|
12
|
+
| Area | AdCP 3.2 active media-buy profile |
|
|
13
|
+
|---|---|
|
|
14
|
+
| Product and proposal lifecycle | `list_products`, `request_proposals`, `refine_proposals`, `decline_proposals` |
|
|
15
|
+
| Purchase and control | `buy_products`, `accept_proposal`, `control_media_buy` |
|
|
16
|
+
| Readback | `get_media_buys`, `get_media_buy_delivery` |
|
|
17
|
+
| Accounts | `list_accounts`, `sync_accounts`, `get_account_financials`, `report_usage` |
|
|
18
|
+
| Creative library | `list_creatives`, `sync_creatives` |
|
|
19
|
+
| Media data | `sync_audiences`, `sync_catalogs`, `sync_event_sources`, `log_event`, `provide_performance_feedback` |
|
|
20
|
+
| Governance and notifications | `sync_governance`, `sync_agent_notification_configs` |
|
|
21
|
+
| Protocol | `get_adcp_capabilities`, `get_task_status`, `list_tasks` |
|
|
22
|
+
|
|
23
|
+
The deprecated `get_products`, `create_media_buy`, and `update_media_buy` names
|
|
24
|
+
are not advertised in that profile. AdCP 3.0/3.1 sellers advertise the legacy
|
|
25
|
+
lifecycle instead. `get_media_buys` and `get_media_buy_delivery` remain current
|
|
26
|
+
in both generations.
|
|
27
|
+
|
|
28
|
+
Every framework tool in `tools/list` carries `_meta.adcp_version`. The list
|
|
29
|
+
result also carries `_meta.adcp_version` and `_meta.adcp_profile` so a generic
|
|
30
|
+
MCP host can display the exact protocol pin and selected role surface without
|
|
31
|
+
inferring either from input schemas. Active-profile entries publish the exact,
|
|
32
|
+
self-contained draft-2020-12 request projection. Response validation remains
|
|
33
|
+
with the framework's AJV validator because current MCP clients apply a declared
|
|
34
|
+
success-only `outputSchema` to structured error results too.
|
|
35
|
+
|
|
36
|
+
## Implement both surfaces from one seller
|
|
37
|
+
|
|
38
|
+
Use `mediaBuyLifecycle` for the primary 3.2 implementation and keep `sales`
|
|
39
|
+
when the endpoint must continue serving older buyers:
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
const platform = {
|
|
43
|
+
// accounts, capabilities, statusMappers, ...
|
|
44
|
+
|
|
45
|
+
mediaBuyLifecycle: {
|
|
46
|
+
proposalRefinement: {
|
|
47
|
+
supported_dimensions: ['total_budget', 'product_changes'],
|
|
48
|
+
},
|
|
49
|
+
listProducts,
|
|
50
|
+
requestProposals,
|
|
51
|
+
refineProposals,
|
|
52
|
+
declineProposals,
|
|
53
|
+
buyProducts,
|
|
54
|
+
acceptProposal,
|
|
55
|
+
controlMediaBuy,
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
// Compatibility facade for AdCP 3.0/3.1 callers.
|
|
59
|
+
sales: {
|
|
60
|
+
getProducts,
|
|
61
|
+
createMediaBuy,
|
|
62
|
+
updateMediaBuy,
|
|
63
|
+
getMediaBuys,
|
|
64
|
+
getMediaBuyDelivery,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
createAdcpServerFromPlatform(platform, {
|
|
69
|
+
name: 'seller',
|
|
70
|
+
version: '1.0.0',
|
|
71
|
+
adcpVersion: '3.2.0-beta.0',
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
With the default `mcpToolProfile: 'auto'`, registering any compact lifecycle
|
|
76
|
+
handler on a 3.2 server selects the active media-buy profile. The legacy
|
|
77
|
+
handlers stay registered and callable but disappear from `tools/list`.
|
|
78
|
+
`mcpToolProfile: 'all'` is available for migration diagnostics; it should not
|
|
79
|
+
be the normal production discovery surface.
|
|
80
|
+
|
|
81
|
+
The compact tools are not mere renames. Proposal digests, immutable terms,
|
|
82
|
+
feed and pricing versions, optimistic revisions, and accepted commercial
|
|
83
|
+
snapshots make a general field-cast downgrade unsafe. SDK 14 therefore does
|
|
84
|
+
not silently translate a compact call into an older tool. A buyer talking to a
|
|
85
|
+
3.0/3.1 seller selects the established client methods; a dual-surface seller
|
|
86
|
+
implements both facades over the same authorization, storage, idempotency, and
|
|
87
|
+
commercial service layer.
|
|
88
|
+
|
|
89
|
+
A 3.2-only seller may omit `sales` entirely. `getMediaBuys` and
|
|
90
|
+
`getMediaBuyDelivery` can live on `mediaBuyLifecycle` alongside the seven
|
|
91
|
+
compact lifecycle methods. Authenticated mutations receive an immutable
|
|
92
|
+
`ctx.callerMutationScope`; `refineProposals` also receives the framework-owned
|
|
93
|
+
`ctx.proposalRefinementScope`. Persist and query proposal state under these
|
|
94
|
+
trusted namespaces, never a buyer-supplied proposal ID alone.
|
|
95
|
+
|
|
96
|
+
## Compatibility matrix to keep in CI
|
|
97
|
+
|
|
98
|
+
| Buyer | Seller | Expected path |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| SDK 14 / AdCP 3.2 | SDK 14 / AdCP 3.2 | Compact lifecycle is advertised and called |
|
|
101
|
+
| SDK 14 pinned to AdCP 3.1 | AdCP 3.1 | `get_products` / `create_media_buy` / `update_media_buy` |
|
|
102
|
+
| SDK 14 pinned to AdCP 3.0 | AdCP 3.0 | Established tools plus canonical-to-legacy projection |
|
|
103
|
+
| Existing AdCP 3.0/3.1 buyer | Dual-surface SDK 14 seller | Known legacy names remain directly callable |
|
|
104
|
+
|
|
105
|
+
For each lane, assert more than tool presence:
|
|
106
|
+
|
|
107
|
+
1. `tools/list` exposes the version-appropriate surface and metadata.
|
|
108
|
+
2. The request validates against the selected 3.0, 3.1, or 3.2 bundle.
|
|
109
|
+
3. Tenant and authenticated-principal scope reaching the business handler is
|
|
110
|
+
identical across both facades.
|
|
111
|
+
4. Exact retry keys replay; changed payloads conflict; no cache entry crosses
|
|
112
|
+
a tool, tenant, account, or buyer principal.
|
|
113
|
+
5. Product, proposal, media-buy, and delivery reads return the same underlying
|
|
114
|
+
commercial state through the appropriate versioned response projection.
|
|
115
|
+
6. Both MCP SDK clients and raw legacy-name calls are covered, so discovery
|
|
116
|
+
filtering cannot accidentally remove compatibility dispatch.
|
|
117
|
+
|
|
118
|
+
Do not test a compact request by casting it to a legacy request type. Exercise
|
|
119
|
+
the actual buyer method and wire schema for each lane.
|
package/docs/llms.txt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Ad Context Protocol (AdCP)
|
|
2
2
|
|
|
3
3
|
> Generated at: 2026-08-18
|
|
4
|
-
> Library: @adcp/sdk v14.0.0-beta.
|
|
4
|
+
> Library: @adcp/sdk v14.0.0-beta.1
|
|
5
5
|
> AdCP major version: 3
|
|
6
6
|
> Canonical URL: https://adcontextprotocol.github.io/adcp-client/llms.txt
|
|
7
7
|
> Note: the `Library` stamp reflects the package.json version at doc-generation time. The narrative below describes the surface that lands on the next-published minor — including any 6.7 helpers documented here ahead of the release tag.
|
|
@@ -102,6 +102,14 @@ SDK 14 adds convenience methods and generated server/type/schema support for:
|
|
|
102
102
|
|
|
103
103
|
These do not replace the established tools for older agents. Discover `lifecycle_tools` and branch. Keep `getProducts()`/`createMediaBuy()`/`updateMediaBuy()` available for AdCP 3.0 and 3.1. Preserve the same idempotency key only for an exact retry; changed commercial intent requires a fresh key.
|
|
104
104
|
|
|
105
|
+
For sellers, implement the compact handlers on
|
|
106
|
+
`platform.mediaBuyLifecycle`; keep `platform.sales` as the 3.0/3.1 facade when
|
|
107
|
+
the endpoint serves mixed buyers. SDK 14's default MCP discovery then shows
|
|
108
|
+
the active 3.2 media-buy profile while leaving configured legacy names directly
|
|
109
|
+
callable. It also exposes `_meta.adcp_version` and `_meta.adcp_profile` in
|
|
110
|
+
`tools/list`. See the [surface comparison and compatibility test
|
|
111
|
+
matrix](guides/MEDIA-BUY-3.2-COMPATIBILITY.md).
|
|
112
|
+
|
|
105
113
|
For the established proposal path, treat only `get_products` refinements with
|
|
106
114
|
`scope: 'proposal'` and `action: 'finalize'` as mutations. SDK 14 clients attach
|
|
107
115
|
an idempotency key and exact retries must reuse it; SDK 14 servers replay a
|
|
@@ -46,8 +46,17 @@ by their other commercial mutations.
|
|
|
46
46
|
|
|
47
47
|
SDK 14 also hardens replay-cache isolation by including the tool and trusted
|
|
48
48
|
resolved session/account identity in canonical replay identity. Existing-tool
|
|
49
|
-
cache keys retain their SDK 13 scope
|
|
50
|
-
|
|
49
|
+
cache keys retain both their SDK 13 scope and bare `authInfo.clientId`
|
|
50
|
+
principal format, so an older durable entry cannot be missed and executed
|
|
51
|
+
twice during a rolling upgrade. The new 3.2 compact mutation tools instead use
|
|
52
|
+
credential-kind-prefixed principals such as `oauth:<client_id>`,
|
|
53
|
+
`api_key:<key_id>`, or `agent:<agent_url>` and do not fall back to session or
|
|
54
|
+
account identity. Those tools have no SDK 13 cache entries to migrate.
|
|
55
|
+
|
|
56
|
+
If you supply `resolveIdempotencyPrincipal`, your resolver remains
|
|
57
|
+
authoritative for both established and compact tools; keep its output stable
|
|
58
|
+
across the deployment or deliberately dual-read/migrate your backing store.
|
|
59
|
+
Because SDK 14's stronger payload identity differs,
|
|
51
60
|
a retry against an SDK 13 entry returns `IDEMPOTENCY_CONFLICT` instead of the
|
|
52
61
|
old cached body; reconcile by natural key rather than minting a replacement
|
|
53
62
|
key until the original replay TTL expires. New entries cannot replay a body
|
|
@@ -103,14 +112,31 @@ Do not select a signing profile from a version value inside an unverified reques
|
|
|
103
112
|
|
|
104
113
|
## Server handler additions
|
|
105
114
|
|
|
106
|
-
`createAdcpServerFromPlatform()`
|
|
115
|
+
`createAdcpServerFromPlatform()` routes the new compact lifecycle through
|
|
116
|
+
`platform.mediaBuyLifecycle`, including `proposalRefinement` capability
|
|
117
|
+
metadata for `refineProposals`. Keep `platform.sales` beside it when the same
|
|
118
|
+
seller must accept 3.0/3.1 callers. Both facades should call the same business
|
|
119
|
+
services rather than maintaining parallel commercial state.
|
|
120
|
+
|
|
121
|
+
The generated handler maps cover:
|
|
107
122
|
|
|
108
123
|
- `list_products`, `request_proposals`, `refine_proposals`, `decline_proposals`
|
|
109
124
|
- `buy_products`, `accept_proposal`, `control_media_buy`
|
|
110
125
|
- `report_plan_adjustment`
|
|
111
126
|
- `sync_agent_notification_configs`
|
|
112
127
|
|
|
113
|
-
|
|
128
|
+
On a 3.2 server, the default `mcpToolProfile: 'auto'` advertises only the
|
|
129
|
+
intersection of registered tools and the active spec `media-buy` profile. The
|
|
130
|
+
deprecated names remain callable compatibility routes. Use
|
|
131
|
+
`mcpToolProfile: 'all'` only for migration diagnostics. MCP `tools/list`
|
|
132
|
+
includes `_meta.adcp_version` and `_meta.adcp_profile`, and each framework tool
|
|
133
|
+
includes `_meta.adcp_version`.
|
|
134
|
+
|
|
135
|
+
An SDK 14 server may therefore continue serving 3.0/3.1 clients through the
|
|
136
|
+
established tool names without steering new MCP clients toward them. Verify
|
|
137
|
+
both facades use the same authorization, tenant isolation, idempotency, and
|
|
138
|
+
commercial source of truth. The exact surface comparison and test matrix are
|
|
139
|
+
in [AdCP 3.2 media-buy lifecycle compatibility](guides/MEDIA-BUY-3.2-COMPATIBILITY.md).
|
|
114
140
|
|
|
115
141
|
For create/update media-buy handlers, use `media_buy_status` for the business state:
|
|
116
142
|
|
|
@@ -35,7 +35,25 @@ The generated client, server handler maps, request validators, response types, Z
|
|
|
35
35
|
|
|
36
36
|
`AgentClient` exposes matching camel-case methods. Mutating methods accept the SDK's idempotency-aware request input, and the existing generic `executeTask()` path remains available.
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
`createAdcpServerFromPlatform()` now exposes the same lifecycle through the
|
|
39
|
+
first-class `mediaBuyLifecycle` platform interface. Compose it with `sales`
|
|
40
|
+
when one deployment must also serve the established 3.0/3.1 tool names.
|
|
41
|
+
|
|
42
|
+
MCP discovery defaults to the spec's active 3.2 `media-buy` profile whenever a
|
|
43
|
+
3.2 server registers a compact lifecycle handler. It omits deprecated
|
|
44
|
+
`get_products`, `create_media_buy`, and `update_media_buy` from `tools/list`,
|
|
45
|
+
but keeps configured compatibility handlers directly callable by older buyers.
|
|
46
|
+
Each listed tool and the list response expose the server's protocol pin under
|
|
47
|
+
`_meta.adcp_version`; the response also exposes `_meta.adcp_profile`.
|
|
48
|
+
Active-profile entries include their exact, self-contained draft-2020-12
|
|
49
|
+
request schemas. Compact-only sellers can implement current readback methods on
|
|
50
|
+
`mediaBuyLifecycle` without also defining deprecated handlers.
|
|
51
|
+
|
|
52
|
+
The established 3.x tools remain available for 3.0/3.1 interoperability. A
|
|
53
|
+
compact call is not silently field-cast into a legacy call because proposal
|
|
54
|
+
terms, feed versions, and revisions require orchestration. Capability discovery
|
|
55
|
+
should decide which lifecycle to use. See the complete [3.2 media-buy surface
|
|
56
|
+
and compatibility matrix](../guides/MEDIA-BUY-3.2-COMPATIBILITY.md).
|
|
39
57
|
|
|
40
58
|
AdCP 3.2 adds optional-key replay semantics to the already state-changing,
|
|
41
59
|
legacy-compatible `get_products` proposal-finalize variant. SDK 14 clients
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adcp/sdk",
|
|
3
|
-
"version": "14.0.0-beta.
|
|
3
|
+
"version": "14.0.0-beta.1",
|
|
4
4
|
"description": "AdCP SDK — client, server, and compliance harnesses for the AdContext Protocol (MCP + A2A)",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
".",
|
|
@@ -451,6 +451,7 @@
|
|
|
451
451
|
"docs/migration-*.md",
|
|
452
452
|
"MIGRATION-*.md",
|
|
453
453
|
"docs/guides/BUILD-AN-AGENT.md",
|
|
454
|
+
"docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md",
|
|
454
455
|
"docs/guides/CANONICAL-REFERENCE-RESOLVER.md",
|
|
455
456
|
"docs/guides/PREVIEW-ASSET-DURABILITY.md",
|
|
456
457
|
"examples/**/*",
|