@adcp/sdk 5.25.1 → 6.1.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/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +27 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +21 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +25 -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/schemas/index.d.ts +1 -1
- package/dist/lib/schemas/index.js +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +8 -0
- package/dist/lib/schemas-data/v2.5/adagents.json +494 -0
- package/dist/lib/schemas-data/v2.5/core/activation-key.json +50 -0
- package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +32 -0
- package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +21 -0
- package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +87 -0
- package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +21 -0
- package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +38 -0
- package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +21 -0
- package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +31 -0
- package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +21 -0
- package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +26 -0
- package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +87 -0
- package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +44 -0
- package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +71 -0
- package/dist/lib/schemas-data/v2.5/core/async-response-data.json +88 -0
- package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +33 -0
- package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +409 -0
- package/dist/lib/schemas-data/v2.5/core/context.json +8 -0
- package/dist/lib/schemas-data/v2.5/core/creative-asset.json +125 -0
- package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +31 -0
- package/dist/lib/schemas-data/v2.5/core/creative-filters.json +111 -0
- package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +72 -0
- package/dist/lib/schemas-data/v2.5/core/creative-policy.json +27 -0
- package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +171 -0
- package/dist/lib/schemas-data/v2.5/core/deployment.json +93 -0
- package/dist/lib/schemas-data/v2.5/core/destination.json +53 -0
- package/dist/lib/schemas-data/v2.5/core/error.json +40 -0
- package/dist/lib/schemas-data/v2.5/core/ext.json +8 -0
- package/dist/lib/schemas-data/v2.5/core/format-id.json +47 -0
- package/dist/lib/schemas-data/v2.5/core/format.json +324 -0
- package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +18 -0
- package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +152 -0
- package/dist/lib/schemas-data/v2.5/core/measurement.json +48 -0
- package/dist/lib/schemas-data/v2.5/core/media-buy.json +62 -0
- package/dist/lib/schemas-data/v2.5/core/package.json +72 -0
- package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +90 -0
- package/dist/lib/schemas-data/v2.5/core/placement.json +34 -0
- package/dist/lib/schemas-data/v2.5/core/pricing-option.json +35 -0
- package/dist/lib/schemas-data/v2.5/core/product-filters.json +102 -0
- package/dist/lib/schemas-data/v2.5/core/product.json +153 -0
- package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +115 -0
- package/dist/lib/schemas-data/v2.5/core/promoted-products.json +67 -0
- package/dist/lib/schemas-data/v2.5/core/property-id.json +14 -0
- package/dist/lib/schemas-data/v2.5/core/property-tag.json +16 -0
- package/dist/lib/schemas-data/v2.5/core/property.json +62 -0
- package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +146 -0
- package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +92 -0
- package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +48 -0
- package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +71 -0
- package/dist/lib/schemas-data/v2.5/core/response.json +24 -0
- package/dist/lib/schemas-data/v2.5/core/signal-filters.json +35 -0
- package/dist/lib/schemas-data/v2.5/core/start-timing.json +18 -0
- package/dist/lib/schemas-data/v2.5/core/sub-asset.json +79 -0
- package/dist/lib/schemas-data/v2.5/core/targeting.json +50 -0
- package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +43 -0
- package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +166 -0
- package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +192 -0
- package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +183 -0
- package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +101 -0
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +73 -0
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +61 -0
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +164 -0
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +245 -0
- package/dist/lib/schemas-data/v2.5/creative/preview-render.json +225 -0
- package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +22 -0
- package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/available-metric.json +18 -0
- package/dist/lib/schemas-data/v2.5/enums/channels.json +18 -0
- package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/creative-action.json +14 -0
- package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +15 -0
- package/dist/lib/schemas-data/v2.5/enums/creative-status.json +19 -0
- package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +20 -0
- package/dist/lib/schemas-data/v2.5/enums/daast-version.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +15 -0
- package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/feed-format.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/format-category.json +16 -0
- package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/http-method.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +34 -0
- package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +19 -0
- package/dist/lib/schemas-data/v2.5/enums/metric-type.json +17 -0
- package/dist/lib/schemas-data/v2.5/enums/notification-type.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/pacing.json +17 -0
- package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +25 -0
- package/dist/lib/schemas-data/v2.5/enums/property-type.json +16 -0
- package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +19 -0
- package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +103 -0
- package/dist/lib/schemas-data/v2.5/enums/task-status.json +29 -0
- package/dist/lib/schemas-data/v2.5/enums/task-type.json +27 -0
- package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +25 -0
- package/dist/lib/schemas-data/v2.5/enums/vast-version.json +14 -0
- package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +12 -0
- package/dist/lib/schemas-data/v2.5/index.json +604 -0
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +31 -0
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +65 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +31 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +36 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +126 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +97 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +54 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +285 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +38 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +21 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +34 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +28 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +33 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +26 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +70 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +58 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +61 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +137 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +437 -0
- package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +80 -0
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +88 -0
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +66 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +25 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +46 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +178 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +149 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +24 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +36 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +129 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +99 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +52 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +52 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +81 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +52 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +73 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +88 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +93 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +81 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +52 -0
- package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +33 -0
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +32 -0
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +68 -0
- package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +59 -0
- package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +100 -0
- package/dist/lib/server/create-adcp-server.d.ts +129 -11
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +127 -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 +260 -7
- package/dist/lib/testing/storyboard/runner.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/utils/creative-adapter.d.ts +32 -2
- package/dist/lib/utils/creative-adapter.d.ts.map +1 -1
- package/dist/lib/utils/creative-adapter.js +42 -6
- package/dist/lib/utils/creative-adapter.js.map +1 -1
- package/dist/lib/validation/schema-loader.d.ts.map +1 -1
- package/dist/lib/validation/schema-loader.js +20 -2
- package/dist/lib/validation/schema-loader.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 +18 -5
- 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,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TenantRegistry — multi-tenant deployment helper for the v6.0 decisioning
|
|
3
|
+
* runtime.
|
|
4
|
+
*
|
|
5
|
+
* Holds a map of `agentUrl → TenantConfig` and tracks per-tenant health.
|
|
6
|
+
* Composes with the existing `serve()` host-routing surface: the registry
|
|
7
|
+
* returns an `AdcpServer` factory that dispatches based on `ctx.host`.
|
|
8
|
+
*
|
|
9
|
+
* **Three health states**, never startup-fatal:
|
|
10
|
+
*
|
|
11
|
+
* - `healthy` — JWKS validated, accepting traffic normally.
|
|
12
|
+
* - `unverified` — validation hasn't completed (server starting, or
|
|
13
|
+
* JWKS unreachable transiently). Tenant accepts traffic with a
|
|
14
|
+
* warning header; framework periodically re-validates.
|
|
15
|
+
* - `disabled` — validation failed deterministically (signing key not
|
|
16
|
+
* in published JWKS, brand.json malformed). Tenant returns
|
|
17
|
+
* `SERVICE_UNAVAILABLE` until an admin recheck succeeds.
|
|
18
|
+
*
|
|
19
|
+
* One bad tenant doesn't take down others — health is per-tenant, the
|
|
20
|
+
* other tenants keep serving.
|
|
21
|
+
*
|
|
22
|
+
* Status: Preview / 6.0.
|
|
23
|
+
*
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
import type { DecisioningPlatform, RequiredPlatformsFor, RequiredCapabilitiesFor } from './platform';
|
|
27
|
+
import type { DecisioningAdcpServer, CreateAdcpServerFromPlatformOptions } from './runtime/from-platform';
|
|
28
|
+
export interface TenantSigningKey {
|
|
29
|
+
/** Stable key identifier — appears in the `Signature-Input` header. */
|
|
30
|
+
keyId: string;
|
|
31
|
+
/**
|
|
32
|
+
* JWK form of the public key. MUST appear in the JWKS at
|
|
33
|
+
* `{agentUrl}/.well-known/brand.json` for the tenant to validate.
|
|
34
|
+
*/
|
|
35
|
+
publicJwk: JsonWebKey;
|
|
36
|
+
/** Private JWK used to sign outbound responses (RFC 9421). */
|
|
37
|
+
privateJwk: JsonWebKey;
|
|
38
|
+
}
|
|
39
|
+
export interface TenantConfig<P extends DecisioningPlatform = DecisioningPlatform> {
|
|
40
|
+
/**
|
|
41
|
+
* Public URL the tenant accepts traffic on (e.g.,
|
|
42
|
+
* `https://acme-tv.example.com`). Used for host-route matching and —
|
|
43
|
+
* unless `jwksUrl` overrides — as the JWKS fetch base (the default
|
|
44
|
+
* validator computes `{host}/.well-known/brand.json` from this URL).
|
|
45
|
+
*
|
|
46
|
+
* For deployments that accept traffic on multiple URLs simultaneously
|
|
47
|
+
* (DNS cutover, vanity domains, internal + public hostname), use
|
|
48
|
+
* {@link agentUrls} instead — `agentUrl` is the single-URL convenience
|
|
49
|
+
* form. When both are set, `agentUrls` wins and `agentUrl` is ignored.
|
|
50
|
+
*/
|
|
51
|
+
agentUrl?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Multiple public URLs this tenant accepts traffic on. Use for cutover
|
|
54
|
+
* windows where `old.example.com/mcp` and `new.example.com/mcp` must
|
|
55
|
+
* both resolve to the same tenant for a window before DNS or buyer
|
|
56
|
+
* caches catch up. The first URL is the **canonical** one — JWKS
|
|
57
|
+
* validation uses it (and any `jwksUrl` override applies to all URLs).
|
|
58
|
+
* Additional URLs are aliases; they share the same brand and signing
|
|
59
|
+
* key.
|
|
60
|
+
*
|
|
61
|
+
* Adopters with two truly distinct brands serving from one platform
|
|
62
|
+
* should register separate tenants — each brand has its own JWKS and
|
|
63
|
+
* signing identity. `agentUrls` is for the single-brand-multiple-URLs
|
|
64
|
+
* case.
|
|
65
|
+
*
|
|
66
|
+
* MUST contain at least one URL when set. Exactly one of `agentUrl` or
|
|
67
|
+
* `agentUrls` must be provided; supplying both is a register() error.
|
|
68
|
+
*/
|
|
69
|
+
agentUrls?: string[];
|
|
70
|
+
/**
|
|
71
|
+
* Override the JWKS fetch URL for this tenant. Use this when the
|
|
72
|
+
* tenant's brand.json doesn't sit at the host root — i.e., a single
|
|
73
|
+
* host serves multiple agents under path prefixes
|
|
74
|
+
* (`https://shared.example.com/api/agent-a`,
|
|
75
|
+
* `https://shared.example.com/api/agent-b`) and each prefix has its
|
|
76
|
+
* own brand identity. Without this override, the default validator
|
|
77
|
+
* resolves `/.well-known/brand.json` against the host root, which
|
|
78
|
+
* collapses both agents onto the same brand.
|
|
79
|
+
*
|
|
80
|
+
* Spec convention is host-root, so the override is only needed for
|
|
81
|
+
* sub-routed multi-tenant deployments. Custom validators that take a
|
|
82
|
+
* different shape entirely (e.g., reading from a vault) read this
|
|
83
|
+
* field via the `jwksUrl` argument on `JwksValidator.validate`.
|
|
84
|
+
*/
|
|
85
|
+
jwksUrl?: string;
|
|
86
|
+
/** Signing keypair for RFC 9421 response signing. */
|
|
87
|
+
signingKey: TenantSigningKey;
|
|
88
|
+
/** The DecisioningPlatform impl for this tenant. */
|
|
89
|
+
platform: P & RequiredPlatformsFor<P['capabilities']['specialisms'][number]> & RequiredCapabilitiesFor<P['capabilities']['specialisms'][number]>;
|
|
90
|
+
/** Display label for admin / logs. Optional. */
|
|
91
|
+
label?: string;
|
|
92
|
+
/** Per-tenant `createAdcpServerFromPlatform` options override. */
|
|
93
|
+
serverOptions?: Partial<CreateAdcpServerFromPlatformOptions>;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Tenant health lifecycle:
|
|
97
|
+
* - `'pending'` — first JWKS validation hasn't succeeded yet. Brand-new
|
|
98
|
+
* tenants land here. `resolveByHost` REFUSES TRAFFIC for `pending`
|
|
99
|
+
* tenants — host transport should respond 503 + Retry-After. This
|
|
100
|
+
* closes the register-then-serve race window where a tenant
|
|
101
|
+
* registered with a wrong signing key would have served signed
|
|
102
|
+
* responses no buyer can verify until the first refresh detected
|
|
103
|
+
* the mismatch (60+ seconds).
|
|
104
|
+
* - `'healthy'` — JWKS validation has succeeded at least once.
|
|
105
|
+
* Periodic rechecks confirm.
|
|
106
|
+
* - `'unverified'` — was previously `healthy`; latest recheck failed
|
|
107
|
+
* transiently (network error, 5xx, etc.). `resolveByHost` still
|
|
108
|
+
* returns the tenant — graceful degradation for known-good tenants
|
|
109
|
+
* when brand.json is briefly unreachable. Distinct from `'pending'`
|
|
110
|
+
* where we've never validated.
|
|
111
|
+
* - `'disabled'` — permanent validation failure (key not in published
|
|
112
|
+
* JWKS, brand.json malformed, etc.). `resolveByHost` returns null;
|
|
113
|
+
* operator must fix and call `recheck()` to revive.
|
|
114
|
+
*/
|
|
115
|
+
export type TenantHealth = 'pending' | 'healthy' | 'unverified' | 'disabled';
|
|
116
|
+
export interface TenantStatus {
|
|
117
|
+
tenantId: string;
|
|
118
|
+
/**
|
|
119
|
+
* Canonical URL — the first entry in the tenant's `agentUrls` (or the
|
|
120
|
+
* single `agentUrl` value). JWKS validates against this URL; ops
|
|
121
|
+
* dashboards page on this field for the primary identity.
|
|
122
|
+
*/
|
|
123
|
+
agentUrl: string;
|
|
124
|
+
/**
|
|
125
|
+
* Full URL list when the tenant was registered with `agentUrls[]`.
|
|
126
|
+
* Single-URL tenants get a one-element array. Ops dashboards iterate
|
|
127
|
+
* this field to show every URL serving the tenant; required so admins
|
|
128
|
+
* can detect stale aliases or accidental host overlap with another
|
|
129
|
+
* tenant (#1097 follow-up — collision check below errors at register
|
|
130
|
+
* time, but the operator still wants visibility into what's live).
|
|
131
|
+
*/
|
|
132
|
+
agentUrls: readonly string[];
|
|
133
|
+
health: TenantHealth;
|
|
134
|
+
/** Reason for unverified/disabled state. */
|
|
135
|
+
reason?: string;
|
|
136
|
+
/** ISO timestamp of the last health check. */
|
|
137
|
+
lastCheckedAt: string;
|
|
138
|
+
}
|
|
139
|
+
export interface JwksValidationResult {
|
|
140
|
+
ok: boolean;
|
|
141
|
+
/** Recovery classification when `ok === false`. */
|
|
142
|
+
recovery?: 'transient' | 'permanent';
|
|
143
|
+
reason?: string;
|
|
144
|
+
}
|
|
145
|
+
export interface JwksValidator {
|
|
146
|
+
/**
|
|
147
|
+
* Validate that the tenant's signing key appears in the published JWKS.
|
|
148
|
+
*
|
|
149
|
+
* - `agentUrl` is the tenant's public URL (used for host-relative URL
|
|
150
|
+
* computation by the default validator).
|
|
151
|
+
* - `jwksUrl` is the explicit JWKS fetch URL when the tenant's
|
|
152
|
+
* `TenantConfig.jwksUrl` was set; absent for the spec-default
|
|
153
|
+
* host-root resolution.
|
|
154
|
+
* - `signingKey` is what to look for in the published JWKS.
|
|
155
|
+
*/
|
|
156
|
+
validate(opts: {
|
|
157
|
+
agentUrl: string;
|
|
158
|
+
jwksUrl?: string;
|
|
159
|
+
signingKey: TenantSigningKey;
|
|
160
|
+
}): Promise<JwksValidationResult>;
|
|
161
|
+
}
|
|
162
|
+
export interface TenantRegistryOptions {
|
|
163
|
+
/**
|
|
164
|
+
* JWKS validator. Defaults to a fetch-based validator that hits
|
|
165
|
+
* `{agentUrl}/.well-known/brand.json`. Tests can pass a fake.
|
|
166
|
+
*/
|
|
167
|
+
jwksValidator?: JwksValidator;
|
|
168
|
+
/**
|
|
169
|
+
* Per-tenant `createAdcpServerFromPlatform` options applied to every
|
|
170
|
+
* tenant unless overridden by `TenantConfig.serverOptions`.
|
|
171
|
+
*/
|
|
172
|
+
defaultServerOptions: CreateAdcpServerFromPlatformOptions;
|
|
173
|
+
/**
|
|
174
|
+
* Auto-validate tenants when they're registered. Defaults to `true`.
|
|
175
|
+
*
|
|
176
|
+
* Disable ONLY for tests that drive validation manually via `recheck` —
|
|
177
|
+
* with this off, every `register()` leaves the tenant in `'pending'`
|
|
178
|
+
* health and `resolveByRequest` silently refuses traffic until the
|
|
179
|
+
* caller recheck()s each tenant. Production deployments should leave
|
|
180
|
+
* this at the default; the framework emits a one-shot console.warn at
|
|
181
|
+
* registry construction when `autoValidate: false` is set, to surface
|
|
182
|
+
* the "all traffic blocked" consequence.
|
|
183
|
+
*/
|
|
184
|
+
autoValidate?: boolean;
|
|
185
|
+
}
|
|
186
|
+
export interface TenantRegistry {
|
|
187
|
+
/**
|
|
188
|
+
* Register a tenant. Tenant lands in `'pending'` health initially —
|
|
189
|
+
* `resolveByHost` refuses traffic until the first JWKS validation
|
|
190
|
+
* succeeds. Pass `{ awaitFirstValidation: true }` to block on the
|
|
191
|
+
* synchronous validation outcome (returns the resulting status; throws
|
|
192
|
+
* if registration is incompatible). Without the flag, register fires
|
|
193
|
+
* validation in the background and returns immediately; the caller
|
|
194
|
+
* polls `getStatus(tenantId).health === 'healthy'` if needed.
|
|
195
|
+
*
|
|
196
|
+
* **Admin-API security.** This method is the privileged surface — any
|
|
197
|
+
* caller invoking `register` can introduce a tenant that will sign
|
|
198
|
+
* outbound webhooks. Hosts wiring an HTTP/RPC endpoint in front of
|
|
199
|
+
* `register` MUST gate it with operator-level auth (mTLS, signed
|
|
200
|
+
* admin tokens, network ACL). The framework doesn't ship admin-HTTP
|
|
201
|
+
* scaffolding because the right auth shape varies by deployment;
|
|
202
|
+
* adopters who want a vetted shape can layer Express middleware
|
|
203
|
+
* around their `registry.register(...)` route handler.
|
|
204
|
+
*/
|
|
205
|
+
register<P extends DecisioningPlatform>(tenantId: string, config: TenantConfig<P>, opts?: {
|
|
206
|
+
awaitFirstValidation?: boolean;
|
|
207
|
+
}): Promise<TenantStatus> | void;
|
|
208
|
+
unregister(tenantId: string): void;
|
|
209
|
+
/**
|
|
210
|
+
* Resolve a tenant by host alone (the lowercased authority of the
|
|
211
|
+
* request). Convenience wrapper around `resolveByRequest(host, '/')` —
|
|
212
|
+
* works for the canonical subdomain-routing pattern (e.g.,
|
|
213
|
+
* `sales.training.example.com`) where each tenant has its own host.
|
|
214
|
+
*
|
|
215
|
+
* For path-based routing (`training.example.com/sales`,
|
|
216
|
+
* `training.example.com/creative` on a single host), use
|
|
217
|
+
* `resolveByRequest(host, pathname)` instead.
|
|
218
|
+
*
|
|
219
|
+
* Returns null if no tenant matches, the tenant is `pending` (first
|
|
220
|
+
* validation hasn't succeeded), or the tenant is `disabled`.
|
|
221
|
+
* `unverified` tenants resolve normally — graceful degradation for
|
|
222
|
+
* known-good tenants whose latest recheck failed transiently.
|
|
223
|
+
*/
|
|
224
|
+
resolveByHost(host: string): {
|
|
225
|
+
tenantId: string;
|
|
226
|
+
config: TenantConfig;
|
|
227
|
+
server: DecisioningAdcpServer;
|
|
228
|
+
} | null;
|
|
229
|
+
/**
|
|
230
|
+
* Resolve a tenant by host AND request path. The framework matches
|
|
231
|
+
* tenants whose `agentUrl` host equals the request host AND whose
|
|
232
|
+
* `agentUrl` path is a prefix of the request `pathname`. When multiple
|
|
233
|
+
* tenants share a host, the LONGEST matching path prefix wins (so
|
|
234
|
+
* `/sales-broadcast` is preferred over `/sales` for a request to
|
|
235
|
+
* `/sales-broadcast/mcp`).
|
|
236
|
+
*
|
|
237
|
+
* Use this for path-routed multi-tenant deployments where adopters
|
|
238
|
+
* don't want per-tenant subdomain DNS / TLS overhead. Each tenant's
|
|
239
|
+
* `agentUrl` carries the path: `https://training.example.com/sales`.
|
|
240
|
+
* Subdomain-routed tenants (`https://sales.training.example.com`)
|
|
241
|
+
* keep working — their path prefix is `/`, which matches any pathname.
|
|
242
|
+
*
|
|
243
|
+
* Returns null on no match, `pending`, or `disabled`. `unverified`
|
|
244
|
+
* tenants resolve normally (graceful degradation).
|
|
245
|
+
*/
|
|
246
|
+
resolveByRequest(host: string, pathname: string): {
|
|
247
|
+
tenantId: string;
|
|
248
|
+
config: TenantConfig;
|
|
249
|
+
server: DecisioningAdcpServer;
|
|
250
|
+
} | null;
|
|
251
|
+
/**
|
|
252
|
+
* Direct tenant lookup by `tenantId`. Use this when your route layer
|
|
253
|
+
* has already resolved the tenant from session / path / header and
|
|
254
|
+
* needs the registry's `{ config, server }` entry without re-running
|
|
255
|
+
* URL parsing. Same `pending` / `disabled` health gate as the
|
|
256
|
+
* `resolveByXxx` helpers — returns `null` when the tenant isn't
|
|
257
|
+
* accepting traffic so callers don't have to re-check status.
|
|
258
|
+
*
|
|
259
|
+
* Adopters who decouple tenant lookup from URL routing (e.g., bind
|
|
260
|
+
* tenantId at their own Express middleware before calling into the
|
|
261
|
+
* registry) should prefer this over `resolveByRequest(host, '/<id>/mcp')`
|
|
262
|
+
* tricks.
|
|
263
|
+
*/
|
|
264
|
+
get(tenantId: string): {
|
|
265
|
+
tenantId: string;
|
|
266
|
+
config: TenantConfig;
|
|
267
|
+
server: DecisioningAdcpServer;
|
|
268
|
+
} | null;
|
|
269
|
+
getStatus(tenantId: string): TenantStatus | null;
|
|
270
|
+
list(): readonly TenantStatus[];
|
|
271
|
+
/**
|
|
272
|
+
* Trigger a JWKS recheck for the tenant. Admin UI calls this after
|
|
273
|
+
* fixing a brand.json mismatch.
|
|
274
|
+
*/
|
|
275
|
+
recheck(tenantId: string): Promise<TenantStatus>;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Default JWKS validator. Fetches `{agentUrl}/.well-known/brand.json` and
|
|
279
|
+
* checks that `signingKey.publicJwk` appears in the JWKS keys array.
|
|
280
|
+
*
|
|
281
|
+
* Uses the global `fetch`. Network errors classify as `transient`;
|
|
282
|
+
* 4xx / parse-error / key-not-in-JWKS classify as `permanent`.
|
|
283
|
+
*/
|
|
284
|
+
export declare function createDefaultJwksValidator(opts?: {
|
|
285
|
+
fetchImpl?: typeof fetch;
|
|
286
|
+
timeoutMs?: number;
|
|
287
|
+
}): JwksValidator;
|
|
288
|
+
export declare function createTenantRegistry(opts: TenantRegistryOptions): TenantRegistry;
|
|
289
|
+
//# sourceMappingURL=tenant-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-registry.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/tenant-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrG,OAAO,KAAK,EAAE,qBAAqB,EAAE,mCAAmC,EAAE,MAAM,yBAAyB,CAAC;AAO1G,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,EAAE,UAAU,CAAC;IACtB,8DAA8D;IAC9D,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB;IAC/E;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,UAAU,EAAE,gBAAgB,CAAC;IAC7B,oDAAoD;IACpD,QAAQ,EAAE,CAAC,GACT,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAC9D,uBAAuB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC,mCAAmC,CAAC,CAAC;CAC9D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,mDAAmD;IACnD,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACrH;AAED,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;OAGG;IACH,oBAAoB,EAAE,mCAAmC,CAAC;IAC1D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,CAAC,SAAS,mBAAmB,EACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,IAAI,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,GACxC,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,qBAAqB,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9G;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,qBAAqB,CAAA;KAAE,GAAG,IAAI,CAAC;IACpF;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,qBAAqB,CAAA;KAAE,GAAG,IAAI,CAAC;IACxG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACjD,IAAI,IAAI,SAAS,YAAY,EAAE,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAClD;AAMD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAsEjH;AAsID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,cAAc,CAyRhF"}
|