@memberjunction/task-graph 0.0.0 → 6.1.0-edge.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 (51) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +167 -27
  3. package/dist/DispatcherConditionEvaluator.d.ts +10 -0
  4. package/dist/DispatcherConditionEvaluator.d.ts.map +1 -0
  5. package/dist/DispatcherConditionEvaluator.js +27 -0
  6. package/dist/DispatcherConditionEvaluator.js.map +1 -0
  7. package/dist/TaskClaimStore.d.ts +125 -0
  8. package/dist/TaskClaimStore.d.ts.map +1 -0
  9. package/dist/TaskClaimStore.js +223 -0
  10. package/dist/TaskClaimStore.js.map +1 -0
  11. package/dist/TaskGraphDispatcher.d.ts +548 -0
  12. package/dist/TaskGraphDispatcher.d.ts.map +1 -0
  13. package/dist/TaskGraphDispatcher.js +2232 -0
  14. package/dist/TaskGraphDispatcher.js.map +1 -0
  15. package/dist/TaskGraphService.d.ts +247 -0
  16. package/dist/TaskGraphService.d.ts.map +1 -0
  17. package/dist/TaskGraphService.js +753 -0
  18. package/dist/TaskGraphService.js.map +1 -0
  19. package/dist/TaskGraphSubmitterImpl.d.ts +7 -0
  20. package/dist/TaskGraphSubmitterImpl.d.ts.map +1 -0
  21. package/dist/TaskGraphSubmitterImpl.js +52 -0
  22. package/dist/TaskGraphSubmitterImpl.js.map +1 -0
  23. package/dist/TaskLoopExecutor.d.ts +62 -0
  24. package/dist/TaskLoopExecutor.d.ts.map +1 -0
  25. package/dist/TaskLoopExecutor.js +248 -0
  26. package/dist/TaskLoopExecutor.js.map +1 -0
  27. package/dist/WorkflowSpecSync.d.ts +197 -0
  28. package/dist/WorkflowSpecSync.d.ts.map +1 -0
  29. package/dist/WorkflowSpecSync.js +474 -0
  30. package/dist/WorkflowSpecSync.js.map +1 -0
  31. package/dist/index.d.ts +19 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +19 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/operations/TaskGraphOperations.d.ts +39 -0
  36. package/dist/operations/TaskGraphOperations.d.ts.map +1 -0
  37. package/dist/operations/TaskGraphOperations.js +168 -0
  38. package/dist/operations/TaskGraphOperations.js.map +1 -0
  39. package/dist/operations/WorkflowDraftOperation.d.ts +37 -0
  40. package/dist/operations/WorkflowDraftOperation.d.ts.map +1 -0
  41. package/dist/operations/WorkflowDraftOperation.js +141 -0
  42. package/dist/operations/WorkflowDraftOperation.js.map +1 -0
  43. package/dist/operations/WorkflowOperations.d.ts +22 -0
  44. package/dist/operations/WorkflowOperations.d.ts.map +1 -0
  45. package/dist/operations/WorkflowOperations.js +99 -0
  46. package/dist/operations/WorkflowOperations.js.map +1 -0
  47. package/dist/types.d.ts +328 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +9 -0
  50. package/dist/types.js.map +1 -0
  51. package/package.json +36 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskGraphService.js","sourceRoot":"","sources":["../src/TaskGraphService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { TaskGraphSubmitter, type TaskGraphSubmitRequest, type TaskGraphSubmitOutcome } from '@memberjunction/ai-core-plus';
2
+ export declare class DurableTaskGraphSubmitter extends TaskGraphSubmitter {
3
+ Submit(request: TaskGraphSubmitRequest): Promise<TaskGraphSubmitOutcome>;
4
+ }
5
+ /** Prevents tree-shaking of the registered submitter. */
6
+ export declare function LoadTaskGraphSubmitter(): void;
7
+ //# sourceMappingURL=TaskGraphSubmitterImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskGraphSubmitterImpl.d.ts","sourceRoot":"","sources":["../src/TaskGraphSubmitterImpl.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,kBAAkB,EAElB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC9B,MAAM,8BAA8B,CAAC;AAGtC,qBACa,yBAA0B,SAAQ,kBAAkB;IAChD,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAiBxF;AAED,yDAAyD;AACzD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
@@ -0,0 +1,52 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * @fileoverview The durable implementation of the `TaskGraphSubmitter` seam.
9
+ *
10
+ * `@memberjunction/ai-core-plus` declares the capability the agent loop needs — "persist this graph
11
+ * and hand me its handle" — without knowing who fulfils it. This is the fulfilment, and it lives
12
+ * here because this is the package that owns durable execution. Registering rather than importing
13
+ * keeps the dependency running task-graph → ai-core-plus, so an agent run in a context with no
14
+ * dispatcher (a CLI, a browser bundle, a unit test) does not drag the entity layer along with it.
15
+ *
16
+ * The body is deliberately trivial: all real work stays in `TaskGraphService`, which is the same
17
+ * code path the Remote Operation and the messaging/scheduling seams use. One submission path means
18
+ * a graph cannot be validated differently depending on who produced it (D16).
19
+ *
20
+ * @module @memberjunction/task-graph
21
+ */
22
+ import { RegisterClass } from '@memberjunction/global';
23
+ import { TaskGraphSubmitter, TASK_GRAPH_SUBMITTER_KEY, } from '@memberjunction/ai-core-plus';
24
+ import { TaskGraphService } from './TaskGraphService.js';
25
+ let DurableTaskGraphSubmitter = class DurableTaskGraphSubmitter extends TaskGraphSubmitter {
26
+ async Submit(request) {
27
+ const result = await new TaskGraphService().Submit(request.Spec, {
28
+ EnvironmentID: request.EnvironmentID,
29
+ ConversationDetailID: request.ConversationDetailID ?? null,
30
+ ContextUser: request.ContextUser,
31
+ Provider: request.Provider,
32
+ AgentRunID: request.AgentRunID ?? null,
33
+ // Carried through so MAX_REINVOKE_DEPTH bounds a real chain. Without it every
34
+ // submission was depth 0 and the cap could never trip.
35
+ ReinvokeDepth: request.ReinvokeDepth ?? 0,
36
+ });
37
+ return {
38
+ Success: result.Success,
39
+ ParentTaskID: result.ParentTaskID,
40
+ ErrorMessage: result.ErrorMessage,
41
+ };
42
+ }
43
+ };
44
+ DurableTaskGraphSubmitter = __decorate([
45
+ RegisterClass(TaskGraphSubmitter, TASK_GRAPH_SUBMITTER_KEY)
46
+ ], DurableTaskGraphSubmitter);
47
+ export { DurableTaskGraphSubmitter };
48
+ /** Prevents tree-shaking of the registered submitter. */
49
+ export function LoadTaskGraphSubmitter() {
50
+ void DurableTaskGraphSubmitter;
51
+ }
52
+ //# sourceMappingURL=TaskGraphSubmitterImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskGraphSubmitterImpl.js","sourceRoot":"","sources":["../src/TaskGraphSubmitterImpl.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACH,kBAAkB,EAClB,wBAAwB,GAG3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG/C,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,kBAAkB;IACtD,KAAK,CAAC,MAAM,CAAC,OAA+B;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,gBAAgB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;YAC7D,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,IAAI;YAC1D,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,8EAA8E;YAC9E,uDAAuD;YACvD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC;SAC5C,CAAC,CAAC;QACH,OAAO;YACH,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;SACpC,CAAC;IACN,CAAC;CACJ,CAAA;AAlBY,yBAAyB;IADrC,aAAa,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;GAC/C,yBAAyB,CAkBrC;;AAED,yDAAyD;AACzD,MAAM,UAAU,sBAAsB;IAClC,KAAK,yBAAyB,CAAC;AACnC,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { type ForEachOperation, type PayloadMappingContext, type WhileOperation } from '@memberjunction/ai-core-plus';
2
+ /** Default iteration ceiling for a ForEach whose author did not set one. */
3
+ export declare const DEFAULT_FOREACH_MAX_ITERATIONS = 1000;
4
+ /** Default iteration ceiling for a While whose author did not set one. */
5
+ export declare const DEFAULT_WHILE_MAX_ITERATIONS = 100;
6
+ /** Default concurrency when a parallel loop does not specify one. */
7
+ export declare const DEFAULT_LOOP_MAX_CONCURRENCY = 10;
8
+ /** One iteration's outcome, in the shape both task runners already return. */
9
+ export type LoopIterationOutcome = {
10
+ Success: boolean;
11
+ Output?: unknown;
12
+ ErrorMessage?: string;
13
+ };
14
+ /** Runs the loop body once. Supplied by the dispatcher, which owns the action and agent runners. */
15
+ export type LoopBodyInvoker = (iteration: {
16
+ /** Zero-based iteration number. */
17
+ Index: number;
18
+ /** The current item, for ForEach. Undefined for While. */
19
+ Item?: unknown;
20
+ /** Variables bound for this iteration, ready to merge into the body's input. */
21
+ Bindings: Record<string, unknown>;
22
+ }) => Promise<LoopIterationOutcome>;
23
+ /** What a whole loop step produced. */
24
+ export type LoopExecutionResult = {
25
+ Success: boolean;
26
+ /** Persisted to `Task.OutputPayload` — what downstream steps and conditions can read. */
27
+ Output: {
28
+ iterations: number;
29
+ succeeded: number;
30
+ failed: number;
31
+ /** Each iteration's output, in iteration order, so a downstream step can index into it. */
32
+ results: unknown[];
33
+ };
34
+ ErrorMessage?: string;
35
+ };
36
+ /**
37
+ * Runs a ForEach step: the body once per item in a collection.
38
+ *
39
+ * The collection is resolved through the same mapping dialect everything else uses, so
40
+ * `static:[1,2,3]`, `payload.accounts` and a literal all behave here exactly as they do in an input
41
+ * mapping. A `collectionPath` that resolves to something that is not a list is an error rather than
42
+ * a zero-iteration success: "iterated over nothing" and "could not find the thing to iterate over"
43
+ * look identical downstream, and only one of them is a bug the author needs to hear about.
44
+ */
45
+ export declare function RunForEachLoop(op: ForEachOperation, ctx: PayloadMappingContext, invokeBody: LoopBodyInvoker): Promise<LoopExecutionResult>;
46
+ /**
47
+ * Runs a While step: the body until the condition stops being true.
48
+ *
49
+ * Always sequential and always bounded. Parallel iterations are meaningless when each one's
50
+ * necessity depends on the previous one's effect, and an unbounded loop whose condition never goes
51
+ * false is a task that holds its claim forever — so `maxIterations` has a default rather than
52
+ * being optional in practice.
53
+ *
54
+ * **An unevaluable condition stops the loop and fails it.** Treating it as false would end the loop
55
+ * quietly and report success, which is indistinguishable from the loop having finished its work.
56
+ */
57
+ export declare function RunWhileLoop(op: WhileOperation, evaluateCondition: (iteration: number) => {
58
+ Success: boolean;
59
+ Value?: unknown;
60
+ ErrorMessage?: string;
61
+ }, invokeBody: LoopBodyInvoker): Promise<LoopExecutionResult>;
62
+ //# sourceMappingURL=TaskLoopExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskLoopExecutor.d.ts","sourceRoot":"","sources":["../src/TaskLoopExecutor.ts"],"names":[],"mappings":"AAuBA,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACtB,MAAM,8BAA8B,CAAC;AAEtC,4EAA4E;AAC5E,eAAO,MAAM,8BAA8B,OAAO,CAAC;AACnD,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,qEAAqE;AACrE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,8EAA8E;AAC9E,MAAM,MAAM,oBAAoB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,oGAAoG;AACpG,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE;IACtC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEpC,uCAAuC;AACvC,MAAM,MAAM,mBAAmB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,yFAAyF;IACzF,MAAM,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,2FAA2F;QAC3F,OAAO,EAAE,OAAO,EAAE,CAAC;KACtB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAChC,EAAE,EAAE,gBAAgB,EACpB,GAAG,EAAE,qBAAqB,EAC1B,UAAU,EAAE,eAAe,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAuC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAC9B,EAAE,EAAE,cAAc,EAClB,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EACtG,UAAU,EAAE,eAAe,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA8C9B"}
@@ -0,0 +1,248 @@
1
+ /**
2
+ * @fileoverview Loop steps on the durable dispatcher — ForEach and While (plan §5.1).
3
+ *
4
+ * **Why a loop is not a graph shape.** Every other node kind maps onto the graph directly: it is one
5
+ * unit of work with edges in and out. A loop cannot be, because how many times it runs is a property
6
+ * of the *payload*, which does not exist until the steps before it have finished. Expanding a loop
7
+ * into N task rows at submission time would mean guessing N — and guessing wrong in the direction
8
+ * that silently drops work.
9
+ *
10
+ * So a loop stays one Task row, and the iteration happens inside its execution. The row's own
11
+ * `AgentID` / `ActionID` is the loop *body*, and `Configuration.forEach` / `.while` is the loop
12
+ * definition. That keeps the graph honest — one node, one row, one outcome — while letting the
13
+ * count be discovered at the only moment it can be known.
14
+ *
15
+ * **What is deliberately NOT here.** No entity access, no action engine, no agent framework. The
16
+ * caller supplies an invoker that runs one iteration; this module owns only the loop semantics —
17
+ * bounds, ordering, concurrency, delay, and what a failed iteration means. That is what makes the
18
+ * rules testable without standing up a dispatcher, and it is the same separation the action and
19
+ * agent runners already have.
20
+ *
21
+ * @module @memberjunction/task-graph
22
+ */
23
+ import { LogError, LogStatus } from '@memberjunction/core';
24
+ import { ResolveMappedInput, } from '@memberjunction/ai-core-plus';
25
+ /** Default iteration ceiling for a ForEach whose author did not set one. */
26
+ export const DEFAULT_FOREACH_MAX_ITERATIONS = 1000;
27
+ /** Default iteration ceiling for a While whose author did not set one. */
28
+ export const DEFAULT_WHILE_MAX_ITERATIONS = 100;
29
+ /** Default concurrency when a parallel loop does not specify one. */
30
+ export const DEFAULT_LOOP_MAX_CONCURRENCY = 10;
31
+ /**
32
+ * Runs a ForEach step: the body once per item in a collection.
33
+ *
34
+ * The collection is resolved through the same mapping dialect everything else uses, so
35
+ * `static:[1,2,3]`, `payload.accounts` and a literal all behave here exactly as they do in an input
36
+ * mapping. A `collectionPath` that resolves to something that is not a list is an error rather than
37
+ * a zero-iteration success: "iterated over nothing" and "could not find the thing to iterate over"
38
+ * look identical downstream, and only one of them is a bug the author needs to hear about.
39
+ */
40
+ export async function RunForEachLoop(op, ctx, invokeBody) {
41
+ const collection = resolveCollection(op.collectionPath, ctx);
42
+ if (!Array.isArray(collection)) {
43
+ return failedLoop(`The loop's collection '${op.collectionPath}' did not resolve to a list, so there is ` +
44
+ `nothing to iterate over. ` +
45
+ // The overwhelmingly common cause, and invisible without being told: a bare name is a
46
+ // LITERAL in the mapping dialect, not a path. `fields` is the string "fields"; the
47
+ // payload value is `payload.fields`. Both produce this same error, and only one of them
48
+ // is about a step that has not run yet — so say which to check first.
49
+ (looksLikeUnprefixedPath(op.collectionPath)
50
+ ? `'${op.collectionPath}' has no prefix, so it is read as the literal text ` +
51
+ `"${op.collectionPath}" rather than a payload value — did you mean ` +
52
+ `'payload.${op.collectionPath}'?`
53
+ : `Check that the step producing it ran before this one.`));
54
+ }
55
+ const limit = iterationLimit(op.maxIterations, DEFAULT_FOREACH_MAX_ITERATIONS);
56
+ const items = collection.slice(0, limit);
57
+ if (items.length < collection.length) {
58
+ // Truncation is announced. A silent cap reads downstream as "the collection was that size".
59
+ LogStatus(`[TaskLoopExecutor] Collection had ${collection.length} item(s); running the first ` +
60
+ `${items.length} because maxIterations is ${limit}.`);
61
+ }
62
+ const itemVar = op.itemVariable || 'item';
63
+ const indexVar = op.indexVariable || 'index';
64
+ const plan = items.map((item, index) => ({
65
+ Index: index,
66
+ Item: item,
67
+ Bindings: { [itemVar]: item, [indexVar]: index },
68
+ }));
69
+ return op.executionMode === 'parallel'
70
+ ? runParallel(plan, invokeBody, op.maxConcurrency ?? DEFAULT_LOOP_MAX_CONCURRENCY, op.continueOnError === true)
71
+ : runSequential(plan, invokeBody, op.continueOnError === true, op.delayBetweenIterationsMs ?? 0);
72
+ }
73
+ /**
74
+ * Runs a While step: the body until the condition stops being true.
75
+ *
76
+ * Always sequential and always bounded. Parallel iterations are meaningless when each one's
77
+ * necessity depends on the previous one's effect, and an unbounded loop whose condition never goes
78
+ * false is a task that holds its claim forever — so `maxIterations` has a default rather than
79
+ * being optional in practice.
80
+ *
81
+ * **An unevaluable condition stops the loop and fails it.** Treating it as false would end the loop
82
+ * quietly and report success, which is indistinguishable from the loop having finished its work.
83
+ */
84
+ export async function RunWhileLoop(op, evaluateCondition, invokeBody) {
85
+ const limit = iterationLimit(op.maxIterations, DEFAULT_WHILE_MAX_ITERATIONS);
86
+ const attemptVar = op.itemVariable || 'attempt';
87
+ const results = [];
88
+ let succeeded = 0;
89
+ let failed = 0;
90
+ let index = 0;
91
+ while (index < limit) {
92
+ const verdict = evaluateCondition(index);
93
+ if (!verdict.Success) {
94
+ return {
95
+ Success: false,
96
+ Output: { iterations: index, succeeded, failed, results },
97
+ ErrorMessage: `The loop's condition could not be evaluated on iteration ${index + 1}: ` +
98
+ `${verdict.ErrorMessage ?? 'unknown reason'}.`,
99
+ };
100
+ }
101
+ if (!verdict.Value)
102
+ break;
103
+ const outcome = await invokeBody({ Index: index, Bindings: { [attemptVar]: index } });
104
+ results.push(outcome.Output ?? null);
105
+ if (outcome.Success)
106
+ succeeded++;
107
+ else {
108
+ failed++;
109
+ if (op.continueOnError !== true) {
110
+ return {
111
+ Success: false,
112
+ Output: { iterations: index + 1, succeeded, failed, results },
113
+ ErrorMessage: `Iteration ${index + 1} failed: ${outcome.ErrorMessage ?? 'no reason given'}.`,
114
+ };
115
+ }
116
+ }
117
+ index++;
118
+ if (op.delayBetweenIterationsMs)
119
+ await delay(op.delayBetweenIterationsMs);
120
+ }
121
+ if (index >= limit) {
122
+ // Hitting the ceiling is reported, not treated as normal completion: the condition was still
123
+ // true, so the work is unfinished and saying otherwise would hide it.
124
+ LogError(`[TaskLoopExecutor] While loop stopped at its ${limit}-iteration ceiling with its condition still true.`);
125
+ }
126
+ return { Success: true, Output: { iterations: index, succeeded, failed, results } };
127
+ }
128
+ /** Iterations in order, one at a time. */
129
+ async function runSequential(plan, invokeBody, continueOnError, delayMs) {
130
+ const results = [];
131
+ let succeeded = 0;
132
+ let failed = 0;
133
+ for (const iteration of plan) {
134
+ const outcome = await invokeBody(iteration);
135
+ results.push(outcome.Output ?? null);
136
+ if (outcome.Success)
137
+ succeeded++;
138
+ else {
139
+ failed++;
140
+ if (!continueOnError) {
141
+ return {
142
+ Success: false,
143
+ Output: { iterations: results.length, succeeded, failed, results },
144
+ ErrorMessage: `Iteration ${iteration.Index + 1} failed: ${outcome.ErrorMessage ?? 'no reason given'}.`,
145
+ };
146
+ }
147
+ }
148
+ if (delayMs)
149
+ await delay(delayMs);
150
+ }
151
+ return summarize(results, succeeded, failed, continueOnError);
152
+ }
153
+ /**
154
+ * Iterations in bounded-concurrency batches, results kept in iteration order.
155
+ *
156
+ * Order matters even when execution does not: an output mapping that writes `results[index]` and a
157
+ * downstream step that reads it both assume position means iteration number. Returning results in
158
+ * completion order would scramble that in a way nothing detects.
159
+ */
160
+ async function runParallel(plan, invokeBody, maxConcurrency, continueOnError) {
161
+ const size = Math.max(1, maxConcurrency);
162
+ const results = new Array(plan.length).fill(null);
163
+ let succeeded = 0;
164
+ let failed = 0;
165
+ let firstFailure;
166
+ for (let start = 0; start < plan.length; start += size) {
167
+ const batch = plan.slice(start, start + size);
168
+ const outcomes = await Promise.all(batch.map((iteration) => invokeBody(iteration)));
169
+ outcomes.forEach((outcome, offset) => {
170
+ const iteration = batch[offset];
171
+ results[iteration.Index] = outcome.Output ?? null;
172
+ if (outcome.Success)
173
+ succeeded++;
174
+ else {
175
+ failed++;
176
+ firstFailure ??= `Iteration ${iteration.Index + 1} failed: ${outcome.ErrorMessage ?? 'no reason given'}.`;
177
+ }
178
+ });
179
+ // Stop launching further batches once something has failed and the author asked to stop.
180
+ // The in-flight batch is allowed to finish rather than abandoned: its work is already
181
+ // running, and half-recorded results are worse than one extra batch.
182
+ if (failed > 0 && !continueOnError) {
183
+ return { Success: false, Output: { iterations: start + batch.length, succeeded, failed, results }, ErrorMessage: firstFailure };
184
+ }
185
+ }
186
+ return summarize(results, succeeded, failed, continueOnError);
187
+ }
188
+ /**
189
+ * A loop's overall verdict.
190
+ *
191
+ * With `continueOnError`, the loop succeeds even though iterations failed — that is what the setting
192
+ * asks for — but the counts ride along in the output so the failures are visible rather than
193
+ * absorbed into a green result.
194
+ */
195
+ function summarize(results, succeeded, failed, continueOnError) {
196
+ const output = { iterations: results.length, succeeded, failed, results };
197
+ if (failed === 0 || continueOnError) {
198
+ if (failed > 0) {
199
+ LogStatus(`[TaskLoopExecutor] Loop finished with ${failed} failed iteration(s); continuing was requested.`);
200
+ }
201
+ return { Success: true, Output: output };
202
+ }
203
+ return { Success: false, Output: output, ErrorMessage: `${failed} of ${results.length} iteration(s) failed.` };
204
+ }
205
+ /**
206
+ * Turns `maxIterations` into a ceiling.
207
+ *
208
+ * Follows the convention `ForEachOperation` already documents: undefined takes the default, **0
209
+ * means unlimited**, and a positive number is the limit. The zero case is the one worth stating —
210
+ * read as a limit it would run the loop zero times, which looks exactly like an empty collection.
211
+ */
212
+ function iterationLimit(maxIterations, fallback) {
213
+ return maxIterations === undefined ? fallback : maxIterations;
214
+ }
215
+ /** Resolves a collection path through the shared mapping dialect, parsing a JSON literal if given one. */
216
+ function resolveCollection(collectionPath, ctx) {
217
+ const resolved = ResolveMappedInput(collectionPath, ctx);
218
+ if (Array.isArray(resolved))
219
+ return resolved;
220
+ if (typeof resolved === 'string') {
221
+ // `static:[1,2,3]` resolves to the string "[1,2,3]"; a literal list is the point of writing it.
222
+ try {
223
+ return JSON.parse(resolved);
224
+ }
225
+ catch {
226
+ return resolved;
227
+ }
228
+ }
229
+ return resolved;
230
+ }
231
+ /**
232
+ * True for a bare name that was probably meant as a payload path.
233
+ *
234
+ * Deliberately narrow: only an unprefixed, dot-free identifier. Anything carrying a recognized
235
+ * prefix was written deliberately, and a dotted path without one is a different mistake worth its
236
+ * own message rather than this guess.
237
+ */
238
+ function looksLikeUnprefixedPath(collectionPath) {
239
+ return /^[A-Za-z_][A-Za-z0-9_]*$/.test(collectionPath);
240
+ }
241
+ /** A loop that never got as far as its first iteration, with the reason an author can act on. */
242
+ function failedLoop(errorMessage) {
243
+ return { Success: false, Output: { iterations: 0, succeeded: 0, failed: 0, results: [] }, ErrorMessage: errorMessage };
244
+ }
245
+ function delay(ms) {
246
+ return new Promise((resolve) => setTimeout(resolve, ms));
247
+ }
248
+ //# sourceMappingURL=TaskLoopExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskLoopExecutor.js","sourceRoot":"","sources":["../src/TaskLoopExecutor.ts"],"names":[],"mappings":"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"}