taskflow-core 0.2.1 → 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.
Files changed (67) hide show
  1. package/README.md +3 -3
  2. package/dist/build-info.d.ts +48 -0
  3. package/dist/build-info.d.ts.map +1 -0
  4. package/dist/build-info.js +112 -0
  5. package/dist/build-info.js.map +1 -0
  6. package/dist/build-info.json +4 -0
  7. package/dist/exec/driver.d.ts +5 -0
  8. package/dist/exec/driver.d.ts.map +1 -1
  9. package/dist/exec/driver.js +25 -16
  10. package/dist/exec/driver.js.map +1 -1
  11. package/dist/exec/kernel-policy.d.ts.map +1 -1
  12. package/dist/exec/kernel-policy.js +10 -0
  13. package/dist/exec/kernel-policy.js.map +1 -1
  14. package/dist/exec/step-kinds.d.ts +14 -1
  15. package/dist/exec/step-kinds.d.ts.map +1 -1
  16. package/dist/exec/step-kinds.js +98 -3
  17. package/dist/exec/step-kinds.js.map +1 -1
  18. package/dist/exec/step.d.ts +21 -0
  19. package/dist/exec/step.d.ts.map +1 -1
  20. package/dist/exec/step.js +22 -5
  21. package/dist/exec/step.js.map +1 -1
  22. package/dist/final-output.d.ts +53 -0
  23. package/dist/final-output.d.ts.map +1 -0
  24. package/dist/final-output.js +65 -0
  25. package/dist/final-output.js.map +1 -0
  26. package/dist/flowir/canonical-hash.d.ts.map +1 -1
  27. package/dist/flowir/canonical-hash.js +2 -0
  28. package/dist/flowir/canonical-hash.js.map +1 -1
  29. package/dist/flowir/compile.d.ts.map +1 -1
  30. package/dist/flowir/compile.js +4 -0
  31. package/dist/flowir/compile.js.map +1 -1
  32. package/dist/flowir/meta.d.ts +3 -0
  33. package/dist/flowir/meta.d.ts.map +1 -1
  34. package/dist/flowir/schema.d.ts +3 -0
  35. package/dist/flowir/schema.d.ts.map +1 -1
  36. package/dist/flowir/schema.js.map +1 -1
  37. package/dist/flowir/translate.d.ts.map +1 -1
  38. package/dist/flowir/translate.js +4 -0
  39. package/dist/flowir/translate.js.map +1 -1
  40. package/dist/index.d.ts +3 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +3 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/resume.d.ts +76 -0
  45. package/dist/resume.d.ts.map +1 -0
  46. package/dist/resume.js +190 -0
  47. package/dist/resume.js.map +1 -0
  48. package/dist/runtime/phases/parallel.d.ts +3 -0
  49. package/dist/runtime/phases/parallel.d.ts.map +1 -1
  50. package/dist/runtime/phases/parallel.js.map +1 -1
  51. package/dist/runtime/phases/reduce.d.ts +47 -0
  52. package/dist/runtime/phases/reduce.d.ts.map +1 -0
  53. package/dist/runtime/phases/reduce.js +195 -0
  54. package/dist/runtime/phases/reduce.js.map +1 -0
  55. package/dist/runtime.d.ts +28 -1
  56. package/dist/runtime.d.ts.map +1 -1
  57. package/dist/runtime.js +392 -59
  58. package/dist/runtime.js.map +1 -1
  59. package/dist/schema.d.ts +67 -0
  60. package/dist/schema.d.ts.map +1 -1
  61. package/dist/schema.js +177 -1
  62. package/dist/schema.js.map +1 -1
  63. package/dist/store.d.ts +49 -0
  64. package/dist/store.d.ts.map +1 -1
  65. package/dist/store.js +5 -1
  66. package/dist/store.js.map +1 -1
  67. package/package.json +2 -2
@@ -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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"}
package/dist/runtime.d.ts CHANGED
@@ -16,7 +16,7 @@ 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";
@@ -118,6 +118,13 @@ export interface RuntimeResult {
118
118
  finalOutput: string;
119
119
  ok: boolean;
120
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;
121
128
  /** Incremental-reuse summary: how many phases were reused from cache vs.
122
129
  * freshly executed this run, and the cost the reused work would otherwise
123
130
  * have incurred (known only for within-run resume; cross-run hits zero
@@ -125,6 +132,7 @@ export interface RuntimeResult {
125
132
  * additive — callers that ignore it are unaffected. */
126
133
  reuse?: ReuseSummary;
127
134
  }
135
+ export { resolveFinalOutput, type FinalOutputBlockedCtx, type FinalOutputResolution, } from "./final-output.ts";
128
136
  /** A run's incremental-reuse accounting (see RuntimeResult.reuse). */
129
137
  export interface ReuseSummary {
130
138
  /** Phases that completed by executing a subagent this run. */
@@ -143,6 +151,25 @@ export interface ReuseSummary {
143
151
  * Pure, total, never throws. A phase is "reused" iff it carries a `cacheHit`
144
152
  * marker (set by `cachedPhase` for both within-run resume and cross-run hits). */
145
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;
146
173
  /**
147
174
  * Per-phase cache policy resolved once at the top of executePhase. Carries the
148
175
  * scope, optional TTL, and a pre-resolved fingerprint string so each phase-type
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}