@adcp/sdk 6.9.0 → 6.11.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/bin/adcp.js +285 -5
- package/compliance/cache/3.0.6.previous/domains/brand/index.yaml +163 -0
- package/compliance/cache/3.0.6.previous/domains/creative/index.yaml +412 -0
- package/compliance/cache/3.0.6.previous/domains/governance/index.yaml +683 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/index.yaml +769 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/create_media_buy_async.yaml +232 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/delivery_reporting.yaml +205 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_approved.yaml +211 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_conditions.yaml +196 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied.yaml +192 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/invalid_transitions.yaml +284 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/proposal_finalize.yaml +243 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.0.6.previous/domains/signals/index.yaml +266 -0
- package/compliance/cache/3.0.6.previous/domains/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.6.previous/index.json +324 -0
- package/compliance/cache/3.0.6.previous/protocols/brand/index.yaml +163 -0
- package/compliance/cache/3.0.6.previous/protocols/creative/index.yaml +412 -0
- package/compliance/cache/3.0.6.previous/protocols/governance/index.yaml +683 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/index.yaml +769 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/create_media_buy_async.yaml +232 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/delivery_reporting.yaml +205 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_approved.yaml +211 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_conditions.yaml +196 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied.yaml +192 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/invalid_transitions.yaml +284 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/proposal_finalize.yaml +243 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.0.6.previous/protocols/signals/index.yaml +266 -0
- package/compliance/cache/3.0.6.previous/protocols/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.6.previous/specialisms/audience-sync/index.yaml +280 -0
- package/compliance/cache/3.0.6.previous/specialisms/brand-rights/index.yaml +350 -0
- package/compliance/cache/3.0.6.previous/specialisms/brand-rights/scenarios/governance_denied.yaml +204 -0
- package/compliance/cache/3.0.6.previous/specialisms/collection-lists/index.yaml +359 -0
- package/compliance/cache/3.0.6.previous/specialisms/content-standards/index.yaml +572 -0
- package/compliance/cache/3.0.6.previous/specialisms/creative-ad-server/index.yaml +383 -0
- package/compliance/cache/3.0.6.previous/specialisms/creative-generative/generative-seller.yaml +758 -0
- package/compliance/cache/3.0.6.previous/specialisms/creative-generative/index.yaml +746 -0
- package/compliance/cache/3.0.6.previous/specialisms/creative-template/index.yaml +413 -0
- package/compliance/cache/3.0.6.previous/specialisms/governance-aware-seller/index.yaml +136 -0
- package/compliance/cache/3.0.6.previous/specialisms/governance-delivery-monitor/index.yaml +441 -0
- package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/denied.yaml +221 -0
- package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/index.yaml +330 -0
- package/compliance/cache/3.0.6.previous/specialisms/property-lists/index.yaml +482 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-broadcast-tv/index.yaml +689 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-catalog-driven/index.yaml +779 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-guaranteed/index.yaml +504 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-non-guaranteed/index.yaml +428 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-proposal-mode/index.yaml +520 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-social/index.yaml +584 -0
- package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/index.yaml +415 -0
- package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/scenarios/governance_denied.yaml +207 -0
- package/compliance/cache/3.0.6.previous/specialisms/signal-owned/index.yaml +316 -0
- package/compliance/cache/3.0.6.previous/test-kits/acme-outdoor.yaml +210 -0
- package/compliance/cache/3.0.6.previous/test-kits/bistro-oranje.yaml +126 -0
- package/compliance/cache/3.0.6.previous/test-kits/nova-motors.yaml +262 -0
- package/compliance/cache/3.0.6.previous/test-kits/osei-natural.yaml +126 -0
- package/compliance/cache/3.0.6.previous/test-kits/signed-requests-runner.yaml +155 -0
- package/compliance/cache/3.0.6.previous/test-kits/substitution-observer-runner.yaml +690 -0
- package/compliance/cache/3.0.6.previous/test-kits/summit-foods.yaml +125 -0
- package/compliance/cache/3.0.6.previous/test-kits/webhook-receiver-runner.yaml +265 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/001-minimal-plan.json +43 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/002-full-plan.json +217 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/README.md +219 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/canonicalization.json +241 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/keys.json +60 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/001-basic-post.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/003-es256-post.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/README.md +211 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/keys.json +61 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
- package/compliance/cache/3.0.6.previous/universal/capability-discovery.yaml +125 -0
- package/compliance/cache/3.0.6.previous/universal/collection-lists-pagination-integrity.yaml +306 -0
- package/compliance/cache/3.0.6.previous/universal/content-standards-pagination-integrity.yaml +326 -0
- package/compliance/cache/3.0.6.previous/universal/deterministic-testing.yaml +1343 -0
- package/compliance/cache/3.0.6.previous/universal/error-compliance.yaml +474 -0
- package/compliance/cache/3.0.6.previous/universal/fictional-entities.yaml +307 -0
- package/compliance/cache/3.0.6.previous/universal/get-media-buys-pagination-integrity.yaml +160 -0
- package/compliance/cache/3.0.6.previous/universal/get-signals-pagination-integrity.yaml +211 -0
- package/compliance/cache/3.0.6.previous/universal/idempotency.yaml +593 -0
- package/compliance/cache/3.0.6.previous/universal/pagination-integrity-creative-formats.yaml +258 -0
- package/compliance/cache/3.0.6.previous/universal/pagination-integrity-list-accounts.yaml +262 -0
- package/compliance/cache/3.0.6.previous/universal/pagination-integrity.yaml +263 -0
- package/compliance/cache/3.0.6.previous/universal/property-lists-pagination-integrity.yaml +307 -0
- package/compliance/cache/3.0.6.previous/universal/runner-output-contract.yaml +358 -0
- package/compliance/cache/3.0.6.previous/universal/schema-validation.yaml +526 -0
- package/compliance/cache/3.0.6.previous/universal/security.yaml +431 -0
- package/compliance/cache/3.0.6.previous/universal/signed-requests.yaml +205 -0
- package/compliance/cache/3.0.6.previous/universal/storyboard-schema.yaml +1176 -0
- package/compliance/cache/3.0.6.previous/universal/v3-envelope-integrity.yaml +106 -0
- package/compliance/cache/3.0.6.previous/universal/webhook-emission.yaml +337 -0
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.d.ts +33 -0
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +127 -1
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/credential-policy.d.ts +221 -0
- package/dist/lib/server/credential-policy.d.ts.map +1 -0
- package/dist/lib/server/credential-policy.js +260 -0
- package/dist/lib/server/credential-policy.js.map +1 -0
- package/dist/lib/server/decisioning/async-outcome.d.ts +17 -0
- package/dist/lib/server/decisioning/async-outcome.d.ts.map +1 -1
- package/dist/lib/server/decisioning/async-outcome.js +23 -18
- package/dist/lib/server/decisioning/async-outcome.js.map +1 -1
- package/dist/lib/server/decisioning/context.d.ts +8 -2
- package/dist/lib/server/decisioning/context.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.d.ts +1 -0
- package/dist/lib/server/decisioning/index.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +6 -4
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.js +5 -2
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/task-registry.d.ts +5 -0
- package/dist/lib/server/decisioning/runtime/task-registry.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/task-registry.js +4 -1
- package/dist/lib/server/decisioning/runtime/task-registry.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.js +10 -2
- package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
- package/dist/lib/server/dynamic-registry.d.ts +219 -0
- package/dist/lib/server/dynamic-registry.d.ts.map +1 -0
- package/dist/lib/server/dynamic-registry.js +245 -0
- package/dist/lib/server/dynamic-registry.js.map +1 -0
- package/dist/lib/server/index.d.ts +8 -0
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +15 -4
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/operational-platform.d.ts +239 -0
- package/dist/lib/server/operational-platform.d.ts.map +1 -0
- package/dist/lib/server/operational-platform.js +94 -0
- package/dist/lib/server/operational-platform.js.map +1 -0
- package/dist/lib/server/test-controller.d.ts +2 -0
- package/dist/lib/server/test-controller.d.ts.map +1 -1
- package/dist/lib/server/test-controller.js +6 -11
- package/dist/lib/server/test-controller.js.map +1 -1
- package/dist/lib/server/wire-safe.d.ts +211 -0
- package/dist/lib/server/wire-safe.d.ts.map +1 -0
- package/dist/lib/server/wire-safe.js +231 -0
- package/dist/lib/server/wire-safe.js.map +1 -0
- package/dist/lib/server/wire-spec-fields.generated.d.ts +168 -0
- package/dist/lib/server/wire-spec-fields.generated.d.ts.map +1 -0
- package/dist/lib/server/wire-spec-fields.generated.js +172 -0
- package/dist/lib/server/wire-spec-fields.generated.js.map +1 -0
- package/dist/lib/testing/compliance/index.d.ts +2 -0
- package/dist/lib/testing/compliance/index.d.ts.map +1 -1
- package/dist/lib/testing/compliance/index.js +6 -1
- package/dist/lib/testing/compliance/index.js.map +1 -1
- package/dist/lib/testing/compliance/summary.d.ts +77 -0
- package/dist/lib/testing/compliance/summary.d.ts.map +1 -0
- package/dist/lib/testing/compliance/summary.js +176 -0
- package/dist/lib/testing/compliance/summary.js.map +1 -0
- package/dist/lib/testing/comply-controller.d.ts +2 -0
- package/dist/lib/testing/comply-controller.d.ts.map +1 -1
- package/dist/lib/testing/comply-controller.js.map +1 -1
- package/dist/lib/testing/storyboard/compliance.d.ts +26 -0
- package/dist/lib/testing/storyboard/compliance.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/compliance.js +51 -0
- package/dist/lib/testing/storyboard/compliance.js.map +1 -1
- package/dist/lib/testing/storyboard/index.d.ts +2 -2
- package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/index.js +4 -2
- package/dist/lib/testing/storyboard/index.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +58 -5
- package/dist/lib/testing/storyboard/runner.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/package.json +2 -2
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
id: signals_baseline
|
|
2
|
+
version: "1.1.0"
|
|
3
|
+
title: "Signals baseline"
|
|
4
|
+
protocol: signals
|
|
5
|
+
category: signals_baseline
|
|
6
|
+
summary: "Baseline domain storyboard — every signals agent must discover signals and return an activation, regardless of whether they are owned or marketplace."
|
|
7
|
+
track: signals
|
|
8
|
+
required_tools:
|
|
9
|
+
- get_signals
|
|
10
|
+
- activate_signal
|
|
11
|
+
|
|
12
|
+
narrative: |
|
|
13
|
+
Signals domain agents expose audience and contextual signals to buyers and
|
|
14
|
+
activate them on downstream destinations (DSPs, sales agents, clean rooms).
|
|
15
|
+
Every signals agent — whether a first-party owned platform or a third-party
|
|
16
|
+
marketplace — must support the same three-call flow at the protocol level:
|
|
17
|
+
|
|
18
|
+
1. Declare the signals protocol in get_adcp_capabilities.
|
|
19
|
+
2. Respond to get_signals with a schema-valid signals array.
|
|
20
|
+
3. Respond to activate_signal with a schema-valid deployments array.
|
|
21
|
+
|
|
22
|
+
This baseline tests those three calls and nothing beyond them. Specialism
|
|
23
|
+
storyboards (signal-owned, signal-marketplace) exercise the richer flows
|
|
24
|
+
specific to each model — pricing option selection, source/provenance
|
|
25
|
+
discriminators, agent-destination vs. platform-destination activation,
|
|
26
|
+
and deactivation for compliance.
|
|
27
|
+
|
|
28
|
+
Agents declaring supported_protocols: ["signals"] MUST pass this baseline
|
|
29
|
+
even before claiming a specialism. Declaring signals without exposing
|
|
30
|
+
get_signals or activate_signal fails the baseline with missing_tool.
|
|
31
|
+
|
|
32
|
+
agent:
|
|
33
|
+
interaction_model: owned_signals
|
|
34
|
+
capabilities: []
|
|
35
|
+
examples:
|
|
36
|
+
- "Any signals agent (owned or marketplace)"
|
|
37
|
+
- "Retailer CDPs"
|
|
38
|
+
- "Publisher contextual platforms"
|
|
39
|
+
- "Data provider marketplaces"
|
|
40
|
+
|
|
41
|
+
caller:
|
|
42
|
+
role: buyer_agent
|
|
43
|
+
example: "Scope3 (DSP)"
|
|
44
|
+
|
|
45
|
+
prerequisites:
|
|
46
|
+
description: |
|
|
47
|
+
The buyer has a campaign brief with broad targeting objectives. The test
|
|
48
|
+
kit provides a sample brand (Nova Motors) with a signal description that
|
|
49
|
+
any signals agent should be able to interpret.
|
|
50
|
+
test_kit: "test-kits/nova-motors.yaml"
|
|
51
|
+
|
|
52
|
+
phases:
|
|
53
|
+
- id: capability_discovery
|
|
54
|
+
title: "Capability discovery"
|
|
55
|
+
narrative: |
|
|
56
|
+
The buyer calls get_adcp_capabilities to confirm the agent serves signals
|
|
57
|
+
before issuing discovery or activation calls.
|
|
58
|
+
|
|
59
|
+
steps:
|
|
60
|
+
- id: get_capabilities
|
|
61
|
+
title: "Check agent capabilities"
|
|
62
|
+
narrative: |
|
|
63
|
+
Verify that the agent declares `signals` in supported_protocols.
|
|
64
|
+
Without this claim the buyer will not send get_signals or
|
|
65
|
+
activate_signal.
|
|
66
|
+
task: get_adcp_capabilities
|
|
67
|
+
schema_ref: "protocol/get-adcp-capabilities-request.json"
|
|
68
|
+
response_schema_ref: "protocol/get-adcp-capabilities-response.json"
|
|
69
|
+
doc_ref: "/protocol/get_adcp_capabilities"
|
|
70
|
+
comply_scenario: capability_discovery
|
|
71
|
+
stateful: false
|
|
72
|
+
expected: |
|
|
73
|
+
Return capabilities declaring `signals` in supported_protocols.
|
|
74
|
+
|
|
75
|
+
sample_request:
|
|
76
|
+
context:
|
|
77
|
+
correlation_id: "signals_baseline--get_capabilities"
|
|
78
|
+
validations:
|
|
79
|
+
- check: response_schema
|
|
80
|
+
description: "Response matches get-adcp-capabilities-response.json schema"
|
|
81
|
+
- check: field_present
|
|
82
|
+
path: "supported_protocols"
|
|
83
|
+
description: "Agent declares supported protocols"
|
|
84
|
+
|
|
85
|
+
- check: field_present
|
|
86
|
+
path: "context"
|
|
87
|
+
description: "Response echoes back the context object"
|
|
88
|
+
- check: field_value
|
|
89
|
+
path: "context.correlation_id"
|
|
90
|
+
value: "signals_baseline--get_capabilities"
|
|
91
|
+
description: "Context correlation_id returned unchanged"
|
|
92
|
+
|
|
93
|
+
- id: discovery
|
|
94
|
+
title: "Signal discovery"
|
|
95
|
+
narrative: |
|
|
96
|
+
The buyer calls get_signals with a natural language signal_spec. Every
|
|
97
|
+
signals agent — owned or marketplace — must return a schema-valid
|
|
98
|
+
response. The buyer uses the returned signal_agent_segment_id values
|
|
99
|
+
to drive activation in the next phase.
|
|
100
|
+
|
|
101
|
+
steps:
|
|
102
|
+
- id: search_signals
|
|
103
|
+
title: "Discover signals matching a spec"
|
|
104
|
+
narrative: |
|
|
105
|
+
The buyer describes a target audience in natural language. The agent
|
|
106
|
+
returns a list of signals from its catalog that match. Each signal
|
|
107
|
+
must include the fields the buyer needs to proceed to activation.
|
|
108
|
+
task: get_signals
|
|
109
|
+
schema_ref: "signals/get-signals-request.json"
|
|
110
|
+
response_schema_ref: "signals/get-signals-response.json"
|
|
111
|
+
doc_ref: "/signals/tasks/get_signals"
|
|
112
|
+
comply_scenario: signals_flow
|
|
113
|
+
stateful: false
|
|
114
|
+
expected: |
|
|
115
|
+
Return a signals array with at least one entry. Each signal must
|
|
116
|
+
carry a signal_agent_segment_id that the buyer can pass to
|
|
117
|
+
activate_signal, along with pricing_options and a signal_id that
|
|
118
|
+
includes a source discriminator.
|
|
119
|
+
|
|
120
|
+
sample_request:
|
|
121
|
+
account:
|
|
122
|
+
brand:
|
|
123
|
+
domain: "novamotors.example"
|
|
124
|
+
operator: "pinnacle-agency.example"
|
|
125
|
+
signal_spec: "Adults interested in electric vehicles"
|
|
126
|
+
context:
|
|
127
|
+
correlation_id: "signals_baseline--search_signals"
|
|
128
|
+
context_outputs:
|
|
129
|
+
- name: signal_agent_segment_id
|
|
130
|
+
path: "signals[0].signal_agent_segment_id"
|
|
131
|
+
- name: pricing_option_id
|
|
132
|
+
path: "signals[0].pricing_options[0].pricing_option_id"
|
|
133
|
+
validations:
|
|
134
|
+
- check: response_schema
|
|
135
|
+
description: "Response matches get-signals-response.json schema"
|
|
136
|
+
- check: field_present
|
|
137
|
+
path: "signals[0].signal_agent_segment_id"
|
|
138
|
+
description: "First signal carries a signal_agent_segment_id"
|
|
139
|
+
- check: field_present
|
|
140
|
+
path: "signals[0].signal_id.source"
|
|
141
|
+
description: "Signal ID carries a source discriminator (agent_native or data_provider)"
|
|
142
|
+
- check: field_present
|
|
143
|
+
path: "signals[0].pricing_options"
|
|
144
|
+
description: "Signal carries pricing options the buyer can select"
|
|
145
|
+
|
|
146
|
+
- check: field_present
|
|
147
|
+
path: "context"
|
|
148
|
+
description: "Response echoes back the context object"
|
|
149
|
+
- check: field_value
|
|
150
|
+
path: "context.correlation_id"
|
|
151
|
+
value: "signals_baseline--search_signals"
|
|
152
|
+
description: "Context correlation_id returned unchanged"
|
|
153
|
+
|
|
154
|
+
- id: activation
|
|
155
|
+
title: "Signal activation"
|
|
156
|
+
narrative: |
|
|
157
|
+
The buyer activates one of the signals returned from discovery against
|
|
158
|
+
a destination. The protocol baseline tests only that the agent accepts
|
|
159
|
+
the call and returns a schema-valid deployments array — specialisms
|
|
160
|
+
exercise owned vs. marketplace activation patterns in depth.
|
|
161
|
+
|
|
162
|
+
steps:
|
|
163
|
+
- id: activate_on_agent
|
|
164
|
+
title: "Activate on a sales agent destination"
|
|
165
|
+
narrative: |
|
|
166
|
+
Using the signal_agent_segment_id and pricing_option_id captured
|
|
167
|
+
from the previous step, the buyer activates the signal on a sales
|
|
168
|
+
agent destination. Every signals agent MUST accept `type: agent`
|
|
169
|
+
per the signals specification — the SA records the activation
|
|
170
|
+
internally and applies targeting in subsequent media-buy calls.
|
|
171
|
+
task: activate_signal
|
|
172
|
+
schema_ref: "signals/activate-signal-request.json"
|
|
173
|
+
response_schema_ref: "signals/activate-signal-response.json"
|
|
174
|
+
doc_ref: "/signals/tasks/activate_signal"
|
|
175
|
+
comply_scenario: signals_flow
|
|
176
|
+
stateful: true
|
|
177
|
+
expected: |
|
|
178
|
+
Return a deployments array with at least one entry carrying a
|
|
179
|
+
`type` discriminator and, for live deployments, an
|
|
180
|
+
`activation_key`. Agents MAY return an async deployment with
|
|
181
|
+
`is_live: false` and `estimated_activation_duration_minutes`.
|
|
182
|
+
|
|
183
|
+
sample_request:
|
|
184
|
+
account:
|
|
185
|
+
brand:
|
|
186
|
+
domain: "novamotors.example"
|
|
187
|
+
operator: "pinnacle-agency.example"
|
|
188
|
+
signal_agent_segment_id: "$context.signal_agent_segment_id"
|
|
189
|
+
pricing_option_id: "$context.pricing_option_id"
|
|
190
|
+
destinations:
|
|
191
|
+
- type: "agent"
|
|
192
|
+
agent_url: "https://wonderstruck.salesagents.example"
|
|
193
|
+
idempotency_key: "$generate:uuid_v4#signals_baseline_activate_agent"
|
|
194
|
+
|
|
195
|
+
context:
|
|
196
|
+
correlation_id: "signals_baseline--activate_on_agent"
|
|
197
|
+
ext:
|
|
198
|
+
test_platform:
|
|
199
|
+
test_run: true
|
|
200
|
+
validations:
|
|
201
|
+
- check: response_schema
|
|
202
|
+
description: "Response matches activate-signal-response.json schema"
|
|
203
|
+
- check: field_present
|
|
204
|
+
path: "deployments[0].type"
|
|
205
|
+
description: "Deployment carries a type discriminator"
|
|
206
|
+
|
|
207
|
+
- check: field_present
|
|
208
|
+
path: "context"
|
|
209
|
+
description: "Response echoes back the context object"
|
|
210
|
+
- check: field_value
|
|
211
|
+
path: "context.correlation_id"
|
|
212
|
+
value: "signals_baseline--activate_on_agent"
|
|
213
|
+
description: "Context correlation_id returned unchanged"
|
|
214
|
+
|
|
215
|
+
- id: activate_on_platform
|
|
216
|
+
title: "Activate on a platform destination"
|
|
217
|
+
narrative: |
|
|
218
|
+
The buyer re-activates the same signal against a platform
|
|
219
|
+
destination (a DSP). Signal agents MUST accept `type: platform`
|
|
220
|
+
per the signals specification — the agent pushes the segment to
|
|
221
|
+
the platform and returns a deployment record.
|
|
222
|
+
task: activate_signal
|
|
223
|
+
schema_ref: "signals/activate-signal-request.json"
|
|
224
|
+
response_schema_ref: "signals/activate-signal-response.json"
|
|
225
|
+
doc_ref: "/signals/tasks/activate_signal"
|
|
226
|
+
comply_scenario: signals_flow
|
|
227
|
+
stateful: true
|
|
228
|
+
expected: |
|
|
229
|
+
Return a deployments array with at least one entry whose
|
|
230
|
+
`type: "platform"` and, for live deployments, an
|
|
231
|
+
`activation_key` with `type: "segment_id"`. Async deployments
|
|
232
|
+
MAY report `is_live: false` with
|
|
233
|
+
`estimated_activation_duration_minutes`.
|
|
234
|
+
|
|
235
|
+
sample_request:
|
|
236
|
+
account:
|
|
237
|
+
brand:
|
|
238
|
+
domain: "novamotors.example"
|
|
239
|
+
operator: "pinnacle-agency.example"
|
|
240
|
+
signal_agent_segment_id: "$context.signal_agent_segment_id"
|
|
241
|
+
pricing_option_id: "$context.pricing_option_id"
|
|
242
|
+
destinations:
|
|
243
|
+
- type: "platform"
|
|
244
|
+
platform: "the-trade-desk"
|
|
245
|
+
account: "agency-123-ttd"
|
|
246
|
+
idempotency_key: "$generate:uuid_v4#signals_baseline_activate_platform"
|
|
247
|
+
|
|
248
|
+
context:
|
|
249
|
+
correlation_id: "signals_baseline--activate_on_platform"
|
|
250
|
+
ext:
|
|
251
|
+
test_platform:
|
|
252
|
+
test_run: true
|
|
253
|
+
validations:
|
|
254
|
+
- check: response_schema
|
|
255
|
+
description: "Response matches activate-signal-response.json schema"
|
|
256
|
+
- check: field_present
|
|
257
|
+
path: "deployments[0].type"
|
|
258
|
+
description: "Deployment carries a type discriminator"
|
|
259
|
+
|
|
260
|
+
- check: field_present
|
|
261
|
+
path: "context"
|
|
262
|
+
description: "Response echoes back the context object"
|
|
263
|
+
- check: field_value
|
|
264
|
+
path: "context.correlation_id"
|
|
265
|
+
value: "signals_baseline--activate_on_platform"
|
|
266
|
+
description: "Context correlation_id returned unchanged"
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
id: si_baseline
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
title: "Sponsored intelligence baseline"
|
|
4
|
+
protocol: sponsored-intelligence
|
|
5
|
+
category: si_baseline
|
|
6
|
+
summary: "Baseline domain storyboard — every SI agent must discover offerings, initiate a session, exchange messages, and terminate cleanly."
|
|
7
|
+
track: si
|
|
8
|
+
required_tools:
|
|
9
|
+
- si_initiate_session
|
|
10
|
+
|
|
11
|
+
narrative: |
|
|
12
|
+
You run an AI platform that supports sponsored intelligence — conversational ad experiences
|
|
13
|
+
embedded in AI-powered search, chat, or assistant products. A buyer agent connects to
|
|
14
|
+
discover what SI offerings are available, initiate a session, send messages within the
|
|
15
|
+
conversation, and cleanly terminate when done.
|
|
16
|
+
|
|
17
|
+
Sponsored intelligence is fundamentally different from display or video advertising. The
|
|
18
|
+
ad experience is conversational — the user asks a question, the AI responds, and sponsored
|
|
19
|
+
content is woven into the response in a way that is transparent and relevant.
|
|
20
|
+
|
|
21
|
+
This storyboard covers the SI session lifecycle from the buyer's perspective: discovering
|
|
22
|
+
what the platform offers, starting a conversation, exchanging messages, and ending the
|
|
23
|
+
session.
|
|
24
|
+
|
|
25
|
+
agent:
|
|
26
|
+
interaction_model: si_platform
|
|
27
|
+
capabilities:
|
|
28
|
+
- sponsored_intelligence
|
|
29
|
+
examples:
|
|
30
|
+
- "Perplexity"
|
|
31
|
+
- "ChatGPT Search"
|
|
32
|
+
- "Arc Browser"
|
|
33
|
+
- "AI assistants with ad support"
|
|
34
|
+
|
|
35
|
+
caller:
|
|
36
|
+
role: buyer_agent
|
|
37
|
+
example: "Nova Motors (advertiser)"
|
|
38
|
+
|
|
39
|
+
prerequisites:
|
|
40
|
+
description: |
|
|
41
|
+
The caller needs brand context and campaign parameters for SI. The test kit provides
|
|
42
|
+
a sample brand (Nova Motors) with signal definitions suitable for conversational
|
|
43
|
+
ad experiences.
|
|
44
|
+
test_kit: "test-kits/nova-motors.yaml"
|
|
45
|
+
|
|
46
|
+
phases:
|
|
47
|
+
- id: capability_discovery
|
|
48
|
+
title: "Capability discovery"
|
|
49
|
+
narrative: |
|
|
50
|
+
The buyer calls get_adcp_capabilities to confirm the agent supports sponsored intelligence before initiating sessions.
|
|
51
|
+
|
|
52
|
+
steps:
|
|
53
|
+
- id: get_capabilities
|
|
54
|
+
title: "Check agent capabilities"
|
|
55
|
+
narrative: |
|
|
56
|
+
Verify that the agent declares the expected protocol support before
|
|
57
|
+
proceeding with domain-specific operations.
|
|
58
|
+
task: get_adcp_capabilities
|
|
59
|
+
schema_ref: "protocol/get-adcp-capabilities-request.json"
|
|
60
|
+
response_schema_ref: "protocol/get-adcp-capabilities-response.json"
|
|
61
|
+
doc_ref: "/protocol/get_adcp_capabilities"
|
|
62
|
+
comply_scenario: capability_discovery
|
|
63
|
+
stateful: false
|
|
64
|
+
expected: |
|
|
65
|
+
Return capabilities declaring sponsored_intelligence in supported_protocols, confirming the agent supports conversational ad experiences.
|
|
66
|
+
sample_request:
|
|
67
|
+
context:
|
|
68
|
+
correlation_id: "si_session--get_capabilities"
|
|
69
|
+
validations:
|
|
70
|
+
- check: response_schema
|
|
71
|
+
description: "Response matches get-adcp-capabilities-response.json schema"
|
|
72
|
+
- check: field_present
|
|
73
|
+
path: "supported_protocols"
|
|
74
|
+
description: "Agent declares supported protocols"
|
|
75
|
+
|
|
76
|
+
- check: field_present
|
|
77
|
+
path: "context"
|
|
78
|
+
description: "Response echoes back the context object"
|
|
79
|
+
- check: field_value
|
|
80
|
+
path: "context.correlation_id"
|
|
81
|
+
value: "si_session--get_capabilities"
|
|
82
|
+
description: "Context correlation_id returned unchanged"
|
|
83
|
+
- id: offering_discovery
|
|
84
|
+
title: "Discover SI offerings"
|
|
85
|
+
narrative: |
|
|
86
|
+
Before initiating any session, the buyer discovers what sponsored intelligence
|
|
87
|
+
offerings the platform has available. This determines what kinds of conversational
|
|
88
|
+
experiences can be sponsored and at what pricing.
|
|
89
|
+
|
|
90
|
+
steps:
|
|
91
|
+
- id: si_get_offering
|
|
92
|
+
title: "Get available SI offerings"
|
|
93
|
+
narrative: |
|
|
94
|
+
The buyer calls si_get_offering to learn what conversational ad experiences
|
|
95
|
+
the platform supports. The response describes available offerings with pricing,
|
|
96
|
+
targeting options, and format specifications.
|
|
97
|
+
task: si_get_offering
|
|
98
|
+
schema_ref: "sponsored-intelligence/si-get-offering-request.json"
|
|
99
|
+
response_schema_ref: "sponsored-intelligence/si-get-offering-response.json"
|
|
100
|
+
doc_ref: "/sponsored-intelligence/tasks/si_get_offering"
|
|
101
|
+
comply_scenario: si_availability
|
|
102
|
+
stateful: false
|
|
103
|
+
expected: |
|
|
104
|
+
Return available SI offerings:
|
|
105
|
+
- Offering descriptions with pricing
|
|
106
|
+
- Supported conversation types
|
|
107
|
+
- Targeting and context options
|
|
108
|
+
- Format specifications for sponsored content
|
|
109
|
+
|
|
110
|
+
sample_request:
|
|
111
|
+
offering_id: "novamotors_conversational_v1"
|
|
112
|
+
context:
|
|
113
|
+
correlation_id: "si_session--si_get_offering"
|
|
114
|
+
|
|
115
|
+
context_outputs:
|
|
116
|
+
- name: offering_id
|
|
117
|
+
path: 'offering_id'
|
|
118
|
+
validations:
|
|
119
|
+
- check: response_schema
|
|
120
|
+
description: "Response matches si-get-offering-response.json schema"
|
|
121
|
+
|
|
122
|
+
- check: field_present
|
|
123
|
+
path: "context"
|
|
124
|
+
description: "Response echoes back the context object"
|
|
125
|
+
- check: field_value
|
|
126
|
+
path: "context.correlation_id"
|
|
127
|
+
value: "si_session--si_get_offering"
|
|
128
|
+
description: "Context correlation_id returned unchanged"
|
|
129
|
+
- id: session_lifecycle
|
|
130
|
+
title: "Session lifecycle"
|
|
131
|
+
narrative: |
|
|
132
|
+
The buyer initiates a session, exchanges messages within it, and terminates
|
|
133
|
+
cleanly. Each session represents a single conversational ad experience — the
|
|
134
|
+
buyer provides context and the platform weaves sponsored content into the
|
|
135
|
+
conversation.
|
|
136
|
+
|
|
137
|
+
steps:
|
|
138
|
+
- id: si_initiate_session
|
|
139
|
+
title: "Start a conversation session"
|
|
140
|
+
narrative: |
|
|
141
|
+
The buyer initiates a new SI session with campaign context. The platform
|
|
142
|
+
creates a session and returns a session ID that the buyer uses for subsequent
|
|
143
|
+
messages.
|
|
144
|
+
task: si_initiate_session
|
|
145
|
+
schema_ref: "sponsored-intelligence/si-initiate-session-request.json"
|
|
146
|
+
response_schema_ref: "sponsored-intelligence/si-initiate-session-response.json"
|
|
147
|
+
doc_ref: "/sponsored-intelligence/tasks/si_initiate_session"
|
|
148
|
+
comply_scenario: si_session_lifecycle
|
|
149
|
+
stateful: true
|
|
150
|
+
expected: |
|
|
151
|
+
Return a new session:
|
|
152
|
+
- session_id: platform-assigned session identifier
|
|
153
|
+
- status: active
|
|
154
|
+
- Initial context acknowledgment
|
|
155
|
+
- Available interaction modes
|
|
156
|
+
|
|
157
|
+
sample_request:
|
|
158
|
+
intent: "User is researching electric vehicles for long road trips and wants to talk to Nova Motors"
|
|
159
|
+
identity:
|
|
160
|
+
consent_granted: true
|
|
161
|
+
consent_timestamp: "2026-04-22T14:00:00Z"
|
|
162
|
+
user:
|
|
163
|
+
locale: "en-US"
|
|
164
|
+
|
|
165
|
+
idempotency_key: "$generate:uuid_v4#si_baseline_session_lifecycle_si_initiate_session"
|
|
166
|
+
context:
|
|
167
|
+
correlation_id: "si_session--si_initiate_session"
|
|
168
|
+
context_outputs:
|
|
169
|
+
- name: session_id
|
|
170
|
+
path: 'session_id'
|
|
171
|
+
validations:
|
|
172
|
+
- check: response_schema
|
|
173
|
+
description: "Response matches si-initiate-session-response.json schema"
|
|
174
|
+
|
|
175
|
+
- check: field_present
|
|
176
|
+
path: "context"
|
|
177
|
+
description: "Response echoes back the context object"
|
|
178
|
+
- check: field_value
|
|
179
|
+
path: "context.correlation_id"
|
|
180
|
+
value: "si_session--si_initiate_session"
|
|
181
|
+
description: "Context correlation_id returned unchanged"
|
|
182
|
+
- check: field_present
|
|
183
|
+
path: "session_id"
|
|
184
|
+
description: "Platform assigns session_id — must be echoed in si_send_message and si_terminate_session"
|
|
185
|
+
- id: si_send_message
|
|
186
|
+
title: "Exchange messages"
|
|
187
|
+
narrative: |
|
|
188
|
+
The buyer sends a message within the active session. The platform processes
|
|
189
|
+
the message and returns a response that may include sponsored content woven
|
|
190
|
+
into the conversational experience.
|
|
191
|
+
task: si_send_message
|
|
192
|
+
schema_ref: "sponsored-intelligence/si-send-message-request.json"
|
|
193
|
+
response_schema_ref: "sponsored-intelligence/si-send-message-response.json"
|
|
194
|
+
doc_ref: "/sponsored-intelligence/tasks/si_send_message"
|
|
195
|
+
comply_scenario: si_session_lifecycle
|
|
196
|
+
stateful: true
|
|
197
|
+
expected: |
|
|
198
|
+
Process the message and return a response:
|
|
199
|
+
- Message acknowledgment
|
|
200
|
+
- Response content (may include sponsored elements)
|
|
201
|
+
- Session state (active, waiting, etc.)
|
|
202
|
+
|
|
203
|
+
sample_request:
|
|
204
|
+
session_id: "$context.session_id"
|
|
205
|
+
message: "What are the best electric vehicles for long road trips?"
|
|
206
|
+
|
|
207
|
+
idempotency_key: "$generate:uuid_v4#si_baseline_session_lifecycle_si_send_message"
|
|
208
|
+
context:
|
|
209
|
+
correlation_id: "si_session--si_send_message"
|
|
210
|
+
validations:
|
|
211
|
+
- check: response_schema
|
|
212
|
+
description: "Response matches si-send-message-response.json schema"
|
|
213
|
+
|
|
214
|
+
- check: field_present
|
|
215
|
+
path: "context"
|
|
216
|
+
description: "Response echoes back the context object"
|
|
217
|
+
- check: field_value
|
|
218
|
+
path: "context.correlation_id"
|
|
219
|
+
value: "si_session--si_send_message"
|
|
220
|
+
description: "Context correlation_id returned unchanged"
|
|
221
|
+
- id: si_terminate_session
|
|
222
|
+
title: "End the session"
|
|
223
|
+
narrative: |
|
|
224
|
+
The buyer terminates the SI session. The platform records session metrics
|
|
225
|
+
and returns a summary of the conversation including any sponsored content
|
|
226
|
+
that was delivered.
|
|
227
|
+
task: si_terminate_session
|
|
228
|
+
schema_ref: "sponsored-intelligence/si-terminate-session-request.json"
|
|
229
|
+
response_schema_ref: "sponsored-intelligence/si-terminate-session-response.json"
|
|
230
|
+
doc_ref: "/sponsored-intelligence/tasks/si_terminate_session"
|
|
231
|
+
comply_scenario: si_handoff
|
|
232
|
+
stateful: true
|
|
233
|
+
expected: |
|
|
234
|
+
Terminate the session and return a summary:
|
|
235
|
+
- session_id: confirms which session was terminated
|
|
236
|
+
- status: terminated
|
|
237
|
+
- Session metrics (duration, messages exchanged)
|
|
238
|
+
- Sponsored content delivery summary
|
|
239
|
+
|
|
240
|
+
sample_request:
|
|
241
|
+
session_id: "$context.session_id"
|
|
242
|
+
reason: "handoff_complete"
|
|
243
|
+
|
|
244
|
+
context:
|
|
245
|
+
correlation_id: "si_session--si_terminate_session"
|
|
246
|
+
validations:
|
|
247
|
+
- check: response_schema
|
|
248
|
+
description: "Response matches si-terminate-session-response.json schema"
|
|
249
|
+
|
|
250
|
+
- check: field_present
|
|
251
|
+
path: "context"
|
|
252
|
+
description: "Response echoes back the context object"
|
|
253
|
+
- check: field_value
|
|
254
|
+
path: "context.correlation_id"
|
|
255
|
+
value: "si_session--si_terminate_session"
|
|
256
|
+
description: "Context correlation_id returned unchanged"
|