@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,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.0
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 so an older durable entry cannot be
50
- missed and executed twice. Because SDK 14's stronger payload identity differs,
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()` can route the new compact lifecycle, governance adjustment, and agent notification tasks. The generated handler maps cover:
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
- An SDK 14 server may continue serving 3.0/3.1 clients through the established tool names. Advertise only handlers that are configured and verify both the old facade and new compact path use the same authorization, tenant isolation, idempotency, and commercial source of truth.
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
- The established 3.x tools—including `get_products`, `create_media_buy`, and `update_media_buy`—remain available for 3.0/3.1 interoperability. Capability discovery should decide which lifecycle to use; do not send a 3.2-only tool to a seller that does not advertise it.
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.0",
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/**/*",