@adcp/sdk 5.25.0 → 6.0.0

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 (298) hide show
  1. package/README.md +45 -7
  2. package/dist/lib/compliance-fixtures/index.d.ts +1 -1
  3. package/dist/lib/compliance-fixtures/index.js +1 -1
  4. package/dist/lib/conformance/runners.d.ts.map +1 -1
  5. package/dist/lib/conformance/runners.js +13 -1
  6. package/dist/lib/conformance/runners.js.map +1 -1
  7. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  8. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  9. package/dist/lib/core/SingleAgentClient.js +15 -0
  10. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  11. package/dist/lib/core/TaskExecutor.d.ts +7 -0
  12. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  13. package/dist/lib/core/TaskExecutor.js +9 -2
  14. package/dist/lib/core/TaskExecutor.js.map +1 -1
  15. package/dist/lib/index.d.ts +1 -1
  16. package/dist/lib/index.d.ts.map +1 -1
  17. package/dist/lib/index.js +7 -8
  18. package/dist/lib/index.js.map +1 -1
  19. package/dist/lib/protocols/index.d.ts +3 -1
  20. package/dist/lib/protocols/index.d.ts.map +1 -1
  21. package/dist/lib/protocols/index.js +23 -14
  22. package/dist/lib/protocols/index.js.map +1 -1
  23. package/dist/lib/schemas/index.d.ts +1 -1
  24. package/dist/lib/schemas/index.js +1 -1
  25. package/dist/lib/server/create-adcp-server.d.ts +142 -11
  26. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  27. package/dist/lib/server/create-adcp-server.js +211 -2
  28. package/dist/lib/server/create-adcp-server.js.map +1 -1
  29. package/dist/lib/server/ctx-metadata/backends/memory.d.ts +27 -0
  30. package/dist/lib/server/ctx-metadata/backends/memory.d.ts.map +1 -0
  31. package/dist/lib/server/ctx-metadata/backends/memory.js +72 -0
  32. package/dist/lib/server/ctx-metadata/backends/memory.js.map +1 -0
  33. package/dist/lib/server/ctx-metadata/backends/pg.d.ts +62 -0
  34. package/dist/lib/server/ctx-metadata/backends/pg.d.ts.map +1 -0
  35. package/dist/lib/server/ctx-metadata/backends/pg.js +145 -0
  36. package/dist/lib/server/ctx-metadata/backends/pg.js.map +1 -0
  37. package/dist/lib/server/ctx-metadata/index.d.ts +15 -0
  38. package/dist/lib/server/ctx-metadata/index.d.ts.map +1 -0
  39. package/dist/lib/server/ctx-metadata/index.js +28 -0
  40. package/dist/lib/server/ctx-metadata/index.js.map +1 -0
  41. package/dist/lib/server/ctx-metadata/store.d.ts +177 -0
  42. package/dist/lib/server/ctx-metadata/store.d.ts.map +1 -0
  43. package/dist/lib/server/ctx-metadata/store.js +327 -0
  44. package/dist/lib/server/ctx-metadata/store.js.map +1 -0
  45. package/dist/lib/server/ctx-metadata/wire-shape.d.ts +55 -0
  46. package/dist/lib/server/ctx-metadata/wire-shape.d.ts.map +1 -0
  47. package/dist/lib/server/ctx-metadata/wire-shape.js +121 -0
  48. package/dist/lib/server/ctx-metadata/wire-shape.js.map +1 -0
  49. package/dist/lib/server/decisioning/account.d.ts +309 -0
  50. package/dist/lib/server/decisioning/account.d.ts.map +1 -0
  51. package/dist/lib/server/decisioning/account.js +102 -0
  52. package/dist/lib/server/decisioning/account.js.map +1 -0
  53. package/dist/lib/server/decisioning/admin-router.d.ts +75 -0
  54. package/dist/lib/server/decisioning/admin-router.d.ts.map +1 -0
  55. package/dist/lib/server/decisioning/admin-router.js +120 -0
  56. package/dist/lib/server/decisioning/admin-router.js.map +1 -0
  57. package/dist/lib/server/decisioning/assembly-helpers.d.ts +204 -0
  58. package/dist/lib/server/decisioning/assembly-helpers.d.ts.map +1 -0
  59. package/dist/lib/server/decisioning/assembly-helpers.js +173 -0
  60. package/dist/lib/server/decisioning/assembly-helpers.js.map +1 -0
  61. package/dist/lib/server/decisioning/async-outcome.d.ts +154 -0
  62. package/dist/lib/server/decisioning/async-outcome.d.ts.map +1 -0
  63. package/dist/lib/server/decisioning/async-outcome.js +239 -0
  64. package/dist/lib/server/decisioning/async-outcome.js.map +1 -0
  65. package/dist/lib/server/decisioning/capabilities.d.ts +251 -0
  66. package/dist/lib/server/decisioning/capabilities.d.ts.map +1 -0
  67. package/dist/lib/server/decisioning/capabilities.js +16 -0
  68. package/dist/lib/server/decisioning/capabilities.js.map +1 -0
  69. package/dist/lib/server/decisioning/context.d.ts +212 -0
  70. package/dist/lib/server/decisioning/context.d.ts.map +1 -0
  71. package/dist/lib/server/decisioning/context.js +26 -0
  72. package/dist/lib/server/decisioning/context.js.map +1 -0
  73. package/dist/lib/server/decisioning/errors-typed.d.ts +104 -0
  74. package/dist/lib/server/decisioning/errors-typed.d.ts.map +1 -0
  75. package/dist/lib/server/decisioning/errors-typed.js +304 -0
  76. package/dist/lib/server/decisioning/errors-typed.js.map +1 -0
  77. package/dist/lib/server/decisioning/helpers.d.ts +131 -0
  78. package/dist/lib/server/decisioning/helpers.d.ts.map +1 -0
  79. package/dist/lib/server/decisioning/helpers.js +134 -0
  80. package/dist/lib/server/decisioning/helpers.js.map +1 -0
  81. package/dist/lib/server/decisioning/index.d.ts +46 -0
  82. package/dist/lib/server/decisioning/index.d.ts.map +1 -0
  83. package/dist/lib/server/decisioning/index.js +120 -0
  84. package/dist/lib/server/decisioning/index.js.map +1 -0
  85. package/dist/lib/server/decisioning/list-helpers.d.ts +53 -0
  86. package/dist/lib/server/decisioning/list-helpers.d.ts.map +1 -0
  87. package/dist/lib/server/decisioning/list-helpers.js +96 -0
  88. package/dist/lib/server/decisioning/list-helpers.js.map +1 -0
  89. package/dist/lib/server/decisioning/manifest-helpers.d.ts +56 -0
  90. package/dist/lib/server/decisioning/manifest-helpers.d.ts.map +1 -0
  91. package/dist/lib/server/decisioning/manifest-helpers.js +78 -0
  92. package/dist/lib/server/decisioning/manifest-helpers.js.map +1 -0
  93. package/dist/lib/server/decisioning/pagination.d.ts +21 -0
  94. package/dist/lib/server/decisioning/pagination.d.ts.map +1 -0
  95. package/dist/lib/server/decisioning/pagination.js +12 -0
  96. package/dist/lib/server/decisioning/pagination.js.map +1 -0
  97. package/dist/lib/server/decisioning/platform.d.ts +188 -0
  98. package/dist/lib/server/decisioning/platform.d.ts.map +1 -0
  99. package/dist/lib/server/decisioning/platform.js +19 -0
  100. package/dist/lib/server/decisioning/platform.js.map +1 -0
  101. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +510 -0
  102. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -0
  103. package/dist/lib/server/decisioning/runtime/from-platform.js +2196 -0
  104. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -0
  105. package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts +114 -0
  106. package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts.map +1 -0
  107. package/dist/lib/server/decisioning/runtime/postgres-task-registry.js +247 -0
  108. package/dist/lib/server/decisioning/runtime/postgres-task-registry.js.map +1 -0
  109. package/dist/lib/server/decisioning/runtime/protocol-for-tool.d.ts +32 -0
  110. package/dist/lib/server/decisioning/runtime/protocol-for-tool.d.ts.map +1 -0
  111. package/dist/lib/server/decisioning/runtime/protocol-for-tool.js +127 -0
  112. package/dist/lib/server/decisioning/runtime/protocol-for-tool.js.map +1 -0
  113. package/dist/lib/server/decisioning/runtime/task-registry.d.ts +105 -0
  114. package/dist/lib/server/decisioning/runtime/task-registry.d.ts.map +1 -0
  115. package/dist/lib/server/decisioning/runtime/task-registry.js +96 -0
  116. package/dist/lib/server/decisioning/runtime/task-registry.js.map +1 -0
  117. package/dist/lib/server/decisioning/runtime/to-context.d.ts +54 -0
  118. package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -0
  119. package/dist/lib/server/decisioning/runtime/to-context.js +166 -0
  120. package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -0
  121. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts +20 -0
  122. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -0
  123. package/dist/lib/server/decisioning/runtime/validate-platform.js +93 -0
  124. package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -0
  125. package/dist/lib/server/decisioning/specialisms/audiences.d.ts +72 -0
  126. package/dist/lib/server/decisioning/specialisms/audiences.d.ts.map +1 -0
  127. package/dist/lib/server/decisioning/specialisms/audiences.js +15 -0
  128. package/dist/lib/server/decisioning/specialisms/audiences.js.map +1 -0
  129. package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts +92 -0
  130. package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts.map +1 -0
  131. package/dist/lib/server/decisioning/specialisms/brand-rights.js +28 -0
  132. package/dist/lib/server/decisioning/specialisms/brand-rights.js.map +1 -0
  133. package/dist/lib/server/decisioning/specialisms/campaign-governance.d.ts +67 -0
  134. package/dist/lib/server/decisioning/specialisms/campaign-governance.d.ts.map +1 -0
  135. package/dist/lib/server/decisioning/specialisms/campaign-governance.js +31 -0
  136. package/dist/lib/server/decisioning/specialisms/campaign-governance.js.map +1 -0
  137. package/dist/lib/server/decisioning/specialisms/content-standards.d.ts +78 -0
  138. package/dist/lib/server/decisioning/specialisms/content-standards.d.ts.map +1 -0
  139. package/dist/lib/server/decisioning/specialisms/content-standards.js +35 -0
  140. package/dist/lib/server/decisioning/specialisms/content-standards.js.map +1 -0
  141. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts +81 -0
  142. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts.map +1 -0
  143. package/dist/lib/server/decisioning/specialisms/creative-ad-server.js +28 -0
  144. package/dist/lib/server/decisioning/specialisms/creative-ad-server.js.map +1 -0
  145. package/dist/lib/server/decisioning/specialisms/creative.d.ts +144 -0
  146. package/dist/lib/server/decisioning/specialisms/creative.d.ts.map +1 -0
  147. package/dist/lib/server/decisioning/specialisms/creative.js +19 -0
  148. package/dist/lib/server/decisioning/specialisms/creative.js.map +1 -0
  149. package/dist/lib/server/decisioning/specialisms/lists.d.ts +61 -0
  150. package/dist/lib/server/decisioning/specialisms/lists.d.ts.map +1 -0
  151. package/dist/lib/server/decisioning/specialisms/lists.js +30 -0
  152. package/dist/lib/server/decisioning/specialisms/lists.js.map +1 -0
  153. package/dist/lib/server/decisioning/specialisms/sales.d.ts +163 -0
  154. package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -0
  155. package/dist/lib/server/decisioning/specialisms/sales.js +64 -0
  156. package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -0
  157. package/dist/lib/server/decisioning/specialisms/signals.d.ts +64 -0
  158. package/dist/lib/server/decisioning/specialisms/signals.d.ts.map +1 -0
  159. package/dist/lib/server/decisioning/specialisms/signals.js +28 -0
  160. package/dist/lib/server/decisioning/specialisms/signals.js.map +1 -0
  161. package/dist/lib/server/decisioning/start-time.d.ts +76 -0
  162. package/dist/lib/server/decisioning/start-time.d.ts.map +1 -0
  163. package/dist/lib/server/decisioning/start-time.js +81 -0
  164. package/dist/lib/server/decisioning/start-time.js.map +1 -0
  165. package/dist/lib/server/decisioning/status-changes.d.ts +165 -0
  166. package/dist/lib/server/decisioning/status-changes.d.ts.map +1 -0
  167. package/dist/lib/server/decisioning/status-changes.js +131 -0
  168. package/dist/lib/server/decisioning/status-changes.js.map +1 -0
  169. package/dist/lib/server/decisioning/status-mappers.d.ts +46 -0
  170. package/dist/lib/server/decisioning/status-mappers.d.ts.map +1 -0
  171. package/dist/lib/server/decisioning/status-mappers.js +46 -0
  172. package/dist/lib/server/decisioning/status-mappers.js.map +1 -0
  173. package/dist/lib/server/decisioning/tenant-registry.d.ts +289 -0
  174. package/dist/lib/server/decisioning/tenant-registry.d.ts.map +1 -0
  175. package/dist/lib/server/decisioning/tenant-registry.js +503 -0
  176. package/dist/lib/server/decisioning/tenant-registry.js.map +1 -0
  177. package/dist/lib/server/express-adapter.d.ts +1 -1
  178. package/dist/lib/server/express-adapter.js +1 -1
  179. package/dist/lib/server/governance.d.ts +1 -1
  180. package/dist/lib/server/governance.js +1 -1
  181. package/dist/lib/server/idempotency/store.d.ts +1 -1
  182. package/dist/lib/server/idempotency/store.js +1 -1
  183. package/dist/lib/server/index.d.ts +9 -2
  184. package/dist/lib/server/index.d.ts.map +1 -1
  185. package/dist/lib/server/index.js +79 -4
  186. package/dist/lib/server/index.js.map +1 -1
  187. package/dist/lib/server/legacy/v5/index.d.ts +38 -0
  188. package/dist/lib/server/legacy/v5/index.d.ts.map +1 -0
  189. package/dist/lib/server/legacy/v5/index.js +60 -0
  190. package/dist/lib/server/legacy/v5/index.js.map +1 -0
  191. package/dist/lib/server/normalize-errors.d.ts +88 -0
  192. package/dist/lib/server/normalize-errors.d.ts.map +1 -0
  193. package/dist/lib/server/normalize-errors.js +146 -0
  194. package/dist/lib/server/normalize-errors.js.map +1 -0
  195. package/dist/lib/server/pick-safe-details.d.ts +90 -0
  196. package/dist/lib/server/pick-safe-details.d.ts.map +1 -0
  197. package/dist/lib/server/pick-safe-details.js +148 -0
  198. package/dist/lib/server/pick-safe-details.js.map +1 -0
  199. package/dist/lib/server/postgres-state-store.d.ts +1 -1
  200. package/dist/lib/server/postgres-state-store.js +1 -1
  201. package/dist/lib/server/responses.d.ts +38 -0
  202. package/dist/lib/server/responses.d.ts.map +1 -1
  203. package/dist/lib/server/responses.js +38 -0
  204. package/dist/lib/server/responses.js.map +1 -1
  205. package/dist/lib/server/state-store.d.ts +1 -1
  206. package/dist/lib/server/state-store.js +1 -1
  207. package/dist/lib/server/test-controller.d.ts +10 -3
  208. package/dist/lib/server/test-controller.d.ts.map +1 -1
  209. package/dist/lib/server/test-controller.js +10 -3
  210. package/dist/lib/server/test-controller.js.map +1 -1
  211. package/dist/lib/testing/comply-controller.d.ts +47 -1
  212. package/dist/lib/testing/comply-controller.d.ts.map +1 -1
  213. package/dist/lib/testing/comply-controller.js +11 -4
  214. package/dist/lib/testing/comply-controller.js.map +1 -1
  215. package/dist/lib/testing/index.d.ts +1 -1
  216. package/dist/lib/testing/index.d.ts.map +1 -1
  217. package/dist/lib/testing/index.js.map +1 -1
  218. package/dist/lib/testing/personas/index.d.ts +143 -0
  219. package/dist/lib/testing/personas/index.d.ts.map +1 -0
  220. package/dist/lib/testing/personas/index.js +190 -0
  221. package/dist/lib/testing/personas/index.js.map +1 -0
  222. package/dist/lib/testing/storyboard/index.d.ts +1 -1
  223. package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
  224. package/dist/lib/testing/storyboard/index.js +3 -2
  225. package/dist/lib/testing/storyboard/index.js.map +1 -1
  226. package/dist/lib/testing/storyboard/runner.d.ts +13 -0
  227. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  228. package/dist/lib/testing/storyboard/runner.js +179 -7
  229. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  230. package/dist/lib/types/adcp.d.ts.map +1 -1
  231. package/dist/lib/types/adcp.js +1 -0
  232. package/dist/lib/types/adcp.js.map +1 -1
  233. package/dist/lib/types/asset-instances.d.ts +1 -0
  234. package/dist/lib/types/asset-instances.d.ts.map +1 -1
  235. package/dist/lib/types/core.generated.d.ts +203 -98
  236. package/dist/lib/types/core.generated.d.ts.map +1 -1
  237. package/dist/lib/types/core.generated.js +1 -1
  238. package/dist/lib/types/index.d.ts +1 -0
  239. package/dist/lib/types/index.d.ts.map +1 -1
  240. package/dist/lib/types/index.js.map +1 -1
  241. package/dist/lib/types/schemas.generated.d.ts +599 -159
  242. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  243. package/dist/lib/types/schemas.generated.js +175 -94
  244. package/dist/lib/types/schemas.generated.js.map +1 -1
  245. package/dist/lib/types/tools.generated.d.ts +315 -46
  246. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  247. package/dist/lib/utils/capabilities.d.ts +1 -1
  248. package/dist/lib/utils/capabilities.d.ts.map +1 -1
  249. package/dist/lib/utils/capabilities.js +6 -0
  250. package/dist/lib/utils/capabilities.js.map +1 -1
  251. package/dist/lib/validation/schema-validator.d.ts +13 -0
  252. package/dist/lib/validation/schema-validator.d.ts.map +1 -1
  253. package/dist/lib/validation/schema-validator.js +240 -3
  254. package/dist/lib/validation/schema-validator.js.map +1 -1
  255. package/dist/lib/version.d.ts +3 -3
  256. package/dist/lib/version.d.ts.map +1 -1
  257. package/dist/lib/version.js +3 -3
  258. package/dist/lib/version.js.map +1 -1
  259. package/docs/guides/BUILD-AN-AGENT.md +30 -5
  260. package/docs/llms.txt +28 -17
  261. package/examples/README.md +3 -1
  262. package/examples/decisioning-platform-broadcast-tv.ts +300 -0
  263. package/examples/decisioning-platform-identity-graph.ts +214 -0
  264. package/examples/decisioning-platform-mock-seller.ts +332 -0
  265. package/examples/decisioning-platform-multi-tenant.ts +128 -0
  266. package/examples/decisioning-platform-programmatic.ts +254 -0
  267. package/examples/signals-agent.ts +1 -1
  268. package/package.json +13 -2
  269. package/skills/build-brand-rights-agent/SKILL.md +10 -3
  270. package/skills/build-creative-agent/SKILL.md +94 -64
  271. package/skills/build-decisioning-creative-template/SKILL.md +554 -0
  272. package/skills/build-decisioning-platform/SKILL.md +304 -0
  273. package/skills/build-decisioning-platform/advanced/BRAND-RIGHTS.md +25 -0
  274. package/skills/build-decisioning-platform/advanced/COMPLIANCE.md +23 -0
  275. package/skills/build-decisioning-platform/advanced/GOVERNANCE.md +24 -0
  276. package/skills/build-decisioning-platform/advanced/HITL.md +34 -0
  277. package/skills/build-decisioning-platform/advanced/IDEMPOTENCY.md +52 -0
  278. package/skills/build-decisioning-platform/advanced/MULTI-TENANT.md +47 -0
  279. package/skills/build-decisioning-platform/advanced/OAUTH.md +22 -0
  280. package/skills/build-decisioning-platform/advanced/REFERENCE.md +991 -0
  281. package/skills/build-decisioning-platform/advanced/SANDBOX.md +24 -0
  282. package/skills/build-decisioning-platform/advanced/STATE-MACHINE.md +52 -0
  283. package/skills/build-decisioning-signal-marketplace/SKILL.md +269 -0
  284. package/skills/build-generative-seller-agent/SKILL.md +89 -53
  285. package/skills/build-governance-agent/SKILL.md +76 -45
  286. package/skills/build-retail-media-agent/SKILL.md +87 -62
  287. package/skills/build-seller-agent/SKILL.md +384 -255
  288. package/skills/build-seller-agent/deployment.md +5 -3
  289. package/skills/build-seller-agent/specialisms/audience-sync.md +0 -2
  290. package/skills/build-seller-agent/specialisms/sales-broadcast-tv.md +0 -2
  291. package/skills/build-seller-agent/specialisms/sales-guaranteed.md +0 -2
  292. package/skills/build-seller-agent/specialisms/sales-non-guaranteed.md +0 -2
  293. package/skills/build-seller-agent/specialisms/sales-proposal-mode.md +0 -2
  294. package/skills/build-seller-agent/specialisms/sales-social.md +0 -2
  295. package/skills/build-seller-agent/specialisms/signed-requests.md +0 -2
  296. package/skills/build-si-agent/SKILL.md +40 -32
  297. package/skills/build-signals-agent/SKILL.md +139 -92
  298. package/skills/call-adcp-agent.previous/SKILL.md +5 -0
@@ -1,10 +1,29 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toMcpResponse = exports.TestControllerError = exports.handleTestControllerRequest = exports.registerTestController = exports.MCP_TASKS_MIGRATION = exports.getMcpTasksMigration = exports.cleanupExpiredTasks = exports.PostgresTaskStore = exports.isTerminal = exports.InMemoryTaskStore = exports.createTaskCapableServer = exports.registerAdcpTaskTool = exports.taskToolResponse = exports.validActionsForStatus = exports.toStructuredContent = exports.reportUsageResponse = exports.syncGovernanceResponse = exports.syncAccountsResponse = exports.acquireRightsRejected = exports.acquireRightsPendingApproval = exports.acquireRightsAcquired = exports.acquireRightsResponse = exports.cancelMediaBuyResponse = exports.activateSignalResponse = exports.getSignalsResponse = exports.syncCreativesResponse = exports.getPlanAuditLogsResponse = exports.listContentStandardsResponse = exports.listCollectionListsResponse = exports.listPropertyListsResponse = exports.listCreativesResponse = exports.creativeDeliveryResponse = exports.previewCreativeResponse = exports.buildCreativeMultiResponse = exports.buildCreativeResponse = exports.performanceFeedbackResponse = exports.getMediaBuysResponse = exports.updateMediaBuyResponse = exports.listCreativeFormatsResponse = exports.listAccountsResponse = exports.deliveryResponse = exports.mediaBuyResponse = exports.productsResponse = exports.capabilitiesResponse = exports.CONFLICT_ADCP_ERROR_ALLOWLIST = exports.ADCP_ERROR_FIELD_ALLOWLIST = exports.DEFAULT_ERROR_ENVELOPE_FIELDS = exports.ERROR_ENVELOPE_FIELD_ALLOWLIST = exports.wrapEnvelope = exports.adcpError = void 0;
4
- exports.ADCP_STATE_MIGRATION = exports.getAdcpStateMigration = exports.PostgresStateStore = exports.validateWrite = exports.validatePayloadSize = exports.validateId = exports.validateCollection = exports.isPutIfMatchConflict = exports.patchWithRetry = exports.scopedStore = exports.createSessionedStore = exports.SESSION_KEY_FIELD = exports.DEFAULT_MAX_DOCUMENT_BYTES = exports.PatchConflictError = exports.StateError = exports.InMemoryStateStore = exports.mcpToolNameResolver = exports.requireAuthenticatedOrSigned = exports.requireSignatureWhenPresent = exports.verifySignatureAsAuthenticator = exports.verifyIntrospection = exports.DEFAULT_JWT_CLOCK_TOLERANCE_SECONDS = exports.DEFAULT_JWT_ALGORITHMS = exports.getServeRequestContext = exports.ADCP_SERVE_REQUEST_CONTEXT = exports.isAuthenticatorPresenceGated = exports.tagAuthenticatorPresenceGated = exports.AUTH_PRESENCE_GATED = exports.authenticatorNeedsRawBody = exports.tagAuthenticatorNeedsRawBody = exports.AUTH_NEEDS_RAW_BODY = exports.AuthError = exports.signatureErrorCodeFromCause = exports.respondUnauthorized = exports.extractBearerToken = exports.anyOf = exports.verifyBearer = exports.verifyApiKey = exports.createExpressAdapter = exports.resolveHost = exports.hostname = exports.UnknownHostError = exports.serve = exports.createSeedFixtureCache = exports.enforceMapCap = exports.SESSION_ENTRY_CAP = exports.SEED_MESSAGES = exports.SEED_SCENARIOS = exports.CONTROLLER_SCENARIOS = exports.TOOL_INPUT_SHAPE = void 0;
5
- exports.matchesCollectionList = exports.matchesPropertyList = exports.resolveCollectionList = exports.resolvePropertyList = exports.governanceDeniedError = exports.checkGovernance = exports.LOOPBACK_OK_WEBHOOK_SSRF_POLICY = exports.WEBHOOK_SSRF_POLICY = exports.createPinAndBindFetch = exports.memoryWebhookKeyStore = exports.createWebhookEmitter = exports.A2AInvocationError = exports.createA2AAdapter = exports.hashPayload = exports.cleanupExpiredIdempotency = exports.IDEMPOTENCY_MIGRATION = exports.getIdempotencyMigration = exports.pgBackend = exports.memoryBackend = exports.probeIdempotencyStore = exports.createIdempotencyStore = exports.bridgeFromSessionStore = exports.bridgeFromTestControllerStore = exports.filterValidSeededProducts = exports.mergeSeededProductsIntoResponse = exports.isSandboxRequest = exports.DEFAULT_REPORTING_CAPABILITIES = exports.ADCP_SIGNED_REQUESTS_STATE = exports.ADCP_PRE_TRANSPORT = exports.requireSessionKey = exports.createAdcpServer = exports.structuredDeserialize = exports.structuredSerialize = void 0;
17
+ exports.registerTestController = exports.MCP_TASKS_MIGRATION = exports.getMcpTasksMigration = exports.cleanupExpiredTasks = exports.PostgresTaskStore = exports.isTerminal = exports.InMemoryTaskStore = exports.createTaskCapableServer = exports.registerAdcpTaskTool = exports.taskToolResponse = exports.validActionsForStatus = exports.toStructuredContent = exports.reportUsageResponse = exports.syncGovernanceResponse = exports.syncAccountsResponse = exports.acquireRightsRejected = exports.acquireRightsPendingApproval = exports.acquireRightsAcquired = exports.acquireRightsResponse = exports.cancelMediaBuyResponse = exports.activateSignalResponse = exports.getSignalsResponse = exports.syncCreativesResponse = exports.getPlanAuditLogsResponse = exports.listContentStandardsResponse = exports.listCollectionListsResponse = exports.listPropertyListsResponse = exports.listCreativesResponse = exports.creativeDeliveryResponse = exports.previewCreativeResponse = exports.buildCreativeMultiResponse = exports.buildCreativeResponse = exports.performanceFeedbackResponse = exports.getMediaBuysResponse = exports.updateMediaBuyResponse = exports.listCreativeFormatsResponse = exports.listAccountsResponse = exports.deliveryResponse = exports.mediaBuyResponse = exports.productsResponse = exports.capabilitiesResponse = exports.CONFLICT_ADCP_ERROR_ALLOWLIST = exports.ADCP_ERROR_FIELD_ALLOWLIST = exports.DEFAULT_ERROR_ENVELOPE_FIELDS = exports.ERROR_ENVELOPE_FIELD_ALLOWLIST = exports.wrapEnvelope = exports.pickSafeDetails = exports.normalizeErrors = exports.normalizeError = exports.adcpError = void 0;
18
+ exports.validateWrite = exports.validatePayloadSize = exports.validateId = exports.validateCollection = exports.isPutIfMatchConflict = exports.patchWithRetry = exports.scopedStore = exports.createSessionedStore = exports.SESSION_KEY_FIELD = exports.DEFAULT_MAX_DOCUMENT_BYTES = exports.PatchConflictError = exports.StateError = exports.InMemoryStateStore = exports.mcpToolNameResolver = exports.requireAuthenticatedOrSigned = exports.requireSignatureWhenPresent = exports.verifySignatureAsAuthenticator = exports.verifyIntrospection = exports.DEFAULT_JWT_CLOCK_TOLERANCE_SECONDS = exports.DEFAULT_JWT_ALGORITHMS = exports.getServeRequestContext = exports.ADCP_SERVE_REQUEST_CONTEXT = exports.isAuthenticatorPresenceGated = exports.tagAuthenticatorPresenceGated = exports.AUTH_PRESENCE_GATED = exports.authenticatorNeedsRawBody = exports.tagAuthenticatorNeedsRawBody = exports.AUTH_NEEDS_RAW_BODY = exports.AuthError = exports.signatureErrorCodeFromCause = exports.respondUnauthorized = exports.extractBearerToken = exports.anyOf = exports.verifyBearer = exports.verifyApiKey = exports.createExpressAdapter = exports.resolveHost = exports.hostname = exports.UnknownHostError = exports.serve = exports.createSeedFixtureCache = exports.enforceMapCap = exports.SESSION_ENTRY_CAP = exports.SEED_MESSAGES = exports.SEED_SCENARIOS = exports.CONTROLLER_SCENARIOS = exports.TOOL_INPUT_SHAPE = exports.toMcpResponse = exports.TestControllerError = exports.handleTestControllerRequest = void 0;
19
+ exports.scopeCtxMetadataKey = exports.ctxMetadataResultKey = exports.hasCtxMetadata = exports.stripCtxMetadata = exports.MAX_TTL_SECONDS = exports.DEFAULT_MAX_VALUE_BYTES = exports.ADCP_INTERNAL_TAG = exports.CtxMetadataValidationError = exports.CTX_METADATA_MIGRATION = exports.cleanupExpiredCtxMetadata = exports.getCtxMetadataMigration = exports.pgCtxMetadataStore = exports.memoryCtxMetadataStore = exports.createCtxMetadataStore = exports.matchesCollectionList = exports.matchesPropertyList = exports.resolveCollectionList = exports.resolvePropertyList = exports.governanceDeniedError = exports.checkGovernance = exports.LOOPBACK_OK_WEBHOOK_SSRF_POLICY = exports.WEBHOOK_SSRF_POLICY = exports.createPinAndBindFetch = exports.memoryWebhookKeyStore = exports.createWebhookEmitter = exports.A2AInvocationError = exports.createA2AAdapter = exports.hashPayload = exports.cleanupExpiredIdempotency = exports.IDEMPOTENCY_MIGRATION = exports.getIdempotencyMigration = exports.pgBackend = exports.memoryBackend = exports.probeIdempotencyStore = exports.createIdempotencyStore = exports.bridgeFromSessionStore = exports.bridgeFromTestControllerStore = exports.filterValidSeededProducts = exports.mergeSeededProductsIntoResponse = exports.isSandboxRequest = exports.DEFAULT_REPORTING_CAPABILITIES = exports.ADCP_SIGNED_REQUESTS_STATE = exports.ADCP_PRE_TRANSPORT = exports.requireSessionKey = exports.structuredDeserialize = exports.structuredSerialize = exports.ADCP_STATE_MIGRATION = exports.getAdcpStateMigration = exports.PostgresStateStore = void 0;
6
20
  var errors_1 = require("./errors");
7
21
  Object.defineProperty(exports, "adcpError", { enumerable: true, get: function () { return errors_1.adcpError; } });
22
+ var normalize_errors_1 = require("./normalize-errors");
23
+ Object.defineProperty(exports, "normalizeError", { enumerable: true, get: function () { return normalize_errors_1.normalizeError; } });
24
+ Object.defineProperty(exports, "normalizeErrors", { enumerable: true, get: function () { return normalize_errors_1.normalizeErrors; } });
25
+ var pick_safe_details_1 = require("./pick-safe-details");
26
+ Object.defineProperty(exports, "pickSafeDetails", { enumerable: true, get: function () { return pick_safe_details_1.pickSafeDetails; } });
8
27
  var wrap_envelope_1 = require("./wrap-envelope");
9
28
  Object.defineProperty(exports, "wrapEnvelope", { enumerable: true, get: function () { return wrap_envelope_1.wrapEnvelope; } });
10
29
  var envelope_allowlist_1 = require("./envelope-allowlist");
@@ -121,8 +140,15 @@ Object.defineProperty(exports, "ADCP_STATE_MIGRATION", { enumerable: true, get:
121
140
  var structured_serialize_1 = require("./structured-serialize");
122
141
  Object.defineProperty(exports, "structuredSerialize", { enumerable: true, get: function () { return structured_serialize_1.structuredSerialize; } });
123
142
  Object.defineProperty(exports, "structuredDeserialize", { enumerable: true, get: function () { return structured_serialize_1.structuredDeserialize; } });
143
+ // `createAdcpServer` is NOT re-exported from `@adcp/sdk/server` anymore —
144
+ // LLMs scaffolding from skills consistently latched onto it as the canonical
145
+ // entry point despite the @deprecated JSDoc. Removing the top-level export
146
+ // forces new code to either reach for `createAdcpServerFromPlatform` (the v6
147
+ // canonical) or import from `@adcp/sdk/server/legacy/v5` (mid-migration /
148
+ // escape-hatch only). Breaking change: v5 adopters see a hard import error
149
+ // and update their import path. The migration is one line; the LLM-output
150
+ // quality win is significant. See `docs/migration-5.x-to-6.x.md`.
124
151
  var create_adcp_server_1 = require("./create-adcp-server");
125
- Object.defineProperty(exports, "createAdcpServer", { enumerable: true, get: function () { return create_adcp_server_1.createAdcpServer; } });
126
152
  Object.defineProperty(exports, "requireSessionKey", { enumerable: true, get: function () { return create_adcp_server_1.requireSessionKey; } });
127
153
  Object.defineProperty(exports, "ADCP_PRE_TRANSPORT", { enumerable: true, get: function () { return create_adcp_server_1.ADCP_PRE_TRANSPORT; } });
128
154
  Object.defineProperty(exports, "ADCP_SIGNED_REQUESTS_STATE", { enumerable: true, get: function () { return create_adcp_server_1.ADCP_SIGNED_REQUESTS_STATE; } });
@@ -161,4 +187,53 @@ Object.defineProperty(exports, "resolvePropertyList", { enumerable: true, get: f
161
187
  Object.defineProperty(exports, "resolveCollectionList", { enumerable: true, get: function () { return targeting_helpers_1.resolveCollectionList; } });
162
188
  Object.defineProperty(exports, "matchesPropertyList", { enumerable: true, get: function () { return targeting_helpers_1.matchesPropertyList; } });
163
189
  Object.defineProperty(exports, "matchesCollectionList", { enumerable: true, get: function () { return targeting_helpers_1.matchesCollectionList; } });
190
+ // ---------------------------------------------------------------------------
191
+ // Platform-shaped server entry point (recommended for new agents)
192
+ // ---------------------------------------------------------------------------
193
+ //
194
+ // `createAdcpServerFromPlatform` wraps `createAdcpServer` (the lower-level
195
+ // handler-bag entry above) with compile-time specialism enforcement
196
+ // (`RequiredPlatformsFor<S>`), capability projection, idempotency wiring,
197
+ // async tasks, status normalization, multi-tenant routing, and webhook
198
+ // auto-emit. Adopters declare a typed `DecisioningPlatform` per-specialism
199
+ // and the framework wires the rest. See `docs/migration-5.x-to-6.x.md`
200
+ // and `skills/build-decisioning-platform/` for the full walkthrough.
201
+ //
202
+ // Both `createAdcpServer` and `createAdcpServerFromPlatform` live on the
203
+ // same import path so adopters discover them as siblings; pick the
204
+ // function shape that matches your agent. The platform path internally
205
+ // builds an `AdcpServerConfig` and calls `createAdcpServer` — they're
206
+ // not adjacent surfaces, they're parent-child layers of the same SDK.
207
+ //
208
+ // **Pin to v5 long-term?** Import from `@adcp/sdk/server/legacy/v5`
209
+ // instead. The subpath is the stable home for the v5 handler-bag
210
+ // constructor; the top-level re-export here may be removed in a
211
+ // future major. New code should not pin against `legacy/v5` either —
212
+ // reach for `createAdcpServerFromPlatform` first.
213
+ __exportStar(require("./decisioning"), exports);
214
+ // ---------------------------------------------------------------------------
215
+ // Ctx-metadata store — opaque-blob round-trip for adapter-internal state
216
+ // ---------------------------------------------------------------------------
217
+ //
218
+ // Publishers attach platform-specific opaque blobs to any returned resource
219
+ // (product, media_buy, package, creative, audience, signal, rights_grant);
220
+ // the framework persists by `(account_id, kind, id)`, strips from buyer-
221
+ // facing wire payloads, threads back into the publisher's request context
222
+ // on subsequent calls referencing the same resource ID. See
223
+ // `docs/proposals/decisioning-platform-v6-1-ctx-metadata.md`.
224
+ var ctx_metadata_1 = require("./ctx-metadata");
225
+ Object.defineProperty(exports, "createCtxMetadataStore", { enumerable: true, get: function () { return ctx_metadata_1.createCtxMetadataStore; } });
226
+ Object.defineProperty(exports, "memoryCtxMetadataStore", { enumerable: true, get: function () { return ctx_metadata_1.memoryCtxMetadataStore; } });
227
+ Object.defineProperty(exports, "pgCtxMetadataStore", { enumerable: true, get: function () { return ctx_metadata_1.pgCtxMetadataStore; } });
228
+ Object.defineProperty(exports, "getCtxMetadataMigration", { enumerable: true, get: function () { return ctx_metadata_1.getCtxMetadataMigration; } });
229
+ Object.defineProperty(exports, "cleanupExpiredCtxMetadata", { enumerable: true, get: function () { return ctx_metadata_1.cleanupExpiredCtxMetadata; } });
230
+ Object.defineProperty(exports, "CTX_METADATA_MIGRATION", { enumerable: true, get: function () { return ctx_metadata_1.CTX_METADATA_MIGRATION; } });
231
+ Object.defineProperty(exports, "CtxMetadataValidationError", { enumerable: true, get: function () { return ctx_metadata_1.CtxMetadataValidationError; } });
232
+ Object.defineProperty(exports, "ADCP_INTERNAL_TAG", { enumerable: true, get: function () { return ctx_metadata_1.ADCP_INTERNAL_TAG; } });
233
+ Object.defineProperty(exports, "DEFAULT_MAX_VALUE_BYTES", { enumerable: true, get: function () { return ctx_metadata_1.DEFAULT_MAX_VALUE_BYTES; } });
234
+ Object.defineProperty(exports, "MAX_TTL_SECONDS", { enumerable: true, get: function () { return ctx_metadata_1.MAX_TTL_SECONDS; } });
235
+ Object.defineProperty(exports, "stripCtxMetadata", { enumerable: true, get: function () { return ctx_metadata_1.stripCtxMetadata; } });
236
+ Object.defineProperty(exports, "hasCtxMetadata", { enumerable: true, get: function () { return ctx_metadata_1.hasCtxMetadata; } });
237
+ Object.defineProperty(exports, "ctxMetadataResultKey", { enumerable: true, get: function () { return ctx_metadata_1.ctxMetadataResultKey; } });
238
+ Object.defineProperty(exports, "scopeCtxMetadataKey", { enumerable: true, get: function () { return ctx_metadata_1.scopeCtxMetadataKey; } });
164
239
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `@adcp/sdk/server/legacy/v5` — stable home for the v5 handler-bag
3
+ * server constructor.
4
+ *
5
+ * **New code should not import from this subpath.** The canonical v6
6
+ * entry point is `createAdcpServerFromPlatform` from `@adcp/sdk/server`,
7
+ * which wraps this constructor with the typed specialism interfaces,
8
+ * compile-time capability enforcement, ctx_metadata auto-hydration,
9
+ * idempotency-principal synthesis, status mappers, multi-tenant routing,
10
+ * and webhook auto-emit. See `docs/migration-5.x-to-6.x.md`.
11
+ *
12
+ * Reasons to import from `legacy/v5` rather than `@adcp/sdk/server`:
13
+ *
14
+ * 1. **Mid-migration codebases.** v5 adopters who haven't finished
15
+ * migrating to v6 keep working by switching the import path —
16
+ * same constructor, same config shape, no behavior change.
17
+ *
18
+ * 2. **Escape-hatch handlers** that v6 doesn't model directly: custom
19
+ * `tools[]` outside the AdCP wire surface, the `mergeSeam` hook,
20
+ * `preTransport` / `signedRequests` middleware. These stay on v5
21
+ * until the v6 platform interface picks them up explicitly.
22
+ *
23
+ * 3. **Pinning against future v6 evolution.** The top-level export
24
+ * is `@deprecated` and may be removed in a major; `legacy/v5`
25
+ * is the stable subpath for adopters who genuinely need the v5
26
+ * shape long-term.
27
+ *
28
+ * The top-level `@adcp/sdk/server` keeps a tag-deprecated re-export of
29
+ * `createAdcpServer` for one cycle so existing imports don't break on
30
+ * upgrade. New imports SHOULD reach for the subpath.
31
+ *
32
+ * @public
33
+ */
34
+ export { createAdcpServer } from '../../create-adcp-server';
35
+ export * from '../..';
36
+ export type { AdcpServerConfig, WebhooksConfig, AdcpToolMap, AdcpServerToolName, AdcpCapabilitiesConfig, AdcpCapabilitiesOverrides, AdcpCustomToolConfig, AdcpLogger, SignedRequestsConfig, AdcpPreTransport, AdcpSignedRequestsState, HandlerContext, SessionKeyContext, MediaBuyHandlers, SignalsHandlers, CreativeHandlers, GovernanceHandlers, AccountHandlers, EventTrackingHandlers, SponsoredIntelligenceHandlers, ResolveAccountContext, } from '../../create-adcp-server';
37
+ export type { AdcpServer, AdcpServerComplianceApi, AdcpServerTransport, AdcpTestRequest, AdcpTestToolsCallRequest, AdcpTestResponse, } from '../../adcp-server';
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/server/legacy/v5/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAM5D,cAAc,OAAO,CAAC;AAEtB,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,UAAU,EACV,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /**
3
+ * `@adcp/sdk/server/legacy/v5` — stable home for the v5 handler-bag
4
+ * server constructor.
5
+ *
6
+ * **New code should not import from this subpath.** The canonical v6
7
+ * entry point is `createAdcpServerFromPlatform` from `@adcp/sdk/server`,
8
+ * which wraps this constructor with the typed specialism interfaces,
9
+ * compile-time capability enforcement, ctx_metadata auto-hydration,
10
+ * idempotency-principal synthesis, status mappers, multi-tenant routing,
11
+ * and webhook auto-emit. See `docs/migration-5.x-to-6.x.md`.
12
+ *
13
+ * Reasons to import from `legacy/v5` rather than `@adcp/sdk/server`:
14
+ *
15
+ * 1. **Mid-migration codebases.** v5 adopters who haven't finished
16
+ * migrating to v6 keep working by switching the import path —
17
+ * same constructor, same config shape, no behavior change.
18
+ *
19
+ * 2. **Escape-hatch handlers** that v6 doesn't model directly: custom
20
+ * `tools[]` outside the AdCP wire surface, the `mergeSeam` hook,
21
+ * `preTransport` / `signedRequests` middleware. These stay on v5
22
+ * until the v6 platform interface picks them up explicitly.
23
+ *
24
+ * 3. **Pinning against future v6 evolution.** The top-level export
25
+ * is `@deprecated` and may be removed in a major; `legacy/v5`
26
+ * is the stable subpath for adopters who genuinely need the v5
27
+ * shape long-term.
28
+ *
29
+ * The top-level `@adcp/sdk/server` keeps a tag-deprecated re-export of
30
+ * `createAdcpServer` for one cycle so existing imports don't break on
31
+ * upgrade. New imports SHOULD reach for the subpath.
32
+ *
33
+ * @public
34
+ */
35
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ var desc = Object.getOwnPropertyDescriptor(m, k);
38
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
39
+ desc = { enumerable: true, get: function() { return m[k]; } };
40
+ }
41
+ Object.defineProperty(o, k2, desc);
42
+ }) : (function(o, m, k, k2) {
43
+ if (k2 === undefined) k2 = k;
44
+ o[k2] = m[k];
45
+ }));
46
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
47
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.createAdcpServer = void 0;
51
+ // `createAdcpServer` is the v5 entry point that was previously at the
52
+ // top-level `@adcp/sdk/server` export. It now lives only here.
53
+ var create_adcp_server_1 = require("../../create-adcp-server");
54
+ Object.defineProperty(exports, "createAdcpServer", { enumerable: true, get: function () { return create_adcp_server_1.createAdcpServer; } });
55
+ // Re-export everything else from `@adcp/sdk/server` so a v5 adopter's
56
+ // migration path is a single-line import swap:
57
+ // from '@adcp/sdk/server' → from '@adcp/sdk/server/legacy/v5'
58
+ // without splitting destructured imports across two paths.
59
+ __exportStar(require("../.."), exports);
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/server/legacy/v5/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;;;;;;;;;;;;;;;;;AAEH,sEAAsE;AACtE,+DAA+D;AAC/D,+DAA4D;AAAnD,sHAAA,gBAAgB,OAAA;AAEzB,sEAAsE;AACtE,+CAA+C;AAC/C,kEAAkE;AAClE,2DAA2D;AAC3D,wCAAsB"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Wire-shape normalizer for the AdCP `Error` row used in tool responses
3
+ * carrying per-row failures (`sync_creatives`, `sync_audiences`,
4
+ * `sync_accounts`, `report_usage`, `acquire_rights` error arm).
5
+ *
6
+ * Adopters return errors in whichever shape their codebase already
7
+ * speaks: bare strings, native `Error` instances, plain
8
+ * `{ code, message }` objects, `AdcpError` instances thrown internally,
9
+ * upstream-platform error objects with vendor-specific fields. This
10
+ * helper coerces all of those into the canonical wire `Error` shape
11
+ * (`code`, `message`, optional `field` / `suggestion` / `retry_after`
12
+ * / `details` / `recovery`) so the framework's response validator
13
+ * accepts the projected response without forcing every adopter to
14
+ * hand-shape the wire envelope.
15
+ *
16
+ * @see AdCP wire spec: `core/error.json`
17
+ *
18
+ * @public
19
+ */
20
+ /**
21
+ * Canonical wire `Error` row. Mirrors `core/error.json` —
22
+ * `code` + `message` are required; everything else optional.
23
+ *
24
+ * Differs from the SDK's `AdcpStructuredError` in only one detail —
25
+ * `recovery` is optional here (per the wire spec) but required on
26
+ * `AdcpStructuredError` (the SDK's stricter shape for thrown errors).
27
+ *
28
+ * @public
29
+ */
30
+ export interface NormalizedError {
31
+ code: string;
32
+ message: string;
33
+ field?: string;
34
+ suggestion?: string;
35
+ retry_after?: number;
36
+ details?: Record<string, unknown>;
37
+ recovery?: 'transient' | 'correctable' | 'terminal';
38
+ }
39
+ /**
40
+ * Coerce a single adopter-returned error value into the canonical
41
+ * wire `Error` shape. Handles:
42
+ *
43
+ * - `string` → `{ code: 'GENERIC_ERROR', message: <input>, recovery: 'terminal' }`
44
+ * - `Error` instance → `{ code: 'GENERIC_ERROR', message: err.message, recovery: 'terminal' }`
45
+ * - `AdcpError` instance → projected to wire shape using its `code` /
46
+ * `recovery` / `field` / `suggestion` / `retry_after` / `details`
47
+ * - Plain object with `code` + `message` → fields whitelisted to the
48
+ * wire shape; vendor-specific fields dropped (use `details` for
49
+ * vendor extensions)
50
+ * - Any other object → `{ code: 'GENERIC_ERROR', message: <safeStringify>, recovery: 'terminal' }`
51
+ * - `null` / `undefined` → `{ code: 'GENERIC_ERROR', message: 'Unknown error', recovery: 'terminal' }`
52
+ *
53
+ * The `details` field, when present on the input, is shallow-copied
54
+ * and SHOULD be passed through {@link pickSafeDetails} on the
55
+ * adopter side before reaching this helper. `normalizeError` does NOT
56
+ * sanitize `details` — it's the adopter's job to ensure no
57
+ * credentials / PII / stack traces land there.
58
+ *
59
+ * @public
60
+ */
61
+ export declare function normalizeError(input: unknown): NormalizedError;
62
+ /**
63
+ * Coerce an adopter-returned errors collection into a wire-shaped
64
+ * `Error[]`. Accepts `undefined` / `null` (returns `undefined`),
65
+ * a single error value (wraps in array), or an array of error values
66
+ * (each normalized via {@link normalizeError}).
67
+ *
68
+ * Empty arrays and arrays where every entry normalizes to the same
69
+ * sentinel "Unknown error" are still emitted — the framework lets the
70
+ * wire validator decide whether `errors: []` is acceptable for the
71
+ * specific tool response (sync_creatives accepts empty;
72
+ * sync_creatives_error requires non-empty).
73
+ *
74
+ * Use at the v6 wire-projection seam:
75
+ *
76
+ * ```ts
77
+ * import { normalizeErrors } from '@adcp/client/server';
78
+ *
79
+ * const projected = adopterRows.map(row => ({
80
+ * ...row,
81
+ * errors: normalizeErrors(row.errors),
82
+ * }));
83
+ * ```
84
+ *
85
+ * @public
86
+ */
87
+ export declare function normalizeErrors(input: unknown): NormalizedError[] | undefined;
88
+ //# sourceMappingURL=normalize-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-errors.d.ts","sourceRoot":"","sources":["../../../src/lib/server/normalize-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CA0C9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,EAAE,GAAG,SAAS,CAM7E"}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ /**
3
+ * Wire-shape normalizer for the AdCP `Error` row used in tool responses
4
+ * carrying per-row failures (`sync_creatives`, `sync_audiences`,
5
+ * `sync_accounts`, `report_usage`, `acquire_rights` error arm).
6
+ *
7
+ * Adopters return errors in whichever shape their codebase already
8
+ * speaks: bare strings, native `Error` instances, plain
9
+ * `{ code, message }` objects, `AdcpError` instances thrown internally,
10
+ * upstream-platform error objects with vendor-specific fields. This
11
+ * helper coerces all of those into the canonical wire `Error` shape
12
+ * (`code`, `message`, optional `field` / `suggestion` / `retry_after`
13
+ * / `details` / `recovery`) so the framework's response validator
14
+ * accepts the projected response without forcing every adopter to
15
+ * hand-shape the wire envelope.
16
+ *
17
+ * @see AdCP wire spec: `core/error.json`
18
+ *
19
+ * @public
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.normalizeError = normalizeError;
23
+ exports.normalizeErrors = normalizeErrors;
24
+ exports._coerceErrorCode = _coerceErrorCode;
25
+ /**
26
+ * Coerce a single adopter-returned error value into the canonical
27
+ * wire `Error` shape. Handles:
28
+ *
29
+ * - `string` → `{ code: 'GENERIC_ERROR', message: <input>, recovery: 'terminal' }`
30
+ * - `Error` instance → `{ code: 'GENERIC_ERROR', message: err.message, recovery: 'terminal' }`
31
+ * - `AdcpError` instance → projected to wire shape using its `code` /
32
+ * `recovery` / `field` / `suggestion` / `retry_after` / `details`
33
+ * - Plain object with `code` + `message` → fields whitelisted to the
34
+ * wire shape; vendor-specific fields dropped (use `details` for
35
+ * vendor extensions)
36
+ * - Any other object → `{ code: 'GENERIC_ERROR', message: <safeStringify>, recovery: 'terminal' }`
37
+ * - `null` / `undefined` → `{ code: 'GENERIC_ERROR', message: 'Unknown error', recovery: 'terminal' }`
38
+ *
39
+ * The `details` field, when present on the input, is shallow-copied
40
+ * and SHOULD be passed through {@link pickSafeDetails} on the
41
+ * adopter side before reaching this helper. `normalizeError` does NOT
42
+ * sanitize `details` — it's the adopter's job to ensure no
43
+ * credentials / PII / stack traces land there.
44
+ *
45
+ * @public
46
+ */
47
+ function normalizeError(input) {
48
+ if (input == null) {
49
+ return { code: 'GENERIC_ERROR', message: 'Unknown error', recovery: 'terminal' };
50
+ }
51
+ if (typeof input === 'string') {
52
+ return { code: 'GENERIC_ERROR', message: input, recovery: 'terminal' };
53
+ }
54
+ // AdcpError-shaped (has `code`, optional structured fields). Detected
55
+ // structurally rather than via instanceof so framework code in different
56
+ // module realms (test fixtures, server-side renderers) still gets the
57
+ // typed projection.
58
+ if (typeof input === 'object' && 'code' in input) {
59
+ const obj = input;
60
+ const code = typeof obj.code === 'string' && obj.code.length > 0 ? obj.code : 'GENERIC_ERROR';
61
+ const message = typeof obj.message === 'string' && obj.message.length > 0 ? obj.message : code; // fall back to code when message missing — never empty-string
62
+ const out = { code, message };
63
+ if (typeof obj.field === 'string')
64
+ out.field = obj.field;
65
+ if (typeof obj.suggestion === 'string')
66
+ out.suggestion = obj.suggestion;
67
+ if (typeof obj.retry_after === 'number' && Number.isFinite(obj.retry_after)) {
68
+ // Wire spec clamps retry_after to [1, 3600]
69
+ out.retry_after = Math.max(1, Math.min(3600, Math.floor(obj.retry_after)));
70
+ }
71
+ if (obj.recovery === 'transient' || obj.recovery === 'correctable' || obj.recovery === 'terminal') {
72
+ out.recovery = obj.recovery;
73
+ }
74
+ if (typeof obj.details === 'object' && obj.details !== null) {
75
+ // Shallow copy to break aliasing; adopter is responsible for sanitizing
76
+ // via pickSafeDetails before reaching here.
77
+ out.details = { ...obj.details };
78
+ }
79
+ return out;
80
+ }
81
+ // Native Error (no `code` field, has `message`).
82
+ if (input instanceof Error) {
83
+ return { code: 'GENERIC_ERROR', message: input.message || 'Unknown error', recovery: 'terminal' };
84
+ }
85
+ // Last-resort: stringify whatever was passed.
86
+ return {
87
+ code: 'GENERIC_ERROR',
88
+ message: safeStringify(input),
89
+ recovery: 'terminal',
90
+ };
91
+ }
92
+ /**
93
+ * Coerce an adopter-returned errors collection into a wire-shaped
94
+ * `Error[]`. Accepts `undefined` / `null` (returns `undefined`),
95
+ * a single error value (wraps in array), or an array of error values
96
+ * (each normalized via {@link normalizeError}).
97
+ *
98
+ * Empty arrays and arrays where every entry normalizes to the same
99
+ * sentinel "Unknown error" are still emitted — the framework lets the
100
+ * wire validator decide whether `errors: []` is acceptable for the
101
+ * specific tool response (sync_creatives accepts empty;
102
+ * sync_creatives_error requires non-empty).
103
+ *
104
+ * Use at the v6 wire-projection seam:
105
+ *
106
+ * ```ts
107
+ * import { normalizeErrors } from '@adcp/client/server';
108
+ *
109
+ * const projected = adopterRows.map(row => ({
110
+ * ...row,
111
+ * errors: normalizeErrors(row.errors),
112
+ * }));
113
+ * ```
114
+ *
115
+ * @public
116
+ */
117
+ function normalizeErrors(input) {
118
+ if (input == null)
119
+ return undefined;
120
+ if (Array.isArray(input)) {
121
+ return input.map(normalizeError);
122
+ }
123
+ return [normalizeError(input)];
124
+ }
125
+ /**
126
+ * Coerce an `ErrorCode`-typed input back to the underlying string —
127
+ * useful when adopters pass an enum-narrowed code into a place that
128
+ * expects the wire string. Pure-function alias for clarity at call
129
+ * sites; the runtime is identity.
130
+ *
131
+ * @internal
132
+ */
133
+ function _coerceErrorCode(code) {
134
+ return code;
135
+ }
136
+ /** Best-effort `JSON.stringify` that swallows circular-reference errors. */
137
+ function safeStringify(input) {
138
+ try {
139
+ const s = JSON.stringify(input);
140
+ return typeof s === 'string' ? s : String(input);
141
+ }
142
+ catch {
143
+ return '[unserializable error]';
144
+ }
145
+ }
146
+ //# sourceMappingURL=normalize-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-errors.js","sourceRoot":"","sources":["../../../src/lib/server/normalize-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Security primitive for the `details` field on `AdcpError` and the
3
+ * `Error` wire row. Adopters fronting upstream platforms (GAM, Snap,
4
+ * retail-media APIs, internal billing systems) often want to surface
5
+ * upstream error context to buyers — but raw upstream errors carry
6
+ * credentials, PII, internal stack traces, request IDs that leak
7
+ * tenant identity, and other liability surfaces that MUST NOT cross
8
+ * the wire boundary.
9
+ *
10
+ * `pickSafeDetails(input, allowlist, opts?)` is an explicit-allowlist
11
+ * sanitizer: only keys in the allowlist survive, with optional caps
12
+ * on depth and serialized size. Returns `undefined` when the input is
13
+ * not a plain object or the allowlist filter produces an empty
14
+ * result, so callers can spread the return into an optional `details`
15
+ * field without polluting it with `{}`.
16
+ *
17
+ * Adopters should call this BEFORE constructing the `AdcpError` /
18
+ * wire `Error` row. The framework's `normalizeError` does NOT
19
+ * sanitize details — it shallow-copies whatever was passed.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { pickSafeDetails } from '@adcp/client/server';
24
+ *
25
+ * try {
26
+ * await gamClient.createOrder(req);
27
+ * } catch (upstreamErr) {
28
+ * throw new AdcpError('UPSTREAM_REJECTED', {
29
+ * recovery: 'transient',
30
+ * message: 'Ad server rejected the order',
31
+ * // Allowlist: only safe upstream fields cross the wire
32
+ * details: pickSafeDetails(upstreamErr, [
33
+ * 'http_status',
34
+ * 'request_id',
35
+ * 'gam_error_code',
36
+ * ]),
37
+ * });
38
+ * }
39
+ * ```
40
+ *
41
+ * @public
42
+ */
43
+ export interface PickSafeDetailsOptions {
44
+ /**
45
+ * Maximum nesting depth retained in the result. `undefined` keeps
46
+ * the input unchanged at any depth; values like `2` keep top-level
47
+ * + one nested level. Strings, numbers, booleans, and null are
48
+ * leaves; arrays and plain objects count as a level.
49
+ *
50
+ * Default: `2` — top-level + one nested level. Caps cardinality
51
+ * blast radius from accidentally-recursive upstream error objects.
52
+ */
53
+ maxDepth?: number;
54
+ /**
55
+ * Maximum serialized JSON byte size of the result (best-effort
56
+ * UTF-8 estimate via `JSON.stringify().length`). When the projected
57
+ * result exceeds this, returns `undefined` rather than truncating —
58
+ * adopters should choose a tighter allowlist if they hit the cap.
59
+ *
60
+ * Default: `2048` bytes. Wire envelopes shouldn't carry kilobytes
61
+ * of details; if you need that, ship via `publishStatusChange` or
62
+ * `task_registry.progress`.
63
+ */
64
+ maxSizeBytes?: number;
65
+ }
66
+ /**
67
+ * Filter `input` to keys named in `allowlist`, depth-capped and
68
+ * size-capped. Returns `undefined` when the result is empty or
69
+ * exceeds the size cap so callers can spread the value into an
70
+ * optional `details` field without polluting it.
71
+ *
72
+ * Properties NOT in the allowlist are dropped silently (no warning;
73
+ * the design assumes the allowlist is the contract). Nested objects
74
+ * are recursively filtered with the SAME allowlist — there is no
75
+ * per-key allowlist for nested fields. Adopters who need per-level
76
+ * filtering should call `pickSafeDetails` recursively on each
77
+ * nested value.
78
+ *
79
+ * Common-sense behaviors:
80
+ * - `null` / `undefined` / non-object input → `undefined`
81
+ * - Empty result after filtering → `undefined`
82
+ * - Arrays at the top level → `undefined` (use a wrapping object)
83
+ * - Functions and Symbols are dropped
84
+ * - Date / RegExp / Error / Map / Set are dropped (use a string
85
+ * allowlist of primitive fields, or pre-shape the input)
86
+ *
87
+ * @public
88
+ */
89
+ export declare function pickSafeDetails(input: unknown, allowlist: readonly string[], opts?: PickSafeDetailsOptions): Record<string, unknown> | undefined;
90
+ //# sourceMappingURL=pick-safe-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-safe-details.d.ts","sourceRoot":"","sources":["../../../src/lib/server/pick-safe-details.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,IAAI,CAAC,EAAE,sBAAsB,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAyBrC"}