@db-lyon/flowkit 0.14.0 → 0.16.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/README.md +5 -0
- package/dist/flow/index.d.ts +1 -1
- package/dist/flow/index.d.ts.map +1 -1
- package/dist/flow/runner.d.ts +33 -4
- package/dist/flow/runner.d.ts.map +1 -1
- package/dist/flow/runner.js +37 -13
- package/dist/flow/runner.js.map +1 -1
- package/dist/guard/task-guards.d.ts.map +1 -1
- package/dist/guard/task-guards.js +14 -0
- package/dist/guard/task-guards.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/task/base-task.d.ts +65 -3
- package/dist/task/base-task.d.ts.map +1 -1
- package/dist/task/base-task.js +51 -5
- package/dist/task/base-task.js.map +1 -1
- package/dist/task/index.d.ts +2 -2
- package/dist/task/index.d.ts.map +1 -1
- package/dist/task/index.js +1 -1
- package/dist/task/index.js.map +1 -1
- package/dist/task/registry.d.ts +11 -3
- package/dist/task/registry.d.ts.map +1 -1
- package/dist/task/registry.js +11 -3
- package/dist/task/registry.js.map +1 -1
- package/docs/ai-agents.md +22 -0
- package/docs/api-reference.md +71 -5
- package/docs/custom-tasks.md +13 -0
- package/docs/releases.md +86 -0
- package/package.json +9 -3
package/README.md
CHANGED
|
@@ -192,6 +192,11 @@ other agents' tools, with mandatory budgets (`maxIterations`, `tokenBudget`,
|
|
|
192
192
|
`maxAgentDepth`). Iteration and concurrency live in the agent runtime, so a flow
|
|
193
193
|
stays a sequential spine with no `loop:` or parallel-step primitive.
|
|
194
194
|
|
|
195
|
+
Hosts can optionally pass `nestedAgentTaskFactory` to `FlowRunner` to control the
|
|
196
|
+
task object used only for configured sub-agents invoked through `agent:` tools.
|
|
197
|
+
When omitted, Flowkit behaves as if it constructed `new AgentTask(ctx, options)`.
|
|
198
|
+
Agents run directly as flow steps still use the normal registry path.
|
|
199
|
+
|
|
195
200
|
```yaml
|
|
196
201
|
tasks:
|
|
197
202
|
extract:
|
package/dist/flow/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { FlowRunner } from './runner.js';
|
|
2
|
-
export type { FlowRunOptions, FlowStepResult, FlowRunResult, FlowRunnerHooks, FlowRunnerConfig, PlanStep, } from './runner.js';
|
|
2
|
+
export type { FlowRunOptions, FlowStepResult, FlowRunResult, FlowRunnerHooks, FlowRunnerConfig, NestedAgentTask, NestedAgentTaskFactory, PlanStep, } from './runner.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/flow/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/flow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/flow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,QAAQ,GACT,MAAM,aAAa,CAAC"}
|
package/dist/flow/runner.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Logger } from '../logger.js';
|
|
2
2
|
import type { TaskDefinition, FlowDefinition, AgentDefinition } from '../config/schema.js';
|
|
3
|
-
import type { TaskResult } from '../task/base-task.js';
|
|
4
|
-
import type { TaskContext } from '../task/base-task.js';
|
|
3
|
+
import type { TaskResult, TaskContext, TaskContextInput, ResolvedTaskContext } from '../task/base-task.js';
|
|
5
4
|
import type { TaskRegistry } from '../task/registry.js';
|
|
5
|
+
import { type AgentTaskOptions } from '../task/agent-task.js';
|
|
6
6
|
export type HookPhase = 'on_start' | 'on_success' | 'on_failure' | 'finally';
|
|
7
7
|
/**
|
|
8
8
|
* Per-task option overrides injected by an enclosing flow step, keyed by the
|
|
@@ -107,11 +107,24 @@ export interface FlowRunnerHooks {
|
|
|
107
107
|
afterStep?(step: PlanStep, result: FlowStepResult): Promise<void>;
|
|
108
108
|
onStepError?(step: PlanStep, error: Error, completed: FlowStepResult[]): Promise<void>;
|
|
109
109
|
}
|
|
110
|
+
/** Task-like object returned by a host-supplied nested agent factory. */
|
|
111
|
+
export interface NestedAgentTask {
|
|
112
|
+
run(): Promise<TaskResult>;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Creates the task used when an `AgentTask` invokes a configured sub-agent via
|
|
116
|
+
* an `agent:` tool. The context and options have already been fully prepared by
|
|
117
|
+
* `FlowRunner`; implementations should preserve them.
|
|
118
|
+
*/
|
|
119
|
+
export type NestedAgentTaskFactory = (ctx: ResolvedTaskContext & {
|
|
120
|
+
readonly executionPhase: 'task';
|
|
121
|
+
}, options: AgentTaskOptions) => NestedAgentTask;
|
|
110
122
|
export interface FlowRunnerConfig {
|
|
111
123
|
tasks: Record<string, TaskDefinition>;
|
|
112
124
|
flows: Record<string, FlowDefinition>;
|
|
113
125
|
registry: TaskRegistry;
|
|
114
|
-
context
|
|
126
|
+
/** Host context; Flowkit supplies the per-invocation `executionPhase`. */
|
|
127
|
+
context: TaskContextInput;
|
|
115
128
|
hooks?: FlowRunnerHooks;
|
|
116
129
|
logger?: Logger;
|
|
117
130
|
/** Optional evaluator for string `when:` expressions. */
|
|
@@ -127,6 +140,13 @@ export interface FlowRunnerConfig {
|
|
|
127
140
|
* `ctx.runAgent` so agents can call flows and sub-agents as tools.
|
|
128
141
|
*/
|
|
129
142
|
agents?: Record<string, AgentDefinition>;
|
|
143
|
+
/**
|
|
144
|
+
* Optional factory for the task object used by configured sub-agents invoked
|
|
145
|
+
* through `agent:` tools. Defaults to `(ctx, options) => new AgentTask(ctx,
|
|
146
|
+
* options)`. Direct `AgentTask` construction is unchanged; configured agents
|
|
147
|
+
* run as flow steps continue to use the registry path.
|
|
148
|
+
*/
|
|
149
|
+
nestedAgentTaskFactory?: NestedAgentTaskFactory;
|
|
130
150
|
}
|
|
131
151
|
export declare class FlowRunner {
|
|
132
152
|
private logger;
|
|
@@ -138,6 +158,7 @@ export declare class FlowRunner {
|
|
|
138
158
|
private conditionEvaluator?;
|
|
139
159
|
private references?;
|
|
140
160
|
private agents;
|
|
161
|
+
private nestedAgentTaskFactory;
|
|
141
162
|
private runDepth;
|
|
142
163
|
/**
|
|
143
164
|
* Reference scope outside any step: the host namespaces, no step results.
|
|
@@ -180,6 +201,7 @@ export declare class FlowRunner {
|
|
|
180
201
|
* inside the task. Every path into a task goes through here, so running one
|
|
181
202
|
* as a step, directly, as a tool, or during rollback all report failure
|
|
182
203
|
* identically — and a step's `retries` cover construction, not just execution.
|
|
204
|
+
* Task-to-task calls derive their equivalent context in `BaseTask.resolve`.
|
|
183
205
|
*/
|
|
184
206
|
private executeTask;
|
|
185
207
|
private runWith;
|
|
@@ -193,7 +215,14 @@ export declare class FlowRunner {
|
|
|
193
215
|
private mergeParentOptions;
|
|
194
216
|
/** Recursively expand a plan step's nested flow into its child steps. */
|
|
195
217
|
private expandPlanStep;
|
|
196
|
-
/**
|
|
218
|
+
/**
|
|
219
|
+
* Evaluate a step's `when:` to a boolean. Undefined `when` always runs.
|
|
220
|
+
*
|
|
221
|
+
* `executionPhase` is the phase the step's own task will observe. It is
|
|
222
|
+
* threaded in rather than read off `this.ctx`, whose phase is only the
|
|
223
|
+
* constructor seed: a `finally` hook gating on `context.executionPhase`
|
|
224
|
+
* would otherwise be told `'task'` and run when it meant to skip.
|
|
225
|
+
*/
|
|
197
226
|
private evaluateWhen;
|
|
198
227
|
private executeFlow;
|
|
199
228
|
private runHookStep;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/flow/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAY,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/flow/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/flow/runner.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { noopLogger } from '../logger.js';
|
|
2
|
+
import { DEFAULT_EXECUTION_PHASE } from '../task/base-task.js';
|
|
2
3
|
import { AgentTask } from '../task/agent-task.js';
|
|
3
4
|
import { resolveReferences } from '../references.js';
|
|
4
5
|
import { resolveTaskDefinition, resolveTaskCall } from '../task/task-resolution.js';
|
|
@@ -15,6 +16,7 @@ export class FlowRunner {
|
|
|
15
16
|
conditionEvaluator;
|
|
16
17
|
references;
|
|
17
18
|
agents;
|
|
19
|
+
nestedAgentTaskFactory;
|
|
18
20
|
runDepth = 0;
|
|
19
21
|
/**
|
|
20
22
|
* Reference scope outside any step: the host namespaces, no step results.
|
|
@@ -32,6 +34,8 @@ export class FlowRunner {
|
|
|
32
34
|
this.references = config.references;
|
|
33
35
|
this.baseReferences = { steps: [], namespaces: this.references };
|
|
34
36
|
this.agents = config.agents ?? {};
|
|
37
|
+
this.nestedAgentTaskFactory =
|
|
38
|
+
config.nestedAgentTaskFactory ?? ((ctx, options) => new AgentTask(ctx, options));
|
|
35
39
|
// Compile each agent into a task definition so it is runnable as a flow
|
|
36
40
|
// step (`task: <agentName>`) and as a task-backed tool. Explicit tasks of
|
|
37
41
|
// the same name win.
|
|
@@ -52,14 +56,19 @@ export class FlowRunner {
|
|
|
52
56
|
// Expose the configured task definitions so tasks invoked as agent tools
|
|
53
57
|
// inherit their class_path/options defaults (see AgentTask), and wire the
|
|
54
58
|
// flow/agent tool dispatchers.
|
|
59
|
+
// `executionPhase` is derived per invocation by `contextFor`, so a phase
|
|
60
|
+
// present on `config.context` is deliberately ignored rather than merged:
|
|
61
|
+
// the runner knows why each task is running and the host does not. This
|
|
62
|
+
// seed value only covers reads of `this.ctx` outside a task invocation.
|
|
55
63
|
this.ctx = {
|
|
56
64
|
...config.context,
|
|
65
|
+
executionPhase: DEFAULT_EXECUTION_PHASE,
|
|
57
66
|
registry: config.registry,
|
|
58
67
|
taskDefinitions: this.tasks,
|
|
59
68
|
taskReferenceContext: this.baseReferences,
|
|
69
|
+
runFlow: (flowName, params) => this.runFlowTool(flowName, params),
|
|
70
|
+
runAgent: (agentName, input, depth, ledger) => this.runAgentTool(agentName, input, depth, ledger),
|
|
60
71
|
};
|
|
61
|
-
this.ctx.runFlow = (flowName, params) => this.runFlowTool(flowName, params);
|
|
62
|
-
this.ctx.runAgent = (agentName, input, depth, ledger) => this.runAgentTool(agentName, input, depth, ledger);
|
|
63
72
|
}
|
|
64
73
|
/**
|
|
65
74
|
* Context for work running under a given reference scope. The scope is
|
|
@@ -67,10 +76,11 @@ export class FlowRunner {
|
|
|
67
76
|
* sub-agent dispatch, so a task invoked several agents deep resolves its
|
|
68
77
|
* configured defaults exactly as it would as a top-level step.
|
|
69
78
|
*/
|
|
70
|
-
contextFor(references) {
|
|
79
|
+
contextFor(references, executionPhase = DEFAULT_EXECUTION_PHASE) {
|
|
71
80
|
return {
|
|
72
81
|
...this.ctx,
|
|
73
82
|
taskReferenceContext: references,
|
|
83
|
+
executionPhase,
|
|
74
84
|
runAgent: (agentName, input, depth, ledger) => this.runAgentTool(agentName, input, depth, ledger, references),
|
|
75
85
|
};
|
|
76
86
|
}
|
|
@@ -136,10 +146,16 @@ export class FlowRunner {
|
|
|
136
146
|
// the sub-agent interpolates its configured defaults like anywhere else.
|
|
137
147
|
const childCtx = {
|
|
138
148
|
...this.contextFor(references),
|
|
149
|
+
executionPhase: 'task',
|
|
139
150
|
__agentDepth: depth,
|
|
140
151
|
__tokenLedger: ledger,
|
|
141
152
|
};
|
|
142
|
-
|
|
153
|
+
try {
|
|
154
|
+
return await this.nestedAgentTaskFactory(childCtx, options).run();
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
return { success: false, error: err instanceof Error ? err : new Error(String(err)) };
|
|
158
|
+
}
|
|
143
159
|
}
|
|
144
160
|
async run(options) {
|
|
145
161
|
return this.runWith(options, {});
|
|
@@ -174,9 +190,10 @@ export class FlowRunner {
|
|
|
174
190
|
* inside the task. Every path into a task goes through here, so running one
|
|
175
191
|
* as a step, directly, as a tool, or during rollback all report failure
|
|
176
192
|
* identically — and a step's `retries` cover construction, not just execution.
|
|
193
|
+
* Task-to-task calls derive their equivalent context in `BaseTask.resolve`.
|
|
177
194
|
*/
|
|
178
|
-
async executeTask(classPath, options, references) {
|
|
179
|
-
const taskCtx =
|
|
195
|
+
async executeTask(classPath, options, references, executionPhase = DEFAULT_EXECUTION_PHASE) {
|
|
196
|
+
const taskCtx = this.contextFor(references, executionPhase);
|
|
180
197
|
try {
|
|
181
198
|
const task = await this.registry.create(classPath, taskCtx, options);
|
|
182
199
|
return task.run();
|
|
@@ -258,8 +275,15 @@ export class FlowRunner {
|
|
|
258
275
|
const children = childPlan.flatMap((cs) => this.expandPlanStep(cs, childParentOptions, `${pathPrefix}/${cs.stepNumber}`, depth + 1, nextAncestors, skipSet));
|
|
259
276
|
return [self, ...children];
|
|
260
277
|
}
|
|
261
|
-
/**
|
|
262
|
-
|
|
278
|
+
/**
|
|
279
|
+
* Evaluate a step's `when:` to a boolean. Undefined `when` always runs.
|
|
280
|
+
*
|
|
281
|
+
* `executionPhase` is the phase the step's own task will observe. It is
|
|
282
|
+
* threaded in rather than read off `this.ctx`, whose phase is only the
|
|
283
|
+
* constructor seed: a `finally` hook gating on `context.executionPhase`
|
|
284
|
+
* would otherwise be told `'task'` and run when it meant to skip.
|
|
285
|
+
*/
|
|
286
|
+
async evaluateWhen(when, completedSteps, params, executionPhase, errorCtx) {
|
|
263
287
|
if (when === undefined)
|
|
264
288
|
return true;
|
|
265
289
|
if (typeof when === 'boolean')
|
|
@@ -276,7 +300,7 @@ export class FlowRunner {
|
|
|
276
300
|
return await this.conditionEvaluator(when, {
|
|
277
301
|
steps: completedSteps,
|
|
278
302
|
params,
|
|
279
|
-
context: this.ctx,
|
|
303
|
+
context: executionPhase === this.ctx.executionPhase ? this.ctx : { ...this.ctx, executionPhase },
|
|
280
304
|
error,
|
|
281
305
|
});
|
|
282
306
|
}
|
|
@@ -353,7 +377,7 @@ export class FlowRunner {
|
|
|
353
377
|
let conditionError;
|
|
354
378
|
if (!planStep.skipped && planStep.when !== undefined) {
|
|
355
379
|
try {
|
|
356
|
-
conditionMet = await this.evaluateWhen(planStep.when, completedSteps, options.params);
|
|
380
|
+
conditionMet = await this.evaluateWhen(planStep.when, completedSteps, options.params, planStep.phase ?? DEFAULT_EXECUTION_PHASE);
|
|
357
381
|
}
|
|
358
382
|
catch (err) {
|
|
359
383
|
conditionError = err instanceof Error ? err : new Error(String(err));
|
|
@@ -523,7 +547,7 @@ export class FlowRunner {
|
|
|
523
547
|
// Hook steps honor `when:` too — a falsy condition skips them silently.
|
|
524
548
|
if (hookStep.when !== undefined) {
|
|
525
549
|
try {
|
|
526
|
-
const ok = await this.evaluateWhen(hookStep.when, completedSteps, options.params, errorCtx);
|
|
550
|
+
const ok = await this.evaluateWhen(hookStep.when, completedSteps, options.params, hookStep.phase ?? DEFAULT_EXECUTION_PHASE, errorCtx);
|
|
527
551
|
if (!ok)
|
|
528
552
|
return true;
|
|
529
553
|
}
|
|
@@ -624,7 +648,7 @@ export class FlowRunner {
|
|
|
624
648
|
};
|
|
625
649
|
}
|
|
626
650
|
this.logger.info({ step: step.stepNumber, task: step.name, type: step.type }, `Executing step ${step.stepNumber}: ${step.name}`);
|
|
627
|
-
return this.executeTask(taskDef.classPath, mergedOptions, refCtx);
|
|
651
|
+
return this.executeTask(taskDef.classPath, mergedOptions, refCtx, step.phase ?? DEFAULT_EXECUTION_PHASE);
|
|
628
652
|
}
|
|
629
653
|
async performRollback(records) {
|
|
630
654
|
const result = { attempted: 0, succeeded: 0, errors: [] };
|
|
@@ -638,7 +662,7 @@ export class FlowRunner {
|
|
|
638
662
|
// `${...}` captured in recorded data is neither substituted nor thrown
|
|
639
663
|
// on — which the catch below would turn into a silently failed rollback.
|
|
640
664
|
const resolved = resolveTaskCall(rec.taskName, this.tasks, rec.payload, this.baseReferences);
|
|
641
|
-
const r = await this.executeTask(resolved.classPath, resolved.options);
|
|
665
|
+
const r = await this.executeTask(resolved.classPath, resolved.options, this.baseReferences, 'rollback');
|
|
642
666
|
if (r.success) {
|
|
643
667
|
result.succeeded++;
|
|
644
668
|
}
|
package/dist/flow/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/flow/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/flow/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-guards.d.ts","sourceRoot":"","sources":["../../src/guard/task-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAKtD,8EAA8E;AAC9E,MAAM,MAAM,UAAU,CAAC,GAAG,SAAS,YAAY,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE5F,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB,CAAC,GAAG,SAAS,YAAY;IACxD,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB,CAAC,GAAG,SAAS,YAAY,EAAE,OAAO,GAAG,OAAO;IACpF;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC;IAClC;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChE;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC5C;;;;;OAKG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7C,2EAA2E;IAC3E,cAAc,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,YAAY,EAAE,OAAO,GAAG,OAAO,EAC5E,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,GAC/C,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"task-guards.d.ts","sourceRoot":"","sources":["../../src/guard/task-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAKtD,8EAA8E;AAC9E,MAAM,MAAM,UAAU,CAAC,GAAG,SAAS,YAAY,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE5F,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB,CAAC,GAAG,SAAS,YAAY;IACxD,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB,CAAC,GAAG,SAAS,YAAY,EAAE,OAAO,GAAG,OAAO;IACpF;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC;IAClC;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChE;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC5C;;;;;OAKG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7C,2EAA2E;IAC3E,cAAc,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,YAAY,EAAE,OAAO,GAAG,OAAO,EAC5E,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,GAC/C,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CA0FvB"}
|
|
@@ -42,6 +42,20 @@ export function discoverTaskGuards(registry, options) {
|
|
|
42
42
|
});
|
|
43
43
|
const runTask = async (ctx, result) => {
|
|
44
44
|
try {
|
|
45
|
+
// A guard task deliberately runs as ordinary work: `contextFor` returns
|
|
46
|
+
// a host context with no phase, so `registry.create` resolves
|
|
47
|
+
// DEFAULT_EXECUTION_PHASE and the task sees `'task'`. That is a
|
|
48
|
+
// decision, not an oversight — this is the seam where a `'guard'` phase
|
|
49
|
+
// would be introduced.
|
|
50
|
+
//
|
|
51
|
+
// It is not introduced now because the right granularity is unknown: a
|
|
52
|
+
// guard is `before` or `after` and may be scoped (`beforeWrite`), so a
|
|
53
|
+
// single `'guard'` value could be the wrong shape, and `ExecutionPhase`
|
|
54
|
+
// is a closed union whose members cannot be revised cheaply (adding one
|
|
55
|
+
// breaks exhaustive switches and `Record<ExecutionPhase, T>` in
|
|
56
|
+
// consumers). A host needing the distinction today can supply it
|
|
57
|
+
// itself, e.g. `contextFor: (c) => ({ ...ctx, isGuard: true })`, or read
|
|
58
|
+
// the task name, which is always `guard.<name>.<phase>`.
|
|
45
59
|
const task = await registry.create(taskName, options.contextFor(ctx), options.optionsFor(ctx, result));
|
|
46
60
|
return await task.run();
|
|
47
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-guards.js","sourceRoot":"","sources":["../../src/guard/task-guards.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-guards.js","sourceRoot":"","sources":["../../src/guard/task-guards.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ export { TaskOptionsSchema, TaskDefinitionSchema, FlowStepSchema, FlowDefinition
|
|
|
3
3
|
export type { TaskOptions, TaskDefinition, FlowStep, FlowDefinition, AgentTool, AgentBudget, AgentDefinition, EngineConfig, } from './config/schema.js';
|
|
4
4
|
export { loadConfig, loadRawYaml, findConfigFile } from './config/loader.js';
|
|
5
5
|
export type { LoadConfigOptions, LoadedConfig } from './config/loader.js';
|
|
6
|
-
export { BaseTask } from './task/base-task.js';
|
|
7
|
-
export type { TaskContext, TaskResult, RollbackRecord } from './task/base-task.js';
|
|
6
|
+
export { BaseTask, DEFAULT_EXECUTION_PHASE, resolveTaskContext } from './task/base-task.js';
|
|
7
|
+
export type { TaskContext, TaskContextInput, ResolvedTaskContext, ExecutionPhase, TaskResult, RollbackRecord, } from './task/base-task.js';
|
|
8
8
|
export { ShellTask } from './task/shell-task.js';
|
|
9
9
|
export type { ShellTaskOptions } from './task/shell-task.js';
|
|
10
10
|
export { TaskRegistry } from './task/registry.js';
|
|
@@ -23,7 +23,7 @@ export type { TokenLedger } from './task/token-ledger.js';
|
|
|
23
23
|
export { redact, truncate, preview } from './task/redact.js';
|
|
24
24
|
export type { LLMProvider, LLMCompletionRequest, LLMCompletionResponse, LLMMessage, LLMRole, LLMToolCall, LLMToolDefinition, LLMToolChoice, LLMToolHandler, } from './task/llm-provider.js';
|
|
25
25
|
export { FlowRunner } from './flow/runner.js';
|
|
26
|
-
export type { FlowRunOptions, FlowStepResult, FlowRunResult, FlowRunnerHooks, FlowRunnerConfig, PlanStep, HookPhase, HookError, RollbackResult, } from './flow/runner.js';
|
|
26
|
+
export type { FlowRunOptions, FlowStepResult, FlowRunResult, FlowRunnerHooks, FlowRunnerConfig, NestedAgentTask, NestedAgentTaskFactory, PlanStep, HookPhase, HookError, RollbackResult, } from './flow/runner.js';
|
|
27
27
|
export { GuardRegistry } from './guard/registry.js';
|
|
28
28
|
export { runGuarded } from './guard/pipeline.js';
|
|
29
29
|
export { discoverTaskGuards } from './guard/task-guards.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,cAAc,EACd,SAAS,EACT,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC7E,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { deepMerge } from './config/deep-merge.js';
|
|
|
3
3
|
export { TaskOptionsSchema, TaskDefinitionSchema, FlowStepSchema, FlowDefinitionSchema, AgentToolSchema, AgentBudgetSchema, AgentDefinitionSchema, EngineConfigSchema, } from './config/schema.js';
|
|
4
4
|
export { loadConfig, loadRawYaml, findConfigFile } from './config/loader.js';
|
|
5
5
|
// Task
|
|
6
|
-
export { BaseTask } from './task/base-task.js';
|
|
6
|
+
export { BaseTask, DEFAULT_EXECUTION_PHASE, resolveTaskContext } from './task/base-task.js';
|
|
7
7
|
export { ShellTask } from './task/shell-task.js';
|
|
8
8
|
export { TaskRegistry } from './task/registry.js';
|
|
9
9
|
export { AgentPromptTask } from './task/agent-prompt-task.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO;AACP,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO;AACP,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAS5F,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAa7D,OAAO;AACP,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAc9C,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG1D,kDAAkD;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM;AACN,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/task/base-task.d.ts
CHANGED
|
@@ -14,6 +14,13 @@ import type { ReferenceContext } from '../references.js';
|
|
|
14
14
|
* host instead, e.g. `context: { cache: new Map() }`.
|
|
15
15
|
*/
|
|
16
16
|
export interface TaskContext {
|
|
17
|
+
/**
|
|
18
|
+
* Lifecycle phase for this specific task invocation. Optional here because
|
|
19
|
+
* this is the shape a *host* builds, and Flowkit owns the value: the runner
|
|
20
|
+
* and `TaskRegistry.create` supply it before a task ever observes it. A
|
|
21
|
+
* running task reads it through `ResolvedTaskContext`, where it is required.
|
|
22
|
+
*/
|
|
23
|
+
readonly executionPhase?: ExecutionPhase;
|
|
17
24
|
logger?: Logger;
|
|
18
25
|
registry?: TaskRegistry;
|
|
19
26
|
/** LLM provider consumed by `AgentPromptTask` / `AgentTask`. */
|
|
@@ -54,6 +61,45 @@ export interface TaskContext {
|
|
|
54
61
|
__tokenLedger?: TokenLedger;
|
|
55
62
|
[key: string]: unknown;
|
|
56
63
|
}
|
|
64
|
+
/** Public lifecycle phases assigned by `FlowRunner` to each task invocation. */
|
|
65
|
+
export type ExecutionPhase = 'task' | 'on_start' | 'on_success' | 'on_failure' | 'finally' | 'rollback';
|
|
66
|
+
/**
|
|
67
|
+
* Host context accepted by runners and direct task construction.
|
|
68
|
+
*
|
|
69
|
+
* An alias of `TaskContext`, named for the boundary it documents. It is not an
|
|
70
|
+
* `Omit<TaskContext, 'executionPhase'>`: `TaskContext` carries a string index
|
|
71
|
+
* signature, so `keyof` it is `string | number` and `Omit` would erase every
|
|
72
|
+
* named field, silently turning the host-facing surface into `{[k: string]:
|
|
73
|
+
* unknown}` and dropping all compile-time checking of `logger`, `llm`, and the
|
|
74
|
+
* rest.
|
|
75
|
+
*/
|
|
76
|
+
export type TaskContextInput = TaskContext;
|
|
77
|
+
/**
|
|
78
|
+
* Context as a *running task* observes it: identical to `TaskContext` except
|
|
79
|
+
* the lifecycle phase is guaranteed present, because Flowkit resolved it during
|
|
80
|
+
* construction. This is the type of `BaseTask.ctx`.
|
|
81
|
+
*/
|
|
82
|
+
export type ResolvedTaskContext = TaskContext & {
|
|
83
|
+
readonly executionPhase: ExecutionPhase;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Phase used when nothing better is known: direct construction, or a
|
|
87
|
+
* `registry.create()` whose caller supplied no phase. Declared once and
|
|
88
|
+
* referenced everywhere, so adding a phase or changing the fallback is a
|
|
89
|
+
* single-site edit rather than a hunt through the runner and the registry.
|
|
90
|
+
*/
|
|
91
|
+
export declare const DEFAULT_EXECUTION_PHASE: ExecutionPhase;
|
|
92
|
+
/**
|
|
93
|
+
* The one place a host context becomes a task context.
|
|
94
|
+
*
|
|
95
|
+
* Returns `ctx` **itself** when the phase is already set, which is every path
|
|
96
|
+
* through `FlowRunner`. That matters beyond allocation: a host may pass a class
|
|
97
|
+
* instance or a service object as its context, and copying would strip its
|
|
98
|
+
* prototype methods and break identity for anything comparing contexts. When a
|
|
99
|
+
* phase must be added, the prototype is carried onto the new object for the
|
|
100
|
+
* same reason.
|
|
101
|
+
*/
|
|
102
|
+
export declare function resolveTaskContext(ctx: TaskContextInput): ResolvedTaskContext;
|
|
57
103
|
/**
|
|
58
104
|
* Rollback record returned by a successful mutation task.
|
|
59
105
|
* The runner invokes `taskName` with `payload` (in reverse step order)
|
|
@@ -71,10 +117,24 @@ export interface TaskResult {
|
|
|
71
117
|
rollback?: RollbackRecord;
|
|
72
118
|
}
|
|
73
119
|
export declare abstract class BaseTask<TOpts = Record<string, unknown>> {
|
|
120
|
+
protected logger: Logger;
|
|
121
|
+
/**
|
|
122
|
+
* Typed `TaskContext`, not `ResolvedTaskContext`, so a subclass can narrow it
|
|
123
|
+
* to the host's own context interface (which is built from `TaskContext` and
|
|
124
|
+
* so leaves the phase optional). The value is always phase-resolved at
|
|
125
|
+
* runtime; a task that needs the non-optional type can assert
|
|
126
|
+
* `ResolvedTaskContext`.
|
|
127
|
+
*/
|
|
74
128
|
protected ctx: TaskContext;
|
|
75
129
|
protected options: TOpts;
|
|
76
|
-
|
|
77
|
-
|
|
130
|
+
constructor(ctx: TaskContextInput, options: TOpts);
|
|
131
|
+
/**
|
|
132
|
+
* Lifecycle phase for this invocation, always present. Read this rather than
|
|
133
|
+
* `ctx.executionPhase`: `ctx` is typed as the host-facing `TaskContext`, where
|
|
134
|
+
* the phase is optional so host context interfaces stay constructible, but
|
|
135
|
+
* Flowkit resolves it before any task observes it.
|
|
136
|
+
*/
|
|
137
|
+
protected get executionPhase(): ExecutionPhase;
|
|
78
138
|
abstract get taskName(): string;
|
|
79
139
|
abstract execute(): Promise<TaskResult>;
|
|
80
140
|
/** Override for option validation — called before execute(). */
|
|
@@ -87,6 +147,8 @@ export declare abstract class BaseTask<TOpts = Record<string, unknown>> {
|
|
|
87
147
|
* default options as an ordinary flow step or an agent tool, including
|
|
88
148
|
* `${ns.path}` interpolation of those defaults. `options` are this task's own
|
|
89
149
|
* runtime data and stay literal (see `resolveTaskCall`).
|
|
150
|
+
* The child receives a fresh context with the ordinary `task` phase while
|
|
151
|
+
* retaining the caller's host services and reference scope.
|
|
90
152
|
*
|
|
91
153
|
* Returns an unexecuted task instance — call `.run()` on it yourself when you
|
|
92
154
|
* need to inspect or configure the task before running.
|
|
@@ -94,7 +156,7 @@ export declare abstract class BaseTask<TOpts = Record<string, unknown>> {
|
|
|
94
156
|
protected resolve<T extends BaseTask = BaseTask>(taskName: string, options?: Record<string, unknown>): Promise<T>;
|
|
95
157
|
/**
|
|
96
158
|
* Resolve and execute another task by name in a single call.
|
|
97
|
-
* The resolved task shares
|
|
159
|
+
* The resolved task shares the caller's host services through a fresh context.
|
|
98
160
|
*/
|
|
99
161
|
protected call(taskName: string, options?: Record<string, unknown>): Promise<TaskResult>;
|
|
100
162
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-task.d.ts","sourceRoot":"","sources":["../../src/task/base-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,gEAAgE;IAChE,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACtF;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CACT,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,8BAAsB,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"base-task.d.ts","sourceRoot":"","sources":["../../src/task/base-task.ts"],"names":[],"mappings":"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"}
|
package/dist/task/base-task.js
CHANGED
|
@@ -1,15 +1,56 @@
|
|
|
1
1
|
import { noopLogger } from '../logger.js';
|
|
2
2
|
import { resolveTaskCall } from './task-resolution.js';
|
|
3
|
+
/**
|
|
4
|
+
* Phase used when nothing better is known: direct construction, or a
|
|
5
|
+
* `registry.create()` whose caller supplied no phase. Declared once and
|
|
6
|
+
* referenced everywhere, so adding a phase or changing the fallback is a
|
|
7
|
+
* single-site edit rather than a hunt through the runner and the registry.
|
|
8
|
+
*/
|
|
9
|
+
export const DEFAULT_EXECUTION_PHASE = 'task';
|
|
10
|
+
/**
|
|
11
|
+
* The one place a host context becomes a task context.
|
|
12
|
+
*
|
|
13
|
+
* Returns `ctx` **itself** when the phase is already set, which is every path
|
|
14
|
+
* through `FlowRunner`. That matters beyond allocation: a host may pass a class
|
|
15
|
+
* instance or a service object as its context, and copying would strip its
|
|
16
|
+
* prototype methods and break identity for anything comparing contexts. When a
|
|
17
|
+
* phase must be added, the prototype is carried onto the new object for the
|
|
18
|
+
* same reason.
|
|
19
|
+
*/
|
|
20
|
+
export function resolveTaskContext(ctx) {
|
|
21
|
+
if (ctx.executionPhase !== undefined)
|
|
22
|
+
return ctx;
|
|
23
|
+
const proto = Object.getPrototypeOf(ctx);
|
|
24
|
+
return Object.assign(Object.create(proto), ctx, {
|
|
25
|
+
executionPhase: DEFAULT_EXECUTION_PHASE,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
3
28
|
export class BaseTask {
|
|
29
|
+
logger;
|
|
30
|
+
/**
|
|
31
|
+
* Typed `TaskContext`, not `ResolvedTaskContext`, so a subclass can narrow it
|
|
32
|
+
* to the host's own context interface (which is built from `TaskContext` and
|
|
33
|
+
* so leaves the phase optional). The value is always phase-resolved at
|
|
34
|
+
* runtime; a task that needs the non-optional type can assert
|
|
35
|
+
* `ResolvedTaskContext`.
|
|
36
|
+
*/
|
|
4
37
|
ctx;
|
|
5
38
|
options;
|
|
6
|
-
logger;
|
|
7
39
|
constructor(ctx, options) {
|
|
8
|
-
this.ctx = ctx;
|
|
40
|
+
this.ctx = resolveTaskContext(ctx);
|
|
9
41
|
this.options = options;
|
|
10
|
-
const parentLogger = ctx.logger ?? noopLogger;
|
|
42
|
+
const parentLogger = this.ctx.logger ?? noopLogger;
|
|
11
43
|
this.logger = parentLogger.child({ task: this.constructor.name });
|
|
12
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Lifecycle phase for this invocation, always present. Read this rather than
|
|
47
|
+
* `ctx.executionPhase`: `ctx` is typed as the host-facing `TaskContext`, where
|
|
48
|
+
* the phase is optional so host context interfaces stay constructible, but
|
|
49
|
+
* Flowkit resolves it before any task observes it.
|
|
50
|
+
*/
|
|
51
|
+
get executionPhase() {
|
|
52
|
+
return this.ctx.executionPhase;
|
|
53
|
+
}
|
|
13
54
|
/** Override for option validation — called before execute(). */
|
|
14
55
|
validate() { }
|
|
15
56
|
/**
|
|
@@ -20,6 +61,8 @@ export class BaseTask {
|
|
|
20
61
|
* default options as an ordinary flow step or an agent tool, including
|
|
21
62
|
* `${ns.path}` interpolation of those defaults. `options` are this task's own
|
|
22
63
|
* runtime data and stay literal (see `resolveTaskCall`).
|
|
64
|
+
* The child receives a fresh context with the ordinary `task` phase while
|
|
65
|
+
* retaining the caller's host services and reference scope.
|
|
23
66
|
*
|
|
24
67
|
* Returns an unexecuted task instance — call `.run()` on it yourself when you
|
|
25
68
|
* need to inspect or configure the task before running.
|
|
@@ -31,11 +74,14 @@ export class BaseTask {
|
|
|
31
74
|
'Tasks can only resolve other tasks when run via FlowRunner.');
|
|
32
75
|
}
|
|
33
76
|
const resolved = resolveTaskCall(taskName, this.ctx.taskDefinitions, options, this.ctx.taskReferenceContext);
|
|
34
|
-
|
|
77
|
+
// A task-to-task call is ordinary work: it does not inherit the caller's
|
|
78
|
+
// hook or rollback phase.
|
|
79
|
+
const childCtx = { ...this.ctx, executionPhase: DEFAULT_EXECUTION_PHASE };
|
|
80
|
+
return registry.create(resolved.classPath, childCtx, resolved.options);
|
|
35
81
|
}
|
|
36
82
|
/**
|
|
37
83
|
* Resolve and execute another task by name in a single call.
|
|
38
|
-
* The resolved task shares
|
|
84
|
+
* The resolved task shares the caller's host services through a fresh context.
|
|
39
85
|
*/
|
|
40
86
|
async call(taskName, options) {
|
|
41
87
|
const task = await this.resolve(taskName, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-task.js","sourceRoot":"","sources":["../../src/task/base-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-task.js","sourceRoot":"","sources":["../../src/task/base-task.ts"],"names":[],"mappings":"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"}
|
package/dist/task/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { BaseTask } from './base-task.js';
|
|
2
|
-
export type { TaskContext, TaskResult, RollbackRecord } from './base-task.js';
|
|
1
|
+
export { BaseTask, DEFAULT_EXECUTION_PHASE, resolveTaskContext } from './base-task.js';
|
|
2
|
+
export type { TaskContext, TaskContextInput, ResolvedTaskContext, ExecutionPhase, TaskResult, RollbackRecord, } from './base-task.js';
|
|
3
3
|
export { ShellTask } from './shell-task.js';
|
|
4
4
|
export type { ShellTaskOptions } from './shell-task.js';
|
|
5
5
|
export { TaskRegistry } from './registry.js';
|
package/dist/task/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvF,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,mBAAmB,CAAC"}
|
package/dist/task/index.js
CHANGED
package/dist/task/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AASvF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/task/registry.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseTask, type TaskContext } from './base-task.js';
|
|
1
|
+
import { BaseTask, type TaskContext, type TaskContextInput } from './base-task.js';
|
|
2
2
|
export type TaskConstructor = new (ctx: TaskContext, options: Record<string, unknown>) => BaseTask;
|
|
3
3
|
export declare class TaskRegistry {
|
|
4
4
|
private classPathMap;
|
|
@@ -17,8 +17,16 @@ export declare class TaskRegistry {
|
|
|
17
17
|
* Falls back to dynamic import from the filesystem.
|
|
18
18
|
*/
|
|
19
19
|
resolve(classPathOrName: string): Promise<TaskConstructor>;
|
|
20
|
-
/**
|
|
21
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Resolve + instantiate in one call.
|
|
22
|
+
*
|
|
23
|
+
* The phase is resolved *before* construction, not left to `BaseTask`, so a
|
|
24
|
+
* host-authored constructor that reads `ctx.executionPhase` before calling
|
|
25
|
+
* `super()` sees the same value the task will. `resolveTaskContext` is a
|
|
26
|
+
* no-op when the caller already supplied a phase, which is every path through
|
|
27
|
+
* `FlowRunner`.
|
|
28
|
+
*/
|
|
29
|
+
create(classPathOrName: string, ctx: TaskContextInput, options: Record<string, unknown>): Promise<BaseTask>;
|
|
22
30
|
/**
|
|
23
31
|
* Wrap an existing registered task with a decorator class.
|
|
24
32
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/task/registry.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/task/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EAER,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG,KAC5B,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,QAAQ,CAAC;AAEd,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,YAAY,CAAsC;IAE1D,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI;IAKnD,gEAAgE;IAChE,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI;IAKjE,mCAAmC;IACnC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI;IAO3D,mCAAmC;IACnC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI;IAOlE;;;OAGG;IACG,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQhE;;;;;;;;OAQG;IACG,MAAM,CACV,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,QAAQ,CAAC;IAKpB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,eAAe,GAAG,IAAI;IAcjF,mDAAmD;IACnD,cAAc,IAAI,MAAM,EAAE;YAQZ,WAAW;IA0CzB,OAAO,CAAC,qBAAqB;CAW9B"}
|
package/dist/task/registry.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as path from 'node:path';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
|
-
import { BaseTask } from './base-task.js';
|
|
3
|
+
import { BaseTask, resolveTaskContext, } from './base-task.js';
|
|
4
4
|
export class TaskRegistry {
|
|
5
5
|
classPathMap = new Map();
|
|
6
6
|
nameMap = new Map();
|
|
@@ -39,10 +39,18 @@ export class TaskRegistry {
|
|
|
39
39
|
return builtin;
|
|
40
40
|
return this.loadDynamic(classPathOrName);
|
|
41
41
|
}
|
|
42
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Resolve + instantiate in one call.
|
|
44
|
+
*
|
|
45
|
+
* The phase is resolved *before* construction, not left to `BaseTask`, so a
|
|
46
|
+
* host-authored constructor that reads `ctx.executionPhase` before calling
|
|
47
|
+
* `super()` sees the same value the task will. `resolveTaskContext` is a
|
|
48
|
+
* no-op when the caller already supplied a phase, which is every path through
|
|
49
|
+
* `FlowRunner`.
|
|
50
|
+
*/
|
|
43
51
|
async create(classPathOrName, ctx, options) {
|
|
44
52
|
const TaskClass = await this.resolve(classPathOrName);
|
|
45
|
-
return new TaskClass(ctx, options);
|
|
53
|
+
return new TaskClass(resolveTaskContext(ctx), options);
|
|
46
54
|
}
|
|
47
55
|
/**
|
|
48
56
|
* Wrap an existing registered task with a decorator class.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/task/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/task/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,QAAQ,EACR,kBAAkB,GAGnB,MAAM,gBAAgB,CAAC;AAOxB,MAAM,OAAO,YAAY;IACf,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;IAClD,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC7C,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;IAE1D,uDAAuD;IACvD,QAAQ,CAAC,IAAY,EAAE,IAAqB;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gEAAgE;IAChE,iBAAiB,CAAC,SAAiB,EAAE,IAAqB;QACxD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mCAAmC;IACnC,WAAW,CAAC,OAAwC;QAClD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mCAAmC;IACnC,kBAAkB,CAAC,OAAwC;QACzD,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,eAAuB;QACnC,MAAM,OAAO,GACX,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC9E,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CACV,eAAuB,EACvB,GAAqB,EACrB,OAAgC;QAEhC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACtD,OAAO,IAAI,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,IAAY,EAAE,OAAuD;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,6BAA6B;gBACpD,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpD,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,2DAA2D;QAC3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,8EAA8E;IAC9E,6DAA6D;IAC7D,8EAA8E;IAEtE,KAAK,CAAC,WAAW,CAAC,SAAiB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,YAAY,GAAkB,IAAI,CAAC;QAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,YAAY,GAAG,SAAS,CAAC;gBACzB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,wBAAwB,SAAS,gBAAgB;gBAC/C,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/C,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,WAAW,YAAY,sDAAsD;gBAC3E,aAAa,QAAQ,GAAG,CAC3B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,YAAY,QAAQ,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,oBAAoB,YAAY,4BAA4B,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,SAA4B,CAAC,CAAC;QAC/D,OAAO,SAA4B,CAAC;IACtC,CAAC;IAEO,qBAAqB,CAAC,SAAiB;QAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,OAAO;YACL,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,KAAK,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,KAAK,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,WAAW,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,WAAW,CAAC;SAC1C,CAAC;IACJ,CAAC;CACF"}
|
package/docs/ai-agents.md
CHANGED
|
@@ -252,6 +252,28 @@ const runner = new FlowRunner({
|
|
|
252
252
|
});
|
|
253
253
|
```
|
|
254
254
|
|
|
255
|
+
Hosts that wrap task construction can customize only configured sub-agents
|
|
256
|
+
invoked through `agent:` tools:
|
|
257
|
+
|
|
258
|
+
```typescript
|
|
259
|
+
import { AgentTask, FlowRunner } from '@db-lyon/flowkit';
|
|
260
|
+
|
|
261
|
+
const runner = new FlowRunner({
|
|
262
|
+
tasks: config.tasks,
|
|
263
|
+
flows: config.flows,
|
|
264
|
+
agents: config.agents,
|
|
265
|
+
registry,
|
|
266
|
+
context: { logger, llm: provider },
|
|
267
|
+
nestedAgentTaskFactory: (ctx, options) => new AgentTask(ctx, options),
|
|
268
|
+
});
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
When omitted, the default is equivalent to `new AgentTask(ctx, options)`.
|
|
272
|
+
Flowkit supplies the factory with the prepared child context and compiled
|
|
273
|
+
options used for recursion depth, shared token budget, references, cancellation
|
|
274
|
+
signals, registry access, execution phase, and tool dispatch. Agents run
|
|
275
|
+
directly as flow steps still use the normal registry path.
|
|
276
|
+
|
|
255
277
|
A declared agent is usable two ways, both through machinery that already exists:
|
|
256
278
|
|
|
257
279
|
- **As a flow step** — reference it like any task; supply its prompt in the step:
|
package/docs/api-reference.md
CHANGED
|
@@ -125,7 +125,7 @@ abstract class BaseTask<TOpts = Record<string, unknown>> {
|
|
|
125
125
|
protected options: TOpts;
|
|
126
126
|
protected logger: Logger;
|
|
127
127
|
|
|
128
|
-
constructor(ctx:
|
|
128
|
+
constructor(ctx: TaskContextInput, options: TOpts);
|
|
129
129
|
|
|
130
130
|
abstract get taskName(): string;
|
|
131
131
|
abstract execute(): Promise<TaskResult>;
|
|
@@ -146,13 +146,46 @@ abstract class BaseTask<TOpts = Record<string, unknown>> {
|
|
|
146
146
|
### `TaskContext`
|
|
147
147
|
|
|
148
148
|
```typescript
|
|
149
|
+
type ExecutionPhase =
|
|
150
|
+
| 'task'
|
|
151
|
+
| 'on_start'
|
|
152
|
+
| 'on_success'
|
|
153
|
+
| 'on_failure'
|
|
154
|
+
| 'finally'
|
|
155
|
+
| 'rollback';
|
|
156
|
+
|
|
149
157
|
interface TaskContext {
|
|
158
|
+
readonly executionPhase?: ExecutionPhase;
|
|
150
159
|
logger?: Logger;
|
|
151
160
|
[key: string]: unknown;
|
|
152
161
|
}
|
|
162
|
+
|
|
163
|
+
// Alias of TaskContext, named for the host boundary it documents.
|
|
164
|
+
type TaskContextInput = TaskContext;
|
|
165
|
+
|
|
166
|
+
// What a running task observes: Flowkit resolved the phase at construction.
|
|
167
|
+
type ResolvedTaskContext = TaskContext & {
|
|
168
|
+
readonly executionPhase: ExecutionPhase;
|
|
169
|
+
};
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
`executionPhase` is optional on `TaskContext` so that a host context interface
|
|
173
|
+
built on it (`interface FlowContext extends TaskContext { ... }`) stays
|
|
174
|
+
constructible without naming a phase Flowkit owns. Inside a task, read
|
|
175
|
+
`this.executionPhase`, which is always resolved:
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
protected get executionPhase(): ExecutionPhase;
|
|
153
179
|
```
|
|
154
180
|
|
|
155
|
-
|
|
181
|
+
Each task receives a fresh context whose `executionPhase` identifies why that
|
|
182
|
+
specific invocation is running. Ordinary steps, nested-flow steps, direct
|
|
183
|
+
`runTask` calls, task-to-task calls, and agent/tool work use `task`. Hook tasks
|
|
184
|
+
use their named phase, and rollback-record invocations use `rollback`.
|
|
185
|
+
|
|
186
|
+
Hosts continue to pass their shared services through `FlowRunnerConfig.context`
|
|
187
|
+
without setting a phase. Flowkit owns the field and derives it per invocation;
|
|
188
|
+
tasks should only read it.
|
|
156
189
|
|
|
157
190
|
---
|
|
158
191
|
|
|
@@ -236,7 +269,7 @@ class TaskRegistry {
|
|
|
236
269
|
async resolve(classPathOrName: string): Promise<TaskConstructor>;
|
|
237
270
|
async create(
|
|
238
271
|
classPathOrName: string,
|
|
239
|
-
ctx:
|
|
272
|
+
ctx: TaskContextInput,
|
|
240
273
|
options: Record<string, unknown>,
|
|
241
274
|
): Promise<BaseTask>;
|
|
242
275
|
listRegistered(): string[];
|
|
@@ -250,7 +283,7 @@ class TaskRegistry {
|
|
|
250
283
|
| `registerAll(entries)` | Bulk register by short name |
|
|
251
284
|
| `registerClassPaths(entries)` | Bulk register by class path |
|
|
252
285
|
| `resolve(nameOrPath)` | Look up a constructor. Falls back to dynamic filesystem import. |
|
|
253
|
-
| `create(nameOrPath, ctx, opts)` | Resolve + instantiate in one call |
|
|
286
|
+
| `create(nameOrPath, ctx, opts)` | Resolve + instantiate in one call; omitted phase defaults to `task` |
|
|
254
287
|
| `listRegistered()` | Return all registered names and class paths |
|
|
255
288
|
|
|
256
289
|
**`TaskConstructor`**
|
|
@@ -262,6 +295,11 @@ type TaskConstructor = new (
|
|
|
262
295
|
) => BaseTask;
|
|
263
296
|
```
|
|
264
297
|
|
|
298
|
+
`TaskRegistry.create()` derives the complete invocation context before
|
|
299
|
+
construction. `resolve()` returns the registered or dynamically loaded
|
|
300
|
+
constructor itself; a caller that instantiates a resolved constructor directly
|
|
301
|
+
gets the same defaulting from `BaseTask`, so it does not need to supply a phase.
|
|
302
|
+
|
|
265
303
|
---
|
|
266
304
|
|
|
267
305
|
## Flow
|
|
@@ -292,12 +330,40 @@ interface FlowRunnerConfig {
|
|
|
292
330
|
tasks: Record<string, TaskDefinition>;
|
|
293
331
|
flows: Record<string, FlowDefinition>;
|
|
294
332
|
registry: TaskRegistry;
|
|
295
|
-
context:
|
|
333
|
+
context: TaskContextInput;
|
|
296
334
|
hooks?: FlowRunnerHooks;
|
|
297
335
|
logger?: Logger;
|
|
336
|
+
conditionEvaluator?: ConditionEvaluator;
|
|
337
|
+
references?: Record<string, unknown>;
|
|
338
|
+
agents?: Record<string, AgentDefinition>;
|
|
339
|
+
nestedAgentTaskFactory?: NestedAgentTaskFactory;
|
|
298
340
|
}
|
|
299
341
|
```
|
|
300
342
|
|
|
343
|
+
`nestedAgentTaskFactory` customizes only configured sub-agents invoked through
|
|
344
|
+
`agent:` tools. Flowkit calls it with the fully prepared child `TaskContext` and
|
|
345
|
+
compiled `AgentTaskOptions`. When omitted, the behavior is equivalent to:
|
|
346
|
+
|
|
347
|
+
```typescript
|
|
348
|
+
(ctx, options) => new AgentTask(ctx, options)
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
Direct `AgentTask` construction, configured agents run as flow steps, registry
|
|
352
|
+
resolution, recursion depth, shared token ledger, references, cancellation
|
|
353
|
+
signals, task registry, execution phase, and tool behavior are otherwise
|
|
354
|
+
unchanged.
|
|
355
|
+
|
|
356
|
+
```typescript
|
|
357
|
+
interface NestedAgentTask {
|
|
358
|
+
run(): Promise<TaskResult>;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
type NestedAgentTaskFactory = (
|
|
362
|
+
ctx: ResolvedTaskContext & { readonly executionPhase: 'task' },
|
|
363
|
+
options: AgentTaskOptions,
|
|
364
|
+
) => NestedAgentTask;
|
|
365
|
+
```
|
|
366
|
+
|
|
301
367
|
---
|
|
302
368
|
|
|
303
369
|
### `FlowRunOptions`
|
package/docs/custom-tasks.md
CHANGED
|
@@ -131,10 +131,23 @@ Inside a task:
|
|
|
131
131
|
```typescript
|
|
132
132
|
async execute(): Promise<TaskResult> {
|
|
133
133
|
const db = this.ctx.db as Database;
|
|
134
|
+
if (this.executionPhase === 'rollback') {
|
|
135
|
+
// This invocation is compensating for earlier successful work.
|
|
136
|
+
}
|
|
134
137
|
// ...
|
|
135
138
|
}
|
|
136
139
|
```
|
|
137
140
|
|
|
141
|
+
`this.executionPhase` is a public, read-only lifecycle value:
|
|
142
|
+
`'task' | 'on_start' | 'on_success' | 'on_failure' | 'finally' | 'rollback'`.
|
|
143
|
+
Ordinary steps (including nested-flow steps), direct `runTask` calls,
|
|
144
|
+
task-to-task calls, and agent/tool work receive `'task'`. Hook tasks receive
|
|
145
|
+
their hook phase, and rollback-record invocations receive `'rollback'`.
|
|
146
|
+
Flowkit supplies the value; existing runner configurations do not need to add
|
|
147
|
+
it to `context`. `ctx.executionPhase` holds the same value but is typed
|
|
148
|
+
optional, because `TaskContext` is also the shape hosts build their own context
|
|
149
|
+
interfaces from; prefer the `this.executionPhase` accessor.
|
|
150
|
+
|
|
138
151
|
Treat the context as read-only. Each task is handed its own derived context, so assigning a key inside a task (`this.ctx.cached = x`) does not reach the next step, another task, or a sub-agent. To share mutable state, put a mutable object on the context up front and write into that:
|
|
139
152
|
|
|
140
153
|
```typescript
|
package/docs/releases.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Release notes
|
|
2
|
+
|
|
3
|
+
## 0.16.0
|
|
4
|
+
|
|
5
|
+
FlowRunner now accepts a provider-agnostic nested agent task factory for
|
|
6
|
+
configured sub-agents invoked through `agent:` tools:
|
|
7
|
+
|
|
8
|
+
```typescript
|
|
9
|
+
interface NestedAgentTask {
|
|
10
|
+
run(): Promise<TaskResult>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
type NestedAgentTaskFactory = (
|
|
14
|
+
ctx: ResolvedTaskContext & { readonly executionPhase: 'task' },
|
|
15
|
+
options: AgentTaskOptions,
|
|
16
|
+
) => NestedAgentTask;
|
|
17
|
+
|
|
18
|
+
new FlowRunner({
|
|
19
|
+
// ...
|
|
20
|
+
nestedAgentTaskFactory: (ctx, options) => new AgentTask(ctx, options),
|
|
21
|
+
});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The default remains equivalent to `new AgentTask(ctx, options)`, so existing
|
|
25
|
+
consumers do not need to change. Hosts that wrap Flowkit tasks can use the
|
|
26
|
+
factory to preserve their own task subclass or task construction policy for
|
|
27
|
+
nested `agent:` tool execution without changing direct `AgentTask` behavior or
|
|
28
|
+
using global registration.
|
|
29
|
+
|
|
30
|
+
## 0.15.0
|
|
31
|
+
|
|
32
|
+
Flowkit now exposes a generic execution-lifecycle contract on every task:
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
type ExecutionPhase =
|
|
36
|
+
| 'task'
|
|
37
|
+
| 'on_start'
|
|
38
|
+
| 'on_success'
|
|
39
|
+
| 'on_failure'
|
|
40
|
+
| 'finally'
|
|
41
|
+
| 'rollback';
|
|
42
|
+
|
|
43
|
+
// Inside a task:
|
|
44
|
+
protected get executionPhase(): ExecutionPhase;
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The runner derives a fresh context for each invocation. Ordinary work,
|
|
48
|
+
including nested flows, direct task calls, task-to-task calls, agents, and
|
|
49
|
+
tools, receives `task`; hooks and rollback invocations receive their matching
|
|
50
|
+
phase. A nested flow or sub-agent cannot carry its caller's phase into its own
|
|
51
|
+
ordinary work.
|
|
52
|
+
|
|
53
|
+
This is additive for hosts, including at the type level. `executionPhase` is
|
|
54
|
+
**optional** on `TaskContext`, so a host context interface built on it stays
|
|
55
|
+
constructible without naming a phase:
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
interface FlowContext extends TaskContext, ToolContext {}
|
|
59
|
+
const ctx: FlowContext = { bridge, project }; // still compiles
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Making the field required would have broken every downstream context type that
|
|
63
|
+
extends `TaskContext`, which is why it is not. Inside a task, read
|
|
64
|
+
`this.executionPhase` rather than `this.ctx.executionPhase`: the accessor is
|
|
65
|
+
typed `ExecutionPhase` with no `undefined`, because Flowkit resolves the value
|
|
66
|
+
before any task observes it. `ResolvedTaskContext` names that resolved shape for
|
|
67
|
+
code that needs the type directly.
|
|
68
|
+
|
|
69
|
+
`TaskRegistry.create()` accepts host-style context without an `executionPhase`
|
|
70
|
+
and derives `task` before construction. Code that calls `registry.resolve()` and
|
|
71
|
+
directly instantiates the returned constructor gets the same defaulting from
|
|
72
|
+
`BaseTask`, so it does not need to supply a phase either.
|
|
73
|
+
|
|
74
|
+
Guard hosts are unaffected: `DiscoverTaskGuardsOptions.contextFor` returns
|
|
75
|
+
`TaskContext`, unchanged from 0.14.0.
|
|
76
|
+
|
|
77
|
+
The context a host passes is no longer copied when it already carries a phase,
|
|
78
|
+
which is every path through `FlowRunner`. A host may therefore pass a class
|
|
79
|
+
instance or service object as its context and keep its prototype methods and
|
|
80
|
+
object identity; previously each invocation shallow-copied it. `Flowkit` exports
|
|
81
|
+
`resolveTaskContext` and `DEFAULT_EXECUTION_PHASE` for hosts that construct
|
|
82
|
+
tasks themselves and want the same normalization.
|
|
83
|
+
|
|
84
|
+
A string `when:` condition now receives the phase of the step it gates, so a
|
|
85
|
+
`finally` hook gating on `context.executionPhase` sees `'finally'` rather than
|
|
86
|
+
the runner's seed value.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@db-lyon/flowkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "YAML-configured task and flow orchestration engine",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
"prepublishOnly": "tsc -b",
|
|
23
23
|
"test": "vitest run",
|
|
24
24
|
"test:package-api": "npm run build && tsc -p test/tsconfig.public-api.json",
|
|
25
|
+
"test:packed-consumer": "npm run build && node scripts/test-packed-consumer.mjs",
|
|
26
|
+
"test:types": "tsc -p test/tsconfig.json",
|
|
25
27
|
"test:watch": "vitest"
|
|
26
28
|
},
|
|
27
29
|
"keywords": [
|
|
@@ -36,7 +38,7 @@
|
|
|
36
38
|
"license": "MIT",
|
|
37
39
|
"repository": {
|
|
38
40
|
"type": "git",
|
|
39
|
-
"url": "https://github.com/db-lyon/flowkit.git"
|
|
41
|
+
"url": "git+https://github.com/db-lyon/flowkit.git"
|
|
40
42
|
},
|
|
41
43
|
"dependencies": {
|
|
42
44
|
"js-yaml": "^4",
|
|
@@ -46,7 +48,11 @@
|
|
|
46
48
|
"@types/js-yaml": "^4",
|
|
47
49
|
"@types/node": "^20",
|
|
48
50
|
"typescript": "^5",
|
|
49
|
-
"vitest": "^2"
|
|
51
|
+
"vitest": "^3.2.7"
|
|
52
|
+
},
|
|
53
|
+
"overrides": {
|
|
54
|
+
"postcss": "8.5.26",
|
|
55
|
+
"vite": "6.4.3"
|
|
50
56
|
},
|
|
51
57
|
"engines": {
|
|
52
58
|
"node": ">=20"
|