@adcp/sdk 6.11.0 → 6.13.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 (103) hide show
  1. package/bin/adcp-config.js +7 -1
  2. package/bin/adcp.js +191 -4
  3. package/dist/lib/adapters/index.d.ts +0 -2
  4. package/dist/lib/adapters/index.d.ts.map +1 -1
  5. package/dist/lib/adapters/index.js +1 -8
  6. package/dist/lib/adapters/index.js.map +1 -1
  7. package/dist/lib/auth/oauth/index.d.ts +1 -0
  8. package/dist/lib/auth/oauth/index.d.ts.map +1 -1
  9. package/dist/lib/auth/oauth/index.js +17 -1
  10. package/dist/lib/auth/oauth/index.js.map +1 -1
  11. package/dist/lib/auth/oauth/web-flow.d.ts +270 -0
  12. package/dist/lib/auth/oauth/web-flow.d.ts.map +1 -0
  13. package/dist/lib/auth/oauth/web-flow.js +413 -0
  14. package/dist/lib/auth/oauth/web-flow.js.map +1 -0
  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 +2 -7
  18. package/dist/lib/index.js.map +1 -1
  19. package/dist/lib/mock-server/index.d.ts +2 -0
  20. package/dist/lib/mock-server/index.d.ts.map +1 -1
  21. package/dist/lib/mock-server/index.js +17 -0
  22. package/dist/lib/mock-server/index.js.map +1 -1
  23. package/dist/lib/mock-server/sales-guaranteed/recipe.d.ts +155 -0
  24. package/dist/lib/mock-server/sales-guaranteed/recipe.d.ts.map +1 -0
  25. package/dist/lib/mock-server/sales-guaranteed/recipe.js +107 -0
  26. package/dist/lib/mock-server/sales-guaranteed/recipe.js.map +1 -0
  27. package/dist/lib/mock-server/sales-guaranteed/server.d.ts.map +1 -1
  28. package/dist/lib/mock-server/sales-guaranteed/server.js +212 -0
  29. package/dist/lib/mock-server/sales-guaranteed/server.js.map +1 -1
  30. package/dist/lib/mock-server/sales-non-guaranteed/recipe.d.ts +123 -0
  31. package/dist/lib/mock-server/sales-non-guaranteed/recipe.d.ts.map +1 -0
  32. package/dist/lib/mock-server/sales-non-guaranteed/recipe.js +81 -0
  33. package/dist/lib/mock-server/sales-non-guaranteed/recipe.js.map +1 -0
  34. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  35. package/dist/lib/server/ctx-metadata/index.d.ts +1 -1
  36. package/dist/lib/server/ctx-metadata/index.d.ts.map +1 -1
  37. package/dist/lib/server/ctx-metadata/index.js +3 -1
  38. package/dist/lib/server/ctx-metadata/index.js.map +1 -1
  39. package/dist/lib/server/ctx-metadata/wire-shape.d.ts +21 -0
  40. package/dist/lib/server/ctx-metadata/wire-shape.d.ts.map +1 -1
  41. package/dist/lib/server/ctx-metadata/wire-shape.js +111 -0
  42. package/dist/lib/server/ctx-metadata/wire-shape.js.map +1 -1
  43. package/dist/lib/server/decisioning/context.d.ts +19 -0
  44. package/dist/lib/server/decisioning/context.d.ts.map +1 -1
  45. package/dist/lib/server/decisioning/index.d.ts +3 -0
  46. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  47. package/dist/lib/server/decisioning/index.js +16 -1
  48. package/dist/lib/server/decisioning/index.js.map +1 -1
  49. package/dist/lib/server/decisioning/platform.d.ts +17 -0
  50. package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
  51. package/dist/lib/server/decisioning/platform.js.map +1 -1
  52. package/dist/lib/server/decisioning/proposal/dispatch.d.ts +203 -0
  53. package/dist/lib/server/decisioning/proposal/dispatch.d.ts.map +1 -0
  54. package/dist/lib/server/decisioning/proposal/dispatch.js +395 -0
  55. package/dist/lib/server/decisioning/proposal/dispatch.js.map +1 -0
  56. package/dist/lib/server/decisioning/proposal/index.d.ts +21 -0
  57. package/dist/lib/server/decisioning/proposal/index.d.ts.map +1 -0
  58. package/dist/lib/server/decisioning/proposal/index.js +37 -0
  59. package/dist/lib/server/decisioning/proposal/index.js.map +1 -0
  60. package/dist/lib/server/decisioning/proposal/lifecycle.d.ts +195 -0
  61. package/dist/lib/server/decisioning/proposal/lifecycle.d.ts.map +1 -0
  62. package/dist/lib/server/decisioning/proposal/lifecycle.js +366 -0
  63. package/dist/lib/server/decisioning/proposal/lifecycle.js.map +1 -0
  64. package/dist/lib/server/decisioning/proposal/mock-manager.d.ts +93 -0
  65. package/dist/lib/server/decisioning/proposal/mock-manager.d.ts.map +1 -0
  66. package/dist/lib/server/decisioning/proposal/mock-manager.js +109 -0
  67. package/dist/lib/server/decisioning/proposal/mock-manager.js.map +1 -0
  68. package/dist/lib/server/decisioning/proposal/store.d.ts +279 -0
  69. package/dist/lib/server/decisioning/proposal/store.d.ts.map +1 -0
  70. package/dist/lib/server/decisioning/proposal/store.js +291 -0
  71. package/dist/lib/server/decisioning/proposal/store.js.map +1 -0
  72. package/dist/lib/server/decisioning/proposal/types.d.ts +394 -0
  73. package/dist/lib/server/decisioning/proposal/types.d.ts.map +1 -0
  74. package/dist/lib/server/decisioning/proposal/types.js +58 -0
  75. package/dist/lib/server/decisioning/proposal/types.js.map +1 -0
  76. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +25 -0
  77. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  78. package/dist/lib/server/decisioning/runtime/from-platform.js +198 -15
  79. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  80. package/dist/lib/server/index.d.ts +1 -1
  81. package/dist/lib/server/index.d.ts.map +1 -1
  82. package/dist/lib/server/index.js +3 -1
  83. package/dist/lib/server/index.js.map +1 -1
  84. package/dist/lib/testing/client.d.ts.map +1 -1
  85. package/dist/lib/testing/client.js +7 -1
  86. package/dist/lib/testing/client.js.map +1 -1
  87. package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -1
  88. package/dist/lib/testing/storyboard/task-map.js +1 -0
  89. package/dist/lib/testing/storyboard/task-map.js.map +1 -1
  90. package/dist/lib/testing/storyboard/test-kit.d.ts.map +1 -1
  91. package/dist/lib/testing/storyboard/test-kit.js +4 -0
  92. package/dist/lib/testing/storyboard/test-kit.js.map +1 -1
  93. package/dist/lib/testing/types.d.ts +10 -0
  94. package/dist/lib/testing/types.d.ts.map +1 -1
  95. package/dist/lib/version.d.ts +3 -3
  96. package/dist/lib/version.js +3 -3
  97. package/examples/hello_seller_adapter_guaranteed.ts +29 -2
  98. package/examples/hello_seller_adapter_proposal_mode.ts +575 -0
  99. package/package.json +1 -1
  100. package/dist/lib/adapters/proposal-manager.d.ts +0 -142
  101. package/dist/lib/adapters/proposal-manager.d.ts.map +0 -1
  102. package/dist/lib/adapters/proposal-manager.js +0 -184
  103. package/dist/lib/adapters/proposal-manager.js.map +0 -1
@@ -10,6 +10,6 @@ export { memoryCtxMetadataStore } from './backends/memory';
10
10
  export type { MemoryCtxMetadataStoreOptions } from './backends/memory';
11
11
  export { pgCtxMetadataStore, getCtxMetadataMigration, cleanupExpiredCtxMetadata, CTX_METADATA_MIGRATION, } from './backends/pg';
12
12
  export type { PgCtxMetadataBackendOptions } from './backends/pg';
13
- export { stripCtxMetadata, hasCtxMetadata } from './wire-shape';
13
+ export { stripCtxMetadata, hasCtxMetadata, stripImplementationConfig, hasImplementationConfig } from './wire-shape';
14
14
  export type { WireShape } from './wire-shape';
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACpH,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * @public
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.hasCtxMetadata = exports.stripCtxMetadata = exports.CTX_METADATA_MIGRATION = exports.cleanupExpiredCtxMetadata = exports.getCtxMetadataMigration = exports.pgCtxMetadataStore = exports.memoryCtxMetadataStore = exports.MAX_TTL_SECONDS = exports.DEFAULT_MAX_VALUE_BYTES = exports.ADCP_INTERNAL_TAG = exports.CtxMetadataValidationError = exports.scopeCtxMetadataKey = exports.ctxMetadataResultKey = exports.createCtxMetadataStore = void 0;
9
+ exports.hasImplementationConfig = exports.stripImplementationConfig = exports.hasCtxMetadata = exports.stripCtxMetadata = exports.CTX_METADATA_MIGRATION = exports.cleanupExpiredCtxMetadata = exports.getCtxMetadataMigration = exports.pgCtxMetadataStore = exports.memoryCtxMetadataStore = exports.MAX_TTL_SECONDS = exports.DEFAULT_MAX_VALUE_BYTES = exports.ADCP_INTERNAL_TAG = exports.CtxMetadataValidationError = exports.scopeCtxMetadataKey = exports.ctxMetadataResultKey = exports.createCtxMetadataStore = void 0;
10
10
  var store_1 = require("./store");
11
11
  Object.defineProperty(exports, "createCtxMetadataStore", { enumerable: true, get: function () { return store_1.createCtxMetadataStore; } });
12
12
  Object.defineProperty(exports, "ctxMetadataResultKey", { enumerable: true, get: function () { return store_1.ctxMetadataResultKey; } });
@@ -25,4 +25,6 @@ Object.defineProperty(exports, "CTX_METADATA_MIGRATION", { enumerable: true, get
25
25
  var wire_shape_1 = require("./wire-shape");
26
26
  Object.defineProperty(exports, "stripCtxMetadata", { enumerable: true, get: function () { return wire_shape_1.stripCtxMetadata; } });
27
27
  Object.defineProperty(exports, "hasCtxMetadata", { enumerable: true, get: function () { return wire_shape_1.hasCtxMetadata; } });
28
+ Object.defineProperty(exports, "stripImplementationConfig", { enumerable: true, get: function () { return wire_shape_1.stripImplementationConfig; } });
29
+ Object.defineProperty(exports, "hasImplementationConfig", { enumerable: true, get: function () { return wire_shape_1.hasImplementationConfig; } });
28
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iCAQiB;AAPf,+GAAA,sBAAsB,OAAA;AACtB,6GAAA,oBAAoB,OAAA;AACpB,4GAAA,mBAAmB,OAAA;AACnB,mHAAA,0BAA0B,OAAA;AAC1B,0GAAA,iBAAiB,OAAA;AACjB,gHAAA,uBAAuB,OAAA;AACvB,wGAAA,eAAe,OAAA;AAYjB,4CAA2D;AAAlD,gHAAA,sBAAsB,OAAA;AAG/B,oCAKuB;AAJrB,wGAAA,kBAAkB,OAAA;AAClB,6GAAA,uBAAuB,OAAA;AACvB,+GAAA,yBAAyB,OAAA;AACzB,4GAAA,sBAAsB,OAAA;AAIxB,2CAAgE;AAAvD,8GAAA,gBAAgB,OAAA;AAAE,4GAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iCAQiB;AAPf,+GAAA,sBAAsB,OAAA;AACtB,6GAAA,oBAAoB,OAAA;AACpB,4GAAA,mBAAmB,OAAA;AACnB,mHAAA,0BAA0B,OAAA;AAC1B,0GAAA,iBAAiB,OAAA;AACjB,gHAAA,uBAAuB,OAAA;AACvB,wGAAA,eAAe,OAAA;AAYjB,4CAA2D;AAAlD,gHAAA,sBAAsB,OAAA;AAG/B,oCAKuB;AAJrB,wGAAA,kBAAkB,OAAA;AAClB,6GAAA,uBAAuB,OAAA;AACvB,+GAAA,yBAAyB,OAAA;AACzB,4GAAA,sBAAsB,OAAA;AAIxB,2CAAoH;AAA3G,8GAAA,gBAAgB,OAAA;AAAE,4GAAA,cAAc,OAAA;AAAE,uHAAA,yBAAyB,OAAA;AAAE,qHAAA,uBAAuB,OAAA"}
@@ -52,4 +52,25 @@ export declare function stripCtxMetadata<T>(value: T): WireShape<T>;
52
52
  * are clean — production code paths just call `stripCtxMetadata`.
53
53
  */
54
54
  export declare function hasCtxMetadata(value: unknown): boolean;
55
+ /**
56
+ * Runtime strip for `Product.implementation_config`. Walks Product
57
+ * carrier locations in the response (top-level `products[]` plus
58
+ * single-product `product` slots inside `proposals[].products[]` etc.)
59
+ * and deletes the recipe field. Mutates in place.
60
+ *
61
+ * Adopters who deliberately want the recipe to ride to the buyer (rare;
62
+ * defeats the typed-on-server contract) can re-attach it in a
63
+ * post-strip hook — but the default is "strip, always."
64
+ *
65
+ * @public
66
+ */
67
+ export declare function stripImplementationConfig<T>(value: T): T;
68
+ /**
69
+ * Detect whether a payload contains `implementation_config` on any
70
+ * Product carrier. Test-suite helper — production paths call
71
+ * `stripImplementationConfig`.
72
+ *
73
+ * @public
74
+ */
75
+ export declare function hasImplementationConfig(value: unknown): boolean;
55
76
  //# sourceMappingURL=wire-shape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wire-shape.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/wire-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC5B,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAC3B,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,cAAc,GAAG,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC3E,CAAC,CAAC;AAEV;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAI1D;AA+CD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGtD"}
1
+ {"version":3,"file":"wire-shape.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/wire-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC5B,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAC3B,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,cAAc,GAAG,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC3E,CAAC,CAAC;AAEV;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAI1D;AAsDD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGtD;AAgCD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIxD;AAyBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG/D"}
@@ -20,6 +20,8 @@
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.stripCtxMetadata = stripCtxMetadata;
22
22
  exports.hasCtxMetadata = hasCtxMetadata;
23
+ exports.stripImplementationConfig = stripImplementationConfig;
24
+ exports.hasImplementationConfig = hasImplementationConfig;
23
25
  const CTX_METADATA_KEY = 'ctx_metadata';
24
26
  /**
25
27
  * Runtime strip. Walks known carrier shapes in the response and
@@ -68,6 +70,13 @@ const CARRIER_KEYS = [
68
70
  'collection_lists',
69
71
  'asset',
70
72
  'assets',
73
+ // Proposal-mode (v1.5 ProposalManager): committed proposals embed
74
+ // their own `products[]` slice. Without these carriers, ctx_metadata
75
+ // (and implementation_config, which shares this list) on
76
+ // `proposals[].products[]` survived the strip and leaked via the
77
+ // HITL handoff path. Surfaced by security review on PR #1562.
78
+ 'proposal',
79
+ 'proposals',
71
80
  ];
72
81
  function stripFromCarrier(obj) {
73
82
  if (CTX_METADATA_KEY in obj)
@@ -97,6 +106,108 @@ function hasCtxMetadata(value) {
97
106
  return false;
98
107
  return walkForCtxMetadata(value);
99
108
  }
109
+ // ---------------------------------------------------------------------------
110
+ // Recipe `implementation_config` strip — Product-specific, parallel pattern
111
+ // ---------------------------------------------------------------------------
112
+ const IMPLEMENTATION_CONFIG_KEY = 'implementation_config';
113
+ /**
114
+ * Carrier locations for `implementation_config`. Recipes ride on
115
+ * `Product.implementation_config` per the v1.5 ProposalManager design;
116
+ * the field is opaque-to-buyer (typed-on-server) and must NOT cross to
117
+ * the buyer's wire response. Mirrors the `ctx_metadata` strip pattern.
118
+ *
119
+ * The wire `Product` shape's JSON schema is `additionalProperties: true`
120
+ * so the field is technically legal on the wire — but recipes carry
121
+ * upstream identifiers (network codes, line-item template ids, ad-unit
122
+ * ids, GAM line-item priority, etc.) that leak topology to buyers.
123
+ * Strip at the dispatcher seam, after the platform builds the wire
124
+ * shape and before the idempotency cache writes it.
125
+ *
126
+ * Carrier list mirrors `CARRIER_KEYS` (used by `stripCtxMetadata`)
127
+ * because future spec extensions may nest a Product under any
128
+ * resource carrier (e.g. `media_buys[].products[]`,
129
+ * `creatives[].assigned_packages[].product`). Reusing the same set
130
+ * keeps the two strips from silently diverging — adding a new wire
131
+ * carrier in `CARRIER_KEYS` for `ctx_metadata` automatically extends
132
+ * the implementation_config walk too. Surfaced by security review on
133
+ * PR #1562.
134
+ */
135
+ const IMPL_CONFIG_CARRIER_KEYS = CARRIER_KEYS;
136
+ /**
137
+ * Runtime strip for `Product.implementation_config`. Walks Product
138
+ * carrier locations in the response (top-level `products[]` plus
139
+ * single-product `product` slots inside `proposals[].products[]` etc.)
140
+ * and deletes the recipe field. Mutates in place.
141
+ *
142
+ * Adopters who deliberately want the recipe to ride to the buyer (rare;
143
+ * defeats the typed-on-server contract) can re-attach it in a
144
+ * post-strip hook — but the default is "strip, always."
145
+ *
146
+ * @public
147
+ */
148
+ function stripImplementationConfig(value) {
149
+ if (value == null || typeof value !== 'object')
150
+ return value;
151
+ stripImplConfigFromCarrier(value);
152
+ return value;
153
+ }
154
+ function stripImplConfigFromCarrier(obj) {
155
+ // Strip the field on the current object IF this object looks like a
156
+ // Product (has product_id). We don't strip blindly at every level
157
+ // because the field name could legitimately appear elsewhere (e.g.,
158
+ // a diagnostic envelope) in a future spec extension.
159
+ if ('product_id' in obj && IMPLEMENTATION_CONFIG_KEY in obj) {
160
+ delete obj[IMPLEMENTATION_CONFIG_KEY];
161
+ }
162
+ // Walk the shared carrier set (mirrors stripCtxMetadata) so future
163
+ // spec additions extending one strip automatically extend both.
164
+ for (const key of IMPL_CONFIG_CARRIER_KEYS) {
165
+ const nested = obj[key];
166
+ if (nested == null)
167
+ continue;
168
+ if (Array.isArray(nested)) {
169
+ for (const item of nested) {
170
+ if (item != null && typeof item === 'object')
171
+ stripImplConfigFromCarrier(item);
172
+ }
173
+ }
174
+ else if (typeof nested === 'object') {
175
+ stripImplConfigFromCarrier(nested);
176
+ }
177
+ }
178
+ }
179
+ /**
180
+ * Detect whether a payload contains `implementation_config` on any
181
+ * Product carrier. Test-suite helper — production paths call
182
+ * `stripImplementationConfig`.
183
+ *
184
+ * @public
185
+ */
186
+ function hasImplementationConfig(value) {
187
+ if (value == null || typeof value !== 'object')
188
+ return false;
189
+ return walkForImplConfig(value);
190
+ }
191
+ function walkForImplConfig(obj) {
192
+ if ('product_id' in obj && IMPLEMENTATION_CONFIG_KEY in obj)
193
+ return true;
194
+ for (const key of IMPL_CONFIG_CARRIER_KEYS) {
195
+ const nested = obj[key];
196
+ if (nested == null)
197
+ continue;
198
+ if (Array.isArray(nested)) {
199
+ for (const item of nested) {
200
+ if (item != null && typeof item === 'object' && walkForImplConfig(item))
201
+ return true;
202
+ }
203
+ }
204
+ else if (typeof nested === 'object') {
205
+ if (walkForImplConfig(nested))
206
+ return true;
207
+ }
208
+ }
209
+ return false;
210
+ }
100
211
  function walkForCtxMetadata(obj) {
101
212
  if (CTX_METADATA_KEY in obj)
102
213
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"wire-shape.js","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/wire-shape.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAqCH,4CAIC;AAoDD,wCAGC;AA9FD,MAAM,gBAAgB,GAAG,cAAuB,CAAC;AAsBjD;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAI,KAAQ;IAC1C,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAqB,CAAC;IAC7E,gBAAgB,CAAC,KAAgC,CAAC,CAAC;IACnD,OAAO,KAAqB,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,YAAY,GAAG;IACnB,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,QAAQ;IACR,SAAS;IACT,cAAc;IACd,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,OAAO;IACP,QAAQ;CACA,CAAC;AAEX,SAAS,gBAAgB,CAAC,GAA4B;IACpD,IAAI,gBAAgB,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,MAAM,IAAI,IAAI;YAAE,SAAS;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,gBAAgB,CAAC,IAA+B,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,gBAAgB,CAAC,MAAiC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7D,OAAO,kBAAkB,CAAC,KAAgC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,kBAAkB,CAAC,GAA4B;IACtD,IAAI,gBAAgB,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,MAAM,IAAI,IAAI;YAAE,SAAS;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,kBAAkB,CAAC,IAA+B,CAAC,EAAE,CAAC;oBACpG,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,kBAAkB,CAAC,MAAiC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"wire-shape.js","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/wire-shape.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ import type { Format, FormatReferenceStructuredObject, PropertyList, CollectionL
26
26
  import type { TaskHandoff, TaskHandoffContext, TaskHandoffOptions } from './async-outcome';
27
27
  import type { CtxMetadataRef, ResourceKind } from '../ctx-metadata';
28
28
  import type { BuyerAgent } from './buyer-agent';
29
+ import type { Recipe } from './proposal';
29
30
  export interface RequestContext<TAccount = Account> {
30
31
  /** Resolved account for this request. */
31
32
  account: TAccount;
@@ -83,6 +84,24 @@ export interface RequestContext<TAccount = Account> {
83
84
  * @public
84
85
  */
85
86
  ctxMetadata?: CtxMetadataAccessor;
87
+ /**
88
+ * Hydrated typed recipes (`product_id -> Recipe`) for proposal-mode
89
+ * dispatch. Populated by the framework's v1.5 ProposalManager seams:
90
+ *
91
+ * - `createMediaBuy` with `proposal_id`: framework reserves the
92
+ * proposal, validates expiry + capability overlap, and writes the
93
+ * recipe map here BEFORE the adapter runs.
94
+ * - `updateMediaBuy` / `getMediaBuyDelivery`: framework hydrates
95
+ * via the `getByMediaBuyId` reverse-index.
96
+ *
97
+ * Adopters read this map to apply per-product internal-config
98
+ * (e.g., `recipe.line_item_template_id` on the matching adapter
99
+ * upstream call). Undefined when no proposal-mode dispatch is wired
100
+ * for the request — the v1 path leaves it untouched.
101
+ *
102
+ * @public
103
+ */
104
+ recipes?: ReadonlyMap<string, Recipe>;
86
105
  /**
87
106
  * Hand off the call to a background task. Returns a `TaskHandoff<T>`
88
107
  * marker — return that from your method to signal the framework should
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,MAAM,EACN,+BAA+B,EAC/B,YAAY,EACZ,cAAc,EACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOzC,MAAM,WAAW,cAAc,CAAC,QAAQ,GAAG,OAAO;IAChD,yCAAyC;IACzC,OAAO,EAAE,QAAQ,CAAC;IAElB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,qCAAqC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAE3B,0CAA0C;IAC1C,OAAO,EAAE,gBAAgB,CAAC;IAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,aAAa,CAAC,OAAO,EACnB,EAAE,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,EACrD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,WAAW,CAAC,OAAO,CAAC,CAAC;CACzB;AAMD,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CAAC;IAE5E;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;IAEtD;;;;;OAKG;IACH,iBAAiB,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAEjD,8EAA8E;IAC9E,aAAa,IAAI,SAAS,YAAY,EAAE,CAAC;CAC1C;AAMD,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEpD,iCAAiC;IACjC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAExD;;;;;OAKG;IACH,cAAc,CAAC,QAAQ,EAAE,+BAA+B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5E;AAMD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,CAAC;AAEtH,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,MAAM,EAAE;QAAE,IAAI,EAAE,kBAAkB,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,kEAAkE;IAClE,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CAC3D;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAM1C;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAClE,gFAAgF;IAChF,OAAO,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChF;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,6BAA6B;IAC7B,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAMtD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IACnD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;CAClD"}
@@ -52,6 +52,9 @@ export { createTenantAdminRouter, createTenantAdminHandlers, mountTenantAdmin, t
52
52
  export { batchPoll, validationError, upstreamError } from './helpers';
53
53
  export type { RequestShape } from './helpers';
54
54
  export { definePlatform, defineSalesPlatform, defineSalesCorePlatform, defineSalesIngestionPlatform, defineAudiencePlatform, defineSignalsPlatform, defineSponsoredIntelligencePlatform, defineCreativeBuilderPlatform, defineCreativeAdServerPlatform, defineCampaignGovernancePlatform, defineContentStandardsPlatform, definePropertyListsPlatform, defineCollectionListsPlatform, defineBrandRightsPlatform, definePlatformWithCompliance, } from './platform-helpers';
55
+ export type { ProposalManager, ProposalCapabilities, ProposalSalesSpecialism, Recipe, CapabilityOverlap, FinalizeProposalRequest, FinalizeProposalSuccess, ProposalState, ProposalRecord, ProposalStore, InMemoryProposalStoreOptions, MockProposalManagerOptions, } from './proposal';
56
+ export { validateProposalCapabilities, InMemoryProposalStore, MockProposalManager, enforceProposalExpiry, validateCapabilityOverlap, validateOverlapSubsetOfWire, detectFinalizeAction, setProposalLifecycleLogger, maybeInterceptFinalize, maybePersistDraftAfterGetProducts, maybeReserveProposalForCreateMediaBuy, finalizeProposalConsumption, releaseProposalReservation, maybeHydrateRecipesForMediaBuyId, } from './proposal';
57
+ export type { FinalizeActionRef, ProposalLifecycleLogger, FinalizeInterceptResult, ReservedProposal } from './proposal';
55
58
  export { buildProduct, buildPricingOption, buildPackage } from './assembly-helpers';
56
59
  export type { BuildProductInput, BuildPricingOptionInput, BuildPackageInput } from './assembly-helpers';
57
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/index.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.resolveStartTime = exports.buildListCreativesResponse = exports.requireAsset = exports.getAsset = exports.createNoopJwksValidator = exports.createSelfSignedTenantKey = exports.createDefaultJwksValidator = exports.createTenantRegistry = exports.getDecisioningTaskRegistryMigration = exports.createPostgresTaskRegistry = exports.createInMemoryTaskRegistry = exports.validatePlatform = exports.PlatformConfigError = exports.getAllAdcpMigrations = exports.createAdcpServerFromPlatform = exports.requireOrgScope = exports.requireAdvertiserMatch = exports.requireAccountMatch = exports.composeMethod = exports.identityStatusMappers = exports.BuyerAgentRegistry = exports.narrowAccountRef = exports.createTenantStore = exports.refAccountId = exports.AccountNotFoundError = exports.createInMemoryStatusChangeBus = exports.getStatusChangeBus = exports.setStatusChangeBus = exports.publishStatusChange = exports.PolicyViolationError = exports.GovernanceDeniedError = exports.ComplianceUnsatisfiedError = exports.UnsupportedFeatureError = exports.ServiceUnavailableError = exports.RateLimitedError = exports.PermissionDeniedError = exports.AuthRequiredError = exports.BackwardsTimeRangeError = exports.InvalidStateError = exports.InvalidRequestError = exports.IdempotencyConflictError = exports.BudgetExhaustedError = exports.BudgetTooLowError = exports.CreativeRejectedError = exports.ProductUnavailableError = exports.CreativeNotFoundError = exports.ProductNotFoundError = exports.MediaBuyNotFoundError = exports.PackageNotFoundError = exports.AdcpError = void 0;
15
- exports.buildPackage = exports.buildPricingOption = exports.buildProduct = exports.definePlatformWithCompliance = exports.defineBrandRightsPlatform = exports.defineCollectionListsPlatform = exports.definePropertyListsPlatform = exports.defineContentStandardsPlatform = exports.defineCampaignGovernancePlatform = exports.defineCreativeAdServerPlatform = exports.defineCreativeBuilderPlatform = exports.defineSponsoredIntelligencePlatform = exports.defineSignalsPlatform = exports.defineAudiencePlatform = exports.defineSalesIngestionPlatform = exports.defineSalesCorePlatform = exports.defineSalesPlatform = exports.definePlatform = exports.upstreamError = exports.validationError = exports.batchPoll = exports.mountTenantAdmin = exports.createTenantAdminHandlers = exports.createTenantAdminRouter = void 0;
15
+ exports.buildPackage = exports.buildPricingOption = exports.buildProduct = exports.maybeHydrateRecipesForMediaBuyId = exports.releaseProposalReservation = exports.finalizeProposalConsumption = exports.maybeReserveProposalForCreateMediaBuy = exports.maybePersistDraftAfterGetProducts = exports.maybeInterceptFinalize = exports.setProposalLifecycleLogger = exports.detectFinalizeAction = exports.validateOverlapSubsetOfWire = exports.validateCapabilityOverlap = exports.enforceProposalExpiry = exports.MockProposalManager = exports.InMemoryProposalStore = exports.validateProposalCapabilities = exports.definePlatformWithCompliance = exports.defineBrandRightsPlatform = exports.defineCollectionListsPlatform = exports.definePropertyListsPlatform = exports.defineContentStandardsPlatform = exports.defineCampaignGovernancePlatform = exports.defineCreativeAdServerPlatform = exports.defineCreativeBuilderPlatform = exports.defineSponsoredIntelligencePlatform = exports.defineSignalsPlatform = exports.defineAudiencePlatform = exports.defineSalesIngestionPlatform = exports.defineSalesCorePlatform = exports.defineSalesPlatform = exports.definePlatform = exports.upstreamError = exports.validationError = exports.batchPoll = exports.mountTenantAdmin = exports.createTenantAdminHandlers = exports.createTenantAdminRouter = void 0;
16
16
  // Adopter-facing structured-error primitive.
17
17
  //
18
18
  // `AdcpError` is the canonical throwable for structured rejection. Specialism
@@ -156,6 +156,21 @@ Object.defineProperty(exports, "definePropertyListsPlatform", { enumerable: true
156
156
  Object.defineProperty(exports, "defineCollectionListsPlatform", { enumerable: true, get: function () { return platform_helpers_1.defineCollectionListsPlatform; } });
157
157
  Object.defineProperty(exports, "defineBrandRightsPlatform", { enumerable: true, get: function () { return platform_helpers_1.defineBrandRightsPlatform; } });
158
158
  Object.defineProperty(exports, "definePlatformWithCompliance", { enumerable: true, get: function () { return platform_helpers_1.definePlatformWithCompliance; } });
159
+ var proposal_1 = require("./proposal");
160
+ Object.defineProperty(exports, "validateProposalCapabilities", { enumerable: true, get: function () { return proposal_1.validateProposalCapabilities; } });
161
+ Object.defineProperty(exports, "InMemoryProposalStore", { enumerable: true, get: function () { return proposal_1.InMemoryProposalStore; } });
162
+ Object.defineProperty(exports, "MockProposalManager", { enumerable: true, get: function () { return proposal_1.MockProposalManager; } });
163
+ Object.defineProperty(exports, "enforceProposalExpiry", { enumerable: true, get: function () { return proposal_1.enforceProposalExpiry; } });
164
+ Object.defineProperty(exports, "validateCapabilityOverlap", { enumerable: true, get: function () { return proposal_1.validateCapabilityOverlap; } });
165
+ Object.defineProperty(exports, "validateOverlapSubsetOfWire", { enumerable: true, get: function () { return proposal_1.validateOverlapSubsetOfWire; } });
166
+ Object.defineProperty(exports, "detectFinalizeAction", { enumerable: true, get: function () { return proposal_1.detectFinalizeAction; } });
167
+ Object.defineProperty(exports, "setProposalLifecycleLogger", { enumerable: true, get: function () { return proposal_1.setProposalLifecycleLogger; } });
168
+ Object.defineProperty(exports, "maybeInterceptFinalize", { enumerable: true, get: function () { return proposal_1.maybeInterceptFinalize; } });
169
+ Object.defineProperty(exports, "maybePersistDraftAfterGetProducts", { enumerable: true, get: function () { return proposal_1.maybePersistDraftAfterGetProducts; } });
170
+ Object.defineProperty(exports, "maybeReserveProposalForCreateMediaBuy", { enumerable: true, get: function () { return proposal_1.maybeReserveProposalForCreateMediaBuy; } });
171
+ Object.defineProperty(exports, "finalizeProposalConsumption", { enumerable: true, get: function () { return proposal_1.finalizeProposalConsumption; } });
172
+ Object.defineProperty(exports, "releaseProposalReservation", { enumerable: true, get: function () { return proposal_1.releaseProposalReservation; } });
173
+ Object.defineProperty(exports, "maybeHydrateRecipesForMediaBuyId", { enumerable: true, get: function () { return proposal_1.maybeHydrateRecipesForMediaBuyId; } });
159
174
  // Wire-shape assembly helpers — emit correct Product / PricingOption /
160
175
  // package shapes from intent-shaped input. Reduces 30+ lines of wire
161
176
  // boilerplate per resource. Used in slim skill examples so LLMs scaffold
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/index.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import type { BuyerAgentRegistry } from './buyer-agent';
15
15
  import type { SessionContext, OnInstructionsError, MaybePromise } from '../create-adcp-server';
16
16
  import type { StatusMappers } from './status-mappers';
17
17
  import type { SalesPlatform, SalesCorePlatform, SalesIngestionPlatform } from './specialisms/sales';
18
+ import type { ProposalManager, Recipe } from './proposal';
18
19
  import type { CreativeBuilderPlatform } from './specialisms/creative';
19
20
  import type { CreativeAdServerPlatform } from './specialisms/creative-ad-server';
20
21
  import type { AudiencePlatform } from './specialisms/audiences';
@@ -225,6 +226,22 @@ export interface DecisioningPlatform<TConfig = unknown, TCtxMeta = Record<string
225
226
  collectionLists?: CollectionListsPlatform<TCtxMeta>;
226
227
  /** @see DecisioningPlatform — § Cross-specialism dispatch (`acquireRights` is the canonical caller into `campaignGovernance.checkGovernance`). */
227
228
  brandRights?: BrandRightsPlatform<TCtxMeta>;
229
+ /**
230
+ * Optional sibling that owns the proposal side of the two-platform
231
+ * composition (port of `adcp-client-python`'s `ProposalManager`). When
232
+ * present, the framework routes `get_products` and refine traffic to
233
+ * the manager instead of `sales.getProducts`; `sales` stays
234
+ * responsible for media-buy execution. Either side can be mock-backed
235
+ * independently — see `MockProposalManager`.
236
+ *
237
+ * **Status**: primitive types only. Framework dispatch wiring (the
238
+ * five seams that intercept `getProducts`, `createMediaBuy`,
239
+ * `updateMediaBuy`, `getMediaBuyDelivery` to persist drafts, hydrate
240
+ * recipes, and commit on finalize) lands in a follow-up release. v1.5
241
+ * adopters can already implement against this surface; the framework
242
+ * just doesn't drive the lifecycle yet.
243
+ */
244
+ proposalManager?: ProposalManager<Recipe, TCtxMeta>;
228
245
  }
229
246
  /**
230
247
  * Maps an AdCP specialism to the platform interface(s) it requires. The
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxF,gFAAgF;IAChF,YAAY,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE/C,yCAAyC;IACzC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAEpF;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAE1C;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAEnC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,CACjB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACzB,uBAAuB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;IAMhF,KAAK,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAClF,SAAS,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpC;;;;;uDAKmD;IACnD,qBAAqB,CAAC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IAChE,+KAA+K;IAC/K,kBAAkB,CAAC,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC1D,gBAAgB,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACtD,aAAa,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpD,kJAAkJ;IAClJ,WAAW,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CAG7C;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AAgBH,KAAK,mBAAmB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AACvH,KAAK,wBAAwB,GAAG,cAAc,CAAC;AAC/C,KAAK,uBAAuB,GAAG,qBAAqB,CAAC;AAIrD,KAAK,gBAAgB,GAAG,oBAAoB,GAAG,cAAc,CAAC;AAM9D,KAAK,4BAA4B,GAAG,4BAA4B,GAAG,6BAA6B,CAAC;AASjG,MAAM,MAAM,oBAAoB,CAC9B,CAAC,SAAS,cAAc,EAExB,QAAQ,GAAG,GAAG,IACZ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAQnB,EAAE,GACF,CAAC,SAAS,mBAAmB,GAAG,qBAAqB,GACnD;IAAE,QAAQ,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAA;CAAE,GAC/C,CAAC,SAAS,oBAAoB,GAC5B;IAAE,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAA;CAAE,GAChD,CAAC,SAAS,mBAAmB,GAC3B;IAAE,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;CAAE,GACzE,CAAC,SAAS,wBAAwB,GAKhC;IAAE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAA;CAAE,GAC3C,CAAC,SAAS,uBAAuB,GAI/B;IAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;CAAE,GACpG,CAAC,SAAS,eAAe,GACvB;IAAE,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;CAAE,GACzC,CAAC,SAAS,gBAAgB,GACxB;IAAE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;CAAE,GACtC,CAAC,SAAS,4BAA4B,GACpC;IAAE,kBAAkB,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAA;CAAE,GAC5D,CAAC,SAAS,gBAAgB,GACxB;IAAE,aAAa,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAA;CAAE,GAClD,CAAC,SAAS,kBAAkB,GAC1B;IAAE,eAAe,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAA;CAAE,GACtD,CAAC,SAAS,mBAAmB,GAC3B;IAAE,gBAAgB,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAA;CAAE,GACxD,CAAC,SAAS,cAAc,GACtB;IAAE,WAAW,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;CAAE,GAE9C,EAAE,CAAC;AAqD/B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,SAAS,cAAc,GACpF;IAAE,YAAY,EAAE;QAAE,KAAK,EAAE,iBAAiB,CAAA;KAAE,CAAA;CAAE,GAC9C,EAAE,CAAC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/platform.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/platform.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAsaH,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,sEAAsE;AACtE,iBAAiB"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/platform.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAwbH,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,sEAAsE;AACtE,iBAAiB"}
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Proposal-dispatch — the v1.5 framework intercept seams.
3
+ *
4
+ * Pure functions that the runtime calls from the wire-handler shims
5
+ * (`getProducts`, `createMediaBuy`, `updateMediaBuy`,
6
+ * `getMediaBuyDelivery`). Each helper short-circuits when no manager /
7
+ * store is wired for the request, so the v1 path is preserved
8
+ * byte-for-byte.
9
+ *
10
+ * Five integration points (parity with `adcp-client-python.src/adcp/decisioning/proposal_dispatch.py`):
11
+ *
12
+ * - {@link maybeInterceptFinalize} — `getProducts` shim. Detects
13
+ * `refine[i].action: 'finalize'`, calls the manager's
14
+ * `finalizeProposal`, commits the proposal, returns the wire
15
+ * response. Returns `null` when no finalize entry / no
16
+ * finalize-capable manager.
17
+ * - {@link maybePersistDraftAfterGetProducts} — `getProducts` shim
18
+ * (post-call). Walks the response's `proposals[]`, validates
19
+ * `overlap ⊆ wire`, persists each as a draft.
20
+ * - {@link maybeReserveProposalForCreateMediaBuy} — `createMediaBuy`
21
+ * shim. When `proposal_id` is set, validates expiry + capability
22
+ * overlap, reserves the proposal (`COMMITTED → CONSUMING`), returns
23
+ * the recipes map for `ctx.recipes` hydration.
24
+ * - {@link finalizeProposalConsumption} — `createMediaBuy` shim
25
+ * (post-success). Promotes `CONSUMING → CONSUMED` and records the
26
+ * `mediaBuyId` back-reference.
27
+ * - {@link releaseProposalReservation} — `createMediaBuy` shim
28
+ * (failure rollback). Restores `CONSUMING → COMMITTED`.
29
+ * - {@link maybeHydrateRecipesForMediaBuyId} —
30
+ * `updateMediaBuy` / `getMediaBuyDelivery` shims. Reverse-index
31
+ * hydration via `getByMediaBuyId`. Re-runs capability-overlap
32
+ * validation per Resolutions §5.
33
+ *
34
+ * @public
35
+ * @packageDocumentation
36
+ */
37
+ import { type TaskHandoff } from '../async-outcome';
38
+ import type { GetProductsRequest, GetProductsResponse } from '../../../types/tools.generated';
39
+ import type { ProposalRecord, ProposalStore } from './store';
40
+ import type { FinalizeProposalSuccess, ProposalManager, Recipe } from './types';
41
+ /**
42
+ * Result of {@link maybeInterceptFinalize}.
43
+ *
44
+ * - `kind: 'intercepted'` — adopter's `finalizeProposal` was called.
45
+ * Caller threads `result` and `project` through the framework's
46
+ * standard `routeIfHandoff` so the projection callback fires
47
+ * synchronously for sync `FinalizeProposalSuccess` returns AND
48
+ * inside the background task for `TaskHandoff<FinalizeProposalSuccess>`
49
+ * returns. The projection commits the proposal store, emits the
50
+ * `proposal.finalized` log, and shapes the wire response.
51
+ * - `kind: 'pass'` — no finalize entry / no finalize-capable manager;
52
+ * caller continues with the standard `getProducts` dispatch.
53
+ *
54
+ * No special-case handling: finalize HITL inherits the framework's
55
+ * task-lifecycle posture (cancellation, restart-via-durable-store,
56
+ * deadline, webhook delivery) from `routeIfHandoff`, the same machinery
57
+ * that drives `createMediaBuy` HITL and `syncCreatives` HITL.
58
+ *
59
+ * @public
60
+ */
61
+ export type FinalizeInterceptResult<TRecipe extends Recipe = Recipe> = {
62
+ kind: 'intercepted';
63
+ result: FinalizeProposalSuccess<TRecipe> | TaskHandoff<FinalizeProposalSuccess<TRecipe>>;
64
+ project: (success: FinalizeProposalSuccess<TRecipe>) => Promise<GetProductsResponse>;
65
+ } | {
66
+ kind: 'pass';
67
+ };
68
+ /**
69
+ * Intercept `buying_mode: 'refine'` requests carrying a
70
+ * `refine[i].action: 'finalize'` entry. Hydrates the draft, calls the
71
+ * manager's `finalizeProposal`, and returns the raw adopter result + a
72
+ * projection callback. The runtime threads them through the framework's
73
+ * standard `routeIfHandoff` so:
74
+ *
75
+ * - Sync `FinalizeProposalSuccess` returns: projection runs inline,
76
+ * buyer sees the committed proposal in the response.
77
+ * - HITL `TaskHandoff<FinalizeProposalSuccess>` returns: framework
78
+ * returns the Submitted envelope to the buyer, runs the adopter's
79
+ * handoff fn in background; projection runs when the handoff
80
+ * resolves, commits the proposal, projects the terminal task
81
+ * artifact.
82
+ *
83
+ * Same machinery as `createMediaBuy` HITL — finalize inherits whatever
84
+ * cancellation, restart-via-durable-store, deadline, and webhook
85
+ * delivery semantics the framework's task lifecycle provides for every
86
+ * other unified-hybrid tool. No special-case wrapper.
87
+ *
88
+ * @public
89
+ */
90
+ export declare function maybeInterceptFinalize<TRecipe extends Recipe, TCtxMeta>(args: {
91
+ request: GetProductsRequest;
92
+ manager: ProposalManager<TRecipe, TCtxMeta> | undefined;
93
+ store: ProposalStore<TRecipe> | undefined;
94
+ ctx: {
95
+ account: {
96
+ id: string;
97
+ };
98
+ } & Record<string, unknown>;
99
+ }): Promise<FinalizeInterceptResult<TRecipe>>;
100
+ /**
101
+ * Persist proposals returned by `getProducts` / `refineProducts` as
102
+ * drafts in the wired {@link ProposalStore}. Validates `overlap ⊆ wire`
103
+ * for any returned recipes before persisting.
104
+ *
105
+ * Quietly returns when no store is wired, no `proposals[]` in the
106
+ * response, or no typed recipes attached to products.
107
+ *
108
+ * @public
109
+ */
110
+ export declare function maybePersistDraftAfterGetProducts<TRecipe extends Recipe>(args: {
111
+ response: GetProductsResponse;
112
+ store: ProposalStore<TRecipe> | undefined;
113
+ ctx: {
114
+ account: {
115
+ id: string;
116
+ };
117
+ };
118
+ }): Promise<void>;
119
+ /**
120
+ * Result of {@link maybeReserveProposalForCreateMediaBuy}.
121
+ *
122
+ * - `record` — the reserved {@link ProposalRecord}. Caller threads
123
+ * `recipes` onto `ctx.recipes` and calls
124
+ * {@link finalizeProposalConsumption} on adapter success or
125
+ * {@link releaseProposalReservation} on failure.
126
+ * - `null` — request has no `proposal_id`, no store wired, or the
127
+ * framework didn't intercept (v1 path).
128
+ *
129
+ * @public
130
+ */
131
+ export type ReservedProposal<TRecipe extends Recipe> = ProposalRecord<TRecipe>;
132
+ /**
133
+ * Reserve the proposal for consumption and hydrate `ctx.recipes`.
134
+ *
135
+ * Atomic CAS via {@link ProposalStore.tryReserveConsumption} — the
136
+ * proposal transitions `COMMITTED → CONSUMING` before the adapter runs.
137
+ * Two parallel `createMediaBuy(proposal_id=X)` calls cannot both
138
+ * reserve; the loser raises `PROPOSAL_NOT_COMMITTED`.
139
+ *
140
+ * Validates per § D7 (expiry) BEFORE reserving — an expired proposal
141
+ * surfaces `PROPOSAL_EXPIRED` without flipping the state.
142
+ *
143
+ * @public
144
+ */
145
+ export declare function maybeReserveProposalForCreateMediaBuy<TRecipe extends Recipe, TCtxMeta>(args: {
146
+ request: {
147
+ proposal_id?: string;
148
+ packages?: ReadonlyArray<unknown>;
149
+ } & Record<string, unknown>;
150
+ manager: ProposalManager<TRecipe, TCtxMeta> | undefined;
151
+ store: ProposalStore<TRecipe> | undefined;
152
+ ctx: {
153
+ account: {
154
+ id: string;
155
+ };
156
+ };
157
+ now?: Date;
158
+ }): Promise<ReservedProposal<TRecipe> | null>;
159
+ /**
160
+ * Promote `CONSUMING → CONSUMED` after the adapter's `createMediaBuy`
161
+ * succeeded.
162
+ *
163
+ * @public
164
+ */
165
+ export declare function finalizeProposalConsumption<TRecipe extends Recipe>(args: {
166
+ store: ProposalStore<TRecipe> | undefined;
167
+ record: ReservedProposal<TRecipe>;
168
+ mediaBuyId: string;
169
+ }): Promise<void>;
170
+ /**
171
+ * Roll back the reservation: `CONSUMING → COMMITTED`. Best-effort.
172
+ *
173
+ * @public
174
+ */
175
+ export declare function releaseProposalReservation<TRecipe extends Recipe>(args: {
176
+ store: ProposalStore<TRecipe> | undefined;
177
+ record: ReservedProposal<TRecipe>;
178
+ logger?: {
179
+ warn(message: string): void;
180
+ };
181
+ }): Promise<void>;
182
+ /**
183
+ * Hydrate `ctx.recipes` for post-acceptance buy operations via the
184
+ * `getByMediaBuyId` reverse-index. Returns the record (so the caller
185
+ * can re-validate overlap if a packages-shaped patch is provided);
186
+ * returns `null` when no proposal backs this buy.
187
+ *
188
+ * Per Resolutions §5: re-validates capability overlap on every call
189
+ * with packages.
190
+ *
191
+ * @public
192
+ */
193
+ export declare function maybeHydrateRecipesForMediaBuyId<TRecipe extends Recipe>(args: {
194
+ mediaBuyId: string | undefined;
195
+ store: ProposalStore<TRecipe> | undefined;
196
+ ctx: {
197
+ account: {
198
+ id: string;
199
+ };
200
+ };
201
+ packages?: ReadonlyArray<unknown>;
202
+ }): Promise<ProposalRecord<TRecipe> | null>;
203
+ //# sourceMappingURL=dispatch.d.ts.map