@adcp/sdk 6.4.1 → 6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/adcp.js +99 -0
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +31 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/mock-server/creative-template/seed-data.d.ts +45 -0
- package/dist/lib/mock-server/creative-template/seed-data.d.ts.map +1 -0
- package/dist/lib/mock-server/creative-template/seed-data.js +149 -0
- package/dist/lib/mock-server/creative-template/seed-data.js.map +1 -0
- package/dist/lib/mock-server/creative-template/server.d.ts +13 -0
- package/dist/lib/mock-server/creative-template/server.d.ts.map +1 -0
- package/dist/lib/mock-server/creative-template/server.js +280 -0
- package/dist/lib/mock-server/creative-template/server.js.map +1 -0
- package/dist/lib/mock-server/index.d.ts +38 -0
- package/dist/lib/mock-server/index.d.ts.map +1 -0
- package/dist/lib/mock-server/index.js +107 -0
- package/dist/lib/mock-server/index.js.map +1 -0
- package/dist/lib/mock-server/signal-marketplace/seed-data.d.ts +77 -0
- package/dist/lib/mock-server/signal-marketplace/seed-data.d.ts.map +1 -0
- package/dist/lib/mock-server/signal-marketplace/seed-data.js +194 -0
- package/dist/lib/mock-server/signal-marketplace/seed-data.js.map +1 -0
- package/dist/lib/mock-server/signal-marketplace/server.d.ts +15 -0
- package/dist/lib/mock-server/signal-marketplace/server.d.ts.map +1 -0
- package/dist/lib/mock-server/signal-marketplace/server.js +333 -0
- package/dist/lib/mock-server/signal-marketplace/server.js.map +1 -0
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/decisioning/capabilities.d.ts +7 -2
- package/dist/lib/server/decisioning/capabilities.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +144 -2
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/testing/storyboard/assertions.d.ts +1 -19
- package/dist/lib/testing/storyboard/assertions.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/assertions.js.map +1 -1
- package/dist/lib/testing/storyboard/loader.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/loader.js +38 -0
- package/dist/lib/testing/storyboard/loader.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +67 -68
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/testing/storyboard/types.d.ts +33 -0
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/types.js.map +1 -1
- package/dist/lib/utils/capabilities.d.ts +22 -0
- package/dist/lib/utils/capabilities.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.js +44 -0
- package/dist/lib/utils/capabilities.js.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/assertions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;
|
|
1
|
+
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/assertions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,qBAAsB,CAAC;AAExD,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAuB/D;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,qBAAsB,CAAC;AAExD,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAuB/D;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAYpE"}
|
|
@@ -60,6 +60,7 @@ function loadStoryboardFile(filePath) {
|
|
|
60
60
|
* `contributes_to`) and is idempotent on already-validated inputs.
|
|
61
61
|
*/
|
|
62
62
|
function validateStoryboardShape(storyboard) {
|
|
63
|
+
validatePhaseDependsOn(storyboard);
|
|
63
64
|
for (const phase of storyboard.phases) {
|
|
64
65
|
validateBranchSet(storyboard.id, phase);
|
|
65
66
|
if (!phase.steps)
|
|
@@ -72,6 +73,43 @@ function validateStoryboardShape(storyboard) {
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Authoring-time validation for `phase.depends_on` (#1161). Each entry
|
|
78
|
+
* must reference a phase declared earlier in the storyboard. Forward
|
|
79
|
+
* references and self-references fail loud at parse time so authoring
|
|
80
|
+
* mistakes (typos, reorderings) don't degrade silently into "phase
|
|
81
|
+
* always runs" / "phase always cascades."
|
|
82
|
+
*
|
|
83
|
+
* Rules:
|
|
84
|
+
* - Empty list (`depends_on: []`) is legal — it declares an
|
|
85
|
+
* independent phase. No further validation needed.
|
|
86
|
+
* - Each non-empty entry must be a non-empty string.
|
|
87
|
+
* - Each entry must reference a phase that appears EARLIER in the
|
|
88
|
+
* `storyboard.phases[]` array (forward references are rejected).
|
|
89
|
+
* - A phase cannot depend on itself.
|
|
90
|
+
*/
|
|
91
|
+
function validatePhaseDependsOn(storyboard) {
|
|
92
|
+
const phaseIdsSeen = new Set();
|
|
93
|
+
for (const phase of storyboard.phases) {
|
|
94
|
+
if (phase.depends_on !== undefined) {
|
|
95
|
+
if (!Array.isArray(phase.depends_on)) {
|
|
96
|
+
throw new Error(`[${storyboard.id}] phase '${phase.id}': depends_on must be an array of phase ids`);
|
|
97
|
+
}
|
|
98
|
+
for (const dep of phase.depends_on) {
|
|
99
|
+
if (typeof dep !== 'string' || dep.length === 0) {
|
|
100
|
+
throw new Error(`[${storyboard.id}] phase '${phase.id}': depends_on entries must be non-empty strings`);
|
|
101
|
+
}
|
|
102
|
+
if (dep === phase.id) {
|
|
103
|
+
throw new Error(`[${storyboard.id}] phase '${phase.id}': depends_on cannot reference itself`);
|
|
104
|
+
}
|
|
105
|
+
if (!phaseIdsSeen.has(dep)) {
|
|
106
|
+
throw new Error(`[${storyboard.id}] phase '${phase.id}': depends_on '${dep}' is not a phase declared earlier in this storyboard (forward and unknown references are rejected)`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
phaseIdsSeen.add(phase.id);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
75
113
|
/**
|
|
76
114
|
* Issue #820: mutating tasks (per {@link MUTATING_TASKS}) must have a
|
|
77
115
|
* `sample_request` authored. The fixture is authoritative at run time —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/loader.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAeH,0CAuBC;AAGD,gDAEC;AAUD,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmDH,OAAO,KAAK,EAYV,UAAU,EACV,cAAc,EAEd,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAEhB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAA4B,cAAc,EAAE,MAAM,UAAU,CAAC;AAwCzE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAQ/E;AAkKD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEpC;AAED,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEpC;AAiDD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,EACjC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAuC3B;AA4DD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,cAAc,GAC5B,gBAAgB,CA6ClB;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmDH,OAAO,KAAK,EAYV,UAAU,EACV,cAAc,EAEd,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAEhB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAA4B,cAAc,EAAE,MAAM,UAAU,CAAC;AAwCzE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAQ/E;AAkKD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEpC;AAED,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEpC;AAiDD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,EACjC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAuC3B;AA4DD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,cAAc,GAC5B,gBAAgB,CA6ClB;AA4jCD;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,qBAAqB,EAAE,GAC9B,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAAC,CA0B9G;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,uBAAuB,CA4BlG;AAMD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAsE/B;AA89BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwCzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AA8OD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,iBAAsB,GAC9B,qBAAqB,GAAG,SAAS,CAgBnC"}
|
|
@@ -628,19 +628,26 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
628
628
|
let passedCount = 0;
|
|
629
629
|
let failedCount = 0;
|
|
630
630
|
let skippedCount = 0;
|
|
631
|
-
|
|
632
|
-
//
|
|
633
|
-
//
|
|
634
|
-
//
|
|
635
|
-
|
|
636
|
-
//
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
631
|
+
const phaseStatefulCascades = new Map();
|
|
632
|
+
// Phase IDs in declaration order, accumulated as we iterate so the
|
|
633
|
+
// default `depends_on` resolution ("all prior phases") doesn't re-scan
|
|
634
|
+
// the storyboard. Phases push their own id at end-of-phase.
|
|
635
|
+
const priorPhaseIds = [];
|
|
636
|
+
// Helpers for per-phase cascade state.
|
|
637
|
+
const effectiveDependsOn = (phase, prior) => phase.depends_on ?? prior;
|
|
638
|
+
const cascadeForPhase = (phase, prior) => {
|
|
639
|
+
// Within-phase cascade always counts — stateful steps later in this
|
|
640
|
+
// phase depend on state from stateful steps earlier in this phase.
|
|
641
|
+
if (phaseStatefulCascades.has(phase.id)) {
|
|
642
|
+
return { tripped: true, trigger: phaseStatefulCascades.get(phase.id) ?? null };
|
|
643
|
+
}
|
|
644
|
+
for (const depId of effectiveDependsOn(phase, prior)) {
|
|
645
|
+
if (phaseStatefulCascades.has(depId)) {
|
|
646
|
+
return { tripped: true, trigger: phaseStatefulCascades.get(depId) ?? null };
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
return { tripped: false };
|
|
650
|
+
};
|
|
644
651
|
// Step results whose failures the main loop added to failedCount. The
|
|
645
652
|
// branch-set post-pass decrements only for entries that were actually
|
|
646
653
|
// counted, so an optional phase that hit `presenceDetected` (a PRM 2xx
|
|
@@ -940,12 +947,18 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
940
947
|
// reason is `missing_tool` (a benign, passed: true skip) —
|
|
941
948
|
// not `prerequisite_failed` (a failed skip). This distinguishes
|
|
942
949
|
// "this agent has a real setup bug" from "this agent doesn't
|
|
943
|
-
// claim this surface, by design" (adcp-client#1169).
|
|
950
|
+
// claim this surface, by design" (adcp-client#1169 / #1171).
|
|
944
951
|
//
|
|
945
952
|
// Uses resolveTaskName so that $test_kit.* steps are checked
|
|
946
953
|
// against the resolved concrete task name, not the template
|
|
947
954
|
// string (which would never be in agentTools).
|
|
948
|
-
|
|
955
|
+
//
|
|
956
|
+
// Per-phase cascade scoping (#1161): consults `phase.depends_on`
|
|
957
|
+
// (default: all prior phases) plus the current phase's own
|
|
958
|
+
// within-phase cascade state. Replaces the storyboard-scope
|
|
959
|
+
// `statefulFailed` boolean.
|
|
960
|
+
const cascade = step.stateful ? cascadeForPhase(phase, priorPhaseIds) : { tripped: false };
|
|
961
|
+
if (cascade.tripped && step.stateful) {
|
|
949
962
|
const resolvedTask = resolveTaskName(step, options);
|
|
950
963
|
if (options.agentTools && resolvedTask && !options.agentTools.includes(resolvedTask)) {
|
|
951
964
|
const toolDetail = `Agent did not advertise tool "${resolvedTask}"; agent tools: [${options.agentTools.join(', ')}].`;
|
|
@@ -969,10 +982,11 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
969
982
|
skippedCount++;
|
|
970
983
|
continue;
|
|
971
984
|
}
|
|
972
|
-
const
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
985
|
+
const trigger = cascade.trigger;
|
|
986
|
+
const detail = trigger
|
|
987
|
+
? trigger.substitution_chain
|
|
988
|
+
? `Skipped: prior stateful step "${trigger.stepId}" skipped (${trigger.reason}); ${trigger.substitution_chain}; state never materialized.`
|
|
989
|
+
: `Skipped: prior stateful step "${trigger.stepId}" skipped (${trigger.reason}); state never materialized.`
|
|
976
990
|
: 'Skipped: prior stateful step failed.';
|
|
977
991
|
stepResults.push({
|
|
978
992
|
storyboard_id: storyboard.id,
|
|
@@ -1013,17 +1027,6 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1013
1027
|
}
|
|
1014
1028
|
stepResults.push(result);
|
|
1015
1029
|
priorStepResults.set(step.id, result);
|
|
1016
|
-
// Thread accumulated cross-step context into each assertion context
|
|
1017
|
-
// before onStep fires. `context` here is the accumulated state from
|
|
1018
|
-
// all prior steps (updated at the bottom of this loop); assertions
|
|
1019
|
-
// read it via ctx.storyboardContext to implement cross-step comparison
|
|
1020
|
-
// validators (adcp-client#1140, Option 2 / context-outputs style).
|
|
1021
|
-
// Each assertion gets its own shallow copy so a mutating handler
|
|
1022
|
-
// doesn't corrupt the view seen by subsequent assertions in the same
|
|
1023
|
-
// step, or the live accumulator seen by subsequent steps.
|
|
1024
|
-
for (const spec of assertions) {
|
|
1025
|
-
assertionContexts.get(spec.id).storyboardContext = { ...context };
|
|
1026
|
-
}
|
|
1027
1030
|
// Fire per-step assertions. Each result is appended to the step's
|
|
1028
1031
|
// `validations[]` under `check: "assertion"` so existing UI renders
|
|
1029
1032
|
// them alongside inline checks, and mirrored into `assertionResults`
|
|
@@ -1129,13 +1132,15 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1129
1132
|
}
|
|
1130
1133
|
}
|
|
1131
1134
|
else {
|
|
1132
|
-
|
|
1133
|
-
//
|
|
1134
|
-
//
|
|
1135
|
-
// text references the originating diagnostic (the leftmost
|
|
1135
|
+
// Trip this phase's cascade. First trip wins — subsequent
|
|
1136
|
+
// triggers don't overwrite, since the cascade text
|
|
1137
|
+
// references the originating diagnostic (the leftmost
|
|
1136
1138
|
// missing-state stateful step in the phase).
|
|
1137
|
-
if (
|
|
1138
|
-
|
|
1139
|
+
if (!phaseStatefulCascades.has(phase.id)) {
|
|
1140
|
+
phaseStatefulCascades.set(phase.id, {
|
|
1141
|
+
stepId: step.id,
|
|
1142
|
+
reason: result.skip_reason ?? 'missing_tool',
|
|
1143
|
+
});
|
|
1139
1144
|
}
|
|
1140
1145
|
}
|
|
1141
1146
|
}
|
|
@@ -1199,13 +1204,13 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1199
1204
|
countedAsFailed.add(result);
|
|
1200
1205
|
}
|
|
1201
1206
|
if (step.stateful) {
|
|
1202
|
-
statefulFailed = true;
|
|
1203
1207
|
// Real failure takes precedence over a prior skip-trigger in
|
|
1204
1208
|
// the cascade detail message — failures are the worse
|
|
1205
1209
|
// diagnostic, so downstream cascade-skipped steps should
|
|
1206
1210
|
// reference the failure rather than the earlier benign-ish
|
|
1207
|
-
// missing-state skip.
|
|
1208
|
-
|
|
1211
|
+
// missing-state skip. `null` trigger encodes "real failure,
|
|
1212
|
+
// detail says 'prior stateful step failed'."
|
|
1213
|
+
phaseStatefulCascades.set(phase.id, null);
|
|
1209
1214
|
}
|
|
1210
1215
|
// In multi-instance mode, annotate the failure with the cross-instance
|
|
1211
1216
|
// attribution block so CI readers pattern-match it as a deployment bug.
|
|
@@ -1221,25 +1226,22 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1221
1226
|
//
|
|
1222
1227
|
// Cascade fires ONLY when there was at least one other stateful step in
|
|
1223
1228
|
// the phase that could have served as a substitute — i.e. the phase had
|
|
1224
|
-
// peer steps, but none of them established state. A peer that
|
|
1225
|
-
// (e.g. `list_accounts` substituting for an explicit-mode
|
|
1226
|
-
// cancels the trigger entirely. A peer that *failed*
|
|
1227
|
-
//
|
|
1228
|
-
// failure message; we defer to that and don't
|
|
1229
|
+
// peer steps, but none of them established state (#1146). A peer that
|
|
1230
|
+
// passed (e.g. `list_accounts` substituting for an explicit-mode
|
|
1231
|
+
// `sync_accounts`) cancels the trigger entirely. A peer that *failed*
|
|
1232
|
+
// already tripped this phase's cascade at the failure site with the
|
|
1233
|
+
// worse-diagnostic real-failure message; we defer to that and don't
|
|
1234
|
+
// overwrite.
|
|
1229
1235
|
//
|
|
1230
1236
|
// When the not_applicable step was the SOLE stateful step in the phase
|
|
1231
1237
|
// (no peers existed at all), the cascade does NOT fire. That platform
|
|
1232
1238
|
// simply doesn't use this sync pathway — which is valid. Cascading on a
|
|
1233
|
-
// sole not_applicable would incorrectly penalise adapters
|
|
1234
|
-
//
|
|
1235
|
-
|
|
1236
|
-
if (phasePendingNotApplicable && !phaseEstablishedStatefulState && !statefulFailed) {
|
|
1239
|
+
// sole not_applicable would incorrectly penalise adapters that manage
|
|
1240
|
+
// state implicitly and have no list_accounts peer (adcp-client#1146).
|
|
1241
|
+
if (phasePendingNotApplicable && !phaseEstablishedStatefulState && !phaseStatefulCascades.has(phase.id)) {
|
|
1237
1242
|
const hadStatefulPeers = phaseStatefulStepIds.some(id => id !== phasePendingNotApplicable.stepId);
|
|
1238
1243
|
if (hadStatefulPeers) {
|
|
1239
|
-
|
|
1240
|
-
if (statefulSkipTrigger === null) {
|
|
1241
|
-
statefulSkipTrigger = phasePendingNotApplicable;
|
|
1242
|
-
}
|
|
1244
|
+
phaseStatefulCascades.set(phase.id, phasePendingNotApplicable);
|
|
1243
1245
|
}
|
|
1244
1246
|
}
|
|
1245
1247
|
// Phase-end cascade resolution for deferred `missing_tool` triggers
|
|
@@ -1250,17 +1252,16 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1250
1252
|
// hard cascade with a detail message that names the substitute(s)
|
|
1251
1253
|
// tried so adopters reading the report see the substitution chain
|
|
1252
1254
|
// rather than a bare `missing_tool` cascade origin.
|
|
1253
|
-
if (phasePendingMissingTool &&
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
}
|
|
1255
|
+
if (phasePendingMissingTool &&
|
|
1256
|
+
!phaseRescuedTargets.has(phasePendingMissingTool.stepId) &&
|
|
1257
|
+
!phaseStatefulCascades.has(phase.id)) {
|
|
1258
|
+
const subs = phasePendingMissingTool.substitutes;
|
|
1259
|
+
const subsList = subs.length === 1 ? `"${subs[0]}"` : subs.map(s => `"${s}"`).join(', ');
|
|
1260
|
+
phaseStatefulCascades.set(phase.id, {
|
|
1261
|
+
stepId: phasePendingMissingTool.stepId,
|
|
1262
|
+
reason: phasePendingMissingTool.reason,
|
|
1263
|
+
substitution_chain: `declared substitute ${subsList} did not pass`,
|
|
1264
|
+
});
|
|
1264
1265
|
}
|
|
1265
1266
|
phaseResults.push({
|
|
1266
1267
|
phase_id: phase.id,
|
|
@@ -1269,6 +1270,9 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1269
1270
|
steps: stepResults,
|
|
1270
1271
|
duration_ms: Date.now() - phaseStart,
|
|
1271
1272
|
});
|
|
1273
|
+
// Accumulate phase id for default `depends_on` resolution in the next
|
|
1274
|
+
// iteration — phases declared later see this one as a prior phase.
|
|
1275
|
+
priorPhaseIds.push(phase.id);
|
|
1272
1276
|
}
|
|
1273
1277
|
// Branch-set post-pass: phases in a branch set (explicit `branch_set:`
|
|
1274
1278
|
// declaration or implicit detection via shared `contributes_to` + a later
|
|
@@ -1283,11 +1287,6 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1283
1287
|
const branchSetsByPhaseId = resolveBranchSets(storyboard);
|
|
1284
1288
|
const branchSetDelta = applyBranchSetGrading(storyboard.phases, phaseResults, branchSetsByPhaseId, contributions, contributionSources, countedAsFailed);
|
|
1285
1289
|
skippedCount += branchSetDelta.skippedDelta;
|
|
1286
|
-
// Update assertion contexts with the final accumulated context so onEnd
|
|
1287
|
-
// handlers see the full run's context (not just through the penultimate step).
|
|
1288
|
-
for (const spec of assertions) {
|
|
1289
|
-
assertionContexts.get(spec.id).storyboardContext = { ...context };
|
|
1290
|
-
}
|
|
1291
1290
|
// Fire storyboard-scoped assertions. These observe the full run and can
|
|
1292
1291
|
// emit `scope: "storyboard"` findings that flip `overall_passed` without
|
|
1293
1292
|
// being attributable to a single step (e.g. "saw >1 acquire for the same
|