@adcp/sdk 17.0.0-beta.0 → 17.0.0-beta.2
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/dist/lib/adapters/keyed-account-store.js +1 -1
- package/dist/lib/adapters/keyed-account-store.mjs +1 -1
- package/dist/lib/adapters/version/3.0/brand-fields.d.mts +7 -1
- package/dist/lib/adapters/version/3.0/brand-fields.d.ts +7 -1
- package/dist/lib/adapters/version/3.0/brand-fields.js +139 -3
- package/dist/lib/adapters/version/3.0/brand-fields.mjs +136 -2
- package/dist/lib/adapters/version/3.0/index.js +6 -0
- package/dist/lib/adapters/version/3.0/index.mjs +7 -1
- package/dist/lib/adapters/version/3.1/bidding.js +1 -1
- package/dist/lib/adapters/version/3.1/bidding.mjs +1 -1
- package/dist/lib/adapters/version/types.d.mts +5 -0
- package/dist/lib/adapters/version/types.d.ts +5 -0
- package/dist/lib/canonical-references/index.js +2 -0
- package/dist/lib/canonical-references/index.mjs +2 -0
- package/dist/lib/client/account-changes.d.mts +3 -1
- package/dist/lib/client/account-changes.d.ts +3 -1
- package/dist/lib/client/account-changes.js +22 -2
- package/dist/lib/client/account-changes.mjs +22 -2
- package/dist/lib/conformance/oracle.js +3 -2
- package/dist/lib/conformance/oracle.mjs +3 -2
- package/dist/lib/core/AgentClient.d.mts +165 -1
- package/dist/lib/core/AgentClient.d.ts +165 -1
- package/dist/lib/core/AgentClient.js +446 -8
- package/dist/lib/core/AgentClient.mjs +446 -8
- package/dist/lib/core/ConversationTypes.d.mts +8 -0
- package/dist/lib/core/ConversationTypes.d.ts +8 -0
- package/dist/lib/core/ProtocolResponseParser.d.mts +1 -1
- package/dist/lib/core/ProtocolResponseParser.d.ts +1 -1
- package/dist/lib/core/ProtocolResponseParser.js +28 -18
- package/dist/lib/core/ProtocolResponseParser.mjs +11 -1
- package/dist/lib/core/ResponseValidator.js +1 -1
- package/dist/lib/core/ResponseValidator.mjs +1 -1
- package/dist/lib/core/SingleAgentClient.d.mts +122 -7
- package/dist/lib/core/SingleAgentClient.d.ts +122 -7
- package/dist/lib/core/SingleAgentClient.js +601 -96
- package/dist/lib/core/SingleAgentClient.mjs +590 -84
- package/dist/lib/core/TaskExecutor.d.mts +7 -0
- package/dist/lib/core/TaskExecutor.d.ts +7 -0
- package/dist/lib/core/TaskExecutor.js +23 -8
- package/dist/lib/core/TaskExecutor.mjs +23 -8
- package/dist/lib/core/task-status.d.mts +2 -0
- package/dist/lib/core/task-status.d.ts +2 -0
- package/dist/lib/core/task-status.js +11 -2
- package/dist/lib/core/task-status.mjs +9 -1
- package/dist/lib/errors/index.d.mts +22 -0
- package/dist/lib/errors/index.d.ts +22 -0
- package/dist/lib/errors/index.js +43 -0
- package/dist/lib/errors/index.mjs +42 -0
- package/dist/lib/identity-3.3/trust.d.mts +1 -4
- package/dist/lib/identity-3.3/trust.d.ts +1 -4
- package/dist/lib/identity-3.3/trust.js +34 -21
- package/dist/lib/identity-3.3/trust.mjs +34 -21
- package/dist/lib/identity-3.3/validation.js +5 -3
- package/dist/lib/identity-3.3/validation.mjs +6 -4
- package/dist/lib/index.d.mts +7 -53
- package/dist/lib/index.d.ts +7 -53
- package/dist/lib/index.js +13 -0
- package/dist/lib/index.mjs +9 -0
- package/dist/lib/media-buy/compatibility.js +6 -1
- package/dist/lib/media-buy/compatibility.mjs +6 -1
- package/dist/lib/protocols/mcp-modern.d.mts +2 -0
- package/dist/lib/protocols/mcp-modern.d.ts +2 -0
- package/dist/lib/protocols/mcp-modern.js +31 -5
- package/dist/lib/protocols/mcp-modern.mjs +31 -5
- package/dist/lib/protocols/mcp-scope.d.mts +6 -1
- package/dist/lib/protocols/mcp-scope.d.ts +6 -1
- package/dist/lib/protocols/mcp-scope.js +25 -3
- package/dist/lib/protocols/mcp-scope.mjs +24 -3
- package/dist/lib/protocols/mcp.js +12 -6
- package/dist/lib/protocols/mcp.mjs +13 -6
- package/dist/lib/reporting/inspection.js +1 -0
- package/dist/lib/reporting/inspection.mjs +1 -0
- package/dist/lib/reporting/ledger/coverage.d.mts +5 -0
- package/dist/lib/reporting/ledger/coverage.d.ts +5 -0
- package/dist/lib/reporting/ledger/coverage.js +37 -3
- package/dist/lib/reporting/ledger/coverage.mjs +36 -3
- package/dist/lib/reporting/ledger/handler.js +7 -4
- package/dist/lib/reporting/ledger/handler.mjs +7 -4
- package/dist/lib/reporting/ledger/producer.js +215 -69
- package/dist/lib/reporting/ledger/producer.mjs +217 -70
- package/dist/lib/reporting/ledger/schedule.d.mts +2 -2
- package/dist/lib/reporting/ledger/schedule.d.ts +2 -2
- package/dist/lib/reporting/ledger/schedule.js +8 -5
- package/dist/lib/reporting/ledger/schedule.mjs +8 -5
- package/dist/lib/reporting/ledger/status-ingest.d.mts +1 -1
- package/dist/lib/reporting/ledger/status-ingest.d.ts +1 -1
- package/dist/lib/reporting/ledger/status-ingest.js +4 -3
- package/dist/lib/reporting/ledger/status-ingest.mjs +4 -3
- package/dist/lib/reporting/ledger/types.d.mts +36 -1
- package/dist/lib/reporting/ledger/types.d.ts +36 -1
- package/dist/lib/reporting/service/index.d.mts +14 -1
- package/dist/lib/reporting/service/index.d.ts +14 -1
- package/dist/lib/reporting/service/index.js +24 -12
- package/dist/lib/reporting/service/index.mjs +24 -12
- package/dist/lib/schemas/browser.d.mts +2 -0
- package/dist/lib/schemas/browser.d.ts +2 -0
- package/dist/lib/schemas/browser.js +3 -0
- package/dist/lib/schemas/browser.mjs +2 -0
- package/dist/lib/schemas/index.d.mts +5 -3
- package/dist/lib/schemas/index.d.ts +5 -3
- package/dist/lib/schemas/index.js +5 -0
- package/dist/lib/schemas/index.mjs +4 -0
- package/dist/lib/server/account-response-identity.d.mts +17 -0
- package/dist/lib/server/account-response-identity.d.ts +17 -0
- package/dist/lib/server/account-response-identity.js +52 -0
- package/dist/lib/server/account-response-identity.mjs +28 -0
- package/dist/lib/server/account-sync-contract.js +2 -2
- package/dist/lib/server/account-sync-contract.mjs +2 -2
- package/dist/lib/server/create-adcp-server.js +33 -20
- package/dist/lib/server/create-adcp-server.mjs +36 -12
- package/dist/lib/server/decisioning/account.d.mts +36 -10
- package/dist/lib/server/decisioning/account.d.ts +36 -10
- package/dist/lib/server/decisioning/account.js +33 -14
- package/dist/lib/server/decisioning/account.mjs +33 -14
- package/dist/lib/server/decisioning/runtime/from-platform.d.mts +5 -5
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts +5 -5
- package/dist/lib/server/decisioning/runtime/from-platform.js +4 -4
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +4 -4
- package/dist/lib/server/media-buy-store.d.mts +26 -12
- package/dist/lib/server/media-buy-store.d.ts +26 -12
- package/dist/lib/server/media-buy-store.js +69 -21
- package/dist/lib/server/media-buy-store.mjs +69 -21
- package/dist/lib/server/notification-subscriptions/runtime.d.mts +1 -1
- package/dist/lib/server/notification-subscriptions/runtime.d.ts +1 -1
- package/dist/lib/server/notification-subscriptions/runtime.js +4 -0
- package/dist/lib/server/notification-subscriptions/runtime.mjs +4 -0
- package/dist/lib/server/responses.js +9 -1
- package/dist/lib/server/responses.mjs +9 -1
- package/dist/lib/signing/agent-fetch.d.mts +1 -1
- package/dist/lib/signing/agent-fetch.d.ts +1 -1
- package/dist/lib/signing/agent-fetch.js +3 -3
- package/dist/lib/signing/agent-fetch.mjs +3 -3
- package/dist/lib/testing/client.d.mts +1 -0
- package/dist/lib/testing/client.d.ts +1 -0
- package/dist/lib/testing/client.js +6 -5
- package/dist/lib/testing/client.mjs +6 -5
- package/dist/lib/testing/storyboard/agent-routing.d.mts +5 -2
- package/dist/lib/testing/storyboard/agent-routing.d.ts +5 -2
- package/dist/lib/testing/storyboard/agent-routing.js +11 -4
- package/dist/lib/testing/storyboard/agent-routing.mjs +11 -4
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.js +60 -14
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.mjs +60 -14
- package/dist/lib/testing/storyboard/compliance.d.mts +2 -5
- package/dist/lib/testing/storyboard/compliance.d.ts +2 -5
- package/dist/lib/testing/storyboard/compliance.js +62 -13
- package/dist/lib/testing/storyboard/compliance.mjs +63 -14
- package/dist/lib/testing/storyboard/context.d.mts +13 -3
- package/dist/lib/testing/storyboard/context.d.ts +13 -3
- package/dist/lib/testing/storyboard/context.js +15 -10
- package/dist/lib/testing/storyboard/context.mjs +15 -10
- package/dist/lib/testing/storyboard/request-signing/vector-loader.d.mts +2 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.d.ts +2 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.js +11 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.mjs +10 -0
- package/dist/lib/testing/storyboard/runner.js +141 -13
- package/dist/lib/testing/storyboard/runner.mjs +141 -13
- 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 +4 -1
- package/dist/lib/testing/storyboard/validations.mjs +4 -1
- package/dist/lib/testing/test-controller.js +3 -0
- package/dist/lib/testing/test-controller.mjs +3 -0
- package/dist/lib/types/accept-proposal.d.ts +20 -28
- package/dist/lib/types/asset-instances.d.mts +1 -1
- package/dist/lib/types/asset-instances.d.ts +1 -1
- package/dist/lib/types/buy-products.d.ts +20 -28
- package/dist/lib/types/check-governance.d.ts +20 -28
- package/dist/lib/types/comply-test-controller.d.ts +20 -28
- package/dist/lib/types/control-media-buy.d.ts +20 -28
- package/dist/lib/types/core.generated.d.mts +273 -184
- package/dist/lib/types/core.generated.d.ts +273 -184
- package/dist/lib/types/create-media-buy.d.ts +20 -28
- package/dist/lib/types/get-media-buys.d.ts +20 -28
- package/dist/lib/types/get-products.d.ts +20 -28
- package/dist/lib/types/index.d.mts +6 -1
- package/dist/lib/types/index.d.ts +6 -1
- package/dist/lib/types/index.js +6 -1
- package/dist/lib/types/index.mjs +4 -1
- package/dist/lib/types/inline-enums.generated.d.mts +30 -4
- package/dist/lib/types/inline-enums.generated.d.ts +30 -4
- package/dist/lib/types/inline-enums.generated.js +41 -2
- package/dist/lib/types/inline-enums.generated.mjs +28 -2
- package/dist/lib/types/list-products.d.ts +20 -28
- package/dist/lib/types/list-proposals.d.ts +20 -28
- package/dist/lib/types/media-buy-delivery-report.d.mts +6 -0
- package/dist/lib/types/media-buy-delivery-report.d.ts +6 -0
- package/dist/lib/types/media-buy-delivery-report.js +16 -0
- package/dist/lib/types/media-buy-delivery-report.mjs +0 -0
- package/dist/lib/types/refine-proposals.d.ts +20 -28
- package/dist/lib/types/request-proposals.d.ts +20 -28
- package/dist/lib/types/schemas.generated.d.ts +63113 -127273
- package/dist/lib/types/schemas.generated.js +759 -770
- package/dist/lib/types/schemas.generated.mjs +759 -770
- package/dist/lib/types/targeting-keys.generated.d.mts +4 -0
- package/dist/lib/types/targeting-keys.generated.d.ts +4 -0
- package/dist/lib/types/targeting-keys.generated.js +109 -0
- package/dist/lib/types/targeting-keys.generated.mjs +84 -0
- package/dist/lib/types/tools.generated.d.mts +2 -68
- package/dist/lib/types/tools.generated.d.ts +2 -68
- package/dist/lib/types/update-media-buy.d.ts +20 -28
- package/dist/lib/utils/adcp-version-config.js +5 -2
- package/dist/lib/utils/adcp-version-config.mjs +5 -2
- package/dist/lib/utils/envelope-status-compat.d.mts +18 -1
- package/dist/lib/utils/envelope-status-compat.d.ts +18 -1
- package/dist/lib/utils/envelope-status-compat.js +11 -5
- package/dist/lib/utils/envelope-status-compat.mjs +11 -5
- package/dist/lib/utils/response-unwrapper.js +18 -10
- package/dist/lib/utils/response-unwrapper.mjs +18 -10
- package/dist/lib/v2/format-schema/resolver.js +1 -1
- package/dist/lib/v2/format-schema/resolver.mjs +1 -1
- package/dist/lib/v2/projection/creative-delivery.js +159 -39
- package/dist/lib/v2/projection/creative-delivery.mjs +163 -39
- package/dist/lib/v2/projection/index.d.mts +1 -0
- package/dist/lib/v2/projection/index.d.ts +1 -0
- package/dist/lib/v2/projection/index.js +3 -0
- package/dist/lib/v2/projection/index.mjs +2 -0
- package/dist/lib/v2/projection/legacy-metadata.d.mts +19 -0
- package/dist/lib/v2/projection/legacy-metadata.d.ts +19 -0
- package/dist/lib/v2/projection/legacy-metadata.js +91 -0
- package/dist/lib/v2/projection/legacy-metadata.mjs +86 -0
- package/dist/lib/v2/projection/v1-to-v2.d.mts +1 -1
- package/dist/lib/v2/projection/v1-to-v2.d.ts +1 -1
- package/dist/lib/v2/projection/v1-to-v2.js +12 -9
- package/dist/lib/v2/projection/v1-to-v2.mjs +12 -9
- package/dist/lib/validation/budget-allocation.d.mts +3 -3
- package/dist/lib/validation/budget-allocation.d.ts +3 -3
- package/dist/lib/validation/compact-schema.d.mts +27 -0
- package/dist/lib/validation/compact-schema.d.ts +27 -0
- package/dist/lib/validation/compact-schema.js +276 -0
- package/dist/lib/validation/compact-schema.mjs +250 -0
- package/dist/lib/validation/media-buy-delivery-report.d.mts +8 -0
- package/dist/lib/validation/media-buy-delivery-report.d.ts +8 -0
- package/dist/lib/validation/media-buy-delivery-report.js +31 -0
- package/dist/lib/validation/media-buy-delivery-report.mjs +7 -0
- package/dist/lib/validation/nonempty-array.d.mts +15 -0
- package/dist/lib/validation/nonempty-array.d.ts +15 -0
- package/dist/lib/validation/nonempty-array.js +41 -0
- package/dist/lib/validation/nonempty-array.mjs +7 -0
- package/dist/lib/validation/schema-diagnostic-origins.d.mts +21 -0
- package/dist/lib/validation/schema-diagnostic-origins.d.ts +21 -0
- package/dist/lib/validation/schema-diagnostic-origins.js +193 -0
- package/dist/lib/validation/schema-diagnostic-origins.mjs +169 -0
- package/dist/lib/validation/schema-loader.js +86 -16
- package/dist/lib/validation/schema-loader.mjs +82 -16
- package/dist/lib/validation/schema-validator.d.mts +10 -19
- package/dist/lib/validation/schema-validator.d.ts +10 -19
- package/dist/lib/validation/schema-validator.js +136 -43
- package/dist/lib/validation/schema-validator.mjs +140 -44
- package/dist/lib/validation/sync-creatives.d.mts +22 -22
- package/dist/lib/validation/sync-creatives.d.ts +22 -22
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.mjs +3 -3
- package/dist/lib/webhooks/index.d.mts +3 -0
- package/dist/lib/webhooks/index.d.ts +3 -0
- package/dist/lib/webhooks/index.js +3 -0
- package/dist/lib/webhooks/index.mjs +2 -0
- package/dist/lib/webhooks/media-buy-delivery.d.mts +43 -0
- package/dist/lib/webhooks/media-buy-delivery.d.ts +43 -0
- package/dist/lib/webhooks/media-buy-delivery.js +119 -0
- package/dist/lib/webhooks/media-buy-delivery.mjs +94 -0
- package/docs/TYPE-SUMMARY.md +2 -2
- package/docs/guides/COLLECTION-FIXTURE-FOUNDATION.md +11 -0
- package/docs/guides/DELIVERY-WEBHOOK-PARSING.md +142 -0
- package/docs/guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md +27 -1
- package/docs/guides/REPORTING-LEDGER.md +93 -0
- package/docs/guides/REPORTING-STABILITY.md +1 -1
- package/docs/guides/TYPED-CLIENT-TOOLS.md +49 -0
- package/docs/llms.txt +2 -2
- package/docs/migration-14.x-rc-worksheet.md +4 -4
- package/docs/migration-16-to-17.md +202 -2
- package/docs/migration-6.6-to-6.7.md +14 -0
- package/docs/migration-account-change-feed.md +15 -0
- package/docs/migration-reporting-storage-package.md +1 -1
- package/docs/recipes/verifying-inbound-webhooks.md +18 -2
- package/package.json +2 -2
|
@@ -59,14 +59,19 @@ function asRecord(value) {
|
|
|
59
59
|
function readMediaBuyStatus(record) {
|
|
60
60
|
return (0, import_media_buy_status.getAuthoritativeMediaBuyStatus)(record);
|
|
61
61
|
}
|
|
62
|
-
function readMediaBuyFields(data) {
|
|
62
|
+
function readMediaBuyFields(data, adcpVersion) {
|
|
63
63
|
const outer = asRecord(data);
|
|
64
64
|
const nested = asRecord(outer?.media_buy);
|
|
65
65
|
return {
|
|
66
66
|
mediaBuyId: nested?.media_buy_id ?? outer?.media_buy_id,
|
|
67
|
-
status: readMediaBuyStatus(nested) ?? readMediaBuyStatus(outer)
|
|
67
|
+
status: readMediaBuyStatus(nested) ?? readMediaBuyStatus(withRequestedVersion(outer, adcpVersion))
|
|
68
68
|
};
|
|
69
69
|
}
|
|
70
|
+
function withRequestedVersion(record, adcpVersion) {
|
|
71
|
+
if (!record || !adcpVersion) return record;
|
|
72
|
+
if (typeof record.adcp_version === "string" || typeof record.adcp_major_version === "number") return record;
|
|
73
|
+
return { ...record, adcp_version: adcpVersion };
|
|
74
|
+
}
|
|
70
75
|
function readProposalFields(proposal) {
|
|
71
76
|
if (!proposal) return {};
|
|
72
77
|
const extracted = {};
|
|
@@ -181,15 +186,15 @@ const CONTEXT_EXTRACTORS = {
|
|
|
181
186
|
control_media_buy(data) {
|
|
182
187
|
return readCompactMediaBuyFields(data);
|
|
183
188
|
},
|
|
184
|
-
create_media_buy(data) {
|
|
185
|
-
const { mediaBuyId, status } = readMediaBuyFields(data);
|
|
189
|
+
create_media_buy(data, adcpVersion) {
|
|
190
|
+
const { mediaBuyId, status } = readMediaBuyFields(data, adcpVersion);
|
|
186
191
|
const extracted = {};
|
|
187
192
|
if (mediaBuyId) extracted.media_buy_id = mediaBuyId;
|
|
188
193
|
if (status) extracted.media_buy_status = status;
|
|
189
194
|
return extracted;
|
|
190
195
|
},
|
|
191
|
-
update_media_buy(data) {
|
|
192
|
-
const { mediaBuyId, status } = readMediaBuyFields(data);
|
|
196
|
+
update_media_buy(data, adcpVersion) {
|
|
197
|
+
const { mediaBuyId, status } = readMediaBuyFields(data, adcpVersion);
|
|
193
198
|
const extracted = {};
|
|
194
199
|
if (mediaBuyId) extracted.media_buy_id = mediaBuyId;
|
|
195
200
|
if (status) extracted.media_buy_status = status;
|
|
@@ -381,11 +386,11 @@ const CONTEXT_EXTRACTORS = {
|
|
|
381
386
|
return extracted;
|
|
382
387
|
}
|
|
383
388
|
};
|
|
384
|
-
function extractContext(taskName, data) {
|
|
389
|
+
function extractContext(taskName, data, adcpVersion) {
|
|
385
390
|
const extractor = CONTEXT_EXTRACTORS[taskName];
|
|
386
391
|
if (!extractor) return {};
|
|
387
392
|
try {
|
|
388
|
-
return extractor(data);
|
|
393
|
+
return extractor(data, adcpVersion);
|
|
389
394
|
} catch {
|
|
390
395
|
return {};
|
|
391
396
|
}
|
|
@@ -482,8 +487,8 @@ function applyContextOutputs(data, outputs) {
|
|
|
482
487
|
}
|
|
483
488
|
return result;
|
|
484
489
|
}
|
|
485
|
-
function extractContextWithProvenance(taskName, data, stepId) {
|
|
486
|
-
const values = extractContext(taskName, data);
|
|
490
|
+
function extractContextWithProvenance(taskName, data, stepId, adcpVersion) {
|
|
491
|
+
const values = extractContext(taskName, data, adcpVersion);
|
|
487
492
|
const clearGroups = (() => {
|
|
488
493
|
const response = asRecord(data);
|
|
489
494
|
switch (taskName) {
|
|
@@ -26,14 +26,19 @@ function asRecord(value) {
|
|
|
26
26
|
function readMediaBuyStatus(record) {
|
|
27
27
|
return getAuthoritativeMediaBuyStatus(record);
|
|
28
28
|
}
|
|
29
|
-
function readMediaBuyFields(data) {
|
|
29
|
+
function readMediaBuyFields(data, adcpVersion) {
|
|
30
30
|
const outer = asRecord(data);
|
|
31
31
|
const nested = asRecord(outer?.media_buy);
|
|
32
32
|
return {
|
|
33
33
|
mediaBuyId: nested?.media_buy_id ?? outer?.media_buy_id,
|
|
34
|
-
status: readMediaBuyStatus(nested) ?? readMediaBuyStatus(outer)
|
|
34
|
+
status: readMediaBuyStatus(nested) ?? readMediaBuyStatus(withRequestedVersion(outer, adcpVersion))
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
+
function withRequestedVersion(record, adcpVersion) {
|
|
38
|
+
if (!record || !adcpVersion) return record;
|
|
39
|
+
if (typeof record.adcp_version === "string" || typeof record.adcp_major_version === "number") return record;
|
|
40
|
+
return { ...record, adcp_version: adcpVersion };
|
|
41
|
+
}
|
|
37
42
|
function readProposalFields(proposal) {
|
|
38
43
|
if (!proposal) return {};
|
|
39
44
|
const extracted = {};
|
|
@@ -148,15 +153,15 @@ const CONTEXT_EXTRACTORS = {
|
|
|
148
153
|
control_media_buy(data) {
|
|
149
154
|
return readCompactMediaBuyFields(data);
|
|
150
155
|
},
|
|
151
|
-
create_media_buy(data) {
|
|
152
|
-
const { mediaBuyId, status } = readMediaBuyFields(data);
|
|
156
|
+
create_media_buy(data, adcpVersion) {
|
|
157
|
+
const { mediaBuyId, status } = readMediaBuyFields(data, adcpVersion);
|
|
153
158
|
const extracted = {};
|
|
154
159
|
if (mediaBuyId) extracted.media_buy_id = mediaBuyId;
|
|
155
160
|
if (status) extracted.media_buy_status = status;
|
|
156
161
|
return extracted;
|
|
157
162
|
},
|
|
158
|
-
update_media_buy(data) {
|
|
159
|
-
const { mediaBuyId, status } = readMediaBuyFields(data);
|
|
163
|
+
update_media_buy(data, adcpVersion) {
|
|
164
|
+
const { mediaBuyId, status } = readMediaBuyFields(data, adcpVersion);
|
|
160
165
|
const extracted = {};
|
|
161
166
|
if (mediaBuyId) extracted.media_buy_id = mediaBuyId;
|
|
162
167
|
if (status) extracted.media_buy_status = status;
|
|
@@ -348,11 +353,11 @@ const CONTEXT_EXTRACTORS = {
|
|
|
348
353
|
return extracted;
|
|
349
354
|
}
|
|
350
355
|
};
|
|
351
|
-
function extractContext(taskName, data) {
|
|
356
|
+
function extractContext(taskName, data, adcpVersion) {
|
|
352
357
|
const extractor = CONTEXT_EXTRACTORS[taskName];
|
|
353
358
|
if (!extractor) return {};
|
|
354
359
|
try {
|
|
355
|
-
return extractor(data);
|
|
360
|
+
return extractor(data, adcpVersion);
|
|
356
361
|
} catch {
|
|
357
362
|
return {};
|
|
358
363
|
}
|
|
@@ -449,8 +454,8 @@ function applyContextOutputs(data, outputs) {
|
|
|
449
454
|
}
|
|
450
455
|
return result;
|
|
451
456
|
}
|
|
452
|
-
function extractContextWithProvenance(taskName, data, stepId) {
|
|
453
|
-
const values = extractContext(taskName, data);
|
|
457
|
+
function extractContextWithProvenance(taskName, data, stepId, adcpVersion) {
|
|
458
|
+
const values = extractContext(taskName, data, adcpVersion);
|
|
454
459
|
const clearGroups = (() => {
|
|
455
460
|
const response = asRecord(data);
|
|
456
461
|
switch (taskName) {
|
|
@@ -34,6 +34,8 @@ export declare function signingProfileForAdcpVersion(version?: string): '3.2' |
|
|
|
34
34
|
export declare function loadRequestSigningVectors(options?: LoadVectorsOptions): LoadedVectors;
|
|
35
35
|
/** Load only the shared signing keyset, without requiring the grader vectors. */
|
|
36
36
|
export declare function loadRequestSigningKeys(options?: LoadVectorsOptions): TestKeyset;
|
|
37
|
+
/** Refresh only the signing fixtures belonging to a changed custom compliance root. */
|
|
38
|
+
export declare function invalidateRequestSigningVectorCache(complianceDir: string): void;
|
|
37
39
|
/** Test-only: clear the memoization cache so a fresh cache path is reread. */
|
|
38
40
|
export declare function __resetVectorCache(): void;
|
|
39
41
|
/** Where the A2A operation-resolution vectors came from. */
|
|
@@ -34,6 +34,8 @@ export declare function signingProfileForAdcpVersion(version?: string): '3.2' |
|
|
|
34
34
|
export declare function loadRequestSigningVectors(options?: LoadVectorsOptions): LoadedVectors;
|
|
35
35
|
/** Load only the shared signing keyset, without requiring the grader vectors. */
|
|
36
36
|
export declare function loadRequestSigningKeys(options?: LoadVectorsOptions): TestKeyset;
|
|
37
|
+
/** Refresh only the signing fixtures belonging to a changed custom compliance root. */
|
|
38
|
+
export declare function invalidateRequestSigningVectorCache(complianceDir: string): void;
|
|
37
39
|
/** Test-only: clear the memoization cache so a fresh cache path is reread. */
|
|
38
40
|
export declare function __resetVectorCache(): void;
|
|
39
41
|
/** Where the A2A operation-resolution vectors came from. */
|
|
@@ -22,6 +22,7 @@ __export(vector_loader_exports, {
|
|
|
22
22
|
A2A_VECTORS_UNAVAILABLE_MESSAGE: () => A2A_VECTORS_UNAVAILABLE_MESSAGE,
|
|
23
23
|
__resetVectorCache: () => __resetVectorCache,
|
|
24
24
|
findKey: () => findKey,
|
|
25
|
+
invalidateRequestSigningVectorCache: () => invalidateRequestSigningVectorCache,
|
|
25
26
|
loadA2aOperationResolutionVectors: () => loadA2aOperationResolutionVectors,
|
|
26
27
|
loadRequestSigningKeys: () => loadRequestSigningKeys,
|
|
27
28
|
loadRequestSigningVectors: () => loadRequestSigningVectors,
|
|
@@ -95,6 +96,15 @@ function loadRequestSigningKeys(options = {}) {
|
|
|
95
96
|
const cacheDir = (0, import_compliance.getComplianceCacheDir)(options);
|
|
96
97
|
return loadKeys((0, import_path.join)(cacheDir, "test-vectors", "request-signing", "keys.json"));
|
|
97
98
|
}
|
|
99
|
+
function invalidateRequestSigningVectorCache(complianceDir) {
|
|
100
|
+
const sourceDir = (0, import_path.resolve)(complianceDir, "test-vectors", "request-signing");
|
|
101
|
+
for (const key of VECTOR_CACHE.keys()) {
|
|
102
|
+
if ((0, import_path.resolve)(key) === sourceDir) VECTOR_CACHE.delete(key);
|
|
103
|
+
}
|
|
104
|
+
for (const key of A2A_VECTOR_CACHE.keys()) {
|
|
105
|
+
if ((0, import_path.resolve)(key) === (0, import_path.join)(sourceDir, "a2a")) A2A_VECTOR_CACHE.delete(key);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
98
108
|
function __resetVectorCache() {
|
|
99
109
|
VECTOR_CACHE.clear();
|
|
100
110
|
A2A_VECTOR_CACHE.clear();
|
|
@@ -384,6 +394,7 @@ function strArray(v, where) {
|
|
|
384
394
|
A2A_VECTORS_UNAVAILABLE_MESSAGE,
|
|
385
395
|
__resetVectorCache,
|
|
386
396
|
findKey,
|
|
397
|
+
invalidateRequestSigningVectorCache,
|
|
387
398
|
loadA2aOperationResolutionVectors,
|
|
388
399
|
loadRequestSigningKeys,
|
|
389
400
|
loadRequestSigningVectors,
|
|
@@ -69,6 +69,15 @@ function loadRequestSigningKeys(options = {}) {
|
|
|
69
69
|
const cacheDir = getComplianceCacheDir(options);
|
|
70
70
|
return loadKeys(join(cacheDir, "test-vectors", "request-signing", "keys.json"));
|
|
71
71
|
}
|
|
72
|
+
function invalidateRequestSigningVectorCache(complianceDir) {
|
|
73
|
+
const sourceDir = resolve(complianceDir, "test-vectors", "request-signing");
|
|
74
|
+
for (const key of VECTOR_CACHE.keys()) {
|
|
75
|
+
if (resolve(key) === sourceDir) VECTOR_CACHE.delete(key);
|
|
76
|
+
}
|
|
77
|
+
for (const key of A2A_VECTOR_CACHE.keys()) {
|
|
78
|
+
if (resolve(key) === join(sourceDir, "a2a")) A2A_VECTOR_CACHE.delete(key);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
72
81
|
function __resetVectorCache() {
|
|
73
82
|
VECTOR_CACHE.clear();
|
|
74
83
|
A2A_VECTOR_CACHE.clear();
|
|
@@ -357,6 +366,7 @@ export {
|
|
|
357
366
|
A2A_VECTORS_UNAVAILABLE_MESSAGE,
|
|
358
367
|
__resetVectorCache,
|
|
359
368
|
findKey,
|
|
369
|
+
invalidateRequestSigningVectorCache,
|
|
360
370
|
loadA2aOperationResolutionVectors,
|
|
361
371
|
loadRequestSigningKeys,
|
|
362
372
|
loadRequestSigningVectors,
|
|
@@ -684,7 +684,7 @@ function remapTaskCompletionOutputs(outputs) {
|
|
|
684
684
|
return o;
|
|
685
685
|
});
|
|
686
686
|
}
|
|
687
|
-
async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhookReceiver, originatingTaskName) {
|
|
687
|
+
async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhookReceiver, originatingTaskName, responseAdcpVersion) {
|
|
688
688
|
const hasTaskCompletionPath = outputs.some(
|
|
689
689
|
(o) => typeof o.path === "string" && o.path.startsWith(TASK_COMPLETION_PATH_PREFIX)
|
|
690
690
|
);
|
|
@@ -737,7 +737,10 @@ async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhook
|
|
|
737
737
|
if (winner.kind === "poll") {
|
|
738
738
|
const polled = winner.result;
|
|
739
739
|
if (polled.success === false) return { attempted: true, taskFailed: true };
|
|
740
|
-
return {
|
|
740
|
+
return {
|
|
741
|
+
attempted: true,
|
|
742
|
+
data: normalizeTaskCompletionData(polled.data, originatingTaskName, responseAdcpVersion)
|
|
743
|
+
};
|
|
741
744
|
}
|
|
742
745
|
const waitResult = winner.result;
|
|
743
746
|
if (waitResult.timed_out) {
|
|
@@ -745,7 +748,10 @@ async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhook
|
|
|
745
748
|
}
|
|
746
749
|
const webhookBody = waitResult.webhook.body;
|
|
747
750
|
if (webhookBody?.status === "completed") {
|
|
748
|
-
return {
|
|
751
|
+
return {
|
|
752
|
+
attempted: true,
|
|
753
|
+
data: normalizeTaskCompletionData(webhookBody.result, originatingTaskName, responseAdcpVersion)
|
|
754
|
+
};
|
|
749
755
|
}
|
|
750
756
|
return { attempted: true, taskFailed: true };
|
|
751
757
|
} catch {
|
|
@@ -754,18 +760,19 @@ async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhook
|
|
|
754
760
|
if (timer) clearTimeout(timer);
|
|
755
761
|
}
|
|
756
762
|
}
|
|
757
|
-
function normalizeTaskCompletionData(data, taskName) {
|
|
763
|
+
function normalizeTaskCompletionData(data, taskName, adcpVersion) {
|
|
758
764
|
if (data == null || typeof data !== "object" || Array.isArray(data)) return data;
|
|
759
765
|
const original = data;
|
|
760
|
-
const
|
|
766
|
+
const compatOptions = { toolName: taskName, adcpVersion };
|
|
767
|
+
const compat = (0, import_envelope_status_compat.injectLegacyEnvelopeStatus)(original, compatOptions);
|
|
761
768
|
if (!("status" in original) && "status" in compat) {
|
|
762
769
|
const { status: _status, ...rest } = compat;
|
|
763
|
-
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)(rest,
|
|
770
|
+
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)(rest, compatOptions);
|
|
764
771
|
}
|
|
765
772
|
if ((taskName === "create_media_buy" || taskName === "update_media_buy") && typeof original.status === "string" && compat.status === "completed" && typeof compat.media_buy_status === "string") {
|
|
766
|
-
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)({ ...compat, status: original.status },
|
|
773
|
+
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)({ ...compat, status: original.status }, compatOptions);
|
|
767
774
|
}
|
|
768
|
-
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)(compat,
|
|
775
|
+
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)(compat, compatOptions);
|
|
769
776
|
}
|
|
770
777
|
function readEnvIntOrDefault(value, fallback) {
|
|
771
778
|
if (!value) return fallback;
|
|
@@ -1903,9 +1910,10 @@ async function prepareStoryboardFixturesBody(agentUrl, storyboard, options) {
|
|
|
1903
1910
|
options = snapshotPreparationOptions(options);
|
|
1904
1911
|
}
|
|
1905
1912
|
const callerOwnsClients = (0, import_client.hasTestClientScope)();
|
|
1906
|
-
const
|
|
1913
|
+
const runOptions = options;
|
|
1914
|
+
const preparationOptions = resolvePreparationRouteOptions(agentUrls[0], runOptions);
|
|
1907
1915
|
const resolution = (0, import_client.getOrCreateClientResolution)(agentUrls[0], preparationOptions);
|
|
1908
|
-
|
|
1916
|
+
let client = resolution.client;
|
|
1909
1917
|
const finishPreparation = (seeding, disposition) => {
|
|
1910
1918
|
if (!scopeStillMatches()) {
|
|
1911
1919
|
return refusePreparation(driftRefusal, seeding ?? void 0);
|
|
@@ -1915,6 +1923,45 @@ async function prepareStoryboardFixturesBody(agentUrl, storyboard, options) {
|
|
|
1915
1923
|
options = preparationOptions;
|
|
1916
1924
|
try {
|
|
1917
1925
|
let profile = options._profile;
|
|
1926
|
+
let discoveryStep;
|
|
1927
|
+
let routingContext;
|
|
1928
|
+
const failDiscovery = (step, failedProfile) => {
|
|
1929
|
+
const failed = buildDiscoveryFailedResult(agentUrls, storyboard, step, failedProfile);
|
|
1930
|
+
return finishPreparation(
|
|
1931
|
+
{ phase: failed.phases[0], allPassed: false, passedCount: 0, failedCount: 1 },
|
|
1932
|
+
{ status: "failed", detail: step.error ?? "agent discovery failed before fixture preparation" }
|
|
1933
|
+
);
|
|
1934
|
+
};
|
|
1935
|
+
if (runOptions.agents && (storyboardCapabilityPredicates(storyboard).length > 0 || storyboard.required_tools?.length || storyboard.required_any_of_tools?.length)) {
|
|
1936
|
+
try {
|
|
1937
|
+
validateAgentsMap(agentUrl, storyboard, runOptions);
|
|
1938
|
+
routingContext = await (0, import_agent_routing.buildRoutingContext)(storyboard, { ...runOptions, discovery_resilient: false });
|
|
1939
|
+
} catch (error) {
|
|
1940
|
+
const failedStep = error instanceof import_agent_routing.DiscoveryFailure ? error.step : void 0;
|
|
1941
|
+
return await failDiscovery({
|
|
1942
|
+
...failedStep,
|
|
1943
|
+
step: failedStep?.step ?? "Discover preparation topology",
|
|
1944
|
+
passed: false,
|
|
1945
|
+
duration_ms: failedStep?.duration_ms ?? 0,
|
|
1946
|
+
error: (0, import_oauth_metadata_graph.redactOAuthUrlsInText)(
|
|
1947
|
+
error instanceof import_agent_routing.DiscoveryFailure ? `Discovery failed for agent "${error.agentKey}" (${(0, import_oauth_metadata_graph.redactOAuthUrlForOutput)(error.url)}): ${error.underlying}` : error instanceof Error ? error.message : String(error)
|
|
1948
|
+
)
|
|
1949
|
+
});
|
|
1950
|
+
}
|
|
1951
|
+
for (const routeProfile of routingContext.profiles.values()) {
|
|
1952
|
+
const failure = (0, import_client.describeProfileDiscoveryFailure)(
|
|
1953
|
+
routeProfile,
|
|
1954
|
+
runOptions._requireValidCapabilityEvidence === true,
|
|
1955
|
+
runOptions._allowCapabilityDiagnostic === true
|
|
1956
|
+
);
|
|
1957
|
+
if (failure) return await failDiscovery(failure, routeProfile);
|
|
1958
|
+
}
|
|
1959
|
+
const firstKey = Object.keys(runOptions.agents)[0];
|
|
1960
|
+
profile = routingContext.profiles.get(firstKey);
|
|
1961
|
+
client = routingContext.clients.get(firstKey);
|
|
1962
|
+
discoveryStep = routingContext.discoverySteps?.get(firstKey);
|
|
1963
|
+
options = { ...options, _profile: profile, agentTools: (0, import_agent_routing.normalizeAgentToolNames)(profile.tools) };
|
|
1964
|
+
}
|
|
1918
1965
|
const suppliedFailure = profile && (0, import_client.describeProfileDiscoveryFailure)(
|
|
1919
1966
|
profile,
|
|
1920
1967
|
options._requireValidCapabilityEvidence === true,
|
|
@@ -1927,8 +1974,9 @@ async function prepareStoryboardFixturesBody(agentUrl, storyboard, options) {
|
|
|
1927
1974
|
{ status: "failed", detail: suppliedFailure.error ?? "agent discovery failed" }
|
|
1928
1975
|
);
|
|
1929
1976
|
}
|
|
1930
|
-
if (!profile
|
|
1977
|
+
if (!profile) {
|
|
1931
1978
|
const discovered = await (0, import_client.getOrDiscoverStoryboardProfile)(client, options);
|
|
1979
|
+
discoveryStep = discovered.evidence ?? discovered.step;
|
|
1932
1980
|
if (discovered.step.passed === false) {
|
|
1933
1981
|
const failed = buildDiscoveryFailedResult(agentUrls, storyboard, discovered.step, discovered.profile);
|
|
1934
1982
|
return await finishPreparation(
|
|
@@ -1949,6 +1997,80 @@ async function prepareStoryboardFixturesBody(agentUrl, storyboard, options) {
|
|
|
1949
1997
|
};
|
|
1950
1998
|
}
|
|
1951
1999
|
if (!scopeStillMatches()) return await refusePreparation(driftRefusal);
|
|
2000
|
+
let capabilityUnmet;
|
|
2001
|
+
const applicabilityTools = routingContext ? [...new Set([...routingContext.profiles.values()].flatMap((p) => (0, import_agent_routing.normalizeAgentToolNames)(p.tools) ?? []))] : options.agentTools;
|
|
2002
|
+
try {
|
|
2003
|
+
if (routingContext && runOptions.agents) {
|
|
2004
|
+
const dispatch = createRoutingDispatcher(routingContext, runOptions, runOptions.agents);
|
|
2005
|
+
const defaultProfile = runOptions.default_agent ? routingContext.profiles.get(runOptions.default_agent) : void 0;
|
|
2006
|
+
const rootDetails = storyboard.phases.flatMap(
|
|
2007
|
+
(phase) => phase.steps.filter((step) => step.task !== import_loader.VALIDATION_ONLY_TASK).map((step) => {
|
|
2008
|
+
const selected = dispatch.nextFor(step);
|
|
2009
|
+
const owner = runOptions.default_agent ? defaultProfile : selected.profile;
|
|
2010
|
+
return evaluateStoryboardCapabilityGates(
|
|
2011
|
+
storyboard,
|
|
2012
|
+
owner,
|
|
2013
|
+
(0, import_agent_routing.normalizeAgentToolNames)(owner?.tools),
|
|
2014
|
+
runOptions.adcpVersion
|
|
2015
|
+
);
|
|
2016
|
+
})
|
|
2017
|
+
);
|
|
2018
|
+
capabilityUnmet = rootDetails.length > 0 && rootDetails.every((detail) => detail !== null) ? rootDetails[0] : null;
|
|
2019
|
+
} else {
|
|
2020
|
+
capabilityUnmet = evaluateStoryboardCapabilityGates(
|
|
2021
|
+
storyboard,
|
|
2022
|
+
profile,
|
|
2023
|
+
options.agentTools,
|
|
2024
|
+
options.adcpVersion
|
|
2025
|
+
);
|
|
2026
|
+
}
|
|
2027
|
+
} catch (error) {
|
|
2028
|
+
return await failDiscovery({
|
|
2029
|
+
step: "Resolve preparation routes",
|
|
2030
|
+
passed: false,
|
|
2031
|
+
duration_ms: 0,
|
|
2032
|
+
error: (0, import_oauth_metadata_graph.redactOAuthUrlsInText)(error instanceof Error ? error.message : String(error))
|
|
2033
|
+
});
|
|
2034
|
+
}
|
|
2035
|
+
const missingFamily = applicabilityTools && storyboard.required_any_of_tools?.find((family) => !(0, import_agent_routing.hasAnyRequiredTool)(family.tools, applicabilityTools));
|
|
2036
|
+
const unmetDetail = capabilityUnmet ?? (missingFamily ? `missing_required_tool_family: needs ${missingFamily.tools.join(" or ")}` + (missingFamily.rationale ? ` (${missingFamily.rationale})` : "") : null) ?? (storyboard.required_tools?.length && applicabilityTools && !(0, import_agent_routing.hasAnyRequiredTool)(storyboard.required_tools, applicabilityTools) ? `agent does not advertise any of [${storyboard.required_tools.join(", ")}]` : null);
|
|
2037
|
+
if (unmetDetail !== null) {
|
|
2038
|
+
const observations = routingContext && runOptions.agents ? Object.entries(runOptions.agents).map(([key, entry]) => ({
|
|
2039
|
+
key,
|
|
2040
|
+
url: entry.url,
|
|
2041
|
+
step: routingContext.discoverySteps?.get(key)
|
|
2042
|
+
})) : [{ key: "discovery", url: agentUrls[0], step: discoveryStep }];
|
|
2043
|
+
const steps = observations.map(({ key, url, step }) => ({
|
|
2044
|
+
storyboard_id: storyboard.id,
|
|
2045
|
+
phase_id: "discovery",
|
|
2046
|
+
step_id: key,
|
|
2047
|
+
title: step ? "Agent capability discovery" : "Supplied agent capability profile",
|
|
2048
|
+
task: step?.task ?? "",
|
|
2049
|
+
passed: true,
|
|
2050
|
+
duration_ms: step?.duration_ms ?? 0,
|
|
2051
|
+
validations: [],
|
|
2052
|
+
context: {},
|
|
2053
|
+
...routingContext && { agent_url: (0, import_oauth_metadata_graph.redactOAuthUrlForOutput)(url) },
|
|
2054
|
+
extraction: step?.extraction ?? { path: "none" },
|
|
2055
|
+
...step?.request && { request: step.request },
|
|
2056
|
+
...step?.response_record && { response_record: step.response_record }
|
|
2057
|
+
}));
|
|
2058
|
+
return await finishPreparation(
|
|
2059
|
+
{
|
|
2060
|
+
phase: {
|
|
2061
|
+
phase_id: "discovery",
|
|
2062
|
+
phase_title: "Agent capability discovery",
|
|
2063
|
+
passed: true,
|
|
2064
|
+
duration_ms: steps.reduce((total, step) => total + step.duration_ms, 0),
|
|
2065
|
+
steps
|
|
2066
|
+
},
|
|
2067
|
+
allPassed: true,
|
|
2068
|
+
passedCount: steps.length,
|
|
2069
|
+
failedCount: 0
|
|
2070
|
+
},
|
|
2071
|
+
{ status: "unsupported", reason: "not_applicable", detail: unmetDetail }
|
|
2072
|
+
);
|
|
2073
|
+
}
|
|
1952
2074
|
const context = createRunContext(storyboard, options).context;
|
|
1953
2075
|
const seeding = await (0, import_seeding.runControllerSeeding)(client, storyboard, options, context);
|
|
1954
2076
|
if (!seeding) {
|
|
@@ -5841,7 +5963,12 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
|
|
|
5841
5963
|
};
|
|
5842
5964
|
const hasData = taskResult?.data !== void 0 && taskResult?.data !== null;
|
|
5843
5965
|
if (passed && hasData && taskResult && !(effectiveStep.task === "sync_accounts" && request.dry_run === true)) {
|
|
5844
|
-
const extracted = (0, import_context.extractContextWithProvenance)(
|
|
5966
|
+
const extracted = (0, import_context.extractContextWithProvenance)(
|
|
5967
|
+
effectiveStep.task,
|
|
5968
|
+
taskResult.data,
|
|
5969
|
+
step.id,
|
|
5970
|
+
options._serverAdcpVersion ?? options.adcpVersion
|
|
5971
|
+
);
|
|
5845
5972
|
const conventionUnset = [];
|
|
5846
5973
|
for (const group of extracted.clearGroups ?? []) {
|
|
5847
5974
|
if (group.when && !group.when.values.includes(updatedContext[group.when.key])) continue;
|
|
@@ -5872,7 +5999,8 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
|
|
|
5872
5999
|
step.context_outputs,
|
|
5873
6000
|
client,
|
|
5874
6001
|
runState.webhookReceiver,
|
|
5875
|
-
effectiveStep.task
|
|
6002
|
+
effectiveStep.task,
|
|
6003
|
+
options._serverAdcpVersion ?? options.adcpVersion
|
|
5876
6004
|
);
|
|
5877
6005
|
const extractionData = "data" in taskCompletionResolution ? taskCompletionResolution.data : hasData && taskResult ? taskResult.data : void 0;
|
|
5878
6006
|
const remappedOutputs = remapTaskCompletionOutputs(step.context_outputs);
|