@qaick/executor 0.4.0 → 0.4.1
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/execution-plan.js +2 -2
- package/dist/executor.js +4 -0
- package/package.json +2 -2
package/dist/execution-plan.js
CHANGED
|
@@ -93,8 +93,8 @@ export class ExecutionPlan {
|
|
|
93
93
|
if (!producer || !this.inScope.has(producer))
|
|
94
94
|
return fail('UNAVAILABLE_SCOPE_DEPENDENCY', 'The required output is outside this execution scope or has no original structural address.');
|
|
95
95
|
const source = this.nodes.get(producer);
|
|
96
|
-
if (!source || source.kind
|
|
97
|
-
return fail('UNRESOLVED_SCOPE_BINDING', 'The producer does not declare the required
|
|
96
|
+
if (!source || !['action', 'operation'].includes(String(source.kind)) || !Object.hasOwn(source.output, operand.outputName))
|
|
97
|
+
return fail('UNRESOLVED_SCOPE_BINDING', 'The producer does not declare the required output.');
|
|
98
98
|
const a = this.ancestors(producer), b = this.ancestors(consumer.occurrence);
|
|
99
99
|
const descendant = a.some(n => n.key === consumer.occurrence) && producer !== consumer.occurrence;
|
|
100
100
|
if (phase === 'completion' && descendant) {
|
package/dist/executor.js
CHANGED
|
@@ -593,6 +593,10 @@ export class DefaultExecutor {
|
|
|
593
593
|
const outputs = nested.state === 'completed'
|
|
594
594
|
? { ...structuredClone(step.staticOutputs ?? {}), ...this.resolveBindings(run, step.outputBindings ?? {}, childScope, step, { phase: 'completion', iterations }) }
|
|
595
595
|
: {};
|
|
596
|
+
if (signal.aborted || run.cancelled)
|
|
597
|
+
throw failure(run.timedOut ? 'ACTION_TIMEOUT' : 'ACTION_CANCELLED', 'Execution ended before Operation evidence publication.');
|
|
598
|
+
if (nested.state === 'completed')
|
|
599
|
+
run.journal.set(journalKey(step, iterations, run.execution.document.inputVersion), { outputs: structuredClone(outputs) });
|
|
596
600
|
const result = { ...base, state: nested.state === 'completed' ? 'finished' : nested.state, inputs, outputs, durationMs: Date.now() - startedMs, children: nested.steps, terminalReason: nested.terminalReason ?? (nested.state === 'completed' ? 'completed' : 'failed'), error: nested.error };
|
|
597
601
|
this.emit(run, 'step_finished', result.state, `${step.name} ${result.state}.`, step, undefined, iterations);
|
|
598
602
|
return result;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qaick/executor",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Host-neutral QAick action execution primitives.",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"prepublishOnly": "npm run typecheck && npm test && npm run build"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@qaick/contract": "0.7.
|
|
37
|
+
"@qaick/contract": "0.7.1"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/node": "^24.13.3",
|