taskflow-core 0.2.0 → 0.2.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/README.md +247 -862
- package/dist/agents.d.ts +12 -0
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +29 -1
- package/dist/agents.js.map +1 -1
- package/dist/build-info.d.ts +48 -0
- package/dist/build-info.d.ts.map +1 -0
- package/dist/build-info.js +112 -0
- package/dist/build-info.js.map +1 -0
- package/dist/build-info.json +4 -0
- package/dist/cwd-bridge.d.ts +61 -0
- package/dist/cwd-bridge.d.ts.map +1 -0
- package/dist/cwd-bridge.js +136 -0
- package/dist/cwd-bridge.js.map +1 -0
- package/dist/detached-runner.js +31 -5
- package/dist/detached-runner.js.map +1 -1
- package/dist/exec/driver.d.ts +6 -0
- package/dist/exec/driver.d.ts.map +1 -1
- package/dist/exec/driver.js +40 -18
- package/dist/exec/driver.js.map +1 -1
- package/dist/exec/kernel-policy.d.ts.map +1 -1
- package/dist/exec/kernel-policy.js +10 -0
- package/dist/exec/kernel-policy.js.map +1 -1
- package/dist/exec/step-kinds.d.ts +14 -1
- package/dist/exec/step-kinds.d.ts.map +1 -1
- package/dist/exec/step-kinds.js +126 -6
- package/dist/exec/step-kinds.js.map +1 -1
- package/dist/exec/step.d.ts +22 -0
- package/dist/exec/step.d.ts.map +1 -1
- package/dist/exec/step.js +40 -5
- package/dist/exec/step.js.map +1 -1
- package/dist/final-output.d.ts +53 -0
- package/dist/final-output.d.ts.map +1 -0
- package/dist/final-output.js +65 -0
- package/dist/final-output.js.map +1 -0
- package/dist/flowir/canonical-hash.d.ts.map +1 -1
- package/dist/flowir/canonical-hash.js +2 -0
- package/dist/flowir/canonical-hash.js.map +1 -1
- package/dist/flowir/compile.d.ts.map +1 -1
- package/dist/flowir/compile.js +17 -0
- package/dist/flowir/compile.js.map +1 -1
- package/dist/flowir/meta.d.ts +3 -0
- package/dist/flowir/meta.d.ts.map +1 -1
- package/dist/flowir/schema.d.ts +3 -0
- package/dist/flowir/schema.d.ts.map +1 -1
- package/dist/flowir/schema.js.map +1 -1
- package/dist/flowir/translate.d.ts.map +1 -1
- package/dist/flowir/translate.js +4 -0
- package/dist/flowir/translate.js.map +1 -1
- package/dist/host/runner-types.d.ts +16 -0
- package/dist/host/runner-types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/interpolate.d.ts +4 -0
- package/dist/interpolate.d.ts.map +1 -1
- package/dist/interpolate.js +14 -0
- package/dist/interpolate.js.map +1 -1
- package/dist/resources/authority.d.ts +35 -0
- package/dist/resources/authority.d.ts.map +1 -0
- package/dist/resources/authority.js +67 -0
- package/dist/resources/authority.js.map +1 -0
- package/dist/resources/backend.d.ts +302 -0
- package/dist/resources/backend.d.ts.map +1 -0
- package/dist/resources/backend.js +16 -0
- package/dist/resources/backend.js.map +1 -0
- package/dist/resources/baseline.d.ts +116 -0
- package/dist/resources/baseline.d.ts.map +1 -0
- package/dist/resources/baseline.js +447 -0
- package/dist/resources/baseline.js.map +1 -0
- package/dist/resources/canonical-json.d.ts +7 -0
- package/dist/resources/canonical-json.d.ts.map +1 -0
- package/dist/resources/canonical-json.js +75 -0
- package/dist/resources/canonical-json.js.map +1 -0
- package/dist/resources/errors.d.ts +23 -0
- package/dist/resources/errors.d.ts.map +1 -0
- package/dist/resources/errors.js +89 -0
- package/dist/resources/errors.js.map +1 -0
- package/dist/resources/execution.d.ts +90 -0
- package/dist/resources/execution.d.ts.map +1 -0
- package/dist/resources/execution.js +581 -0
- package/dist/resources/execution.js.map +1 -0
- package/dist/resources/index.d.ts +15 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +15 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/journal.d.ts +138 -0
- package/dist/resources/journal.d.ts.map +1 -0
- package/dist/resources/journal.js +438 -0
- package/dist/resources/journal.js.map +1 -0
- package/dist/resources/leases.d.ts +51 -0
- package/dist/resources/leases.d.ts.map +1 -0
- package/dist/resources/leases.js +354 -0
- package/dist/resources/leases.js.map +1 -0
- package/dist/resources/permits.d.ts +52 -0
- package/dist/resources/permits.d.ts.map +1 -0
- package/dist/resources/permits.js +240 -0
- package/dist/resources/permits.js.map +1 -0
- package/dist/resources/persistence.d.ts +63 -0
- package/dist/resources/persistence.d.ts.map +1 -0
- package/dist/resources/persistence.js +522 -0
- package/dist/resources/persistence.js.map +1 -0
- package/dist/resources/registry.d.ts +56 -0
- package/dist/resources/registry.d.ts.map +1 -0
- package/dist/resources/registry.js +139 -0
- package/dist/resources/registry.js.map +1 -0
- package/dist/resources/resolve.d.ts +49 -0
- package/dist/resources/resolve.d.ts.map +1 -0
- package/dist/resources/resolve.js +309 -0
- package/dist/resources/resolve.js.map +1 -0
- package/dist/resources/sandbox.d.ts +72 -0
- package/dist/resources/sandbox.d.ts.map +1 -0
- package/dist/resources/sandbox.js +952 -0
- package/dist/resources/sandbox.js.map +1 -0
- package/dist/resources/schema.d.ts +195 -0
- package/dist/resources/schema.d.ts.map +1 -0
- package/dist/resources/schema.js +231 -0
- package/dist/resources/schema.js.map +1 -0
- package/dist/resources/types.d.ts +36 -0
- package/dist/resources/types.d.ts.map +1 -0
- package/dist/resources/types.js +75 -0
- package/dist/resources/types.js.map +1 -0
- package/dist/resume.d.ts +76 -0
- package/dist/resume.d.ts.map +1 -0
- package/dist/resume.js +190 -0
- package/dist/resume.js.map +1 -0
- package/dist/runner-core.d.ts +29 -0
- package/dist/runner-core.d.ts.map +1 -1
- package/dist/runner-core.js +311 -36
- package/dist/runner-core.js.map +1 -1
- package/dist/runtime/phases/parallel.d.ts +3 -0
- package/dist/runtime/phases/parallel.d.ts.map +1 -1
- package/dist/runtime/phases/parallel.js.map +1 -1
- package/dist/runtime/phases/reduce.d.ts +47 -0
- package/dist/runtime/phases/reduce.d.ts.map +1 -0
- package/dist/runtime/phases/reduce.js +195 -0
- package/dist/runtime/phases/reduce.js.map +1 -0
- package/dist/runtime/phases/script.d.ts.map +1 -1
- package/dist/runtime/phases/script.js +47 -9
- package/dist/runtime/phases/script.js.map +1 -1
- package/dist/runtime.d.ts +67 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +904 -79
- package/dist/runtime.js.map +1 -1
- package/dist/schema.d.ts +135 -5
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +338 -21
- package/dist/schema.js.map +1 -1
- package/dist/store.d.ts +56 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +5 -1
- package/dist/store.js.map +1 -1
- package/dist/trace.d.ts +3 -0
- package/dist/trace.d.ts.map +1 -1
- package/dist/trace.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchical reduce execution.
|
|
3
|
+
*
|
|
4
|
+
* The runtime owns interpolation, cache policy, and runner wiring; this module
|
|
5
|
+
* owns the tree algorithm and its hard admission cap so runtime.ts does not
|
|
6
|
+
* grow another phase-sized control-flow block.
|
|
7
|
+
*/
|
|
8
|
+
import type { RunResult } from "../../host/runner-types.ts";
|
|
9
|
+
import { type Phase } from "../../schema.ts";
|
|
10
|
+
import { type PhaseState, type RunState } from "../../store.ts";
|
|
11
|
+
import { type UsageStats } from "../../usage.ts";
|
|
12
|
+
export interface TreeReduceItem {
|
|
13
|
+
label: string;
|
|
14
|
+
output: string;
|
|
15
|
+
}
|
|
16
|
+
export interface TreeReduceSource {
|
|
17
|
+
id: string;
|
|
18
|
+
output: string;
|
|
19
|
+
}
|
|
20
|
+
export interface TreeReduceTask {
|
|
21
|
+
task: string;
|
|
22
|
+
warning?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface TreeReduceExecutionOptions {
|
|
25
|
+
phase: Phase;
|
|
26
|
+
inputs: TreeReduceSource[];
|
|
27
|
+
batchSize: number;
|
|
28
|
+
agentName: string;
|
|
29
|
+
inputHash: string;
|
|
30
|
+
isAborted: () => boolean;
|
|
31
|
+
isOverBudget: () => boolean;
|
|
32
|
+
resolveTask: (batchValue: string) => TreeReduceTask;
|
|
33
|
+
runOne: (task: string, usageBefore: UsageStats | undefined, beforeAttempt: () => string | undefined, callId: string) => Promise<RunResult>;
|
|
34
|
+
}
|
|
35
|
+
export interface TreeReduceExecutionResult {
|
|
36
|
+
phaseState: PhaseState;
|
|
37
|
+
refWarning?: string;
|
|
38
|
+
cacheable: boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare function collectTreeReduceInputs(state: RunState, phase: Phase): TreeReduceSource[];
|
|
41
|
+
export declare function formatTreeReduceBatch(items: TreeReduceItem[]): string;
|
|
42
|
+
/** Stable, pre-execution cache material. It deliberately excludes intermediate
|
|
43
|
+
* model outputs (unknowable before execution) and includes every authored
|
|
44
|
+
* dependency plus invocation args so non-`from` refs cannot produce false hits. */
|
|
45
|
+
export declare function treeReduceCacheParts(state: RunState, phase: Phase, inputs: TreeReduceSource[], batchSize: number): string[];
|
|
46
|
+
export declare function executeTreeReduction(opts: TreeReduceExecutionOptions): Promise<TreeReduceExecutionResult>;
|
|
47
|
+
//# sourceMappingURL=reduce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reduce.d.ts","sourceRoot":"","sources":["../../../src/runtime/phases/reduce.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAKN,KAAK,KAAK,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IAC1C,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,cAAc,CAAC;IACpD,MAAM,EAAE,CACP,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,UAAU,GAAG,SAAS,EACnC,aAAa,EAAE,MAAM,MAAM,GAAG,SAAS,EACvC,MAAM,EAAE,MAAM,KACV,OAAO,CAAC,SAAS,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,EAAE,CASzF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,CAIrE;AAED;;mFAEmF;AACnF,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,gBAAgB,EAAE,EAC1B,SAAS,EAAE,MAAM,GACf,MAAM,EAAE,CA0BV;AAgBD,wBAAsB,oBAAoB,CACzC,IAAI,EAAE,0BAA0B,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAiIpC"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchical reduce execution.
|
|
3
|
+
*
|
|
4
|
+
* The runtime owns interpolation, cache policy, and runner wiring; this module
|
|
5
|
+
* owns the tree algorithm and its hard admission cap so runtime.ts does not
|
|
6
|
+
* grow another phase-sized control-flow block.
|
|
7
|
+
*/
|
|
8
|
+
import { isFailed } from "../../runner-core.js";
|
|
9
|
+
import { asArray, collectRefs, transitiveDependencies, TREE_REDUCE_HARD_MAX_CALLS, } from "../../schema.js";
|
|
10
|
+
import { hashInput } from "../../store.js";
|
|
11
|
+
import { aggregateUsage, emptyUsage } from "../../usage.js";
|
|
12
|
+
export function collectTreeReduceInputs(state, phase) {
|
|
13
|
+
const inputs = [];
|
|
14
|
+
for (const id of asArray(phase.from)) {
|
|
15
|
+
const phaseState = state.phases[id];
|
|
16
|
+
if (phaseState?.status === "done" && phaseState.output !== undefined) {
|
|
17
|
+
inputs.push({ id, output: phaseState.output });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return inputs;
|
|
21
|
+
}
|
|
22
|
+
export function formatTreeReduceBatch(items) {
|
|
23
|
+
return items.length === 1
|
|
24
|
+
? items[0].output
|
|
25
|
+
: items.map((item) => `### ${item.label}\n\n${item.output}`).join("\n\n---\n\n");
|
|
26
|
+
}
|
|
27
|
+
/** Stable, pre-execution cache material. It deliberately excludes intermediate
|
|
28
|
+
* model outputs (unknowable before execution) and includes every authored
|
|
29
|
+
* dependency plus invocation args so non-`from` refs cannot produce false hits. */
|
|
30
|
+
export function treeReduceCacheParts(state, phase, inputs, batchSize) {
|
|
31
|
+
const dependencyIds = Array.from(new Set([
|
|
32
|
+
...transitiveDependencies(state.def.phases, phase.id),
|
|
33
|
+
...collectRefs(phase).steps,
|
|
34
|
+
])).sort();
|
|
35
|
+
const inputSnapshot = inputs.map(({ id, output }) => ({ id, outputHash: hashInput(output) }));
|
|
36
|
+
const dependencySnapshot = dependencyIds.map((id) => {
|
|
37
|
+
const phaseState = state.phases[id];
|
|
38
|
+
return {
|
|
39
|
+
id,
|
|
40
|
+
status: phaseState?.status,
|
|
41
|
+
...(phaseState?.output !== undefined ? { outputHash: hashInput(phaseState.output) } : {}),
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
const stateHash = hashInput(JSON.stringify({
|
|
45
|
+
inputs: inputSnapshot,
|
|
46
|
+
argsHash: hashInput(JSON.stringify(state.args)),
|
|
47
|
+
dependencies: dependencySnapshot,
|
|
48
|
+
}));
|
|
49
|
+
return [
|
|
50
|
+
phase.id,
|
|
51
|
+
"tree-reduce",
|
|
52
|
+
`batch:${batchSize}`,
|
|
53
|
+
phase.task ?? "",
|
|
54
|
+
`state:${stateHash}`,
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
function capFailure(agentName, task) {
|
|
58
|
+
const error = `Tree reduction exceeded hard cap of ${TREE_REDUCE_HARD_MAX_CALLS} actual subagent attempts`;
|
|
59
|
+
return {
|
|
60
|
+
agent: agentName,
|
|
61
|
+
task,
|
|
62
|
+
exitCode: 1,
|
|
63
|
+
output: "",
|
|
64
|
+
stderr: error,
|
|
65
|
+
usage: emptyUsage(),
|
|
66
|
+
stopReason: "error",
|
|
67
|
+
errorMessage: error,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export async function executeTreeReduction(opts) {
|
|
71
|
+
let round = opts.inputs.map((input) => ({
|
|
72
|
+
label: input.id,
|
|
73
|
+
output: input.output,
|
|
74
|
+
}));
|
|
75
|
+
let roundNumber = 1;
|
|
76
|
+
let actualAttempts = 0;
|
|
77
|
+
const usages = [];
|
|
78
|
+
let failed;
|
|
79
|
+
let truncatedByBudget = false;
|
|
80
|
+
let aborted = false;
|
|
81
|
+
let refWarning;
|
|
82
|
+
while (round.length > 1) {
|
|
83
|
+
if (actualAttempts >= TREE_REDUCE_HARD_MAX_CALLS) {
|
|
84
|
+
failed = capFailure(opts.agentName, opts.phase.task ?? "");
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
if (opts.isAborted()) {
|
|
88
|
+
aborted = true;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
if (opts.isOverBudget()) {
|
|
92
|
+
truncatedByBudget = true;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
const batches = [];
|
|
96
|
+
for (let i = 0; i < round.length; i += opts.batchSize) {
|
|
97
|
+
batches.push(round.slice(i, i + opts.batchSize));
|
|
98
|
+
}
|
|
99
|
+
const next = [];
|
|
100
|
+
let consumedInputs = 0;
|
|
101
|
+
for (let batchIndex = 0; batchIndex < batches.length; batchIndex++) {
|
|
102
|
+
if (actualAttempts >= TREE_REDUCE_HARD_MAX_CALLS) {
|
|
103
|
+
failed = capFailure(opts.agentName, opts.phase.task ?? "");
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
if (opts.isAborted()) {
|
|
107
|
+
aborted = true;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
if (opts.isOverBudget()) {
|
|
111
|
+
truncatedByBudget = true;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
const batch = batches[batchIndex];
|
|
115
|
+
const resolved = opts.resolveTask(formatTreeReduceBatch(batch));
|
|
116
|
+
if (!refWarning && resolved.warning)
|
|
117
|
+
refWarning = resolved.warning;
|
|
118
|
+
const usageBefore = usages.length ? aggregateUsage(usages) : undefined;
|
|
119
|
+
const beforeAttempt = () => {
|
|
120
|
+
if (actualAttempts >= TREE_REDUCE_HARD_MAX_CALLS) {
|
|
121
|
+
return `Tree reduction exceeded hard cap of ${TREE_REDUCE_HARD_MAX_CALLS} actual subagent attempts`;
|
|
122
|
+
}
|
|
123
|
+
actualAttempts++;
|
|
124
|
+
return undefined;
|
|
125
|
+
};
|
|
126
|
+
const callId = `round-${roundNumber}-batch-${batchIndex + 1}`;
|
|
127
|
+
const result = await opts.runOne(resolved.task, usageBefore, beforeAttempt, callId);
|
|
128
|
+
usages.push(result.usage ?? emptyUsage());
|
|
129
|
+
if (isFailed(result)) {
|
|
130
|
+
failed = result;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
next.push({
|
|
134
|
+
label: `round-${roundNumber}-batch-${batchIndex + 1}`,
|
|
135
|
+
output: result.output ?? "",
|
|
136
|
+
});
|
|
137
|
+
consumedInputs += batch.length;
|
|
138
|
+
}
|
|
139
|
+
if (truncatedByBudget) {
|
|
140
|
+
round = [...next, ...round.slice(consumedInputs)];
|
|
141
|
+
}
|
|
142
|
+
if (failed || aborted || truncatedByBudget)
|
|
143
|
+
break;
|
|
144
|
+
round = next;
|
|
145
|
+
roundNumber++;
|
|
146
|
+
}
|
|
147
|
+
if (failed) {
|
|
148
|
+
return {
|
|
149
|
+
phaseState: {
|
|
150
|
+
id: opts.phase.id,
|
|
151
|
+
status: "failed",
|
|
152
|
+
output: failed.output ?? "",
|
|
153
|
+
error: failed.errorMessage ?? failed.stderr,
|
|
154
|
+
usage: aggregateUsage(usages),
|
|
155
|
+
attempts: actualAttempts,
|
|
156
|
+
inputHash: opts.inputHash,
|
|
157
|
+
endedAt: Date.now(),
|
|
158
|
+
...(failed.phaseTimeout ? { timedOut: true } : {}),
|
|
159
|
+
},
|
|
160
|
+
refWarning,
|
|
161
|
+
cacheable: false,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
if (aborted) {
|
|
165
|
+
return {
|
|
166
|
+
phaseState: {
|
|
167
|
+
id: opts.phase.id,
|
|
168
|
+
status: "failed",
|
|
169
|
+
error: "Tree reduction aborted before all inputs were reduced",
|
|
170
|
+
usage: aggregateUsage(usages),
|
|
171
|
+
attempts: actualAttempts,
|
|
172
|
+
inputHash: opts.inputHash,
|
|
173
|
+
endedAt: Date.now(),
|
|
174
|
+
},
|
|
175
|
+
refWarning,
|
|
176
|
+
cacheable: false,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
const output = round.length === 1 ? round[0].output : formatTreeReduceBatch(round);
|
|
180
|
+
return {
|
|
181
|
+
phaseState: {
|
|
182
|
+
id: opts.phase.id,
|
|
183
|
+
status: "done",
|
|
184
|
+
output,
|
|
185
|
+
usage: aggregateUsage(usages),
|
|
186
|
+
attempts: actualAttempts,
|
|
187
|
+
inputHash: opts.inputHash,
|
|
188
|
+
endedAt: Date.now(),
|
|
189
|
+
...(truncatedByBudget ? { budgetTruncated: true } : {}),
|
|
190
|
+
},
|
|
191
|
+
refWarning,
|
|
192
|
+
cacheable: !truncatedByBudget,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=reduce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../../src/runtime/phases/reduce.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../src/runtime/phases/script.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../src/runtime/phases/script.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAUjD,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC5C,sEAAsE;IACtE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyG3B;AAED,mEAAmE;AACnE,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC5B,GACC,UAAU,CA4BZ;AAED,8DAA8D;AAC9D,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GACtD,UAAU,CAYZ"}
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
* Isolated from runtime.ts so S5 strangler can flip kinds without growing the monolith.
|
|
4
4
|
*/
|
|
5
5
|
import { emptyUsage } from "../../usage.js";
|
|
6
|
-
import {
|
|
6
|
+
import { StringDecoder } from "node:string_decoder";
|
|
7
|
+
import { killProcessTree, registerProcessTree, unregisterProcessTree } from "../../runner-core.js";
|
|
8
|
+
import { CWD_BRIDGE_MODE_ENV } from "../../cwd-bridge.js";
|
|
9
|
+
import { WORKSPACE_RECONCILE_MODE_ENV } from "../../resources/execution.js";
|
|
7
10
|
const MAX_STDOUT = 1_048_576; // 1 MB cap
|
|
8
11
|
const SIGKILL_GRACE_MS = 5_000;
|
|
9
12
|
/**
|
|
@@ -13,9 +16,15 @@ export async function runScriptCommand(opts) {
|
|
|
13
16
|
const { spawn } = await import("node:child_process");
|
|
14
17
|
const { interpRunText, arrayForm, cwd, signal, stdinInput, timeoutMs } = opts;
|
|
15
18
|
return new Promise((resolve, reject) => {
|
|
19
|
+
const childEnv = { ...process.env };
|
|
20
|
+
// Script phases execute flow-authored commands, so they are not a trusted
|
|
21
|
+
// host principal. Host-only workspace controls must never be delegated even
|
|
22
|
+
// when the script later launches another Taskflow process.
|
|
23
|
+
delete childEnv[CWD_BRIDGE_MODE_ENV];
|
|
24
|
+
delete childEnv[WORKSPACE_RECONCILE_MODE_ENV];
|
|
16
25
|
const spawnOptions = {
|
|
17
26
|
cwd,
|
|
18
|
-
env:
|
|
27
|
+
env: childEnv,
|
|
19
28
|
detached: process.platform !== "win32",
|
|
20
29
|
};
|
|
21
30
|
const child = arrayForm
|
|
@@ -27,21 +36,33 @@ export async function runScriptCommand(opts) {
|
|
|
27
36
|
...spawnOptions,
|
|
28
37
|
shell: true,
|
|
29
38
|
});
|
|
39
|
+
if (child.pid)
|
|
40
|
+
registerProcessTree(child.pid);
|
|
30
41
|
let stdout = "";
|
|
31
42
|
let stderr = "";
|
|
43
|
+
let stdoutBytes = 0;
|
|
44
|
+
let stderrBytes = 0;
|
|
32
45
|
let stdoutOversize = false;
|
|
33
46
|
let timedOut = false;
|
|
47
|
+
let settled = false;
|
|
48
|
+
const stdoutDecoder = new StringDecoder("utf8");
|
|
49
|
+
const stderrDecoder = new StringDecoder("utf8");
|
|
34
50
|
child.stdout?.on("data", (d) => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
51
|
+
const remaining = MAX_STDOUT - stdoutBytes;
|
|
52
|
+
const retained = d.subarray(0, Math.max(0, remaining));
|
|
53
|
+
if (retained.length > 0) {
|
|
54
|
+
stdout += stdoutDecoder.write(retained);
|
|
55
|
+
stdoutBytes += retained.length;
|
|
40
56
|
}
|
|
57
|
+
if (d.length > retained.length)
|
|
58
|
+
stdoutOversize = true;
|
|
41
59
|
});
|
|
42
60
|
child.stderr?.on("data", (d) => {
|
|
43
|
-
|
|
44
|
-
|
|
61
|
+
const remaining = 500 - stderrBytes;
|
|
62
|
+
const retained = d.subarray(0, Math.max(0, remaining));
|
|
63
|
+
if (retained.length > 0) {
|
|
64
|
+
stderr += stderrDecoder.write(retained);
|
|
65
|
+
stderrBytes += retained.length;
|
|
45
66
|
}
|
|
46
67
|
});
|
|
47
68
|
let sigkillTimer;
|
|
@@ -62,9 +83,14 @@ export async function runScriptCommand(opts) {
|
|
|
62
83
|
if (signal?.aborted)
|
|
63
84
|
onAbort();
|
|
64
85
|
child.on("error", (err) => {
|
|
86
|
+
if (settled)
|
|
87
|
+
return;
|
|
88
|
+
settled = true;
|
|
65
89
|
clearTimeout(timer);
|
|
66
90
|
clearTimeout(sigkillTimer);
|
|
67
91
|
signal?.removeEventListener("abort", onAbort);
|
|
92
|
+
if (child.pid)
|
|
93
|
+
unregisterProcessTree(child.pid);
|
|
68
94
|
reject(err);
|
|
69
95
|
});
|
|
70
96
|
child.once("exit", () => {
|
|
@@ -72,11 +98,23 @@ export async function runScriptCommand(opts) {
|
|
|
72
98
|
killProcessTree(child.pid, "SIGKILL", child);
|
|
73
99
|
});
|
|
74
100
|
child.on("close", (code) => {
|
|
101
|
+
if (settled)
|
|
102
|
+
return;
|
|
103
|
+
settled = true;
|
|
75
104
|
clearTimeout(timer);
|
|
76
105
|
clearTimeout(sigkillTimer);
|
|
77
106
|
signal?.removeEventListener("abort", onAbort);
|
|
78
107
|
if (child.pid)
|
|
79
108
|
killProcessTree(child.pid, "SIGKILL", child);
|
|
109
|
+
if (child.pid)
|
|
110
|
+
unregisterProcessTree(child.pid);
|
|
111
|
+
// If truncation cut through a multi-byte character, discard the decoder's
|
|
112
|
+
// incomplete suffix instead of manufacturing U+FFFD. Otherwise flush an
|
|
113
|
+
// actually malformed child stream normally.
|
|
114
|
+
if (!stdoutOversize)
|
|
115
|
+
stdout += stdoutDecoder.end();
|
|
116
|
+
if (stderrBytes < 500)
|
|
117
|
+
stderr += stderrDecoder.end();
|
|
80
118
|
resolve({ stdout, stderr, code, stdoutOversize, timedOut });
|
|
81
119
|
});
|
|
82
120
|
if (child.stdin) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/runtime/phases/script.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/runtime/phases/script.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -16,13 +16,15 @@ import type { SubagentRunner } from "./host/runner-types.ts";
|
|
|
16
16
|
type RunTaskFn = SubagentRunner<any>["runTask"];
|
|
17
17
|
export { PHASE_TIMEOUT_ABORT_GRACE_MS } from "./runner-core.ts";
|
|
18
18
|
import { type UsageStats } from "./usage.ts";
|
|
19
|
-
import { type CacheScope, type Taskflow } from "./schema.ts";
|
|
19
|
+
import { type CacheScope, type Phase, type Taskflow } from "./schema.ts";
|
|
20
20
|
import { parseGateVerdict } from "./deterministic.ts";
|
|
21
21
|
export { parseTournamentWinner } from "./deterministic.ts";
|
|
22
22
|
import { type TraceSink } from "./trace.ts";
|
|
23
23
|
export { parseGateVerdict };
|
|
24
24
|
import { type PhaseState, type RunState } from "./store.ts";
|
|
25
25
|
import { CacheStore } from "./cache.ts";
|
|
26
|
+
import { type CwdBridgeMode } from "./cwd-bridge.ts";
|
|
27
|
+
import { type ResolveOnlyPhaseBinding, type ResolveOnlyWorkspaceSession } from "./resources/execution.ts";
|
|
26
28
|
/** A human-in-the-loop approval request raised by an `approval` phase. */
|
|
27
29
|
export interface ApprovalRequest {
|
|
28
30
|
phaseId: string;
|
|
@@ -76,12 +78,53 @@ export interface RuntimeDeps {
|
|
|
76
78
|
_ctxDir?: string;
|
|
77
79
|
/** Internal: an isolated workspace dir override for the current phase (worktree isolation). */
|
|
78
80
|
_cwdOverride?: string;
|
|
81
|
+
/** Host-owned 0.2.1 cwd bridge mode. Undefined is fail-closed. Flow data
|
|
82
|
+
* cannot enable this; adapters may opt into the documented resolve-only mode. */
|
|
83
|
+
cwdBridgeMode?: CwdBridgeMode;
|
|
84
|
+
/** Optional trusted control-plane location for workspace leases/journal/HMAC
|
|
85
|
+
* state. Defaults outside the flow workspace under ~/.taskflow. */
|
|
86
|
+
workspaceControlDirectory?: string;
|
|
87
|
+
/** Host-created W1a resolve-only session. Ordinarily constructed lazily from
|
|
88
|
+
* cwdBridgeMode; injectable for delivery policy and conformance tests. */
|
|
89
|
+
workspaceSession?: ResolveOnlyWorkspaceSession;
|
|
90
|
+
/** Internal: a cwd-bridge flow may mutate workspace state, so output-only
|
|
91
|
+
* cache/resume reuse is disabled for the entire nested execution tree. */
|
|
92
|
+
_disableCache?: boolean;
|
|
93
|
+
/** Internal: execution originated from an LLM-authored flow{def}/ctx_spawn.
|
|
94
|
+
* Resource-bearing fields remain denied through every nested frame. */
|
|
95
|
+
_dynamic?: boolean;
|
|
96
|
+
/** Internal: canonical directory capability inherited from a cwd-bridge
|
|
97
|
+
* phase. Nested phases may stay inside or narrow it, never escape it. */
|
|
98
|
+
_cwdBoundary?: string;
|
|
99
|
+
/** Internal: only resource-selected execution trees opt into cwd-sensitive
|
|
100
|
+
* cache keys. Ordinary legacy root phases retain their existing key format. */
|
|
101
|
+
_cacheCwdIdentity?: string;
|
|
102
|
+
/** Internal: one immutable loader view per top-level execution. Saved-flow
|
|
103
|
+
* definitions must not change between capability scan and execution. */
|
|
104
|
+
_flowLoaderSnapshot?: Map<string, FlowLoaderSnapshotEntry>;
|
|
105
|
+
/** Internal phase-scoped W1a execution binding inherited only by descendants
|
|
106
|
+
* that remain inside the selected cwd capability. */
|
|
107
|
+
_workspaceBinding?: ResolveOnlyPhaseBinding;
|
|
79
108
|
}
|
|
109
|
+
type FlowLoaderSnapshotEntry = {
|
|
110
|
+
ok: true;
|
|
111
|
+
value: Taskflow | undefined;
|
|
112
|
+
} | {
|
|
113
|
+
ok: false;
|
|
114
|
+
error: unknown;
|
|
115
|
+
};
|
|
80
116
|
export interface RuntimeResult {
|
|
81
117
|
state: RunState;
|
|
82
118
|
finalOutput: string;
|
|
83
119
|
ok: boolean;
|
|
84
120
|
totalUsage: UsageStats;
|
|
121
|
+
/** The id of the PhaseState whose output supplied `finalOutput`. For the
|
|
122
|
+
* normal case this is the (fallback) final phase that actually completed.
|
|
123
|
+
* For gate/budget prefixes, it is retained when underlying partial output
|
|
124
|
+
* is included (the blocking gate/approval phase, or the fallback final
|
|
125
|
+
* phase for a budget halt); `undefined` when no phase output is available
|
|
126
|
+
* (no phase completed). Never the designated skipped/failed final phase. */
|
|
127
|
+
outputSourcePhaseId?: string;
|
|
85
128
|
/** Incremental-reuse summary: how many phases were reused from cache vs.
|
|
86
129
|
* freshly executed this run, and the cost the reused work would otherwise
|
|
87
130
|
* have incurred (known only for within-run resume; cross-run hits zero
|
|
@@ -89,6 +132,7 @@ export interface RuntimeResult {
|
|
|
89
132
|
* additive — callers that ignore it are unaffected. */
|
|
90
133
|
reuse?: ReuseSummary;
|
|
91
134
|
}
|
|
135
|
+
export { resolveFinalOutput, type FinalOutputBlockedCtx, type FinalOutputResolution, } from "./final-output.ts";
|
|
92
136
|
/** A run's incremental-reuse accounting (see RuntimeResult.reuse). */
|
|
93
137
|
export interface ReuseSummary {
|
|
94
138
|
/** Phases that completed by executing a subagent this run. */
|
|
@@ -107,6 +151,25 @@ export interface ReuseSummary {
|
|
|
107
151
|
* Pure, total, never throws. A phase is "reused" iff it carries a `cacheHit`
|
|
108
152
|
* marker (set by `cachedPhase` for both within-run resume and cross-run hits). */
|
|
109
153
|
export declare function summarizeReuse(state: RunState): ReuseSummary;
|
|
154
|
+
/** A conservative prompt-size warning threshold in estimated tokens. Crossed
|
|
155
|
+
* → the phase records a `warnings` entry so an author notices they may be
|
|
156
|
+
* approaching a model's context limit. Approximate (ceil(chars/4)), not a
|
|
157
|
+
* real tokenizer count. Chosen conservatively well below typical 128K context
|
|
158
|
+
* windows so the warning fires with ample headroom. */
|
|
159
|
+
export declare const PROMPT_SIZE_WARN_TOKENS = 32000;
|
|
160
|
+
/** Compute durable prompt-size diagnostics for a resolved prompt string:
|
|
161
|
+
* exact UTF-8 byte count, character count, and a documented approximate token
|
|
162
|
+
* estimate (ceil(chars/4)). Never throws. */
|
|
163
|
+
export declare function promptSizeStats(text: string): {
|
|
164
|
+
bytes: number;
|
|
165
|
+
chars: number;
|
|
166
|
+
estTokens: number;
|
|
167
|
+
};
|
|
168
|
+
/** Resolve the effective idle-watchdog ms for a phase: phase overrides flow;
|
|
169
|
+
* returns `undefined` when neither sets it (host default 300000 applies).
|
|
170
|
+
* `0` is passed through (disables the watchdog — validation already ensured a
|
|
171
|
+
* finite wall `timeout` exists in that case). */
|
|
172
|
+
export declare function resolveIdleTimeoutMs(phase: Phase, def: Taskflow): number | undefined;
|
|
110
173
|
/**
|
|
111
174
|
* Per-phase cache policy resolved once at the top of executePhase. Carries the
|
|
112
175
|
* scope, optional TTL, and a pre-resolved fingerprint string so each phase-type
|
|
@@ -138,6 +201,9 @@ export interface PhaseCacheCtx {
|
|
|
138
201
|
/** Resolved agent content/config. Same name+scope can still change prompt,
|
|
139
202
|
* model, tools, or thinking and must invalidate cached output. */
|
|
140
203
|
agentDefinitions?: string;
|
|
204
|
+
/** Canonical effective cwd. Required because a typed cwd arg can change the
|
|
205
|
+
* resource selected without appearing in the task text or phase definition. */
|
|
206
|
+
executionCwd?: string;
|
|
141
207
|
/** Content fingerprint of the desugared flow definition — folded into the
|
|
142
208
|
* key so two structurally-different flows that share a name can never
|
|
143
209
|
* collide, and a changed flow never serves a stale cross-run hit. */
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,OAAO,KAAK,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEpF;kEACkE;AAClE,KAAK,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAchD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAe,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|