@memberjunction/task-graph 0.0.0 → 6.1.0-edge.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/LICENSE +7 -0
  2. package/dist/DispatcherConditionEvaluator.d.ts +10 -0
  3. package/dist/DispatcherConditionEvaluator.d.ts.map +1 -0
  4. package/dist/DispatcherConditionEvaluator.js +27 -0
  5. package/dist/DispatcherConditionEvaluator.js.map +1 -0
  6. package/dist/TaskClaimStore.d.ts +114 -0
  7. package/dist/TaskClaimStore.d.ts.map +1 -0
  8. package/dist/TaskClaimStore.js +218 -0
  9. package/dist/TaskClaimStore.js.map +1 -0
  10. package/dist/TaskGraphDispatcher.d.ts +186 -0
  11. package/dist/TaskGraphDispatcher.d.ts.map +1 -0
  12. package/dist/TaskGraphDispatcher.js +735 -0
  13. package/dist/TaskGraphDispatcher.js.map +1 -0
  14. package/dist/TaskGraphService.d.ts +138 -0
  15. package/dist/TaskGraphService.d.ts.map +1 -0
  16. package/dist/TaskGraphService.js +314 -0
  17. package/dist/TaskGraphService.js.map +1 -0
  18. package/dist/TaskGraphSubmitterImpl.d.ts +7 -0
  19. package/dist/TaskGraphSubmitterImpl.d.ts.map +1 -0
  20. package/dist/TaskGraphSubmitterImpl.js +52 -0
  21. package/dist/TaskGraphSubmitterImpl.js.map +1 -0
  22. package/dist/WorkflowSpecSync.d.ts +171 -0
  23. package/dist/WorkflowSpecSync.d.ts.map +1 -0
  24. package/dist/WorkflowSpecSync.js +393 -0
  25. package/dist/WorkflowSpecSync.js.map +1 -0
  26. package/dist/index.d.ts +18 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +18 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/operations/TaskGraphOperations.d.ts +39 -0
  31. package/dist/operations/TaskGraphOperations.d.ts.map +1 -0
  32. package/dist/operations/TaskGraphOperations.js +164 -0
  33. package/dist/operations/TaskGraphOperations.js.map +1 -0
  34. package/dist/operations/WorkflowOperations.d.ts +22 -0
  35. package/dist/operations/WorkflowOperations.d.ts.map +1 -0
  36. package/dist/operations/WorkflowOperations.js +99 -0
  37. package/dist/operations/WorkflowOperations.js.map +1 -0
  38. package/dist/types.d.ts +214 -0
  39. package/dist/types.d.ts.map +1 -0
  40. package/dist/types.js +9 -0
  41. package/dist/types.js.map +1 -0
  42. package/package.json +33 -8
  43. package/README.md +0 -45
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskGraphDispatcher.js","sourceRoot":"","sources":["../src/TaskGraphDispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * @fileoverview Producer-agnostic submission of task graphs.
3
+ *
4
+ * Per D2, submission (validate + persist) is split from execution (the durable dispatcher). This
5
+ * class does the first half only: it validates a spec, resolves agent names, writes the parent +
6
+ * children + dependency edges, and returns immediately. Nothing here executes anything.
7
+ *
8
+ * That split is what makes the engine invocation-agnostic (D1): an agent emitting a graph, a
9
+ * scheduled job, a Slack message, and a future manual workflow UI all call the same `Submit`, and
10
+ * whichever dispatcher instance is running picks the work up. Callers never wait for execution, so
11
+ * no channel needs to hold a long-lived request open the way the old `ExecuteTaskGraph` mutation did.
12
+ *
13
+ * Per D11 the API is deliberately not AI-flavored — an LLM, deterministic code, or a human UI can
14
+ * all construct and submit a DAG.
15
+ *
16
+ * @module @memberjunction/task-graph
17
+ */
18
+ import { IMetadataProvider, UserInfo } from '@memberjunction/core';
19
+ import { type TaskGraphSpec } from '@memberjunction/ai-core-plus';
20
+ /** Context a submission carries beyond the graph itself. */
21
+ export type TaskGraphSubmitContext = {
22
+ /** Environment the tasks belong to. */
23
+ EnvironmentID: string;
24
+ /** Conversation this graph answers, when submitted from a conversational channel. */
25
+ ConversationDetailID?: string | null;
26
+ /** User the work runs as and is attributed to. */
27
+ ContextUser: UserInfo;
28
+ /** Provider to persist through. */
29
+ Provider: IMetadataProvider;
30
+ /** The agent run that emitted this graph, for provenance and `reinvoke` routing. */
31
+ AgentRunID?: string | null;
32
+ /**
33
+ * How many continuation hops produced this graph. A graph submitted by an agent that was itself
34
+ * re-invoked by a finished graph carries its parent's depth + 1.
35
+ */
36
+ ReinvokeDepth?: number;
37
+ };
38
+ /**
39
+ * What the parent Task row remembers about the graph beyond its tasks.
40
+ *
41
+ * Persisted rather than held in memory because the dispatcher instance that *finishes* a graph is
42
+ * routinely not the one that accepted it — a restart, a peer instance, or simply a graph that
43
+ * outlives a deploy all break that assumption.
44
+ */
45
+ export type TaskGraphParentMetadata = {
46
+ continuation: 'message' | 'reinvoke' | 'none';
47
+ reinvokeDepth: number;
48
+ submittedByAgentRunID: string | null;
49
+ /**
50
+ * Who the graph belongs to.
51
+ *
52
+ * Stored here rather than on a Task column because `Task.UserID` already means something else —
53
+ * it designates a *human* task, the assignee the graph waits on — so setting it on a parent
54
+ * would make every graph look like work waiting on a person. It is durable for the same reason
55
+ * everything else in this bag is: the instance that needs it is routinely not the one that wrote
56
+ * it. Consumed by the live-frame layer, which cannot authorize a viewer without knowing whose
57
+ * run they are watching.
58
+ */
59
+ submittedByUserID?: string | null;
60
+ /**
61
+ * Set once the completion handler has delivered. Written with a compare-and-swap guard, which is
62
+ * what turns at-least-once delivery into effectively-once: a crash between "graph complete" and
63
+ * "continuation delivered" leaves this unset, so the next sweep retries, and two instances
64
+ * racing the same completion produce one winner rather than two notifications.
65
+ */
66
+ continuationDeliveredAt?: string;
67
+ };
68
+ /**
69
+ * Continuation chains are bounded separately from graph nesting.
70
+ *
71
+ * The spawn-depth cap governs graphs nested *by tasks*; this one governs graphs chained *by
72
+ * continuations* — an agent re-invoked with a finished graph's results can emit another graph, which
73
+ * re-invokes it again. Both loops exist and neither cap constrains the other, so both are needed. At
74
+ * the cap the dispatcher forces `continuation: 'message'`, which ends the chain without losing the
75
+ * results.
76
+ */
77
+ export declare const MAX_REINVOKE_DEPTH = 5;
78
+ /**
79
+ * Parses a parent Task's continuation metadata.
80
+ *
81
+ * Shared by the writer (`TaskGraphService`) and the reader (`TaskGraphDispatcher`) so the two cannot
82
+ * drift — the failure that shape invites is a graph that completes and then does nothing, because
83
+ * one side wrote a field the other never looked for.
84
+ *
85
+ * Unparseable input defaults to `message` rather than throwing. A row predating this metadata, or
86
+ * one a user hand-edited, is a legitimate state, and the right response to "I don't know what this
87
+ * graph wanted" is still to tell the user their work finished.
88
+ */
89
+ export declare function ParseTaskGraphParentMetadata(raw: string | null | undefined): TaskGraphParentMetadata;
90
+ /** True when a continuation chain has gone as far as it may. */
91
+ export declare function IsReinvokeCapReached(meta: TaskGraphParentMetadata): boolean;
92
+ export type TaskGraphSubmitResult = {
93
+ Success: boolean;
94
+ /** The parent task representing the whole graph — the handle for status, cancel and retry. */
95
+ ParentTaskID?: string;
96
+ /** tempId -> persisted Task.ID, for callers that need to correlate back to their spec. */
97
+ TaskIDMap?: Map<string, string>;
98
+ ErrorMessage?: string;
99
+ };
100
+ export declare class TaskGraphService {
101
+ /**
102
+ * Validates and persists a task graph, returning as soon as it is durable.
103
+ *
104
+ * Deliberately does NOT start execution: the dispatcher discovers `Pending` work by polling
105
+ * claimable tasks, so submission and execution are decoupled even within a single process.
106
+ * A submitted graph therefore survives the submitting request, the submitting agent run, and
107
+ * the submitting server — which is the entire point of Task rows over in-run state (D8).
108
+ */
109
+ Submit(spec: TaskGraphSpec, context: TaskGraphSubmitContext): Promise<TaskGraphSubmitResult>;
110
+ /**
111
+ * Cancels a graph and everything in it that has not already settled.
112
+ *
113
+ * Cancels children first: a parent marked `Cancelled` while children are still `Pending` would
114
+ * leave the dispatcher free to pick those children up, which is the opposite of what the caller
115
+ * asked for.
116
+ */
117
+ Cancel(parentTaskID: string, context: TaskGraphSubmitContext): Promise<boolean>;
118
+ /**
119
+ * Returns a failed task to `Pending` so the dispatcher can run it again.
120
+ *
121
+ * Also clears any `Blocked` dependents, since they were only blocked because this task failed —
122
+ * leaving them blocked would make the retry pointless, as the graph still could not progress
123
+ * past this node.
124
+ */
125
+ Retry(taskID: string, context: TaskGraphSubmitContext): Promise<boolean>;
126
+ /** Maps every referenced agent name to its ID, or reports all unresolvable names at once. */
127
+ private resolveAgents;
128
+ /** Finds or creates the task type used for orchestrated graphs. */
129
+ private ensureTaskType;
130
+ /** Writes the parent task that represents the graph as a whole. */
131
+ private persistParent;
132
+ /** Writes each child task, returning the tempId -> real ID mapping edges will need. */
133
+ private persistChildren;
134
+ /** Writes the dependency edges, translating tempIds to persisted IDs. */
135
+ private persistDependencies;
136
+ private loadChildren;
137
+ }
138
+ //# sourceMappingURL=TaskGraphService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskGraphService.d.ts","sourceRoot":"","sources":["../src/TaskGraphService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACH,iBAAiB,EAIjB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAIH,KAAK,aAAa,EACrB,MAAM,8BAA8B,CAAC;AAEtC,4DAA4D;AAC5D,MAAM,MAAM,sBAAsB,GAAG;IACjC,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kDAAkD;IAClD,WAAW,EAAE,QAAQ,CAAC;IACtB,mCAAmC;IACnC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,YAAY,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAUpC;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,uBAAuB,CAmBpG;AAED,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAE3E;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAKF,qBAAa,gBAAgB;IACzB;;;;;;;OAOG;IACU,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuCzG;;;;;;OAMG;IACU,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB5F;;;;;;OAMG;IACU,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;IAsCrF,6FAA6F;YAC/E,aAAa;IA0B3B,mEAAmE;YACrD,cAAc;IAkB5B,mEAAmE;YACrD,aAAa;IA0B3B,uFAAuF;YACzE,eAAe;IAuC7B,yEAAyE;YAC3D,mBAAmB;YA8BnB,YAAY;CAO7B"}
@@ -0,0 +1,314 @@
1
+ /**
2
+ * @fileoverview Producer-agnostic submission of task graphs.
3
+ *
4
+ * Per D2, submission (validate + persist) is split from execution (the durable dispatcher). This
5
+ * class does the first half only: it validates a spec, resolves agent names, writes the parent +
6
+ * children + dependency edges, and returns immediately. Nothing here executes anything.
7
+ *
8
+ * That split is what makes the engine invocation-agnostic (D1): an agent emitting a graph, a
9
+ * scheduled job, a Slack message, and a future manual workflow UI all call the same `Submit`, and
10
+ * whichever dispatcher instance is running picks the work up. Callers never wait for execution, so
11
+ * no channel needs to hold a long-lived request open the way the old `ExecuteTaskGraph` mutation did.
12
+ *
13
+ * Per D11 the API is deliberately not AI-flavored — an LLM, deterministic code, or a human UI can
14
+ * all construct and submit a DAG.
15
+ *
16
+ * @module @memberjunction/task-graph
17
+ */
18
+ import { LogError, LogStatus, RunView, } from '@memberjunction/core';
19
+ import { FormatValidationErrors, NormalizeDependency, ValidateTaskGraphSpec, } from '@memberjunction/ai-core-plus';
20
+ /**
21
+ * Continuation chains are bounded separately from graph nesting.
22
+ *
23
+ * The spawn-depth cap governs graphs nested *by tasks*; this one governs graphs chained *by
24
+ * continuations* — an agent re-invoked with a finished graph's results can emit another graph, which
25
+ * re-invokes it again. Both loops exist and neither cap constrains the other, so both are needed. At
26
+ * the cap the dispatcher forces `continuation: 'message'`, which ends the chain without losing the
27
+ * results.
28
+ */
29
+ export const MAX_REINVOKE_DEPTH = 5;
30
+ /** What a parent row means when it carries no metadata, or metadata we cannot read. */
31
+ const DEFAULT_PARENT_METADATA = {
32
+ continuation: 'message',
33
+ reinvokeDepth: 0,
34
+ submittedByAgentRunID: null,
35
+ submittedByUserID: null,
36
+ };
37
+ /**
38
+ * Parses a parent Task's continuation metadata.
39
+ *
40
+ * Shared by the writer (`TaskGraphService`) and the reader (`TaskGraphDispatcher`) so the two cannot
41
+ * drift — the failure that shape invites is a graph that completes and then does nothing, because
42
+ * one side wrote a field the other never looked for.
43
+ *
44
+ * Unparseable input defaults to `message` rather than throwing. A row predating this metadata, or
45
+ * one a user hand-edited, is a legitimate state, and the right response to "I don't know what this
46
+ * graph wanted" is still to tell the user their work finished.
47
+ */
48
+ export function ParseTaskGraphParentMetadata(raw) {
49
+ if (!raw)
50
+ return { ...DEFAULT_PARENT_METADATA };
51
+ try {
52
+ const parsed = JSON.parse(raw);
53
+ if (!parsed || typeof parsed !== 'object')
54
+ return { ...DEFAULT_PARENT_METADATA };
55
+ return {
56
+ ...DEFAULT_PARENT_METADATA,
57
+ ...parsed,
58
+ // Guard the two fields the dispatcher branches on. A JSON round-trip, a hand edit, or a
59
+ // future producer can all supply the wrong type here, and a bad `reinvokeDepth` would
60
+ // either disable the cap (NaN comparisons are always false) or trip it immediately.
61
+ continuation: parsed.continuation === 'reinvoke' || parsed.continuation === 'none'
62
+ ? parsed.continuation
63
+ : 'message',
64
+ reinvokeDepth: Number.isFinite(parsed.reinvokeDepth) ? Number(parsed.reinvokeDepth) : 0,
65
+ };
66
+ }
67
+ catch {
68
+ return { ...DEFAULT_PARENT_METADATA };
69
+ }
70
+ }
71
+ /** True when a continuation chain has gone as far as it may. */
72
+ export function IsReinvokeCapReached(meta) {
73
+ return meta.reinvokeDepth >= MAX_REINVOKE_DEPTH;
74
+ }
75
+ /** Name of the task type used for agent-orchestrated graphs. */
76
+ const TASK_TYPE_NAME = 'AI Workflow';
77
+ export class TaskGraphService {
78
+ /**
79
+ * Validates and persists a task graph, returning as soon as it is durable.
80
+ *
81
+ * Deliberately does NOT start execution: the dispatcher discovers `Pending` work by polling
82
+ * claimable tasks, so submission and execution are decoupled even within a single process.
83
+ * A submitted graph therefore survives the submitting request, the submitting agent run, and
84
+ * the submitting server — which is the entire point of Task rows over in-run state (D8).
85
+ */
86
+ async Submit(spec, context) {
87
+ // 1. Structural validation. Server-side is the source of truth even when a producer already
88
+ // validated client-side — the same function runs in both places, so they cannot disagree.
89
+ const validation = ValidateTaskGraphSpec(spec);
90
+ if (!validation.Valid) {
91
+ const message = `Task graph "${spec.workflowName}" is invalid:\n${FormatValidationErrors(validation.Errors)}`;
92
+ LogError(`[TaskGraphService] ${message}`);
93
+ return { Success: false, ErrorMessage: message };
94
+ }
95
+ try {
96
+ // 2. Resolve every agent BEFORE writing anything. An unresolvable agent is a hard
97
+ // error, not a skipped node: silently dropping a task executes the graph with holes
98
+ // where the caller's work should have been.
99
+ const agentIDsByName = await this.resolveAgents(spec, context);
100
+ if (!agentIDsByName.Success) {
101
+ return { Success: false, ErrorMessage: agentIDsByName.ErrorMessage };
102
+ }
103
+ const taskTypeID = await this.ensureTaskType(context);
104
+ // 3. Persist. Parent first so children have a ParentID, then children, then edges —
105
+ // edges last because they reference two child IDs that must both exist.
106
+ const parentTaskID = await this.persistParent(spec, taskTypeID, context);
107
+ const taskIDMap = await this.persistChildren(spec, parentTaskID, taskTypeID, agentIDsByName.Map, context);
108
+ await this.persistDependencies(spec, taskIDMap, context);
109
+ LogStatus(`[TaskGraphService] Submitted "${spec.workflowName}": parent ${parentTaskID}, ${taskIDMap.size} task(s). ` +
110
+ `Awaiting dispatcher pickup.`);
111
+ return { Success: true, ParentTaskID: parentTaskID, TaskIDMap: taskIDMap };
112
+ }
113
+ catch (e) {
114
+ const message = e instanceof Error ? e.message : String(e);
115
+ LogError(`[TaskGraphService] Submit failed for "${spec.workflowName}": ${message}`);
116
+ return { Success: false, ErrorMessage: message };
117
+ }
118
+ }
119
+ /**
120
+ * Cancels a graph and everything in it that has not already settled.
121
+ *
122
+ * Cancels children first: a parent marked `Cancelled` while children are still `Pending` would
123
+ * leave the dispatcher free to pick those children up, which is the opposite of what the caller
124
+ * asked for.
125
+ */
126
+ async Cancel(parentTaskID, context) {
127
+ try {
128
+ const children = await this.loadChildren(parentTaskID, context);
129
+ for (const child of children) {
130
+ // Terminal work is left alone — cancelling a completed task would rewrite history.
131
+ if (['Complete', 'Failed', 'Cancelled'].includes(child.Status))
132
+ continue;
133
+ child.Status = 'Cancelled';
134
+ if (!(await child.Save())) {
135
+ LogError(`[TaskGraphService] Failed to cancel task ${child.ID}: ${child.LatestResult?.CompleteMessage ?? 'unknown error'}`);
136
+ }
137
+ }
138
+ const parent = await context.Provider.GetEntityObject('MJ: Tasks', context.ContextUser);
139
+ if (!(await parent.Load(parentTaskID)))
140
+ return false;
141
+ parent.Status = 'Cancelled';
142
+ parent.CompletedAt = new Date();
143
+ return await parent.Save();
144
+ }
145
+ catch (e) {
146
+ LogError(`[TaskGraphService] Cancel failed for ${parentTaskID}: ${e instanceof Error ? e.message : String(e)}`);
147
+ return false;
148
+ }
149
+ }
150
+ /**
151
+ * Returns a failed task to `Pending` so the dispatcher can run it again.
152
+ *
153
+ * Also clears any `Blocked` dependents, since they were only blocked because this task failed —
154
+ * leaving them blocked would make the retry pointless, as the graph still could not progress
155
+ * past this node.
156
+ */
157
+ async Retry(taskID, context) {
158
+ try {
159
+ const task = await context.Provider.GetEntityObject('MJ: Tasks', context.ContextUser);
160
+ if (!(await task.Load(taskID)))
161
+ return false;
162
+ if (task.Status !== 'Failed') {
163
+ LogError(`[TaskGraphService] Cannot retry task ${taskID}: status is ${task.Status}, expected Failed.`);
164
+ return false;
165
+ }
166
+ task.Status = 'Pending';
167
+ task.ErrorMessage = null;
168
+ task.StartedAt = null;
169
+ task.CompletedAt = null;
170
+ task.PercentComplete = 0;
171
+ // Clear any stale claim so the task is immediately claimable.
172
+ task.ClaimedBy = null;
173
+ task.ClaimExpiresAt = null;
174
+ if (!(await task.Save()))
175
+ return false;
176
+ if (task.ParentID) {
177
+ for (const sibling of await this.loadChildren(task.ParentID, context)) {
178
+ if (sibling.Status === 'Blocked') {
179
+ sibling.Status = 'Pending';
180
+ await sibling.Save();
181
+ }
182
+ }
183
+ }
184
+ return true;
185
+ }
186
+ catch (e) {
187
+ LogError(`[TaskGraphService] Retry failed for ${taskID}: ${e instanceof Error ? e.message : String(e)}`);
188
+ return false;
189
+ }
190
+ }
191
+ // ────────────────────────────────────────────────────────────────────────
192
+ // internals
193
+ // ────────────────────────────────────────────────────────────────────────
194
+ /** Maps every referenced agent name to its ID, or reports all unresolvable names at once. */
195
+ async resolveAgents(spec, context) {
196
+ const names = [...new Set(spec.tasks.filter((t) => !!t.agentName).map((t) => t.agentName))];
197
+ if (names.length === 0)
198
+ return { Success: true, Map: new Map() };
199
+ const quoted = names.map((n) => `'${n.replace(/'/g, "''")}'`).join(',');
200
+ const result = await RunView.FromMetadataProvider(context.Provider).RunView({ EntityName: 'MJ: AI Agents', ExtraFilter: `Name IN (${quoted})`, Fields: ['ID', 'Name'], ResultType: 'simple' }, context.ContextUser);
201
+ const found = new Map((result.Results ?? []).map((r) => [r.Name, r.ID]));
202
+ const missing = names.filter((n) => !found.has(n));
203
+ if (missing.length > 0) {
204
+ return {
205
+ Success: false,
206
+ ErrorMessage: `Task graph "${spec.workflowName}" references ${missing.length} unknown agent(s): ${missing.join(', ')}. ` +
207
+ `Submitting would execute the graph with holes where those tasks should be.`,
208
+ };
209
+ }
210
+ return { Success: true, Map: found };
211
+ }
212
+ /** Finds or creates the task type used for orchestrated graphs. */
213
+ async ensureTaskType(context) {
214
+ const existing = await RunView.FromMetadataProvider(context.Provider).RunView({ EntityName: 'MJ: Task Types', ExtraFilter: `Name='${TASK_TYPE_NAME}'`, Fields: ['ID'], ResultType: 'simple', MaxRows: 1 }, context.ContextUser);
215
+ const found = existing.Results?.[0]?.ID;
216
+ if (found)
217
+ return found;
218
+ const tt = await context.Provider.GetEntityObject('MJ: Task Types', context.ContextUser);
219
+ tt.NewRecord();
220
+ tt.Name = TASK_TYPE_NAME;
221
+ tt.Description = 'Tasks created by agent-orchestrated workflows.';
222
+ if (!(await tt.Save())) {
223
+ throw new Error(`Could not create task type: ${tt.LatestResult?.CompleteMessage ?? 'unknown error'}`);
224
+ }
225
+ return tt.ID;
226
+ }
227
+ /** Writes the parent task that represents the graph as a whole. */
228
+ async persistParent(spec, taskTypeID, context) {
229
+ const parent = await context.Provider.GetEntityObject('MJ: Tasks', context.ContextUser);
230
+ parent.NewRecord();
231
+ parent.Name = spec.workflowName;
232
+ parent.Description = spec.reasoning || 'Orchestrated workflow';
233
+ parent.TypeID = taskTypeID;
234
+ parent.EnvironmentID = context.EnvironmentID;
235
+ parent.ConversationDetailID = context.ConversationDetailID ?? null;
236
+ parent.Status = 'In Progress';
237
+ parent.PercentComplete = 0;
238
+ // The parent row carries what happens AFTER the graph settles. It lives here rather than in
239
+ // dispatcher memory because the dispatcher that finishes a graph is frequently not the
240
+ // process that accepted it — a restart, a second instance, or simply a long-running graph
241
+ // all break that assumption. Anything the completion path needs has to be durable too.
242
+ parent.InputPayload = JSON.stringify({
243
+ continuation: spec.continuation ?? 'message',
244
+ reinvokeDepth: context.ReinvokeDepth ?? 0,
245
+ submittedByAgentRunID: context.AgentRunID ?? null,
246
+ submittedByUserID: context.ContextUser?.ID ?? null,
247
+ });
248
+ if (!(await parent.Save())) {
249
+ throw new Error(`Could not create parent task: ${parent.LatestResult?.CompleteMessage ?? 'unknown error'}`);
250
+ }
251
+ return parent.ID;
252
+ }
253
+ /** Writes each child task, returning the tempId -> real ID mapping edges will need. */
254
+ async persistChildren(spec, parentTaskID, taskTypeID, agentIDsByName, context) {
255
+ const map = new Map();
256
+ for (const node of spec.tasks) {
257
+ const task = await context.Provider.GetEntityObject('MJ: Tasks', context.ContextUser);
258
+ task.NewRecord();
259
+ task.Name = node.name;
260
+ task.Description = node.description;
261
+ task.TypeID = taskTypeID;
262
+ task.EnvironmentID = context.EnvironmentID;
263
+ task.ParentID = parentTaskID;
264
+ task.ConversationDetailID = context.ConversationDetailID ?? null;
265
+ task.Status = 'Pending';
266
+ task.PercentComplete = 0;
267
+ if (node.agentName) {
268
+ task.AgentID = agentIDsByName.get(node.agentName);
269
+ }
270
+ else {
271
+ // Human task. Assigned to the submitting user only — cross-user assignment stays
272
+ // rejected until the authorization model in #3524 lands.
273
+ task.UserID = context.ContextUser.ID;
274
+ }
275
+ // Input rides in its own column; Description stays human-readable.
276
+ task.InputPayload = node.inputPayload ? JSON.stringify(node.inputPayload) : null;
277
+ if (!(await task.Save())) {
278
+ throw new Error(`Could not create task "${node.name}": ${task.LatestResult?.CompleteMessage ?? 'unknown error'}`);
279
+ }
280
+ map.set(node.tempId, task.ID);
281
+ }
282
+ return map;
283
+ }
284
+ /** Writes the dependency edges, translating tempIds to persisted IDs. */
285
+ async persistDependencies(spec, taskIDMap, context) {
286
+ for (const node of spec.tasks) {
287
+ const taskID = taskIDMap.get(node.tempId);
288
+ if (!taskID)
289
+ continue;
290
+ for (const raw of node.dependsOn ?? []) {
291
+ const edge = NormalizeDependency(raw);
292
+ const dependsOnTaskID = taskIDMap.get(edge.tempId);
293
+ if (!dependsOnTaskID)
294
+ continue; // validation already rejected unknown refs
295
+ const dep = await context.Provider.GetEntityObject('MJ: Task Dependencies', context.ContextUser);
296
+ dep.NewRecord();
297
+ dep.TaskID = taskID;
298
+ dep.DependsOnTaskID = dependsOnTaskID;
299
+ dep.DependencyType = edge.dependencyType ?? 'Prerequisite';
300
+ // NULL for an unconditional edge, matching AIAgentStepPath — so a graph authored in
301
+ // the flow editor and one emitted by an agent store the same thing.
302
+ dep.Condition = edge.condition ?? null;
303
+ if (!(await dep.Save())) {
304
+ throw new Error(`Could not create dependency ${node.tempId} -> ${edge.tempId}: ${dep.LatestResult?.CompleteMessage ?? 'unknown error'}`);
305
+ }
306
+ }
307
+ }
308
+ }
309
+ async loadChildren(parentTaskID, context) {
310
+ const result = await RunView.FromMetadataProvider(context.Provider).RunView({ EntityName: 'MJ: Tasks', ExtraFilter: `ParentID='${parentTaskID}'`, ResultType: 'entity_object' }, context.ContextUser);
311
+ return (result.Success ? result.Results : []) ?? [];
312
+ }
313
+ }
314
+ //# sourceMappingURL=TaskGraphService.js.map
@@ -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"}