@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.
- package/README.md +45 -7
- package/dist/lib/compliance-fixtures/index.d.ts +1 -1
- package/dist/lib/compliance-fixtures/index.js +1 -1
- package/dist/lib/conformance/runners.d.ts.map +1 -1
- package/dist/lib/conformance/runners.js +13 -1
- package/dist/lib/conformance/runners.js.map +1 -1
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +15 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +7 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +9 -2
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +7 -8
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/protocols/index.d.ts +3 -1
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +23 -14
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/schemas/index.d.ts +1 -1
- package/dist/lib/schemas/index.js +1 -1
- package/dist/lib/server/create-adcp-server.d.ts +142 -11
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +211 -2
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/ctx-metadata/backends/memory.d.ts +27 -0
- package/dist/lib/server/ctx-metadata/backends/memory.d.ts.map +1 -0
- package/dist/lib/server/ctx-metadata/backends/memory.js +72 -0
- package/dist/lib/server/ctx-metadata/backends/memory.js.map +1 -0
- package/dist/lib/server/ctx-metadata/backends/pg.d.ts +62 -0
- package/dist/lib/server/ctx-metadata/backends/pg.d.ts.map +1 -0
- package/dist/lib/server/ctx-metadata/backends/pg.js +145 -0
- package/dist/lib/server/ctx-metadata/backends/pg.js.map +1 -0
- package/dist/lib/server/ctx-metadata/index.d.ts +15 -0
- package/dist/lib/server/ctx-metadata/index.d.ts.map +1 -0
- package/dist/lib/server/ctx-metadata/index.js +28 -0
- package/dist/lib/server/ctx-metadata/index.js.map +1 -0
- package/dist/lib/server/ctx-metadata/store.d.ts +177 -0
- package/dist/lib/server/ctx-metadata/store.d.ts.map +1 -0
- package/dist/lib/server/ctx-metadata/store.js +327 -0
- package/dist/lib/server/ctx-metadata/store.js.map +1 -0
- package/dist/lib/server/ctx-metadata/wire-shape.d.ts +55 -0
- package/dist/lib/server/ctx-metadata/wire-shape.d.ts.map +1 -0
- package/dist/lib/server/ctx-metadata/wire-shape.js +121 -0
- package/dist/lib/server/ctx-metadata/wire-shape.js.map +1 -0
- package/dist/lib/server/decisioning/account.d.ts +309 -0
- package/dist/lib/server/decisioning/account.d.ts.map +1 -0
- package/dist/lib/server/decisioning/account.js +102 -0
- package/dist/lib/server/decisioning/account.js.map +1 -0
- package/dist/lib/server/decisioning/admin-router.d.ts +75 -0
- package/dist/lib/server/decisioning/admin-router.d.ts.map +1 -0
- package/dist/lib/server/decisioning/admin-router.js +120 -0
- package/dist/lib/server/decisioning/admin-router.js.map +1 -0
- package/dist/lib/server/decisioning/assembly-helpers.d.ts +204 -0
- package/dist/lib/server/decisioning/assembly-helpers.d.ts.map +1 -0
- package/dist/lib/server/decisioning/assembly-helpers.js +173 -0
- package/dist/lib/server/decisioning/assembly-helpers.js.map +1 -0
- package/dist/lib/server/decisioning/async-outcome.d.ts +154 -0
- package/dist/lib/server/decisioning/async-outcome.d.ts.map +1 -0
- package/dist/lib/server/decisioning/async-outcome.js +239 -0
- package/dist/lib/server/decisioning/async-outcome.js.map +1 -0
- package/dist/lib/server/decisioning/capabilities.d.ts +251 -0
- package/dist/lib/server/decisioning/capabilities.d.ts.map +1 -0
- package/dist/lib/server/decisioning/capabilities.js +16 -0
- package/dist/lib/server/decisioning/capabilities.js.map +1 -0
- package/dist/lib/server/decisioning/context.d.ts +212 -0
- package/dist/lib/server/decisioning/context.d.ts.map +1 -0
- package/dist/lib/server/decisioning/context.js +26 -0
- package/dist/lib/server/decisioning/context.js.map +1 -0
- package/dist/lib/server/decisioning/errors-typed.d.ts +104 -0
- package/dist/lib/server/decisioning/errors-typed.d.ts.map +1 -0
- package/dist/lib/server/decisioning/errors-typed.js +304 -0
- package/dist/lib/server/decisioning/errors-typed.js.map +1 -0
- package/dist/lib/server/decisioning/helpers.d.ts +131 -0
- package/dist/lib/server/decisioning/helpers.d.ts.map +1 -0
- package/dist/lib/server/decisioning/helpers.js +134 -0
- package/dist/lib/server/decisioning/helpers.js.map +1 -0
- package/dist/lib/server/decisioning/index.d.ts +46 -0
- package/dist/lib/server/decisioning/index.d.ts.map +1 -0
- package/dist/lib/server/decisioning/index.js +120 -0
- package/dist/lib/server/decisioning/index.js.map +1 -0
- package/dist/lib/server/decisioning/list-helpers.d.ts +53 -0
- package/dist/lib/server/decisioning/list-helpers.d.ts.map +1 -0
- package/dist/lib/server/decisioning/list-helpers.js +96 -0
- package/dist/lib/server/decisioning/list-helpers.js.map +1 -0
- package/dist/lib/server/decisioning/manifest-helpers.d.ts +56 -0
- package/dist/lib/server/decisioning/manifest-helpers.d.ts.map +1 -0
- package/dist/lib/server/decisioning/manifest-helpers.js +78 -0
- package/dist/lib/server/decisioning/manifest-helpers.js.map +1 -0
- package/dist/lib/server/decisioning/pagination.d.ts +21 -0
- package/dist/lib/server/decisioning/pagination.d.ts.map +1 -0
- package/dist/lib/server/decisioning/pagination.js +12 -0
- package/dist/lib/server/decisioning/pagination.js.map +1 -0
- package/dist/lib/server/decisioning/platform.d.ts +188 -0
- package/dist/lib/server/decisioning/platform.d.ts.map +1 -0
- package/dist/lib/server/decisioning/platform.js +19 -0
- package/dist/lib/server/decisioning/platform.js.map +1 -0
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts +510 -0
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -0
- package/dist/lib/server/decisioning/runtime/from-platform.js +2196 -0
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -0
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts +114 -0
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts.map +1 -0
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.js +247 -0
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.js.map +1 -0
- package/dist/lib/server/decisioning/runtime/protocol-for-tool.d.ts +32 -0
- package/dist/lib/server/decisioning/runtime/protocol-for-tool.d.ts.map +1 -0
- package/dist/lib/server/decisioning/runtime/protocol-for-tool.js +127 -0
- package/dist/lib/server/decisioning/runtime/protocol-for-tool.js.map +1 -0
- package/dist/lib/server/decisioning/runtime/task-registry.d.ts +105 -0
- package/dist/lib/server/decisioning/runtime/task-registry.d.ts.map +1 -0
- package/dist/lib/server/decisioning/runtime/task-registry.js +96 -0
- package/dist/lib/server/decisioning/runtime/task-registry.js.map +1 -0
- package/dist/lib/server/decisioning/runtime/to-context.d.ts +54 -0
- package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -0
- package/dist/lib/server/decisioning/runtime/to-context.js +166 -0
- package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -0
- package/dist/lib/server/decisioning/runtime/validate-platform.d.ts +20 -0
- package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -0
- package/dist/lib/server/decisioning/runtime/validate-platform.js +93 -0
- package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -0
- package/dist/lib/server/decisioning/specialisms/audiences.d.ts +72 -0
- package/dist/lib/server/decisioning/specialisms/audiences.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/audiences.js +15 -0
- package/dist/lib/server/decisioning/specialisms/audiences.js.map +1 -0
- package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts +92 -0
- package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/brand-rights.js +28 -0
- package/dist/lib/server/decisioning/specialisms/brand-rights.js.map +1 -0
- package/dist/lib/server/decisioning/specialisms/campaign-governance.d.ts +67 -0
- package/dist/lib/server/decisioning/specialisms/campaign-governance.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/campaign-governance.js +31 -0
- package/dist/lib/server/decisioning/specialisms/campaign-governance.js.map +1 -0
- package/dist/lib/server/decisioning/specialisms/content-standards.d.ts +78 -0
- package/dist/lib/server/decisioning/specialisms/content-standards.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/content-standards.js +35 -0
- package/dist/lib/server/decisioning/specialisms/content-standards.js.map +1 -0
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts +81 -0
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.js +28 -0
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.js.map +1 -0
- package/dist/lib/server/decisioning/specialisms/creative.d.ts +144 -0
- package/dist/lib/server/decisioning/specialisms/creative.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/creative.js +19 -0
- package/dist/lib/server/decisioning/specialisms/creative.js.map +1 -0
- package/dist/lib/server/decisioning/specialisms/lists.d.ts +61 -0
- package/dist/lib/server/decisioning/specialisms/lists.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/lists.js +30 -0
- package/dist/lib/server/decisioning/specialisms/lists.js.map +1 -0
- package/dist/lib/server/decisioning/specialisms/sales.d.ts +163 -0
- package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/sales.js +64 -0
- package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -0
- package/dist/lib/server/decisioning/specialisms/signals.d.ts +64 -0
- package/dist/lib/server/decisioning/specialisms/signals.d.ts.map +1 -0
- package/dist/lib/server/decisioning/specialisms/signals.js +28 -0
- package/dist/lib/server/decisioning/specialisms/signals.js.map +1 -0
- package/dist/lib/server/decisioning/start-time.d.ts +76 -0
- package/dist/lib/server/decisioning/start-time.d.ts.map +1 -0
- package/dist/lib/server/decisioning/start-time.js +81 -0
- package/dist/lib/server/decisioning/start-time.js.map +1 -0
- package/dist/lib/server/decisioning/status-changes.d.ts +165 -0
- package/dist/lib/server/decisioning/status-changes.d.ts.map +1 -0
- package/dist/lib/server/decisioning/status-changes.js +131 -0
- package/dist/lib/server/decisioning/status-changes.js.map +1 -0
- package/dist/lib/server/decisioning/status-mappers.d.ts +46 -0
- package/dist/lib/server/decisioning/status-mappers.d.ts.map +1 -0
- package/dist/lib/server/decisioning/status-mappers.js +46 -0
- package/dist/lib/server/decisioning/status-mappers.js.map +1 -0
- package/dist/lib/server/decisioning/tenant-registry.d.ts +289 -0
- package/dist/lib/server/decisioning/tenant-registry.d.ts.map +1 -0
- package/dist/lib/server/decisioning/tenant-registry.js +503 -0
- package/dist/lib/server/decisioning/tenant-registry.js.map +1 -0
- package/dist/lib/server/express-adapter.d.ts +1 -1
- package/dist/lib/server/express-adapter.js +1 -1
- package/dist/lib/server/governance.d.ts +1 -1
- package/dist/lib/server/governance.js +1 -1
- package/dist/lib/server/idempotency/store.d.ts +1 -1
- package/dist/lib/server/idempotency/store.js +1 -1
- package/dist/lib/server/index.d.ts +9 -2
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +79 -4
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/legacy/v5/index.d.ts +38 -0
- package/dist/lib/server/legacy/v5/index.d.ts.map +1 -0
- package/dist/lib/server/legacy/v5/index.js +60 -0
- package/dist/lib/server/legacy/v5/index.js.map +1 -0
- package/dist/lib/server/normalize-errors.d.ts +88 -0
- package/dist/lib/server/normalize-errors.d.ts.map +1 -0
- package/dist/lib/server/normalize-errors.js +146 -0
- package/dist/lib/server/normalize-errors.js.map +1 -0
- package/dist/lib/server/pick-safe-details.d.ts +90 -0
- package/dist/lib/server/pick-safe-details.d.ts.map +1 -0
- package/dist/lib/server/pick-safe-details.js +148 -0
- package/dist/lib/server/pick-safe-details.js.map +1 -0
- package/dist/lib/server/postgres-state-store.d.ts +1 -1
- package/dist/lib/server/postgres-state-store.js +1 -1
- package/dist/lib/server/responses.d.ts +38 -0
- package/dist/lib/server/responses.d.ts.map +1 -1
- package/dist/lib/server/responses.js +38 -0
- package/dist/lib/server/responses.js.map +1 -1
- package/dist/lib/server/state-store.d.ts +1 -1
- package/dist/lib/server/state-store.js +1 -1
- package/dist/lib/server/test-controller.d.ts +10 -3
- package/dist/lib/server/test-controller.d.ts.map +1 -1
- package/dist/lib/server/test-controller.js +10 -3
- package/dist/lib/server/test-controller.js.map +1 -1
- package/dist/lib/testing/comply-controller.d.ts +47 -1
- package/dist/lib/testing/comply-controller.d.ts.map +1 -1
- package/dist/lib/testing/comply-controller.js +11 -4
- package/dist/lib/testing/comply-controller.js.map +1 -1
- package/dist/lib/testing/index.d.ts +1 -1
- package/dist/lib/testing/index.d.ts.map +1 -1
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/testing/personas/index.d.ts +143 -0
- package/dist/lib/testing/personas/index.d.ts.map +1 -0
- package/dist/lib/testing/personas/index.js +190 -0
- package/dist/lib/testing/personas/index.js.map +1 -0
- package/dist/lib/testing/storyboard/index.d.ts +1 -1
- package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/index.js +3 -2
- package/dist/lib/testing/storyboard/index.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts +13 -0
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +179 -7
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/types/adcp.d.ts.map +1 -1
- package/dist/lib/types/adcp.js +1 -0
- package/dist/lib/types/adcp.js.map +1 -1
- package/dist/lib/types/asset-instances.d.ts +1 -0
- package/dist/lib/types/asset-instances.d.ts.map +1 -1
- package/dist/lib/types/core.generated.d.ts +203 -98
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +1 -1
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/types/index.d.ts.map +1 -1
- package/dist/lib/types/index.js.map +1 -1
- package/dist/lib/types/schemas.generated.d.ts +599 -159
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +175 -94
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +315 -46
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.d.ts +1 -1
- package/dist/lib/utils/capabilities.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.js +6 -0
- package/dist/lib/utils/capabilities.js.map +1 -1
- package/dist/lib/validation/schema-validator.d.ts +13 -0
- package/dist/lib/validation/schema-validator.d.ts.map +1 -1
- package/dist/lib/validation/schema-validator.js +240 -3
- package/dist/lib/validation/schema-validator.js.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.js.map +1 -1
- package/docs/guides/BUILD-AN-AGENT.md +30 -5
- package/docs/llms.txt +28 -17
- package/examples/README.md +3 -1
- package/examples/decisioning-platform-broadcast-tv.ts +300 -0
- package/examples/decisioning-platform-identity-graph.ts +214 -0
- package/examples/decisioning-platform-mock-seller.ts +332 -0
- package/examples/decisioning-platform-multi-tenant.ts +128 -0
- package/examples/decisioning-platform-programmatic.ts +254 -0
- package/examples/signals-agent.ts +1 -1
- package/package.json +13 -2
- package/skills/build-brand-rights-agent/SKILL.md +10 -3
- package/skills/build-creative-agent/SKILL.md +94 -64
- package/skills/build-decisioning-creative-template/SKILL.md +554 -0
- package/skills/build-decisioning-platform/SKILL.md +304 -0
- package/skills/build-decisioning-platform/advanced/BRAND-RIGHTS.md +25 -0
- package/skills/build-decisioning-platform/advanced/COMPLIANCE.md +23 -0
- package/skills/build-decisioning-platform/advanced/GOVERNANCE.md +24 -0
- package/skills/build-decisioning-platform/advanced/HITL.md +34 -0
- package/skills/build-decisioning-platform/advanced/IDEMPOTENCY.md +52 -0
- package/skills/build-decisioning-platform/advanced/MULTI-TENANT.md +47 -0
- package/skills/build-decisioning-platform/advanced/OAUTH.md +22 -0
- package/skills/build-decisioning-platform/advanced/REFERENCE.md +991 -0
- package/skills/build-decisioning-platform/advanced/SANDBOX.md +24 -0
- package/skills/build-decisioning-platform/advanced/STATE-MACHINE.md +52 -0
- package/skills/build-decisioning-signal-marketplace/SKILL.md +269 -0
- package/skills/build-generative-seller-agent/SKILL.md +89 -53
- package/skills/build-governance-agent/SKILL.md +76 -45
- package/skills/build-retail-media-agent/SKILL.md +87 -62
- package/skills/build-seller-agent/SKILL.md +384 -255
- package/skills/build-seller-agent/deployment.md +5 -3
- package/skills/build-seller-agent/specialisms/audience-sync.md +0 -2
- package/skills/build-seller-agent/specialisms/sales-broadcast-tv.md +0 -2
- package/skills/build-seller-agent/specialisms/sales-guaranteed.md +0 -2
- package/skills/build-seller-agent/specialisms/sales-non-guaranteed.md +0 -2
- package/skills/build-seller-agent/specialisms/sales-proposal-mode.md +0 -2
- package/skills/build-seller-agent/specialisms/sales-social.md +0 -2
- package/skills/build-seller-agent/specialisms/signed-requests.md +0 -2
- package/skills/build-si-agent/SKILL.md +40 -32
- package/skills/build-signals-agent/SKILL.md +139 -92
- package/skills/call-adcp-agent.previous/SKILL.md +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-outcome.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/async-outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,k8BA8CpB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AA+B3D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAChC,QAAQ,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGzC,IAAI,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC/B,OAAO,EAAE;QACP,QAAQ,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;QACnD,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC;IAYH,kFAAkF;IAClF,iBAAiB,IAAI,mBAAmB;IAYxC;;;;;;OAMG;IACM,QAAQ,IAAI,MAAM;CAG5B;AAMD;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,EAAE,OAAO,MAAqD,CAAC;AAavF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,WAAW,CAAC,OAAO;IAClC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;CASrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Error vocabulary + structured error class for `DecisioningPlatform`.
|
|
4
|
+
*
|
|
5
|
+
* Adopters write per-tool methods (sync OR `*Task` HITL variant), return
|
|
6
|
+
* the success value, or `throw new AdcpError(...)` for structured rejection.
|
|
7
|
+
* The framework projects the structured fields onto the wire `adcp_error`
|
|
8
|
+
* envelope; generic thrown errors map to `SERVICE_UNAVAILABLE`.
|
|
9
|
+
*
|
|
10
|
+
* `AsyncOutcome<T>` and the `ok` / `submitted` / `rejected` constructors
|
|
11
|
+
* remain as the framework's internal projection vocabulary; adopter code
|
|
12
|
+
* doesn't return them.
|
|
13
|
+
*
|
|
14
|
+
* Status: Preview / 6.0.
|
|
15
|
+
*
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.AdcpError = exports.KNOWN_ERROR_CODES = void 0;
|
|
20
|
+
exports._createTaskHandoff = _createTaskHandoff;
|
|
21
|
+
exports.isTaskHandoff = isTaskHandoff;
|
|
22
|
+
exports._extractTaskFn = _extractTaskFn;
|
|
23
|
+
/**
|
|
24
|
+
* Error code vocabulary mirroring `schemas/cache/3.0.0/enums/error-code.json`
|
|
25
|
+
* (45 standard codes). Adopters can return platform-specific codes too —
|
|
26
|
+
* agents fall back to the `recovery` classification on unknowns via the
|
|
27
|
+
* `(string & {})` escape hatch on `AdcpStructuredError.code`.
|
|
28
|
+
*
|
|
29
|
+
* TODO(6.0): generate this from `schemas/cache/<version>/enums/error-code.json`
|
|
30
|
+
* via the same codegen pipeline as the rest of `tools.generated.ts`.
|
|
31
|
+
*/
|
|
32
|
+
exports.KNOWN_ERROR_CODES = [
|
|
33
|
+
'INVALID_REQUEST',
|
|
34
|
+
'AUTH_REQUIRED',
|
|
35
|
+
'RATE_LIMITED',
|
|
36
|
+
'SERVICE_UNAVAILABLE',
|
|
37
|
+
'POLICY_VIOLATION',
|
|
38
|
+
'PRODUCT_NOT_FOUND',
|
|
39
|
+
'PRODUCT_UNAVAILABLE',
|
|
40
|
+
'PRODUCT_EXPIRED',
|
|
41
|
+
'PROPOSAL_EXPIRED',
|
|
42
|
+
'PROPOSAL_NOT_COMMITTED',
|
|
43
|
+
'BUDGET_TOO_LOW',
|
|
44
|
+
'BUDGET_EXHAUSTED',
|
|
45
|
+
'BUDGET_EXCEEDED',
|
|
46
|
+
'CREATIVE_REJECTED',
|
|
47
|
+
'CREATIVE_DEADLINE_EXCEEDED',
|
|
48
|
+
'CREATIVE_NOT_FOUND',
|
|
49
|
+
'UNSUPPORTED_FEATURE',
|
|
50
|
+
'AUDIENCE_TOO_SMALL',
|
|
51
|
+
'ACCOUNT_NOT_FOUND',
|
|
52
|
+
'ACCOUNT_SETUP_REQUIRED',
|
|
53
|
+
'ACCOUNT_AMBIGUOUS',
|
|
54
|
+
'ACCOUNT_PAYMENT_REQUIRED',
|
|
55
|
+
'ACCOUNT_SUSPENDED',
|
|
56
|
+
'COMPLIANCE_UNSATISFIED',
|
|
57
|
+
'GOVERNANCE_DENIED',
|
|
58
|
+
'GOVERNANCE_UNAVAILABLE',
|
|
59
|
+
'CAMPAIGN_SUSPENDED',
|
|
60
|
+
'CONFLICT',
|
|
61
|
+
'IDEMPOTENCY_CONFLICT',
|
|
62
|
+
'IDEMPOTENCY_EXPIRED',
|
|
63
|
+
'INVALID_STATE',
|
|
64
|
+
'IO_REQUIRED',
|
|
65
|
+
'MEDIA_BUY_NOT_FOUND',
|
|
66
|
+
'NOT_CANCELLABLE',
|
|
67
|
+
'PACKAGE_NOT_FOUND',
|
|
68
|
+
'PERMISSION_DENIED',
|
|
69
|
+
'PLAN_NOT_FOUND',
|
|
70
|
+
'REFERENCE_NOT_FOUND',
|
|
71
|
+
'REQUOTE_REQUIRED',
|
|
72
|
+
'SESSION_NOT_FOUND',
|
|
73
|
+
'SESSION_TERMINATED',
|
|
74
|
+
'SIGNAL_NOT_FOUND',
|
|
75
|
+
'TERMS_REJECTED',
|
|
76
|
+
'VALIDATION_ERROR',
|
|
77
|
+
'VERSION_UNSUPPORTED',
|
|
78
|
+
];
|
|
79
|
+
const KNOWN_ERROR_CODE_SET = new Set(exports.KNOWN_ERROR_CODES);
|
|
80
|
+
/**
|
|
81
|
+
* Detect typoed error codes in `AdcpError` constructor calls. The
|
|
82
|
+
* `code: ErrorCode | (string & {})` escape hatch keeps platform-specific
|
|
83
|
+
* codes available, but it also defeats autocomplete on misspellings —
|
|
84
|
+
* `'BUDGET_TO_LOW'` (typo) compiles fine. The runtime warns once per
|
|
85
|
+
* unknown code so `npm run dev` log review surfaces typos before they
|
|
86
|
+
* ship to a buyer who can't pattern-match `recovery`.
|
|
87
|
+
*
|
|
88
|
+
* Set `ADCP_DECISIONING_ALLOW_CUSTOM_CODES=1` to silence the warn for
|
|
89
|
+
* platforms that intentionally mint vendor-specific codes
|
|
90
|
+
* (`'GAM_INTERNAL_QUOTA_EXCEEDED'` etc.).
|
|
91
|
+
*/
|
|
92
|
+
const warnedUnknownCodes = new Set();
|
|
93
|
+
function maybeWarnUnknownErrorCode(code) {
|
|
94
|
+
if (KNOWN_ERROR_CODE_SET.has(code))
|
|
95
|
+
return;
|
|
96
|
+
if (process.env.ADCP_DECISIONING_ALLOW_CUSTOM_CODES === '1')
|
|
97
|
+
return;
|
|
98
|
+
if (warnedUnknownCodes.has(code))
|
|
99
|
+
return;
|
|
100
|
+
warnedUnknownCodes.add(code);
|
|
101
|
+
// eslint-disable-next-line no-console
|
|
102
|
+
console.warn(`[adcp/decisioning] AdcpError code "${code}" is not in the known ErrorCode set ` +
|
|
103
|
+
`(45 standard codes per schemas/cache/3.0.0/enums/error-code.json). ` +
|
|
104
|
+
`If this is intentional (vendor-specific code), set ADCP_DECISIONING_ALLOW_CUSTOM_CODES=1. ` +
|
|
105
|
+
`Otherwise check spelling against the ErrorCode union.`);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Throwable structured error. Adopter code throws this to fail a specialism
|
|
109
|
+
* method with a buyer-facing wire envelope.
|
|
110
|
+
*
|
|
111
|
+
* ```ts
|
|
112
|
+
* createMediaBuy: async (req, ctx) => {
|
|
113
|
+
* if (req.total_budget.amount < this.floor) {
|
|
114
|
+
* throw new AdcpError('BUDGET_TOO_LOW', {
|
|
115
|
+
* recovery: 'correctable',
|
|
116
|
+
* message: `Floor is $${this.floor} CPM`,
|
|
117
|
+
* field: 'total_budget.amount',
|
|
118
|
+
* });
|
|
119
|
+
* }
|
|
120
|
+
* return await this.gam.createOrder(req);
|
|
121
|
+
* }
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
124
|
+
* Framework catches `AdcpError` from any specialism method and projects
|
|
125
|
+
* the structured fields onto the wire `adcp_error` envelope.
|
|
126
|
+
* Generic thrown errors map to `SERVICE_UNAVAILABLE` with `recovery: 'transient'`.
|
|
127
|
+
*/
|
|
128
|
+
class AdcpError extends Error {
|
|
129
|
+
name = 'AdcpError';
|
|
130
|
+
code;
|
|
131
|
+
recovery;
|
|
132
|
+
field;
|
|
133
|
+
suggestion;
|
|
134
|
+
retry_after;
|
|
135
|
+
details;
|
|
136
|
+
constructor(code, options) {
|
|
137
|
+
super(options.message);
|
|
138
|
+
this.code = code;
|
|
139
|
+
this.recovery = options.recovery;
|
|
140
|
+
maybeWarnUnknownErrorCode(code);
|
|
141
|
+
if (options.field !== undefined)
|
|
142
|
+
this.field = options.field;
|
|
143
|
+
if (options.suggestion !== undefined)
|
|
144
|
+
this.suggestion = options.suggestion;
|
|
145
|
+
if (options.retry_after !== undefined)
|
|
146
|
+
this.retry_after = options.retry_after;
|
|
147
|
+
if (options.details !== undefined)
|
|
148
|
+
this.details = options.details;
|
|
149
|
+
}
|
|
150
|
+
/** Coerce to the structured envelope shape the framework projects to the wire. */
|
|
151
|
+
toStructuredError() {
|
|
152
|
+
return {
|
|
153
|
+
code: this.code,
|
|
154
|
+
recovery: this.recovery,
|
|
155
|
+
message: this.message,
|
|
156
|
+
...(this.field !== undefined && { field: this.field }),
|
|
157
|
+
...(this.suggestion !== undefined && { suggestion: this.suggestion }),
|
|
158
|
+
...(this.retry_after !== undefined && { retry_after: this.retry_after }),
|
|
159
|
+
...(this.details !== undefined && { details: this.details }),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Override `Error.toString` so default `console.error(err)` /
|
|
164
|
+
* CloudWatch / structured-log adopters see the `code` and `recovery`
|
|
165
|
+
* alongside the message rather than the bare `AdcpError: <message>`
|
|
166
|
+
* default. Triage in operator dashboards needs the code more than
|
|
167
|
+
* the stack.
|
|
168
|
+
*/
|
|
169
|
+
toString() {
|
|
170
|
+
return `AdcpError [${this.code}, ${this.recovery}]: ${this.message}`;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.AdcpError = AdcpError;
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
// TaskHandoff — unified hybrid-seller shape
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
/**
|
|
178
|
+
* Brand value framework checks at the dispatch seam to detect "this method
|
|
179
|
+
* is handing off to a task." Module-level constant so adopters can't construct
|
|
180
|
+
* one without going through `ctx.handoffToTask(fn)`.
|
|
181
|
+
*/
|
|
182
|
+
const TASK_HANDOFF_BRAND = Symbol.for('@adcp/decisioning/task-handoff');
|
|
183
|
+
/**
|
|
184
|
+
* The handoff function lives in a WeakMap keyed by the `TaskHandoff`
|
|
185
|
+
* marker object — NOT on the marker itself. This means the framework
|
|
186
|
+
* can extract the function (it has the WeakMap reference) but adopters
|
|
187
|
+
* holding only a `TaskHandoff<T>` value cannot invoke or inspect it.
|
|
188
|
+
* Closes round-6 CR-3 / Protocol-L2: `_taskFn` was previously a
|
|
189
|
+
* type-visible field that adopters could forge with their own
|
|
190
|
+
* `Symbol.for(...)` call.
|
|
191
|
+
*/
|
|
192
|
+
const taskHandoffFns = new WeakMap();
|
|
193
|
+
/**
|
|
194
|
+
* Construct a `TaskHandoff<T>` marker. The framework's `ctx.handoffToTask`
|
|
195
|
+
* helper invokes this; adopters don't call it directly.
|
|
196
|
+
*
|
|
197
|
+
* The `fn` is stashed in a module-private WeakMap keyed by the marker
|
|
198
|
+
* object. Adopters can hold the marker and pass it through return
|
|
199
|
+
* values, but cannot extract or invoke `fn` themselves — only the
|
|
200
|
+
* framework's `_extractTaskFn` can.
|
|
201
|
+
*
|
|
202
|
+
* @internal
|
|
203
|
+
*/
|
|
204
|
+
function _createTaskHandoff(fn) {
|
|
205
|
+
// Frozen object so adopters can't mutate the brand field. Even if
|
|
206
|
+
// they did, the dispatch seam keys on identity (WeakMap), not on
|
|
207
|
+
// mutable structure.
|
|
208
|
+
const marker = Object.freeze({ [TASK_HANDOFF_BRAND]: true });
|
|
209
|
+
taskHandoffFns.set(marker, fn);
|
|
210
|
+
return marker;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Type guard — does the value the adopter returned mark a task handoff?
|
|
214
|
+
*
|
|
215
|
+
* Checks both the symbol brand AND WeakMap presence. An adopter who
|
|
216
|
+
* forges `{ [TASK_HANDOFF_BRAND]: true }` without going through
|
|
217
|
+
* `_createTaskHandoff` won't be in the WeakMap and the guard returns
|
|
218
|
+
* false. Belt-and-suspenders against forgery.
|
|
219
|
+
*
|
|
220
|
+
* @internal
|
|
221
|
+
*/
|
|
222
|
+
function isTaskHandoff(value) {
|
|
223
|
+
return (typeof value === 'object' &&
|
|
224
|
+
value !== null &&
|
|
225
|
+
value[TASK_HANDOFF_BRAND] === true &&
|
|
226
|
+
taskHandoffFns.has(value));
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Extract the handoff function from a marker. Framework-only — the
|
|
230
|
+
* dispatch seam in `from-platform.ts` calls this after `isTaskHandoff`.
|
|
231
|
+
* Returns `undefined` if the marker wasn't created by `_createTaskHandoff`
|
|
232
|
+
* (forgery).
|
|
233
|
+
*
|
|
234
|
+
* @internal
|
|
235
|
+
*/
|
|
236
|
+
function _extractTaskFn(handoff) {
|
|
237
|
+
return taskHandoffFns.get(handoff);
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=async-outcome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-outcome.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/async-outcome.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DecisioningCapabilities — single source of truth for `get_adcp_capabilities`
|
|
3
|
+
* response and any admin UI surface a host wants to render.
|
|
4
|
+
*
|
|
5
|
+
* Adopters declare once. Framework wires the wire-protocol response;
|
|
6
|
+
* adopters' admin tools (or the SDK CLI's `validate_platform_config`) consume
|
|
7
|
+
* the same dataclass so there's no drift between "what the agent says it
|
|
8
|
+
* supports" and "what it actually does."
|
|
9
|
+
*
|
|
10
|
+
* Status: Preview / 6.0.
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
import type { ZodSchema } from 'zod';
|
|
15
|
+
import type { AdCPSpecialism, MediaChannel, PricingModel, GetAdCPCapabilitiesResponse } from '../../types/tools.generated';
|
|
16
|
+
export interface DecisioningCapabilities<TConfig = unknown> {
|
|
17
|
+
/**
|
|
18
|
+
* Specialisms claimed; framework type-checks these against implemented platform
|
|
19
|
+
* interfaces. Arrays are `readonly` so adopters can declare with `as const`
|
|
20
|
+
* (load-bearing for the `RequiredPlatformsFor<S>` compile-time gate).
|
|
21
|
+
*/
|
|
22
|
+
specialisms: readonly AdCPSpecialism[];
|
|
23
|
+
/**
|
|
24
|
+
* Creative agents this seller composes with. Framework fetches format catalogs
|
|
25
|
+
* from each (1h cache) and unions them on `list_creative_formats`. Self-hosting
|
|
26
|
+
* sellers point at their own `agent_url`; framework calls into their
|
|
27
|
+
* `CreativePlatform.listFormats()` locally instead of HTTP-fetching.
|
|
28
|
+
*
|
|
29
|
+
* `format_ids` filter (optional) subsets a single creative agent's catalog.
|
|
30
|
+
* Useful when a creative agent hosts 50 formats but this seller only accepts
|
|
31
|
+
* 10 of them. Filter scope is per-creative-agent: `[{ agent_url: A, format_ids: ['x'] }, { agent_url: B }]`
|
|
32
|
+
* means "from A only format x; from B all formats."
|
|
33
|
+
*/
|
|
34
|
+
creative_agents: readonly CreativeAgentRef[];
|
|
35
|
+
/** Channels this platform sells. */
|
|
36
|
+
channels: readonly MediaChannel[];
|
|
37
|
+
/** Pricing models this platform supports. */
|
|
38
|
+
pricingModels: readonly PricingModel[];
|
|
39
|
+
/** Targeting capabilities. Optional — framework infers reasonable defaults if omitted. */
|
|
40
|
+
targeting?: TargetingCapabilities;
|
|
41
|
+
/** Reporting capabilities. Optional — framework infers reasonable defaults if omitted. */
|
|
42
|
+
reporting?: ReportingCapabilities;
|
|
43
|
+
/**
|
|
44
|
+
* Audience-matching capabilities — projected onto
|
|
45
|
+
* `get_adcp_capabilities.media_buy.audience_targeting`. Required for
|
|
46
|
+
* audience-sync adopters (CRM-list adopters that accept hashed
|
|
47
|
+
* identifiers + UID types) so buyers know which identifier shapes
|
|
48
|
+
* the platform will match against and what minimum audience size /
|
|
49
|
+
* matching latency to expect. Omit when the platform doesn't accept
|
|
50
|
+
* external audience uploads.
|
|
51
|
+
*
|
|
52
|
+
* Wire spec: `core/get-adcp-capabilities-response.json#media_buy.audience_targeting`.
|
|
53
|
+
*/
|
|
54
|
+
audience_targeting?: NonNullable<NonNullable<GetAdCPCapabilitiesResponse['media_buy']>['audience_targeting']>;
|
|
55
|
+
/**
|
|
56
|
+
* Conversion-tracking capabilities — projected onto
|
|
57
|
+
* `get_adcp_capabilities.media_buy.conversion_tracking`. Required for
|
|
58
|
+
* adopters that accept conversion events via `sync_event_sources` /
|
|
59
|
+
* `log_event` so buyers know which event types, action sources,
|
|
60
|
+
* attribution windows, and identifier shapes the platform supports.
|
|
61
|
+
* Omit when the platform doesn't track conversions.
|
|
62
|
+
*
|
|
63
|
+
* Wire spec: `core/get-adcp-capabilities-response.json#media_buy.conversion_tracking`.
|
|
64
|
+
*/
|
|
65
|
+
conversion_tracking?: NonNullable<NonNullable<GetAdCPCapabilitiesResponse['media_buy']>['conversion_tracking']>;
|
|
66
|
+
/**
|
|
67
|
+
* Content-standards capabilities — projected onto
|
|
68
|
+
* `get_adcp_capabilities.media_buy.content_standards`. Required for
|
|
69
|
+
* adopters claiming the `content-standards` specialism so buyers know
|
|
70
|
+
* whether the platform runs local evaluation, which channels it
|
|
71
|
+
* covers, and whether it supports webhook artifact delivery. Omit
|
|
72
|
+
* when the platform doesn't ship content-standards artifacts.
|
|
73
|
+
*
|
|
74
|
+
* Wire spec: `core/get-adcp-capabilities-response.json#media_buy.content_standards`.
|
|
75
|
+
*/
|
|
76
|
+
content_standards?: NonNullable<NonNullable<GetAdCPCapabilitiesResponse['media_buy']>['content_standards']>;
|
|
77
|
+
/**
|
|
78
|
+
* Brand-protocol capabilities. Projected onto the wire `brand` block of
|
|
79
|
+
* `get_adcp_capabilities` (`brand: { rights, right_types, available_uses,
|
|
80
|
+
* generation_providers, description }`). The framework auto-derives
|
|
81
|
+
* `rights: true` when `BrandRightsPlatform` is supplied; adopters
|
|
82
|
+
* declare the rest (right_types they license, RightUses they support,
|
|
83
|
+
* generation providers they issue credentials for).
|
|
84
|
+
*
|
|
85
|
+
* REQUIRED when claiming the `'brand-rights'` specialism — enforced at
|
|
86
|
+
* compile-time via `RequiredCapabilitiesFor<S>`.
|
|
87
|
+
*/
|
|
88
|
+
brand?: BrandCapabilities;
|
|
89
|
+
/**
|
|
90
|
+
* Compliance-testing capabilities. The presence of this block declares
|
|
91
|
+
* the agent supports deterministic state-machine testing via the
|
|
92
|
+
* `comply_test_controller` wire tool. Omit entirely if the agent
|
|
93
|
+
* doesn't support compliance testing.
|
|
94
|
+
*
|
|
95
|
+
* When this block is present, `createAdcpServerFromPlatform` REQUIRES
|
|
96
|
+
* `opts.complyTest` (the `ComplyControllerConfig` adapter set) to be
|
|
97
|
+
* supplied — claiming the capability without implementing the
|
|
98
|
+
* controller is a `PlatformConfigError` at construction.
|
|
99
|
+
*
|
|
100
|
+
* Inversely, supplying `opts.complyTest` without declaring this
|
|
101
|
+
* capability is also caught — the framework derives `scenarios` from
|
|
102
|
+
* the declared force/simulate/seed adapters and emits the discovery
|
|
103
|
+
* field on `get_adcp_capabilities` automatically. Adopters who want
|
|
104
|
+
* to explicitly declare a narrower or wider scenarios list can supply
|
|
105
|
+
* this block; otherwise the auto-derivation wins.
|
|
106
|
+
*/
|
|
107
|
+
compliance_testing?: ComplianceTestingCapabilities;
|
|
108
|
+
/**
|
|
109
|
+
* Billing parties this platform supports. `'operator'` = retail-media model
|
|
110
|
+
* (Criteo, Amazon — operator pays the publisher and bills the brand).
|
|
111
|
+
* `'agent'` = pass-through model (buyer's agent settles directly with the
|
|
112
|
+
* platform). Defaults to `['agent']` when omitted.
|
|
113
|
+
*/
|
|
114
|
+
supportedBillings?: ReadonlyArray<'operator' | 'agent'>;
|
|
115
|
+
/**
|
|
116
|
+
* If true, this platform refuses transactions without an authenticated
|
|
117
|
+
* operator principal (operator-billed retail-media). Framework emits
|
|
118
|
+
* `AUTH_REQUIRED` envelope before dispatching to the platform.
|
|
119
|
+
*/
|
|
120
|
+
requireOperatorAuth?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Platform-specific config. Strongly typed when the adopter uses the generic.
|
|
123
|
+
* Example: `class GAM extends DecisioningPlatform<{ networkId: string }>`.
|
|
124
|
+
*/
|
|
125
|
+
config: TConfig;
|
|
126
|
+
/**
|
|
127
|
+
* Optional Zod schema for runtime validation of `config`. When provided,
|
|
128
|
+
* framework validates at platform construction time; missing or wrong-shaped
|
|
129
|
+
* config rejects the agent at boot rather than at first request.
|
|
130
|
+
*/
|
|
131
|
+
configSchema?: ZodSchema<TConfig>;
|
|
132
|
+
}
|
|
133
|
+
export interface CreativeAgentRef {
|
|
134
|
+
agent_url: string;
|
|
135
|
+
/** Human-readable label for this creative agent. */
|
|
136
|
+
name?: string;
|
|
137
|
+
/** Optional allowlist of `format_id.id` values from THIS agent's catalog. Omit to include all. */
|
|
138
|
+
format_ids?: string[];
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Targeting capabilities the platform supports in `create_media_buy`. Maps
|
|
142
|
+
* to AdCP `GetAdcpCapabilitiesResponse.media_buy.execution.targeting`.
|
|
143
|
+
*
|
|
144
|
+
* Shape converged across two independently-evolved peer codebases (Scope3
|
|
145
|
+
* `agentic-adapters`, Prebid `salesagent`). Per-geo-system flags rather than
|
|
146
|
+
* coarse enums because the two implementations agreed: real platforms support
|
|
147
|
+
* specific geo identifier formats (Nielsen DMA, Eurostat NUTS2, US ZIP+4), not
|
|
148
|
+
* abstract "metro" / "postal" categories.
|
|
149
|
+
*/
|
|
150
|
+
export interface TargetingCapabilities {
|
|
151
|
+
geo_countries?: boolean;
|
|
152
|
+
geo_regions?: boolean;
|
|
153
|
+
/** Metro / DMA identifier systems. */
|
|
154
|
+
geo_metros?: {
|
|
155
|
+
nielsen_dma?: boolean;
|
|
156
|
+
uk_itl1?: boolean;
|
|
157
|
+
uk_itl2?: boolean;
|
|
158
|
+
eurostat_nuts2?: boolean;
|
|
159
|
+
};
|
|
160
|
+
/** Postal-code identifier systems. */
|
|
161
|
+
geo_postal_areas?: {
|
|
162
|
+
us_zip?: boolean;
|
|
163
|
+
us_zip_plus_four?: boolean;
|
|
164
|
+
gb_outward?: boolean;
|
|
165
|
+
gb_full?: boolean;
|
|
166
|
+
ca_fsa?: boolean;
|
|
167
|
+
ca_full?: boolean;
|
|
168
|
+
de_plz?: boolean;
|
|
169
|
+
fr_code_postal?: boolean;
|
|
170
|
+
au_postcode?: boolean;
|
|
171
|
+
ch_plz?: boolean;
|
|
172
|
+
at_plz?: boolean;
|
|
173
|
+
};
|
|
174
|
+
/** Geographic-proximity targeting (radius / drive-time / arbitrary geometry). */
|
|
175
|
+
geo_proximity?: {
|
|
176
|
+
radius?: boolean;
|
|
177
|
+
travel_time?: boolean;
|
|
178
|
+
geometry?: boolean;
|
|
179
|
+
transport_modes?: ReadonlyArray<'walking' | 'cycling' | 'driving' | 'public_transport'>;
|
|
180
|
+
};
|
|
181
|
+
/** Age-restriction targeting; `verification_methods` enumerates the assurance levels accepted. */
|
|
182
|
+
age_restriction?: {
|
|
183
|
+
supported?: boolean;
|
|
184
|
+
verification_methods?: ReadonlyArray<'facial_age_estimation' | 'id_document' | 'digital_id' | 'credit_card' | 'world_id'>;
|
|
185
|
+
};
|
|
186
|
+
device_platform?: boolean;
|
|
187
|
+
device_type?: boolean;
|
|
188
|
+
language?: boolean;
|
|
189
|
+
audience_include?: boolean;
|
|
190
|
+
audience_exclude?: boolean;
|
|
191
|
+
/** Keyword-targeting match types accepted on positive-match terms. */
|
|
192
|
+
keyword_targets?: {
|
|
193
|
+
supported_match_types: ReadonlyArray<'broad' | 'phrase' | 'exact'>;
|
|
194
|
+
};
|
|
195
|
+
/** Negative-keyword match types accepted. */
|
|
196
|
+
negative_keywords?: {
|
|
197
|
+
supported_match_types: ReadonlyArray<'broad' | 'phrase' | 'exact'>;
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Reporting capabilities the platform supports in `get_media_buy_delivery`.
|
|
202
|
+
*
|
|
203
|
+
* `availableDimensions` is the breakdown axes the platform can group
|
|
204
|
+
* delivery rows by. Vocabulary converged across Scope3 and Prebid.
|
|
205
|
+
*/
|
|
206
|
+
export interface ReportingCapabilities {
|
|
207
|
+
frequencies: ReadonlyArray<'hourly' | 'daily' | 'weekly'>;
|
|
208
|
+
expected_delay_minutes: number;
|
|
209
|
+
timezone: string;
|
|
210
|
+
metrics: string[];
|
|
211
|
+
date_range_support: 'date_range' | 'fixed_only';
|
|
212
|
+
supports_webhooks: boolean;
|
|
213
|
+
availableDimensions?: ReadonlyArray<'geo' | 'device_type' | 'device_platform' | 'audience' | 'placement' | 'creative' | 'keyword' | 'catalog_item'>;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Brand-protocol capabilities — projected onto the wire `brand` block of
|
|
217
|
+
* `get_adcp_capabilities` via the framework's `overrides.brand` deep-merge
|
|
218
|
+
* seam. Adopters who also implement `BrandRightsPlatform` get
|
|
219
|
+
* `rights: true` auto-derived; the other four fields (`right_types`,
|
|
220
|
+
* `available_uses`, `generation_providers`, `description`) are
|
|
221
|
+
* adopter-declared.
|
|
222
|
+
*
|
|
223
|
+
* Wire spec: `protocol/get-adcp-capabilities-response.json#brand`.
|
|
224
|
+
*/
|
|
225
|
+
export type BrandCapabilities = NonNullable<NonNullable<GetAdCPCapabilitiesResponse['brand']>>;
|
|
226
|
+
/**
|
|
227
|
+
* Compliance-testing capabilities — projected onto the wire-side
|
|
228
|
+
* `compliance_testing` block of `get_adcp_capabilities` so buyers and
|
|
229
|
+
* conformance harnesses can discover which `comply_test_controller`
|
|
230
|
+
* scenarios the agent supports.
|
|
231
|
+
*
|
|
232
|
+
* Wire spec: `core/get-adcp-capabilities-response.json#compliance_testing`.
|
|
233
|
+
*
|
|
234
|
+
* The `scenarios` array MUST be non-empty when this block is declared
|
|
235
|
+
* (per the spec). `'list_scenarios'` is implicit — adopters don't need
|
|
236
|
+
* to enumerate it.
|
|
237
|
+
*/
|
|
238
|
+
export interface ComplianceTestingCapabilities {
|
|
239
|
+
/**
|
|
240
|
+
* Scenarios this agent advertises support for. Wire enum is the
|
|
241
|
+
* spec-narrowed force + simulate set; seed scenarios are
|
|
242
|
+
* deliberately NOT advertised here (the controller's own
|
|
243
|
+
* `list_scenarios` response follows the same rule). Adopters who
|
|
244
|
+
* wire seed adapters get them dispatched correctly at runtime; they
|
|
245
|
+
* just don't appear in capability discovery. Framework defaults
|
|
246
|
+
* this from the adopter-supplied `complyTest` adapter set when
|
|
247
|
+
* omitted.
|
|
248
|
+
*/
|
|
249
|
+
scenarios?: ReadonlyArray<'force_creative_status' | 'force_account_status' | 'force_media_buy_status' | 'force_session_status' | 'simulate_delivery' | 'simulate_budget_spend'>;
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DecisioningCapabilities — single source of truth for `get_adcp_capabilities`
|
|
4
|
+
* response and any admin UI surface a host wants to render.
|
|
5
|
+
*
|
|
6
|
+
* Adopters declare once. Framework wires the wire-protocol response;
|
|
7
|
+
* adopters' admin tools (or the SDK CLI's `validate_platform_config`) consume
|
|
8
|
+
* the same dataclass so there's no drift between "what the agent says it
|
|
9
|
+
* supports" and "what it actually does."
|
|
10
|
+
*
|
|
11
|
+
* Status: Preview / 6.0.
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/capabilities.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG"}
|