@adcp/sdk 14.0.0-rc.37 → 14.0.0-rc.39
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-storyboard-summary.js +286 -0
- package/bin/adcp.js +221 -10
- package/dist/lib/conformance/schemaLoader.d.mts +1 -1
- package/dist/lib/conformance/schemaLoader.d.ts +1 -1
- package/dist/lib/core/AgentClient.d.mts +6 -1
- package/dist/lib/core/AgentClient.d.ts +6 -1
- package/dist/lib/core/AgentClient.js +9 -0
- package/dist/lib/core/AgentClient.mjs +9 -0
- package/dist/lib/core/ConversationTypes.d.mts +29 -0
- package/dist/lib/core/ConversationTypes.d.ts +29 -0
- package/dist/lib/core/SingleAgentClient.d.mts +3 -1
- package/dist/lib/core/SingleAgentClient.d.ts +3 -1
- package/dist/lib/core/SingleAgentClient.js +9 -1
- package/dist/lib/core/SingleAgentClient.mjs +9 -1
- package/dist/lib/core/TaskExecutor.d.mts +13 -1
- package/dist/lib/core/TaskExecutor.d.ts +13 -1
- package/dist/lib/core/TaskExecutor.js +216 -18
- package/dist/lib/core/TaskExecutor.mjs +216 -19
- package/dist/lib/index.d.mts +5 -2
- package/dist/lib/index.d.ts +5 -2
- package/dist/lib/index.js +10 -1
- package/dist/lib/index.mjs +10 -1
- package/dist/lib/media-buy/action-assessment.d.mts +77 -0
- package/dist/lib/media-buy/action-assessment.d.ts +77 -0
- package/dist/lib/media-buy/action-assessment.js +300 -0
- package/dist/lib/media-buy/action-assessment.mjs +284 -0
- package/dist/lib/media-buy/action-constraints.d.mts +9 -0
- package/dist/lib/media-buy/action-constraints.d.ts +9 -0
- package/dist/lib/media-buy/action-constraints.js +170 -0
- package/dist/lib/media-buy/action-constraints.mjs +146 -0
- package/dist/lib/media-buy/action-contracts.d.mts +40 -0
- package/dist/lib/media-buy/action-contracts.d.ts +40 -0
- package/dist/lib/media-buy/action-contracts.js +304 -0
- package/dist/lib/media-buy/action-contracts.mjs +267 -0
- package/dist/lib/media-buy/action-metadata.generated.d.mts +37 -0
- package/dist/lib/media-buy/action-metadata.generated.d.ts +37 -0
- package/dist/lib/media-buy/action-metadata.generated.js +128 -0
- package/dist/lib/media-buy/action-metadata.generated.mjs +101 -0
- package/dist/lib/media-buy/action-types.d.mts +106 -0
- package/dist/lib/media-buy/action-types.d.ts +106 -0
- package/dist/lib/{types/v3-1-beta/tools.generated.js → media-buy/action-types.js} +2 -2
- package/dist/lib/media-buy/actions.d.mts +6 -0
- package/dist/lib/media-buy/actions.d.ts +6 -0
- package/dist/lib/media-buy/actions.js +38 -0
- package/dist/lib/media-buy/actions.mjs +9 -0
- package/dist/lib/media-buy/available-actions.d.mts +2 -1
- package/dist/lib/media-buy/available-actions.d.ts +2 -1
- package/dist/lib/media-buy/available-actions.js +4 -3
- package/dist/lib/media-buy/available-actions.mjs +4 -3
- package/dist/lib/media-buy/compatibility.js +3 -0
- package/dist/lib/media-buy/compatibility.mjs +3 -0
- package/dist/lib/media-buy/index.d.mts +4 -0
- package/dist/lib/media-buy/index.d.ts +4 -0
- package/dist/lib/media-buy/index.js +3 -1
- package/dist/lib/media-buy/index.mjs +1 -0
- package/dist/lib/media-buy/legacy-action-ids.d.mts +1 -0
- package/dist/lib/media-buy/legacy-action-ids.d.ts +1 -0
- package/dist/lib/media-buy/legacy-action-ids.js +50 -0
- package/dist/lib/media-buy/legacy-action-ids.mjs +26 -0
- package/dist/lib/media-buy/mutations.d.mts +70 -0
- package/dist/lib/media-buy/mutations.d.ts +70 -0
- package/dist/lib/media-buy/mutations.js +525 -0
- package/dist/lib/media-buy/mutations.mjs +498 -0
- package/dist/lib/media-buy/preflight.d.mts +20 -69
- package/dist/lib/media-buy/preflight.d.ts +20 -69
- package/dist/lib/media-buy/preflight.js +100 -336
- package/dist/lib/media-buy/preflight.mjs +111 -333
- package/dist/lib/media-buy/targeting-input.d.mts +7 -4
- package/dist/lib/media-buy/targeting-input.d.ts +7 -4
- package/dist/lib/media-buy/types.d.mts +55 -7
- package/dist/lib/media-buy/types.d.ts +55 -7
- package/dist/lib/protocols/rawResponseCapture.d.mts +12 -0
- package/dist/lib/protocols/rawResponseCapture.d.ts +12 -0
- package/dist/lib/protocols/rawResponseCapture.js +33 -3
- package/dist/lib/protocols/rawResponseCapture.mjs +32 -3
- package/dist/lib/registry/types.generated.d.mts +377 -9
- package/dist/lib/registry/types.generated.d.ts +377 -9
- package/dist/lib/reporting/content-mismatch.d.mts +126 -0
- package/dist/lib/reporting/content-mismatch.d.ts +126 -0
- package/dist/lib/reporting/content-mismatch.js +90 -0
- package/dist/lib/reporting/content-mismatch.mjs +66 -0
- package/dist/lib/reporting/evidence.d.mts +1 -0
- package/dist/lib/reporting/evidence.d.ts +1 -0
- package/dist/lib/reporting/evidence.js +32 -3
- package/dist/lib/reporting/evidence.mjs +31 -3
- package/dist/lib/reporting/index.d.mts +3 -1
- package/dist/lib/reporting/index.d.ts +3 -1
- package/dist/lib/reporting/index.js +3 -0
- package/dist/lib/reporting/index.mjs +2 -0
- package/dist/lib/reporting/ledger/handler.d.mts +51 -1
- package/dist/lib/reporting/ledger/handler.d.ts +51 -1
- package/dist/lib/reporting/ledger/handler.js +306 -38
- package/dist/lib/reporting/ledger/handler.mjs +304 -37
- package/dist/lib/reporting/ledger/health.d.mts +12 -0
- package/dist/lib/reporting/ledger/health.d.ts +12 -0
- package/dist/lib/reporting/ledger/health.js +15 -2
- package/dist/lib/reporting/ledger/health.mjs +13 -1
- package/dist/lib/reporting/ledger/index.d.mts +3 -0
- package/dist/lib/reporting/ledger/index.d.ts +3 -0
- package/dist/lib/reporting/ledger/index.js +7 -1
- package/dist/lib/reporting/ledger/index.mjs +3 -0
- package/dist/lib/reporting/ledger/lifecycle.d.mts +31 -4
- package/dist/lib/reporting/ledger/lifecycle.d.ts +31 -4
- package/dist/lib/reporting/ledger/lifecycle.js +244 -37
- package/dist/lib/reporting/ledger/lifecycle.mjs +244 -37
- package/dist/lib/reporting/ledger/managed-postgres.d.mts +231 -0
- package/dist/lib/reporting/ledger/managed-postgres.d.ts +231 -0
- package/dist/lib/reporting/ledger/managed-postgres.js +1797 -0
- package/dist/lib/reporting/ledger/managed-postgres.mjs +1776 -0
- package/dist/lib/reporting/ledger/managed.d.mts +355 -0
- package/dist/lib/reporting/ledger/managed.d.ts +355 -0
- package/dist/lib/reporting/ledger/managed.js +661 -0
- package/dist/lib/reporting/ledger/managed.mjs +633 -0
- package/dist/lib/reporting/ledger/notification-activity.d.mts +222 -0
- package/dist/lib/reporting/ledger/notification-activity.d.ts +222 -0
- package/dist/lib/reporting/ledger/notification-activity.js +1139 -0
- package/dist/lib/reporting/ledger/notification-activity.mjs +1110 -0
- package/dist/lib/reporting/ledger/postgres.d.mts +161 -1
- package/dist/lib/reporting/ledger/postgres.d.ts +161 -1
- package/dist/lib/reporting/ledger/postgres.js +1153 -21
- package/dist/lib/reporting/ledger/postgres.mjs +1152 -21
- package/dist/lib/reporting/ledger/producer.d.mts +8 -0
- package/dist/lib/reporting/ledger/producer.d.ts +8 -0
- package/dist/lib/reporting/ledger/producer.js +146 -52
- package/dist/lib/reporting/ledger/producer.mjs +146 -51
- package/dist/lib/reporting/ledger/types.d.mts +358 -1
- package/dist/lib/reporting/ledger/types.d.ts +358 -1
- package/dist/lib/reporting/ledger/types.js +3 -0
- package/dist/lib/reporting/ledger/types.mjs +2 -0
- package/dist/lib/reporting/reconciliation.d.mts +362 -2
- package/dist/lib/reporting/reconciliation.d.ts +362 -2
- package/dist/lib/reporting/reconciliation.js +1051 -7
- package/dist/lib/reporting/reconciliation.mjs +1053 -7
- package/dist/lib/reporting/service/conformance.d.mts +35 -0
- package/dist/lib/reporting/service/conformance.d.ts +35 -0
- package/dist/lib/reporting/service/conformance.js +89 -0
- package/dist/lib/reporting/service/conformance.mjs +68 -0
- package/dist/lib/reporting/service/index.d.mts +182 -0
- package/dist/lib/reporting/service/index.d.ts +182 -0
- package/dist/lib/reporting/service/index.js +793 -0
- package/dist/lib/reporting/service/index.mjs +787 -0
- package/dist/lib/reporting/source/index.d.mts +2 -1
- package/dist/lib/reporting/source/index.d.ts +2 -1
- package/dist/lib/reporting/source/index.js +16 -3
- package/dist/lib/reporting/source/index.mjs +12 -1
- package/dist/lib/reporting/source/inline.d.mts +88 -1
- package/dist/lib/reporting/source/inline.d.ts +88 -1
- package/dist/lib/reporting/source/inline.js +1161 -163
- package/dist/lib/reporting/source/inline.mjs +1166 -163
- package/dist/lib/reporting/source/manifest.js +12 -7
- package/dist/lib/reporting/source/manifest.mjs +12 -7
- package/dist/lib/reporting/source/source.d.mts +26 -0
- package/dist/lib/reporting/source/source.d.ts +26 -0
- package/dist/lib/reporting/source/source.js +71 -2
- package/dist/lib/reporting/source/source.mjs +65 -1
- package/dist/lib/schemas/index.d.mts +22 -1
- package/dist/lib/schemas/index.d.ts +22 -1
- package/dist/lib/schemas/index.js +7 -0
- package/dist/lib/schemas/index.mjs +7 -0
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.d.mts +18 -0
- package/dist/lib/server/create-adcp-server.d.ts +18 -0
- package/dist/lib/server/create-adcp-server.js +52 -2
- package/dist/lib/server/create-adcp-server.mjs +52 -2
- package/dist/lib/server/decisioning/account.d.mts +1 -1
- package/dist/lib/server/decisioning/account.d.ts +1 -1
- package/dist/lib/server/decisioning/index.d.mts +1 -0
- package/dist/lib/server/decisioning/index.d.ts +1 -0
- package/dist/lib/server/decisioning/platform.d.mts +3 -0
- package/dist/lib/server/decisioning/platform.d.ts +3 -0
- package/dist/lib/server/decisioning/runtime/from-platform.js +88 -10
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +88 -10
- package/dist/lib/server/decisioning/specialisms/reporting.d.mts +38 -0
- package/dist/lib/server/decisioning/specialisms/reporting.d.ts +38 -0
- package/dist/lib/{types/v3-1-beta/index.js → server/decisioning/specialisms/reporting.js} +2 -8
- package/dist/lib/server/decisioning/specialisms/reporting.mjs +0 -0
- package/dist/lib/server/index.d.mts +4 -2
- package/dist/lib/server/index.d.ts +4 -2
- package/dist/lib/server/index.js +5 -0
- package/dist/lib/server/index.mjs +4 -0
- package/dist/lib/server/media-buy-action-resolver.d.mts +63 -0
- package/dist/lib/server/media-buy-action-resolver.d.ts +63 -0
- package/dist/lib/server/media-buy-action-resolver.js +297 -0
- package/dist/lib/server/media-buy-action-resolver.mjs +285 -0
- package/dist/lib/server/media-buy-actions.d.mts +7 -8
- package/dist/lib/server/media-buy-actions.d.ts +7 -8
- package/dist/lib/server/media-buy-actions.js +57 -14
- package/dist/lib/server/media-buy-actions.mjs +63 -14
- package/dist/lib/server/notification-subscriptions/index.d.mts +2 -2
- package/dist/lib/server/notification-subscriptions/index.d.ts +2 -2
- package/dist/lib/server/notification-subscriptions/index.js +2 -0
- package/dist/lib/server/notification-subscriptions/index.mjs +2 -0
- package/dist/lib/server/notification-subscriptions/postgres-runtime.d.mts +3 -1
- package/dist/lib/server/notification-subscriptions/postgres-runtime.d.ts +3 -1
- package/dist/lib/server/notification-subscriptions/postgres-runtime.js +1 -0
- package/dist/lib/server/notification-subscriptions/postgres-runtime.mjs +1 -0
- package/dist/lib/server/notification-subscriptions/runtime.d.mts +12 -1
- package/dist/lib/server/notification-subscriptions/runtime.d.ts +12 -1
- package/dist/lib/server/notification-subscriptions/runtime.js +102 -16
- package/dist/lib/server/notification-subscriptions/runtime.mjs +101 -16
- package/dist/lib/server/notification-subscriptions/types.d.mts +104 -1
- package/dist/lib/server/notification-subscriptions/types.d.ts +104 -1
- package/dist/lib/server/webhook-emitter.d.mts +40 -5
- package/dist/lib/server/webhook-emitter.d.ts +40 -5
- package/dist/lib/server/webhook-emitter.js +23 -12
- package/dist/lib/server/webhook-emitter.mjs +23 -12
- package/dist/lib/storage/interfaces.d.mts +14 -2
- package/dist/lib/storage/interfaces.d.ts +14 -2
- package/dist/lib/testing/compliance/comply.d.mts +9 -3
- package/dist/lib/testing/compliance/comply.d.ts +9 -3
- package/dist/lib/testing/compliance/comply.js +158 -3
- package/dist/lib/testing/compliance/comply.mjs +159 -4
- package/dist/lib/testing/compliance/storyboard-tracks.js +7 -5
- package/dist/lib/testing/compliance/storyboard-tracks.mjs +7 -5
- package/dist/lib/testing/compliance/summary.js +10 -1
- package/dist/lib/testing/compliance/summary.mjs +10 -1
- package/dist/lib/testing/index.d.mts +1 -1
- package/dist/lib/testing/index.d.ts +1 -1
- package/dist/lib/testing/index.js +2 -0
- package/dist/lib/testing/index.mjs +3 -1
- package/dist/lib/testing/storyboard/agent-routing.d.mts +12 -43
- package/dist/lib/testing/storyboard/agent-routing.d.ts +12 -43
- package/dist/lib/testing/storyboard/agent-routing.js +75 -13
- package/dist/lib/testing/storyboard/agent-routing.mjs +70 -12
- package/dist/lib/testing/storyboard/index.d.mts +1 -0
- package/dist/lib/testing/storyboard/index.d.ts +1 -0
- package/dist/lib/testing/storyboard/index.js +3 -0
- package/dist/lib/testing/storyboard/index.mjs +2 -0
- package/dist/lib/testing/storyboard/junit.d.mts +1 -1
- package/dist/lib/testing/storyboard/junit.d.ts +1 -1
- package/dist/lib/testing/storyboard/junit.js +21 -2
- package/dist/lib/testing/storyboard/junit.mjs +21 -2
- package/dist/lib/testing/storyboard/probes.d.mts +130 -0
- package/dist/lib/testing/storyboard/probes.d.ts +130 -0
- package/dist/lib/testing/storyboard/probes.js +682 -10
- package/dist/lib/testing/storyboard/probes.mjs +683 -3
- package/dist/lib/testing/storyboard/request-signing/builder.d.mts +16 -5
- package/dist/lib/testing/storyboard/request-signing/builder.d.ts +16 -5
- package/dist/lib/testing/storyboard/request-signing/grader.d.mts +44 -1
- package/dist/lib/testing/storyboard/request-signing/grader.d.ts +44 -1
- package/dist/lib/testing/storyboard/request-signing/grader.js +46 -22
- package/dist/lib/testing/storyboard/request-signing/grader.mjs +43 -21
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.mts +86 -11
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.ts +86 -11
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.js +119 -25
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.mjs +117 -26
- package/dist/lib/testing/storyboard/request-signing/synthesize.js +22 -2
- package/dist/lib/testing/storyboard/request-signing/synthesize.mjs +22 -2
- package/dist/lib/testing/storyboard/runner.d.mts +103 -0
- package/dist/lib/testing/storyboard/runner.d.ts +103 -0
- package/dist/lib/testing/storyboard/runner.js +1090 -268
- package/dist/lib/testing/storyboard/runner.mjs +1096 -261
- package/dist/lib/testing/storyboard/seeding.d.mts +4 -1
- package/dist/lib/testing/storyboard/seeding.d.ts +4 -1
- package/dist/lib/testing/storyboard/seeding.js +55 -24
- package/dist/lib/testing/storyboard/seeding.mjs +55 -24
- package/dist/lib/testing/storyboard/test-kit.d.mts +37 -3
- package/dist/lib/testing/storyboard/test-kit.d.ts +37 -3
- package/dist/lib/testing/storyboard/test-kit.js +8 -2
- package/dist/lib/testing/storyboard/test-kit.mjs +7 -2
- package/dist/lib/testing/storyboard/types.d.mts +132 -10
- package/dist/lib/testing/storyboard/types.d.ts +132 -10
- package/dist/lib/testing/storyboard/types.js +17 -0
- package/dist/lib/testing/storyboard/types.mjs +16 -0
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/testing/storyboard/validations.js +16 -0
- package/dist/lib/testing/storyboard/validations.mjs +16 -0
- package/dist/lib/testing/test-controller.d.mts +1 -1
- package/dist/lib/testing/test-controller.d.ts +1 -1
- package/dist/lib/types/buy-products.d.ts +71 -6
- package/dist/lib/types/control-media-buy.d.ts +25 -11
- package/dist/lib/types/core.generated.d.mts +69 -10
- package/dist/lib/types/core.generated.d.ts +69 -10
- package/dist/lib/types/create-media-buy.d.ts +71 -6
- package/dist/lib/types/forward-compat-error-codes.d.mts +7 -6
- package/dist/lib/types/forward-compat-error-codes.d.ts +7 -6
- package/dist/lib/types/index.d.mts +2 -2
- package/dist/lib/types/index.d.ts +2 -2
- package/dist/lib/types/schemas.generated.d.ts +8040 -8116
- package/dist/lib/types/schemas.generated.js +1074 -309
- package/dist/lib/types/schemas.generated.mjs +1068 -309
- package/dist/lib/types/tools.generated.d.mts +65 -6
- package/dist/lib/types/tools.generated.d.ts +65 -6
- package/dist/lib/types/update-media-buy.d.ts +71 -6
- package/dist/lib/utils/redact-secrets.d.mts +1 -1
- package/dist/lib/utils/redact-secrets.d.ts +1 -1
- package/dist/lib/utils/redact-secrets.js +1 -1
- package/dist/lib/utils/redact-secrets.mjs +1 -1
- package/dist/lib/v2/projection/cache-versions.d.mts +0 -1
- package/dist/lib/v2/projection/cache-versions.d.ts +0 -1
- package/dist/lib/v2/projection/cache-versions.js +1 -15
- package/dist/lib/v2/projection/cache-versions.mjs +1 -14
- package/dist/lib/v2/projection/canonical-properties.js +2 -2
- package/dist/lib/v2/projection/canonical-properties.mjs +3 -3
- package/dist/lib/v2/projection/registry.d.mts +1 -1
- package/dist/lib/v2/projection/registry.d.ts +1 -1
- package/dist/lib/v2/projection/registry.js +2 -2
- package/dist/lib/v2/projection/registry.mjs +3 -3
- package/dist/lib/validation/schema-loader.d.mts +9 -1
- package/dist/lib/validation/schema-loader.d.ts +9 -1
- package/dist/lib/validation/schema-loader.js +65 -8
- package/dist/lib/validation/schema-loader.mjs +64 -8
- package/dist/lib/version.d.mts +5 -5
- package/dist/lib/version.d.ts +5 -5
- package/dist/lib/version.js +3 -8
- package/dist/lib/version.mjs +3 -8
- package/dist/lib/wholesale-feed-sync/index.d.mts +1 -0
- package/dist/lib/wholesale-feed-sync/index.d.ts +1 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.d.mts +42 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.d.ts +42 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.js +16 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.mjs +0 -0
- package/dist/lib/wholesale-feed-sync/sync.d.mts +6 -6
- package/dist/lib/wholesale-feed-sync/sync.d.ts +6 -6
- package/dist/lib/wholesale-feed-sync/sync.js +3 -1
- package/dist/lib/wholesale-feed-sync/sync.mjs +3 -1
- package/dist/lib/wholesale-feed-sync/types.d.mts +15 -14
- package/dist/lib/wholesale-feed-sync/types.d.ts +15 -14
- package/dist/lib/wholesale-feed-sync/webhook-notification.d.mts +7 -5
- package/dist/lib/wholesale-feed-sync/webhook-notification.d.ts +7 -5
- package/dist/lib/wholesale-feed-sync/webhook-notification.js +45 -0
- package/dist/lib/wholesale-feed-sync/webhook-notification.mjs +44 -0
- package/docs/CLI.md +1 -1
- package/docs/TYPE-SUMMARY.md +118 -4
- package/docs/guides/ASYNC-API-REFERENCE.md +62 -1
- package/docs/guides/ASYNC-DEVELOPER-GUIDE.md +25 -0
- package/docs/guides/ASYNC-DOCUMENTATION-INDEX.md +3 -0
- package/docs/guides/BUYER-QUICKSTART-3.2.md +5 -0
- package/docs/guides/DURABLE-BUYER-WRITES.md +337 -0
- package/docs/guides/EXISTING-PLATFORM.md +80 -1
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +57 -0
- package/docs/guides/MEDIA-BUY-ACTION-ASSESSMENT.md +300 -0
- package/docs/guides/REPORTING-LEDGER.md +654 -3
- package/docs/guides/REPORTING-RECONCILIATION.md +50 -0
- package/docs/guides/REPORTING-SOURCE-EXECUTOR.md +63 -1
- package/docs/guides/SELLER-QUICKSTART-3.2.md +2 -0
- package/docs/guides/VALIDATE-YOUR-AGENT.md +35 -0
- package/docs/guides/idempotency-crash-recovery.md +4 -0
- package/docs/llms.txt +4 -2
- package/docs/migration-14.x-rc-worksheet.md +60 -5
- package/docs/migration-7.9-to-7.10.md +7 -5
- package/examples/README.md +17 -0
- package/examples/durable-buyer-writes/caller.ts +745 -0
- package/examples/durable-buyer-writes/worker.ts +240 -0
- package/examples/reliable-reporting-service/README.md +100 -0
- package/examples/seller-3.2-starter.ts +7 -8
- package/examples/targeting-input-existing-platform.ts +153 -0
- package/package.json +41 -29
- package/skills/build-seller-agent/SKILL.md +2 -0
- package/skills/build-seller-agent/specialisms/signed-requests.md +11 -1
- package/skills/cross-cutting.md +28 -11
- package/compliance/cache/3.1.0-beta.7/domains/brand/index.yaml +0 -160
- package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -415
- package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/single_side_trust_extension.yaml +0 -454
- package/compliance/cache/3.1.0-beta.7/domains/creative/index.yaml +0 -339
- package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/billing_out_of_band.yaml +0 -153
- package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
- package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/native_in_feed.yaml +0 -543
- package/compliance/cache/3.1.0-beta.7/domains/governance/index.yaml +0 -682
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/index.yaml +0 -781
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -380
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/available_actions.yaml +0 -565
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/canonical_formats.yaml +0 -711
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -234
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_reception.yaml +0 -247
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/delivery_reporting.yaml +0 -357
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment.yaml +0 -633
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_approved.yaml +0 -214
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_conditions.yaml +0 -199
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied.yaml +0 -204
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/invalid_transitions.yaml +0 -289
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_accountability.yaml +0 -244
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -428
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -373
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -517
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -823
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_products.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/state-machine.yaml +0 -442
- package/compliance/cache/3.1.0-beta.7/domains/signals/index.yaml +0 -266
- package/compliance/cache/3.1.0-beta.7/domains/sponsored-intelligence/index.yaml +0 -256
- package/compliance/cache/3.1.0-beta.7/index.json +0 -356
- package/compliance/cache/3.1.0-beta.7/protocols/brand/index.yaml +0 -160
- package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -415
- package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -454
- package/compliance/cache/3.1.0-beta.7/protocols/creative/index.yaml +0 -339
- package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/billing_out_of_band.yaml +0 -153
- package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
- package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/native_in_feed.yaml +0 -543
- package/compliance/cache/3.1.0-beta.7/protocols/governance/index.yaml +0 -682
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/index.yaml +0 -781
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -380
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/available_actions.yaml +0 -565
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/canonical_formats.yaml +0 -711
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -234
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_reception.yaml +0 -247
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -357
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -633
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_approved.yaml +0 -214
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_conditions.yaml +0 -199
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied.yaml +0 -204
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -289
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -244
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -428
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -373
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -517
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -823
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_products.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/state-machine.yaml +0 -442
- package/compliance/cache/3.1.0-beta.7/protocols/signals/index.yaml +0 -266
- package/compliance/cache/3.1.0-beta.7/protocols/sponsored-intelligence/index.yaml +0 -256
- package/compliance/cache/3.1.0-beta.7/specialisms/audience-sync/index.yaml +0 -313
- package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/index.yaml +0 -350
- package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -226
- package/compliance/cache/3.1.0-beta.7/specialisms/collection-lists/index.yaml +0 -359
- package/compliance/cache/3.1.0-beta.7/specialisms/content-standards/index.yaml +0 -572
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-ad-server/index.yaml +0 -409
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/generative-seller.yaml +0 -807
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/index.yaml +0 -758
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-template/index.yaml +0 -510
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/index.yaml +0 -143
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -117
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-delivery-monitor/index.yaml +0 -441
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/denied.yaml +0 -221
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/index.yaml +0 -330
- package/compliance/cache/3.1.0-beta.7/specialisms/property-lists/index.yaml +0 -482
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-broadcast-tv/index.yaml +0 -738
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-catalog-driven/index.yaml +0 -840
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-guaranteed/index.yaml +0 -601
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-non-guaranteed/index.yaml +0 -546
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-proposal-mode/index.yaml +0 -586
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-social/index.yaml +0 -919
- package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/index.yaml +0 -424
- package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -211
- package/compliance/cache/3.1.0-beta.7/specialisms/signal-owned/index.yaml +0 -317
- package/compliance/cache/3.1.0-beta.7/specialisms/sponsored-intelligence/index.yaml +0 -59
- package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor-live.yaml +0 -78
- package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor.yaml +0 -223
- package/compliance/cache/3.1.0-beta.7/test-kits/billing-gate-runner.yaml +0 -115
- package/compliance/cache/3.1.0-beta.7/test-kits/bistro-oranje.yaml +0 -126
- package/compliance/cache/3.1.0-beta.7/test-kits/distributed-brand-runner.yaml +0 -281
- package/compliance/cache/3.1.0-beta.7/test-kits/nova-motors.yaml +0 -262
- package/compliance/cache/3.1.0-beta.7/test-kits/osei-natural.yaml +0 -126
- package/compliance/cache/3.1.0-beta.7/test-kits/parallel-dispatch-runner.yaml +0 -196
- package/compliance/cache/3.1.0-beta.7/test-kits/rate-limit-trip-runner.yaml +0 -172
- package/compliance/cache/3.1.0-beta.7/test-kits/signed-requests-runner.yaml +0 -155
- package/compliance/cache/3.1.0-beta.7/test-kits/single-side-trust-runner.yaml +0 -294
- package/compliance/cache/3.1.0-beta.7/test-kits/substitution-observer-runner.yaml +0 -688
- package/compliance/cache/3.1.0-beta.7/test-kits/summit-foods.yaml +0 -125
- package/compliance/cache/3.1.0-beta.7/test-kits/webhook-receiver-runner.yaml +0 -265
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/001-minimal-plan.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/002-full-plan.json +0 -217
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -60
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004a-human-review-omitted.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -49
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -53
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -57
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -49
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -53
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/007-unicode-objectives.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -65
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/README.md +0 -220
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/canonicalization.json +0 -241
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/keys.json +0 -60
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/001-no-signature-header.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/002-wrong-tag.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/003-expired-signature.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/004-window-too-long.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -33
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/011-malformed-header.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/013-expires-le-created.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/015-signature-invalid.json +0 -28
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -35
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/017-key-revoked.json +0 -38
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -28
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/020-rate-abuse.json +0 -34
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -32
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -25
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/001-basic-post.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/003-es256-post.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/README.md +0 -211
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/keys.json +0 -61
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -25
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -25
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -37
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -32
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -33
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -32
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -41
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/001-basic-post.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/002-es256-post.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -25
- package/compliance/cache/3.1.0-beta.7/universal/billing-gate-dispatch.yaml +0 -450
- package/compliance/cache/3.1.0-beta.7/universal/canonical-format-validate-input.yaml +0 -640
- package/compliance/cache/3.1.0-beta.7/universal/capability-discovery.yaml +0 -125
- package/compliance/cache/3.1.0-beta.7/universal/collection-lists-pagination-integrity.yaml +0 -306
- package/compliance/cache/3.1.0-beta.7/universal/comply-controller-mode-gate.yaml +0 -141
- package/compliance/cache/3.1.0-beta.7/universal/content-standards-pagination-integrity.yaml +0 -326
- package/compliance/cache/3.1.0-beta.7/universal/deterministic-testing.yaml +0 -1430
- package/compliance/cache/3.1.0-beta.7/universal/error-compliance-signals.yaml +0 -377
- package/compliance/cache/3.1.0-beta.7/universal/error-compliance.yaml +0 -528
- package/compliance/cache/3.1.0-beta.7/universal/fictional-entities.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/universal/get-media-buys-pagination-integrity.yaml +0 -160
- package/compliance/cache/3.1.0-beta.7/universal/get-signals-pagination-integrity.yaml +0 -211
- package/compliance/cache/3.1.0-beta.7/universal/idempotency.yaml +0 -861
- package/compliance/cache/3.1.0-beta.7/universal/notification-config-event-scope.yaml +0 -119
- package/compliance/cache/3.1.0-beta.7/universal/notification-config-lifecycle.yaml +0 -337
- package/compliance/cache/3.1.0-beta.7/universal/notification-config-rejections.yaml +0 -107
- package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-creative-formats.yaml +0 -265
- package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-list-accounts.yaml +0 -245
- package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity.yaml +0 -263
- package/compliance/cache/3.1.0-beta.7/universal/property-lists-pagination-integrity.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/universal/read-tool-idempotency.yaml +0 -405
- package/compliance/cache/3.1.0-beta.7/universal/runner-output-contract.yaml +0 -1266
- package/compliance/cache/3.1.0-beta.7/universal/schema-validation-signals.yaml +0 -181
- package/compliance/cache/3.1.0-beta.7/universal/schema-validation.yaml +0 -548
- package/compliance/cache/3.1.0-beta.7/universal/security.yaml +0 -539
- package/compliance/cache/3.1.0-beta.7/universal/signed-requests.yaml +0 -217
- package/compliance/cache/3.1.0-beta.7/universal/stale-response-advisory.yaml +0 -295
- package/compliance/cache/3.1.0-beta.7/universal/storyboard-schema.yaml +0 -2136
- package/compliance/cache/3.1.0-beta.7/universal/v3-envelope-integrity.yaml +0 -117
- package/compliance/cache/3.1.0-beta.7/universal/version-negotiation.yaml +0 -130
- package/compliance/cache/3.1.0-beta.7/universal/webhook-emission.yaml +0 -411
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-bulk-webhooks.yaml +0 -82
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-product-webhooks.yaml +0 -83
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-products.yaml +0 -151
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signal-webhooks.yaml +0 -83
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signals.yaml +0 -149
- package/dist/lib/types/v3-1-beta/index.d.mts +0 -1
- package/dist/lib/types/v3-1-beta/index.d.ts +0 -1
- package/dist/lib/types/v3-1-beta/index.mjs +0 -1
- package/dist/lib/types/v3-1-beta/tools.generated.d.mts +0 -26788
- package/dist/lib/types/v3-1-beta/tools.generated.d.ts +0 -26788
- /package/dist/lib/{types/v3-1-beta/tools.generated.mjs → media-buy/action-types.mjs} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { GetReportingStatusRequest, GetReportingStatusResponse, ReportingCanonicalContentDigest, ReportingControlTotal, ReportingMaterialization, ReportingObligation, ReportingReceipt, ReportingRevision, SyncReportingReceiptsRequest, SyncReportingReceiptsResponse } from '../types/tools.generated.mjs';
|
|
1
|
+
import type { GetReportingStatusRequest, GetReportingStatusResponse, ReportingCanonicalContentDigest, ReportingControlTotal, ReportingMaterialization, ReportingObligation, ReportingReceipt, ReportingConsumerStatus, ReportingRevision, SyncReportingReceiptsRequest, SyncReportingReceiptsResponse } from '../types/tools.generated.mjs';
|
|
2
|
+
import { type ReportingMismatchCodeV1 } from './content-mismatch.mjs';
|
|
2
3
|
import { type ReportingCredentialProvider, type ReportingManifestInspectorOptions, type ReportingResourceReader } from './inspection.mjs';
|
|
3
4
|
type ManagedReportingObligation = ReportingObligation & {
|
|
4
5
|
scope_resolved_at?: string;
|
|
@@ -43,6 +44,63 @@ export interface ReportingReconciliationClient {
|
|
|
43
44
|
syncReportingReceipts(params: SyncReportingReceiptsRequest, options?: {
|
|
44
45
|
signal?: AbortSignal;
|
|
45
46
|
}): Promise<SyncReportingReceiptsResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* rc.3 consumer-status loop. Optional so existing adopters keep working:
|
|
49
|
+
* when it is absent the reconciler still *plans* every status and reports it
|
|
50
|
+
* on the result, it just cannot post. Supply it only against a seller that
|
|
51
|
+
* advertises `consumer_status_task`.
|
|
52
|
+
*/
|
|
53
|
+
syncReportingStatus?(params: {
|
|
54
|
+
account?: GetReportingStatusRequest['account'];
|
|
55
|
+
idempotency_key: string;
|
|
56
|
+
statuses: Array<Record<string, unknown>>;
|
|
57
|
+
}, options?: {
|
|
58
|
+
signal?: AbortSignal;
|
|
59
|
+
}): Promise<{
|
|
60
|
+
status?: string;
|
|
61
|
+
results?: unknown[];
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Exact-revision read, the only way a buyer can *earn* a `received`
|
|
65
|
+
* statement.
|
|
66
|
+
*
|
|
67
|
+
* `observed_revision_content_sha256` is defined as the binding digest
|
|
68
|
+
* "independently recomputed from the exact consumed Core revision binding".
|
|
69
|
+
* Copying the seller's own `revision_content_sha256` out of the ledger would
|
|
70
|
+
* hand that digest back unverified and turn buyer-attributed arrival evidence
|
|
71
|
+
* into an echo. So the reconciler pages `reporting_rows` for the exact
|
|
72
|
+
* revision, concatenates them in cursor order, and recomputes
|
|
73
|
+
* SHA-256(JCS({reporting_revision_id,row_count,control_totals,reporting_rows}))
|
|
74
|
+
* itself.
|
|
75
|
+
*
|
|
76
|
+
* Optional: without it the reconciler still plans `received` and
|
|
77
|
+
* `content_mismatch`, but marks them `suppressed: 'consumption_unavailable'`
|
|
78
|
+
* and posts neither. Attesting consumption we did not perform is the one
|
|
79
|
+
* outcome worse than staying silent.
|
|
80
|
+
*/
|
|
81
|
+
getMediaBuyDelivery?(params: {
|
|
82
|
+
account?: GetReportingStatusRequest['account'];
|
|
83
|
+
reporting_revision_id: string;
|
|
84
|
+
pagination?: {
|
|
85
|
+
cursor?: string;
|
|
86
|
+
};
|
|
87
|
+
}, options?: {
|
|
88
|
+
signal?: AbortSignal;
|
|
89
|
+
}): Promise<{
|
|
90
|
+
status?: string;
|
|
91
|
+
reporting_revision_binding?: {
|
|
92
|
+
reporting_revision_id?: string;
|
|
93
|
+
row_count?: number;
|
|
94
|
+
control_totals?: ReportingControlTotal[];
|
|
95
|
+
content_sha256?: string;
|
|
96
|
+
};
|
|
97
|
+
reporting_rows?: unknown[];
|
|
98
|
+
pagination?: {
|
|
99
|
+
has_more?: boolean;
|
|
100
|
+
cursor?: string;
|
|
101
|
+
total_count?: number;
|
|
102
|
+
};
|
|
103
|
+
}>;
|
|
46
104
|
}
|
|
47
105
|
export interface ReportingLedger {
|
|
48
106
|
ledgerSnapshotId: string;
|
|
@@ -53,11 +111,33 @@ export interface ReportingLedger {
|
|
|
53
111
|
revisions: ManagedReportingRevision[];
|
|
54
112
|
materializations: ReportingMaterialization[];
|
|
55
113
|
receipts: ReportingReceipt[];
|
|
114
|
+
/**
|
|
115
|
+
* The authenticated caller's own append-only status history for this scope.
|
|
116
|
+
* Sellers disclose no other consumer's statements, so this is the only way to
|
|
117
|
+
* see the current leaf's *content* — which is what tells the buyer whether it
|
|
118
|
+
* has anything new to say.
|
|
119
|
+
*/
|
|
120
|
+
consumerStatuses?: ReportingConsumerStatus[];
|
|
56
121
|
}
|
|
57
122
|
export interface ReportingLedgerLimits {
|
|
123
|
+
/** Cursor pages per read. Bounds the ledger walk and each revision row read. */
|
|
58
124
|
maxPages?: number;
|
|
125
|
+
/** Ledger records (obligations + revisions + adjustments) in one snapshot. */
|
|
59
126
|
maxRecords?: number;
|
|
127
|
+
/**
|
|
128
|
+
* Wall-clock budget, applied per read: the ledger walk, each receipt write,
|
|
129
|
+
* each posting batch, the summary read — and, shared across all of them, the
|
|
130
|
+
* consumer-status consumption pass.
|
|
131
|
+
*/
|
|
60
132
|
maxLoadMs?: number;
|
|
133
|
+
/**
|
|
134
|
+
* Rows accumulated from one exact-revision read. Separate from `maxRecords`,
|
|
135
|
+
* which bounds *ledger* records: a caller who capped a small ledger at a few
|
|
136
|
+
* hundred records should not thereby cap every revision read at the same
|
|
137
|
+
* number. Defaults to 100,000, and exceeding it suppresses the statement
|
|
138
|
+
* rather than accusing the seller.
|
|
139
|
+
*/
|
|
140
|
+
maxRevisionRows?: number;
|
|
61
141
|
}
|
|
62
142
|
interface ExpectedReportingPeriodBase {
|
|
63
143
|
deliveryConfigId: string;
|
|
@@ -79,6 +159,65 @@ interface ExpectedReportingPeriodBase {
|
|
|
79
159
|
schemaSha256: string;
|
|
80
160
|
schemaDialect: 'https://json-schema.org/draft/2020-12/schema';
|
|
81
161
|
schemaRefPolicy: 'local_fragment_only';
|
|
162
|
+
/**
|
|
163
|
+
* `metrics[].name` from the pinned report definition. Supplying it enables
|
|
164
|
+
* the `metric_missing` arm of `content_mismatch`; omitting it means the buyer
|
|
165
|
+
* never claims a promised metric is absent, which is the safe default.
|
|
166
|
+
*/
|
|
167
|
+
committedMetrics?: readonly string[];
|
|
168
|
+
/**
|
|
169
|
+
* Units the pinned report definition fixed, keyed by metric/control-total
|
|
170
|
+
* name. Enables the `currency_mismatch` arm. Omit to skip that check.
|
|
171
|
+
*/
|
|
172
|
+
metricUnits?: Readonly<Record<string, string>>;
|
|
173
|
+
/**
|
|
174
|
+
* The seller's advertised `automated_recovery_window_seconds`, as the buyer
|
|
175
|
+
* recorded it when accepting the configuration generation.
|
|
176
|
+
*
|
|
177
|
+
* It lives on `reporting-delivery-capabilities.json`, **not** on the
|
|
178
|
+
* obligation, so the ledger cannot supply it — the buyer has to carry its own
|
|
179
|
+
* copy. Without it the SDK cannot compute the rc.3 posting deadline, so it
|
|
180
|
+
* marks nothing overdue and posts nothing automatically: silence is a counted
|
|
181
|
+
* unknown, whereas posting on a guessed clock would churn the status chain.
|
|
182
|
+
*/
|
|
183
|
+
automatedRecoveryWindowSeconds?: number;
|
|
184
|
+
/**
|
|
185
|
+
* The accepted configuration generation's `schedule.delivery_sla`, in
|
|
186
|
+
* seconds, as the buyer recorded it.
|
|
187
|
+
*
|
|
188
|
+
* `expected_at` is "the resolved period end plus this duration". The seller
|
|
189
|
+
* publishes `expected_at` on an obligation — but `obligation_missing` exists
|
|
190
|
+
* precisely because there is no obligation, so for that statement the buyer
|
|
191
|
+
* must derive it. Without this pin the SDK cannot prove a missing period is
|
|
192
|
+
* yet owed, so it marks nothing overdue and posts nothing: `expected_period`
|
|
193
|
+
* makes `obligation_missing` valid only at or after `expected_at`, and a
|
|
194
|
+
* statement dated from the period end is rejected outright by a conformant
|
|
195
|
+
* seller.
|
|
196
|
+
*/
|
|
197
|
+
deliverySlaSeconds?: number;
|
|
198
|
+
/**
|
|
199
|
+
* Offset used instead of `deliverySlaSeconds` when `requiredFinality` is
|
|
200
|
+
* `official`, if the seller advertises one.
|
|
201
|
+
*
|
|
202
|
+
* `reporting-schedule.json` defines only `delivery_sla`, but this repo's own
|
|
203
|
+
* seller ingest anchors `expected_at` for official-finality generations on a
|
|
204
|
+
* separate `officialAfterMilliseconds` and rejects a missing-status statement
|
|
205
|
+
* dated before it. Without a matching pin a buyer on an official generation
|
|
206
|
+
* posts at `period.end + delivery_sla`, is refused, and — because that
|
|
207
|
+
* statement takes no clock input — rebuilds the identical body and is refused
|
|
208
|
+
* again on every run. Leave it unset when the seller does not advertise one.
|
|
209
|
+
*/
|
|
210
|
+
officialAfterSeconds?: number;
|
|
211
|
+
/**
|
|
212
|
+
* `period.source_timezone` for the accepted generation.
|
|
213
|
+
*
|
|
214
|
+
* Preferred over the obligation's echo. The value is part of the
|
|
215
|
+
* consumer-status chain's logical key, so a seller that varies its echo would
|
|
216
|
+
* otherwise make the buyer append a fresh statement on every reconcile; the
|
|
217
|
+
* buyer pinned this when it accepted the generation, and the seller's copy is
|
|
218
|
+
* an echo of that.
|
|
219
|
+
*/
|
|
220
|
+
periodSourceTimezone?: string;
|
|
82
221
|
/** Consumer-pinned finality rule, required whenever an official revision is accepted. */
|
|
83
222
|
officialFinality?: {
|
|
84
223
|
policyId: string;
|
|
@@ -127,6 +266,42 @@ export interface ReportingCheckpointStore {
|
|
|
127
266
|
get(key: ReportingCheckpointKey): Promise<ReportingCheckpoint | undefined>;
|
|
128
267
|
put(key: ReportingCheckpointKey, checkpoint: ReportingCheckpoint): Promise<void>;
|
|
129
268
|
}
|
|
269
|
+
/** One consumer-status supersession chain: the logical key the spec defines. */
|
|
270
|
+
export interface ReportingPendingConsumerStatusKey {
|
|
271
|
+
accountId: string;
|
|
272
|
+
deliveryConfigId: string;
|
|
273
|
+
deliveryConfigVersion: number;
|
|
274
|
+
reportDefinitionId: string;
|
|
275
|
+
periodStart: string;
|
|
276
|
+
periodEnd: string;
|
|
277
|
+
}
|
|
278
|
+
export interface ReportingPendingConsumerStatus {
|
|
279
|
+
/** The exact wire statement, replayed verbatim until the seller confirms it. */
|
|
280
|
+
statement: Record<string, unknown>;
|
|
281
|
+
/** Fingerprint of the claim it makes; a changed claim discards it. */
|
|
282
|
+
claimFingerprint: string;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Durable memory of a statement that has been built but not yet confirmed.
|
|
286
|
+
*
|
|
287
|
+
* `status_as_of` for `received` and `unreadable` is *when this consumer
|
|
288
|
+
* consumed the revision* — buyer-attributed arrival evidence that the spec
|
|
289
|
+
* explicitly refuses to let a seller substitute publication time for. That
|
|
290
|
+
* makes it irreducibly stateful: a stateless reconciler cannot reproduce it,
|
|
291
|
+
* so after a lost response it would build a different statement for the same
|
|
292
|
+
* claim.
|
|
293
|
+
*
|
|
294
|
+
* Wire this store and the reconciler replays the original statement
|
|
295
|
+
* byte-for-byte until the seller confirms it, which is the "exact retry" the
|
|
296
|
+
* spec's `immutability` and `idempotency_key` rules are written around. Leave
|
|
297
|
+
* it out and a re-plan is a new, valid statement instead: the chain still ends
|
|
298
|
+
* with exactly one, it just is not literally the same one.
|
|
299
|
+
*/
|
|
300
|
+
export interface ReportingPendingConsumerStatusStore {
|
|
301
|
+
get(key: ReportingPendingConsumerStatusKey): Promise<ReportingPendingConsumerStatus | undefined>;
|
|
302
|
+
put(key: ReportingPendingConsumerStatusKey, pending: ReportingPendingConsumerStatus): Promise<void>;
|
|
303
|
+
clear(key: ReportingPendingConsumerStatusKey): Promise<void>;
|
|
304
|
+
}
|
|
130
305
|
export interface ReportingInspectionContext {
|
|
131
306
|
obligation: ManagedReportingObligation;
|
|
132
307
|
revision: ManagedReportingRevision;
|
|
@@ -141,12 +316,173 @@ export interface ObligationReconciliation {
|
|
|
141
316
|
reportingMaterializationId?: string;
|
|
142
317
|
reasons: string[];
|
|
143
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* One consumer status the buyer owes for an expected period, with the deadline
|
|
321
|
+
* that makes it owed.
|
|
322
|
+
*
|
|
323
|
+
* rc.3 moves the buyer's duty off "before you close the scope" and onto a
|
|
324
|
+
* clock: a current status is owed by `expected_at` plus the seller's advertised
|
|
325
|
+
* `automated_recovery_window_seconds`. A buyer still retrying at that point
|
|
326
|
+
* posts `revision_missing` or `unreadable` and supersedes it later rather than
|
|
327
|
+
* staying silent, because silence is what the seller counts in
|
|
328
|
+
* `obligation_counts.consumer_status_pending`.
|
|
329
|
+
*/
|
|
330
|
+
export interface ReportingConsumerStatusPlanV1 {
|
|
331
|
+
deliveryConfigId: string;
|
|
332
|
+
deliveryConfigVersion: number;
|
|
333
|
+
reportDefinitionId: string;
|
|
334
|
+
period: {
|
|
335
|
+
start: string;
|
|
336
|
+
end: string;
|
|
337
|
+
source_timezone: string;
|
|
338
|
+
};
|
|
339
|
+
reportingObligationId?: string;
|
|
340
|
+
reportingRevisionId?: string;
|
|
341
|
+
observedRevisionContentSha256?: string;
|
|
342
|
+
/**
|
|
343
|
+
* The caller's current unsuperseded leaf, when the seller published one. A
|
|
344
|
+
* new statement must name it; omitting it on a chain that already has a leaf
|
|
345
|
+
* fails atomically rather than forking.
|
|
346
|
+
*/
|
|
347
|
+
supersedesReportingStatusId?: string;
|
|
348
|
+
consumerStatus: 'received' | 'obligation_missing' | 'revision_missing' | 'unreadable' | 'content_mismatch';
|
|
349
|
+
mismatchCode?: ReportingMismatchCodeV1;
|
|
350
|
+
failureCode?: 'access_denied' | 'resource_not_found' | 'integrity_mismatch' | 'reader_incompatible' | 'transport_failed';
|
|
351
|
+
/** `expected_at` + `automated_recovery_window_seconds`, when both are known. */
|
|
352
|
+
deadline?: string;
|
|
353
|
+
/** True once the deadline has passed — the status is owed now, not at scope close. */
|
|
354
|
+
overdue: boolean;
|
|
355
|
+
/**
|
|
356
|
+
* When the consumer established this status.
|
|
357
|
+
*
|
|
358
|
+
* `undefined` while `requiresConsumption` is still true: a `received`
|
|
359
|
+
* statement is dated from when the revision became consumable *to this
|
|
360
|
+
* consumer*, which is not knowable until the buyer has actually read it.
|
|
361
|
+
*/
|
|
362
|
+
statusAsOf?: string;
|
|
363
|
+
/**
|
|
364
|
+
* Earliest instant this statement may legally carry: the later of the
|
|
365
|
+
* instant it became true and the superseded leaf's own `status_as_of`, since
|
|
366
|
+
* `time` forbids a chain from moving backwards.
|
|
367
|
+
*/
|
|
368
|
+
statusAsOfFloor: string;
|
|
369
|
+
/**
|
|
370
|
+
* True until the buyer has consumed the named revision and recomputed its
|
|
371
|
+
* binding digest. `received` and `content_mismatch` both require that
|
|
372
|
+
* recomputation, so neither may be posted while this is set.
|
|
373
|
+
*/
|
|
374
|
+
requiresConsumption?: boolean;
|
|
375
|
+
/**
|
|
376
|
+
* Why this status was planned but not posted.
|
|
377
|
+
*
|
|
378
|
+
* - `unchanged` — the caller's current leaf already says exactly this. Posting
|
|
379
|
+
* it again would supersede a statement with its own duplicate, forever;
|
|
380
|
+
* `retention_and_limits` calls that pathological churn.
|
|
381
|
+
* - `leaf_undisclosed` — the seller named a current leaf it did not return, so
|
|
382
|
+
* the buyer cannot tell whether it has anything new to say and declines to
|
|
383
|
+
* guess.
|
|
384
|
+
* - `consumption_unavailable` — no exact-revision reader is wired, so the
|
|
385
|
+
* buyer cannot honestly attest consumption.
|
|
386
|
+
* - `posting_unavailable` — no `syncReportingStatus` is wired, so there is
|
|
387
|
+
* nothing to append to. Without this the plan reads as live, due and
|
|
388
|
+
* unsuppressed while silently going nowhere.
|
|
389
|
+
* - `period_identity_unknown` — the seller supplied a `period.source_timezone`
|
|
390
|
+
* that is not a recognized IANA zone. That value is part of the chain's
|
|
391
|
+
* logical key, so substituting one produces a statement the seller refuses
|
|
392
|
+
* on every run; `iana_timezone` forbids the substitution by name.
|
|
393
|
+
* - `local_budget_exhausted` — the buyer's own read budget ran out before it
|
|
394
|
+
* could consume the revision. Self-inflicted, so it is silence rather than
|
|
395
|
+
* an `unreadable` claim against a seller that did nothing wrong.
|
|
396
|
+
* - `deadline_unknown` — no posting deadline could be derived, so this period
|
|
397
|
+
* will never post. Two causes, both named in `reason`: a pin the buyer has
|
|
398
|
+
* to supply is missing, or the seller's own `obligation.expected_at` is
|
|
399
|
+
* unreadable and its `schedule.delivery_sla` did not resolve one either.
|
|
400
|
+
* Without this value a permanent misconfiguration renders exactly like a
|
|
401
|
+
* period that is simply not due yet.
|
|
402
|
+
* - `chain_indeterminate` — the seller's revision chain forked, or the buyer
|
|
403
|
+
* could not walk it. That is the buyer failing to read, not the seller
|
|
404
|
+
* failing to publish, and `revision_missing` would blame the wrong party.
|
|
405
|
+
*/
|
|
406
|
+
suppressed?: 'unchanged' | 'leaf_undisclosed' | 'consumption_unavailable' | 'local_budget_exhausted' | 'deadline_unknown' | 'chain_indeterminate' | 'posting_unavailable' | 'period_identity_unknown';
|
|
407
|
+
/**
|
|
408
|
+
* Set when the seller's own `expected_at` is later than the buyer's pinned
|
|
409
|
+
* expectation by more than its recovery window.
|
|
410
|
+
*
|
|
411
|
+
* The statement is still not posted — `expected_period` makes the seller's
|
|
412
|
+
* instant authoritative, and a locally derived one would be refused. But
|
|
413
|
+
* without this the period sits at `overdue: false` with `suppressed` unset,
|
|
414
|
+
* indistinguishable from one that is simply not due yet, which is a silent
|
|
415
|
+
* kill switch for the whole loop. **Alert on it.**
|
|
416
|
+
*/
|
|
417
|
+
deadlineBeyondPin?: {
|
|
418
|
+
declared: string;
|
|
419
|
+
pinned: string;
|
|
420
|
+
};
|
|
421
|
+
/** Why this status, in adopter-readable terms. Never a measurement claim. */
|
|
422
|
+
reason: string;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* A seller-reported issue the buyer may need to put in front of a human,
|
|
426
|
+
* carried with the escalation destination so an SDK user can page someone
|
|
427
|
+
* without re-reading the capability document.
|
|
428
|
+
*/
|
|
429
|
+
export interface ReportingEscalationV1 {
|
|
430
|
+
reportingObligationId: string;
|
|
431
|
+
issueId: string;
|
|
432
|
+
code: string;
|
|
433
|
+
severity: string;
|
|
434
|
+
responsibleParty: string;
|
|
435
|
+
recommendedAction: string;
|
|
436
|
+
/** Fixed at first emission; age the issue from this, not from the read. */
|
|
437
|
+
openedAt?: string;
|
|
438
|
+
issueState?: string;
|
|
439
|
+
/** Inert correlation text. Never dereference or resolve it. */
|
|
440
|
+
externalRef?: string;
|
|
441
|
+
reportingStatusId?: string;
|
|
442
|
+
/**
|
|
443
|
+
* Seller's advertised human escalation path. Display metadata only: agents
|
|
444
|
+
* MUST NOT fetch the URL, send protocol traffic to it, or treat either value
|
|
445
|
+
* as a credential.
|
|
446
|
+
*/
|
|
447
|
+
operationsContact?: {
|
|
448
|
+
url?: string;
|
|
449
|
+
email?: string;
|
|
450
|
+
};
|
|
451
|
+
/** True when `recommended_action` is in the `contact_*` family. */
|
|
452
|
+
requiresHumanContact: boolean;
|
|
453
|
+
}
|
|
144
454
|
export interface ReportingReconciliationResult {
|
|
145
455
|
definitive: boolean;
|
|
146
456
|
ledger: ReportingLedger;
|
|
147
457
|
obligations: ObligationReconciliation[];
|
|
148
458
|
missingExpectedPeriods: ExpectedReportingPeriod[];
|
|
149
459
|
submittedReceipts: ReportingReceipt[];
|
|
460
|
+
/** Every status the buyer owes for the reconciled scope, overdue flagged. */
|
|
461
|
+
consumerStatuses: ReportingConsumerStatusPlanV1[];
|
|
462
|
+
/** The subset actually posted through `syncReportingStatus` this run. */
|
|
463
|
+
postedConsumerStatuses: ReportingConsumerStatusPlanV1[];
|
|
464
|
+
/**
|
|
465
|
+
* Statuses the seller rejected item-locally, carrying the errors it returned.
|
|
466
|
+
* `sync_reporting_status` is a partial-success batch, so a rejection is data
|
|
467
|
+
* the caller has to see — swallowing it leaves a buyer believing it has
|
|
468
|
+
* discharged a duty it has not.
|
|
469
|
+
*/
|
|
470
|
+
failedConsumerStatuses: Array<{
|
|
471
|
+
plan: ReportingConsumerStatusPlanV1;
|
|
472
|
+
reportingStatusId?: string;
|
|
473
|
+
errors: unknown[];
|
|
474
|
+
}>;
|
|
475
|
+
/**
|
|
476
|
+
* The seller's own count of obligations past the buyer's posting deadline
|
|
477
|
+
* with no current status from this caller. Surfaced verbatim; it is a
|
|
478
|
+
* visibility count over the buyer's silence and never a health input.
|
|
479
|
+
* `undefined` when the read could not establish it: the client carries no
|
|
480
|
+
* `syncReportingStatus` (so this seller is not running the loop), the seller
|
|
481
|
+
* omitted the field, or the summary read failed.
|
|
482
|
+
*/
|
|
483
|
+
consumerStatusPending?: number;
|
|
484
|
+
/** Seller-reported issues, with escalation destination attached. */
|
|
485
|
+
escalations: ReportingEscalationV1[];
|
|
150
486
|
totalsByRevision: Array<{
|
|
151
487
|
reportingRevisionId: string;
|
|
152
488
|
rowCount: number;
|
|
@@ -165,6 +501,21 @@ interface ReconcileReportingBaseOptions {
|
|
|
165
501
|
inspectionRetryBaseDelayMs?: number;
|
|
166
502
|
ledgerLimits?: ReportingLedgerLimits;
|
|
167
503
|
now?: Date;
|
|
504
|
+
/**
|
|
505
|
+
* The seller's advertised `operations_contact`, recorded by the buyer from
|
|
506
|
+
* the capability document. Surfaced on every escalation so an SDK user can
|
|
507
|
+
* page a human. Inert display metadata — never dereference it.
|
|
508
|
+
*/
|
|
509
|
+
operationsContact?: {
|
|
510
|
+
url?: string;
|
|
511
|
+
email?: string;
|
|
512
|
+
};
|
|
513
|
+
/**
|
|
514
|
+
* Durable memory for statements built but not yet confirmed, so a retry
|
|
515
|
+
* after a lost response is the same statement rather than a new one. Optional;
|
|
516
|
+
* see `ReportingPendingConsumerStatusStore` for what changes without it.
|
|
517
|
+
*/
|
|
518
|
+
pendingConsumerStatusStore?: ReportingPendingConsumerStatusStore;
|
|
168
519
|
}
|
|
169
520
|
type ReportingCheckpointOptions = {
|
|
170
521
|
checkpointStore?: never;
|
|
@@ -193,7 +544,16 @@ export declare class ReportingReconciliationError extends Error {
|
|
|
193
544
|
}
|
|
194
545
|
export declare function isReportingCoverageEvidence(value: unknown): value is ReportingCoverageEvidence;
|
|
195
546
|
export declare function loadReportingLedger(client: ReportingReconciliationClient, request: Omit<GetReportingStatusRequest, 'view' | 'pagination'>, maxSnapshotRestarts?: number, limits?: ReportingLedgerLimits): Promise<ReportingLedger>;
|
|
196
|
-
export declare function evaluateReportingLedger(ledger: ReportingLedger, expectedPeriods: ExpectedReportingPeriod[] | undefined, now?: Date
|
|
547
|
+
export declare function evaluateReportingLedger(ledger: ReportingLedger, expectedPeriods: ExpectedReportingPeriod[] | undefined, now?: Date,
|
|
548
|
+
/**
|
|
549
|
+
* The seller's advertised `operations_contact`, as the buyer recorded it from
|
|
550
|
+
* the capability document. It is not carried on any `get_reporting_status`
|
|
551
|
+
* response, so it cannot be derived here.
|
|
552
|
+
*/
|
|
553
|
+
operationsContact?: {
|
|
554
|
+
url?: string;
|
|
555
|
+
email?: string;
|
|
556
|
+
}): Omit<ReportingReconciliationResult, 'submittedReceipts'>;
|
|
197
557
|
export declare function buildReportingReceipt(context: ReportingInspectionContext, observation: ReportingObservation, reportingReceiptId?: string, observedAt?: string): ReportingReceipt;
|
|
198
558
|
export declare function reconcileReporting<TCredential = unknown>(options: ReconcileReportingOptions<TCredential>): Promise<ReportingReconciliationResult>;
|
|
199
559
|
export {};
|