@exellix/ai-tasks 10.0.13 → 10.1.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/activix/activixClient.d.ts +3 -0
  3. package/dist/activix/activixClient.d.ts.map +1 -1
  4. package/dist/activix/activixClient.js +42 -27
  5. package/dist/activix/activixClient.js.map +1 -1
  6. package/dist/core/task-sdk.d.ts.map +1 -1
  7. package/dist/core/task-sdk.js +13 -7
  8. package/dist/core/task-sdk.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/node-execution/buildRequestFromNodePlan.d.ts +2 -0
  14. package/dist/node-execution/buildRequestFromNodePlan.d.ts.map +1 -1
  15. package/dist/node-execution/buildRequestFromNodePlan.js.map +1 -1
  16. package/dist/node-execution/createNodeExecutionHost.d.ts +5 -1
  17. package/dist/node-execution/createNodeExecutionHost.d.ts.map +1 -1
  18. package/dist/node-execution/createNodeExecutionHost.js +18 -5
  19. package/dist/node-execution/createNodeExecutionHost.js.map +1 -1
  20. package/dist/node-execution/dispatchExecutionUnit.d.ts.map +1 -1
  21. package/dist/node-execution/dispatchExecutionUnit.js +12 -14
  22. package/dist/node-execution/dispatchExecutionUnit.js.map +1 -1
  23. package/dist/node-execution/executeNodeFromPlan.d.ts.map +1 -1
  24. package/dist/node-execution/executeNodeFromPlan.js +19 -7
  25. package/dist/node-execution/executeNodeFromPlan.js.map +1 -1
  26. package/dist/node-execution/liftTraceObservations.d.ts +6 -0
  27. package/dist/node-execution/liftTraceObservations.d.ts.map +1 -0
  28. package/dist/node-execution/liftTraceObservations.js +53 -0
  29. package/dist/node-execution/liftTraceObservations.js.map +1 -0
  30. package/dist/node-execution/mapObservationToTrace.d.ts +10 -0
  31. package/dist/node-execution/mapObservationToTrace.d.ts.map +1 -0
  32. package/dist/node-execution/mapObservationToTrace.js +74 -0
  33. package/dist/node-execution/mapObservationToTrace.js.map +1 -0
  34. package/dist/node-execution/traceLifecycle.d.ts +42 -0
  35. package/dist/node-execution/traceLifecycle.d.ts.map +1 -0
  36. package/dist/node-execution/traceLifecycle.js +312 -0
  37. package/dist/node-execution/traceLifecycle.js.map +1 -0
  38. package/dist/node-execution/unitTrace.d.ts +13 -2
  39. package/dist/node-execution/unitTrace.d.ts.map +1 -1
  40. package/dist/node-execution/unitTrace.js +106 -35
  41. package/dist/node-execution/unitTrace.js.map +1 -1
  42. package/dist/post-steps/audit/runAudit.d.ts +3 -0
  43. package/dist/post-steps/audit/runAudit.d.ts.map +1 -1
  44. package/dist/post-steps/audit/runAudit.js +54 -16
  45. package/dist/post-steps/audit/runAudit.js.map +1 -1
  46. package/dist/post-steps/polish/runPolish.d.ts +3 -0
  47. package/dist/post-steps/polish/runPolish.d.ts.map +1 -1
  48. package/dist/post-steps/polish/runPolish.js +7 -1
  49. package/dist/post-steps/polish/runPolish.js.map +1 -1
  50. package/documenations/node-execution-graphenix.md +4 -4
  51. package/package.json +9 -9
@@ -0,0 +1,312 @@
1
+ /**
2
+ * GTF-FR-001 lifecycle helpers for v2 execution trace index dual-write.
3
+ * Uses @x12i/graphenix-trace-format appendTraceEvent until upstream exports these APIs.
4
+ */
5
+ import { randomUUID } from "crypto";
6
+ import { appendTraceEvent, deriveNodeStatusFromUnits } from "@x12i/graphenix-trace-format";
7
+ import { traceError } from "./mapObservationToTrace.js";
8
+ function appendUnique(ids, id) {
9
+ if (!ids.includes(id))
10
+ ids.push(id);
11
+ }
12
+ function nextSequence(trace) {
13
+ return (trace.events?.length ?? 0) + 1;
14
+ }
15
+ function appendLifecycleEvent(trace, event) {
16
+ appendTraceEvent(trace, {
17
+ ...event,
18
+ sequence: event.sequence ?? nextSequence(trace),
19
+ }, { mutate: true });
20
+ }
21
+ function ensureNodeRunning(trace, nodeId, ts) {
22
+ const node = trace.nodeExecutions[nodeId];
23
+ if (!node)
24
+ return;
25
+ if (node.status === "pending") {
26
+ trace.nodeExecutions[nodeId] = { ...node, status: "running", startedAt: ts };
27
+ appendUnique(trace.graphExecution.startedNodeIds, nodeId);
28
+ appendLifecycleEvent(trace, {
29
+ id: `evt:${randomUUID()}`,
30
+ ts,
31
+ level: "info",
32
+ type: "node.started",
33
+ nodeId,
34
+ });
35
+ }
36
+ }
37
+ export function markUnitStarted(trace, unit, at) {
38
+ const ts = at ?? new Date().toISOString();
39
+ const unitId = unit.unitId;
40
+ const existing = trace.unitExecutions[unitId];
41
+ if (!existing)
42
+ return;
43
+ const strategyKey = unit.strategyKey ?? unit.actionKey;
44
+ trace.unitExecutions[unitId] = {
45
+ ...existing,
46
+ status: "running",
47
+ startedAt: ts,
48
+ ...(typeof strategyKey === "string" ? { strategyKey } : {}),
49
+ };
50
+ appendUnique(trace.graphExecution.startedUnitIds, unitId);
51
+ ensureNodeRunning(trace, unit.nodeId, ts);
52
+ appendLifecycleEvent(trace, {
53
+ id: `evt:${randomUUID()}`,
54
+ ts,
55
+ level: "info",
56
+ type: "unit.started",
57
+ nodeId: unit.nodeId,
58
+ unitId,
59
+ unitKind: unit.unitKind,
60
+ evidence: {
61
+ unitKind: unit.unitKind,
62
+ invokeMode: unit.invokeMode,
63
+ strategyKey: unit.strategyKey,
64
+ skillKey: unit.skillKey,
65
+ modelSlot: unit.modelSlot,
66
+ },
67
+ });
68
+ }
69
+ export function markUnitCompleted(trace, unitId, outcome, unit) {
70
+ const ts = outcome.completedAt ?? new Date().toISOString();
71
+ const existing = trace.unitExecutions[unitId];
72
+ if (!existing)
73
+ return;
74
+ trace.unitExecutions[unitId] = {
75
+ ...existing,
76
+ status: "completed",
77
+ completedAt: ts,
78
+ durationMs: outcome.durationMs,
79
+ ...(outcome.modelInvocationIds !== undefined
80
+ ? { modelInvocationIds: outcome.modelInvocationIds }
81
+ : {}),
82
+ };
83
+ appendUnique(trace.graphExecution.completedUnitIds, unitId);
84
+ appendLifecycleEvent(trace, {
85
+ id: `evt:${randomUUID()}`,
86
+ ts,
87
+ level: "info",
88
+ type: "unit.completed",
89
+ nodeId: existing.nodeId,
90
+ unitId,
91
+ unitKind: existing.unitKind,
92
+ evidence: {
93
+ durationMs: outcome.durationMs,
94
+ modelInvocationIds: outcome.modelInvocationIds,
95
+ unitKind: unit?.unitKind ?? existing.unitKind,
96
+ },
97
+ });
98
+ }
99
+ export function markUnitFailed(trace, unitId, error, outcome, unit) {
100
+ const ts = outcome?.completedAt ?? new Date().toISOString();
101
+ const durationMs = outcome?.durationMs ?? 0;
102
+ const errorMessage = outcome?.errorMessage ??
103
+ (error instanceof Error ? error.message : typeof error === "string" ? error : String(error));
104
+ const existing = trace.unitExecutions[unitId];
105
+ if (!existing)
106
+ return;
107
+ trace.unitExecutions[unitId] = {
108
+ ...existing,
109
+ status: "failed",
110
+ completedAt: ts,
111
+ durationMs,
112
+ error: traceError(errorMessage, "UNIT_FAILED"),
113
+ };
114
+ appendUnique(trace.graphExecution.failedUnitIds, unitId);
115
+ appendLifecycleEvent(trace, {
116
+ id: `evt:${randomUUID()}`,
117
+ ts,
118
+ level: "error",
119
+ type: "unit.failed",
120
+ nodeId: existing.nodeId,
121
+ unitId,
122
+ unitKind: existing.unitKind,
123
+ evidence: {
124
+ errorMessage,
125
+ durationMs,
126
+ unitKind: unit?.unitKind ?? existing.unitKind,
127
+ },
128
+ });
129
+ }
130
+ function plannedResolvedInvocation(unit, trace) {
131
+ const selection = unit.modelSelection ?? { kind: "profileChoice", key: "vol/default" };
132
+ return {
133
+ provider: "pending",
134
+ modelId: "pending",
135
+ profileChoiceKey: selection.kind === "profileChoice" ? selection.key : undefined,
136
+ registryVersion: trace.profileRegistry?.version,
137
+ registryHash: trace.profileRegistry?.registryHash,
138
+ resolutionSource: "profileRegistry",
139
+ };
140
+ }
141
+ export function recordModelInvocationStarted(trace, args) {
142
+ const ts = args.startedAt ?? new Date().toISOString();
143
+ const { unit, invocationId, nodeId } = args;
144
+ const selection = unit.modelSelection ?? { kind: "profileChoice", key: "vol/default" };
145
+ trace.modelInvocations[invocationId] = {
146
+ invocationId,
147
+ nodeId,
148
+ unitId: unit.unitId,
149
+ slot: unit.modelSlot ?? "skillModel",
150
+ attempt: args.attempt ?? 1,
151
+ status: "started",
152
+ startedAt: ts,
153
+ plannedSelection: selection,
154
+ resolvedInvocation: plannedResolvedInvocation(unit, trace),
155
+ };
156
+ appendLifecycleEvent(trace, {
157
+ id: `evt:${randomUUID()}`,
158
+ ts,
159
+ level: "info",
160
+ type: "model.invocation.started",
161
+ nodeId,
162
+ unitId: unit.unitId,
163
+ modelSlot: unit.modelSlot,
164
+ evidence: { invocationId, modelSlot: unit.modelSlot },
165
+ });
166
+ }
167
+ function applyDataPolicyPreviews(trace, outcome) {
168
+ const policy = trace.diagnostics?.dataPolicy;
169
+ if (!policy?.storePrompts) {
170
+ return {};
171
+ }
172
+ const max = policy.maxPreviewChars ?? 512;
173
+ const clip = (s) => s === undefined ? undefined : s.length > max ? s.slice(0, max) : s;
174
+ return {
175
+ promptPreview: clip(outcome.promptPreview),
176
+ completionPreview: clip(outcome.completionPreview),
177
+ };
178
+ }
179
+ export function recordModelInvocationCompleted(trace, invocationId, outcome) {
180
+ const ts = outcome.completedAt ?? new Date().toISOString();
181
+ const existing = trace.modelInvocations[invocationId];
182
+ if (!existing)
183
+ return;
184
+ const previews = applyDataPolicyPreviews(trace, outcome);
185
+ trace.modelInvocations[invocationId] = {
186
+ ...existing,
187
+ status: "completed",
188
+ completedAt: ts,
189
+ durationMs: outcome.durationMs,
190
+ ...(outcome.usage ? { usage: outcome.usage } : {}),
191
+ ...(outcome.cost
192
+ ? {
193
+ cost: {
194
+ costUsd: outcome.cost.costUsd,
195
+ costStatus: outcome.cost.costStatus ?? "unknown",
196
+ },
197
+ }
198
+ : {}),
199
+ ...(outcome.resolvedInvocation ? { resolvedInvocation: outcome.resolvedInvocation } : {}),
200
+ ...previews,
201
+ };
202
+ const unitId = existing.unitId;
203
+ const unitExec = trace.unitExecutions[unitId];
204
+ if (unitExec) {
205
+ const ids = [...(unitExec.modelInvocationIds ?? [])];
206
+ appendUnique(ids, invocationId);
207
+ trace.unitExecutions[unitId] = { ...unitExec, modelInvocationIds: ids };
208
+ }
209
+ appendLifecycleEvent(trace, {
210
+ id: `evt:${randomUUID()}`,
211
+ ts,
212
+ level: "info",
213
+ type: "model.invocation.completed",
214
+ nodeId: existing.nodeId,
215
+ unitId: existing.unitId,
216
+ modelSlot: existing.slot,
217
+ evidence: { invocationId, durationMs: outcome.durationMs },
218
+ });
219
+ }
220
+ export function recordModelInvocationFailed(trace, invocationId, error, outcome) {
221
+ const ts = outcome?.completedAt ?? new Date().toISOString();
222
+ const durationMs = outcome?.durationMs ?? 0;
223
+ const errorMessage = outcome?.errorMessage ??
224
+ (error instanceof Error ? error.message : typeof error === "string" ? error : String(error));
225
+ const existing = trace.modelInvocations[invocationId];
226
+ if (!existing)
227
+ return;
228
+ trace.modelInvocations[invocationId] = {
229
+ ...existing,
230
+ status: "failed",
231
+ completedAt: ts,
232
+ durationMs,
233
+ error: traceError(errorMessage, "MODEL_INVOCATION_FAILED"),
234
+ };
235
+ appendLifecycleEvent(trace, {
236
+ id: `evt:${randomUUID()}`,
237
+ ts,
238
+ level: "error",
239
+ type: "model.invocation.failed",
240
+ nodeId: existing.nodeId,
241
+ unitId: existing.unitId,
242
+ modelSlot: existing.slot,
243
+ evidence: { invocationId, errorMessage },
244
+ });
245
+ }
246
+ export function appendFallbackAppliedEvent(trace, unit, extra) {
247
+ const ts = new Date().toISOString();
248
+ appendLifecycleEvent(trace, {
249
+ id: `evt:${randomUUID()}`,
250
+ ts,
251
+ level: "info",
252
+ type: "fallback.applied",
253
+ nodeId: unit.nodeId,
254
+ unitId: unit.unitId,
255
+ evidence: {
256
+ unitKind: unit.unitKind,
257
+ ...extra,
258
+ },
259
+ });
260
+ }
261
+ export function rollupNodeExecution(trace, nodeId) {
262
+ const nodeTrace = trace.nodeExecutions[nodeId];
263
+ if (!nodeTrace)
264
+ return;
265
+ const status = deriveNodeStatusFromUnits(trace, nodeId);
266
+ const units = nodeTrace.unitIds
267
+ .map((id) => trace.unitExecutions[id])
268
+ .filter((u) => !!u);
269
+ const startedTimes = units
270
+ .map((u) => u.startedAt)
271
+ .filter((t) => typeof t === "string")
272
+ .sort();
273
+ const completedTimes = units
274
+ .map((u) => u.completedAt)
275
+ .filter((t) => typeof t === "string")
276
+ .sort();
277
+ const startedAt = nodeTrace.startedAt ?? startedTimes[0];
278
+ const completedAt = status === "completed" || status === "failed" || status === "skipped"
279
+ ? (completedTimes[completedTimes.length - 1] ?? new Date().toISOString())
280
+ : undefined;
281
+ let durationMs = units.reduce((sum, u) => sum + (u.durationMs ?? 0), 0);
282
+ if (startedAt && completedAt) {
283
+ durationMs = Math.max(0, new Date(completedAt).getTime() - new Date(startedAt).getTime());
284
+ }
285
+ trace.nodeExecutions[nodeId] = {
286
+ ...nodeTrace,
287
+ status,
288
+ ...(startedAt ? { startedAt } : {}),
289
+ ...(completedAt ? { completedAt, durationMs } : {}),
290
+ };
291
+ if (status === "completed") {
292
+ appendUnique(trace.graphExecution.completedNodeIds, nodeId);
293
+ appendLifecycleEvent(trace, {
294
+ id: `evt:${randomUUID()}`,
295
+ ts: completedAt ?? new Date().toISOString(),
296
+ level: "info",
297
+ type: "node.completed",
298
+ nodeId,
299
+ });
300
+ }
301
+ else if (status === "failed") {
302
+ appendUnique(trace.graphExecution.failedNodeIds, nodeId);
303
+ appendLifecycleEvent(trace, {
304
+ id: `evt:${randomUUID()}`,
305
+ ts: completedAt ?? new Date().toISOString(),
306
+ level: "error",
307
+ type: "node.failed",
308
+ nodeId,
309
+ });
310
+ }
311
+ }
312
+ //# sourceMappingURL=traceLifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traceLifecycle.js","sourceRoot":"","sources":["../../src/node-execution/traceLifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,23 @@
1
1
  import type { ExecutionUnitPlanV2, GraphExecutionTraceV2 } from "@x12i/graphenix-executable-contracts";
2
+ import type { LlmCallObservation } from "../types/llmCall.js";
2
3
  export type UnitTraceContext = {
3
4
  trace?: GraphExecutionTraceV2;
4
5
  nodeId: string;
5
6
  };
6
- export declare function appendUnitTraceEvent(ctx: UnitTraceContext, type: string, unit: ExecutionUnitPlanV2, extra?: Record<string, unknown>): void;
7
7
  export declare function unitUsesModelInvocation(unit: ExecutionUnitPlanV2): boolean;
8
+ export declare function beginUnitTrace(ctx: UnitTraceContext, unit: ExecutionUnitPlanV2): {
9
+ invocationId?: string;
10
+ startedAtMs: number;
11
+ };
12
+ export declare function completeUnitTrace(ctx: UnitTraceContext, unit: ExecutionUnitPlanV2, startedAtMs: number, invocationId: string | undefined, observations: LlmCallObservation[]): void;
13
+ export declare function failUnitTrace(ctx: UnitTraceContext, unit: ExecutionUnitPlanV2, startedAtMs: number, invocationId: string | undefined, error: unknown): void;
14
+ export declare function appendFallbackApplied(ctx: UnitTraceContext, unit: ExecutionUnitPlanV2, extra?: Record<string, unknown>): void;
15
+ /** @deprecated Use beginUnitTrace — kept for incremental migration. */
16
+ export declare function appendUnitTraceEvent(ctx: UnitTraceContext, type: string, unit: ExecutionUnitPlanV2, extra?: Record<string, unknown>): void;
17
+ /** @deprecated Use beginUnitTrace / completeUnitTrace. */
8
18
  export declare function appendModelInvocationStarted(ctx: UnitTraceContext, unit: ExecutionUnitPlanV2, invocationId?: string): string;
19
+ /** @deprecated Use completeUnitTrace. */
9
20
  export declare function appendModelInvocationCompleted(ctx: UnitTraceContext, unit: ExecutionUnitPlanV2, invocationId: string, extra?: Record<string, unknown>): void;
21
+ /** @deprecated Use failUnitTrace. */
10
22
  export declare function appendModelInvocationFailed(ctx: UnitTraceContext, unit: ExecutionUnitPlanV2, invocationId: string, error: unknown): void;
11
- export declare function appendFallbackApplied(ctx: UnitTraceContext, unit: ExecutionUnitPlanV2, extra?: Record<string, unknown>): void;
12
23
  //# sourceMappingURL=unitTrace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unitTrace.d.ts","sourceRoot":"","sources":["../../src/node-execution/unitTrace.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAEvG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAoBN;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAE1E;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAOR;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAKN;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,GACb,IAAI,CAKN;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAEN"}
1
+ {"version":3,"file":"unitTrace.d.ts","sourceRoot":"","sources":["../../src/node-execution/unitTrace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAa9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAU1E;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,GACxB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAShD;AAYD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,YAAY,EAAE,kBAAkB,EAAE,GACjC,IAAI,CA8CN;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,KAAK,EAAE,OAAO,GACb,IAAI,CAiBN;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAGN;AAED,uEAAuE;AACvE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAKN;AAED,0DAA0D;AAC1D,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAKR;AAED,yCAAyC;AACzC,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAMN;AAED,qCAAqC;AACrC,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,mBAAmB,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,GACb,IAAI,CAIN"}
@@ -1,52 +1,123 @@
1
1
  import { randomUUID } from "crypto";
2
- import { appendTraceEvent } from "@x12i/graphenix-trace-format";
3
2
  import { AI_UNIT_KINDS } from "@x12i/graphenix-plan-format";
4
- export function appendUnitTraceEvent(ctx, type, unit, extra) {
3
+ import { mapObservationToModelInvocationOutcome } from "./mapObservationToTrace.js";
4
+ import { appendFallbackAppliedEvent, markUnitCompleted, markUnitFailed, markUnitStarted, recordModelInvocationCompleted, recordModelInvocationFailed, recordModelInvocationStarted, } from "./traceLifecycle.js";
5
+ export function unitUsesModelInvocation(unit) {
6
+ if (!AI_UNIT_KINDS.has(unit.unitKind) || unit.unitKind === "finalizer") {
7
+ return false;
8
+ }
9
+ if (unit.unitKind === "externalPostUtility") {
10
+ const key = unit.strategyKey ?? unit.actionKey;
11
+ if (key === "merge" || key === "pick-best")
12
+ return false;
13
+ return !!unit.modelSlot;
14
+ }
15
+ return true;
16
+ }
17
+ export function beginUnitTrace(ctx, unit) {
18
+ const startedAtMs = performance.now();
5
19
  if (!ctx.trace)
6
- return;
7
- const sequence = (ctx.trace.events?.length ?? 0) + 1;
8
- appendTraceEvent(ctx.trace, {
9
- id: `evt:${randomUUID()}`,
10
- ts: new Date().toISOString(),
11
- sequence,
12
- level: type.includes("failed") ? "error" : "info",
13
- type,
20
+ return { startedAtMs };
21
+ markUnitStarted(ctx.trace, unit);
22
+ const invocationId = unitUsesModelInvocation(unit)
23
+ ? startModelInvocation(ctx, unit)
24
+ : undefined;
25
+ return { invocationId, startedAtMs };
26
+ }
27
+ function startModelInvocation(ctx, unit) {
28
+ const invocationId = `inv:${randomUUID()}`;
29
+ recordModelInvocationStarted(ctx.trace, {
30
+ invocationId,
31
+ unit,
14
32
  nodeId: ctx.nodeId,
15
- unitId: unit.unitId,
16
- evidence: {
17
- unitKind: unit.unitKind,
18
- invokeMode: unit.invokeMode,
19
- strategyKey: unit.strategyKey,
20
- skillKey: unit.skillKey,
21
- modelSlot: unit.modelSlot,
22
- ...extra,
23
- },
24
33
  });
34
+ return invocationId;
25
35
  }
26
- export function unitUsesModelInvocation(unit) {
27
- return AI_UNIT_KINDS.has(unit.unitKind) && unit.unitKind !== "finalizer";
36
+ export function completeUnitTrace(ctx, unit, startedAtMs, invocationId, observations) {
37
+ if (!ctx.trace)
38
+ return;
39
+ const durationMs = Math.max(1, Math.round(performance.now() - startedAtMs));
40
+ const completedAt = new Date().toISOString();
41
+ const modelInvocationIds = [];
42
+ if (invocationId) {
43
+ modelInvocationIds.push(invocationId);
44
+ const outcome = observations[0]
45
+ ? mapObservationToModelInvocationOutcome(observations[0], unit, ctx.trace)
46
+ : { durationMs };
47
+ recordModelInvocationCompleted(ctx.trace, invocationId, {
48
+ ...outcome,
49
+ durationMs: outcome.durationMs || durationMs,
50
+ completedAt,
51
+ });
52
+ for (let i = 1; i < observations.length; i++) {
53
+ const extraId = `inv:${randomUUID()}`;
54
+ recordModelInvocationStarted(ctx.trace, {
55
+ invocationId: extraId,
56
+ unit,
57
+ nodeId: ctx.nodeId,
58
+ startedAt: completedAt,
59
+ attempt: i + 1,
60
+ });
61
+ const extraOutcome = mapObservationToModelInvocationOutcome(observations[i], unit, ctx.trace);
62
+ recordModelInvocationCompleted(ctx.trace, extraId, {
63
+ ...extraOutcome,
64
+ completedAt,
65
+ });
66
+ modelInvocationIds.push(extraId);
67
+ }
68
+ }
69
+ markUnitCompleted(ctx.trace, unit.unitId, {
70
+ durationMs,
71
+ completedAt,
72
+ ...(modelInvocationIds.length > 0 ? { modelInvocationIds } : {}),
73
+ }, unit);
74
+ }
75
+ export function failUnitTrace(ctx, unit, startedAtMs, invocationId, error) {
76
+ if (!ctx.trace)
77
+ return;
78
+ const durationMs = Math.max(0, Math.round(performance.now() - startedAtMs));
79
+ const completedAt = new Date().toISOString();
80
+ if (invocationId) {
81
+ recordModelInvocationFailed(ctx.trace, invocationId, error, { durationMs, completedAt });
82
+ }
83
+ markUnitFailed(ctx.trace, unit.unitId, error, { durationMs, completedAt }, unit);
84
+ }
85
+ export function appendFallbackApplied(ctx, unit, extra) {
86
+ if (!ctx.trace)
87
+ return;
88
+ appendFallbackAppliedEvent(ctx.trace, unit, extra);
28
89
  }
90
+ /** @deprecated Use beginUnitTrace — kept for incremental migration. */
91
+ export function appendUnitTraceEvent(ctx, type, unit, extra) {
92
+ void type;
93
+ void extra;
94
+ if (!ctx.trace)
95
+ return;
96
+ if (type === "unit.started")
97
+ markUnitStarted(ctx.trace, unit);
98
+ }
99
+ /** @deprecated Use beginUnitTrace / completeUnitTrace. */
29
100
  export function appendModelInvocationStarted(ctx, unit, invocationId) {
101
+ if (!ctx.trace)
102
+ return invocationId ?? `inv:${randomUUID()}`;
30
103
  const id = invocationId ?? `inv:${randomUUID()}`;
31
- appendUnitTraceEvent(ctx, "model.invocation.started", unit, {
32
- invocationId: id,
33
- modelSlot: unit.modelSlot,
34
- });
104
+ recordModelInvocationStarted(ctx.trace, { invocationId: id, unit, nodeId: ctx.nodeId });
35
105
  return id;
36
106
  }
107
+ /** @deprecated Use completeUnitTrace. */
37
108
  export function appendModelInvocationCompleted(ctx, unit, invocationId, extra) {
38
- appendUnitTraceEvent(ctx, "model.invocation.completed", unit, {
39
- invocationId,
40
- ...extra,
109
+ void unit;
110
+ if (!ctx.trace)
111
+ return;
112
+ recordModelInvocationCompleted(ctx.trace, invocationId, {
113
+ durationMs: typeof extra?.durationMs === "number" ? extra.durationMs : 0,
41
114
  });
42
115
  }
116
+ /** @deprecated Use failUnitTrace. */
43
117
  export function appendModelInvocationFailed(ctx, unit, invocationId, error) {
44
- appendUnitTraceEvent(ctx, "model.invocation.failed", unit, {
45
- invocationId,
46
- errorMessage: error instanceof Error ? error.message : String(error),
47
- });
48
- }
49
- export function appendFallbackApplied(ctx, unit, extra) {
50
- appendUnitTraceEvent(ctx, "fallback.applied", unit, extra);
118
+ void unit;
119
+ if (!ctx.trace)
120
+ return;
121
+ recordModelInvocationFailed(ctx.trace, invocationId, error);
51
122
  }
52
123
  //# sourceMappingURL=unitTrace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unitTrace.js","sourceRoot":"","sources":["../../src/node-execution/unitTrace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAQ5D,MAAM,UAAU,oBAAoB,CAClC,GAAqB,EACrB,IAAY,EACZ,IAAyB,EACzB,KAA+B;IAE/B,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO;IACvB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrD,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE;QAC1B,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE;QACzB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;QACjD,IAAI;QACJ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,KAAK;SACT;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAyB;IAC/D,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,GAAqB,EACrB,IAAyB,EACzB,YAAqB;IAErB,MAAM,EAAE,GAAG,YAAY,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC;IACjD,oBAAoB,CAAC,GAAG,EAAE,0BAA0B,EAAE,IAAI,EAAE;QAC1D,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IACH,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,GAAqB,EACrB,IAAyB,EACzB,YAAoB,EACpB,KAA+B;IAE/B,oBAAoB,CAAC,GAAG,EAAE,4BAA4B,EAAE,IAAI,EAAE;QAC5D,YAAY;QACZ,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,GAAqB,EACrB,IAAyB,EACzB,YAAoB,EACpB,KAAc;IAEd,oBAAoB,CAAC,GAAG,EAAE,yBAAyB,EAAE,IAAI,EAAE;QACzD,YAAY;QACZ,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KACrE,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,GAAqB,EACrB,IAAyB,EACzB,KAA+B;IAE/B,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"unitTrace.js","sourceRoot":"","sources":["../../src/node-execution/unitTrace.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  import type { RunTaskRequest, RunTaskResponse } from "../../types/index.js";
5
5
  import type { AuditConfig, AuditPostStepMetadata, IntermediateStep } from "../../types/task-types.js";
6
6
  import type { DebugTraceCollector } from "../../observability/debugTrace.js";
7
+ import type { LlmCallObservation } from "../../types/llmCall.js";
7
8
  export type RunAuditPostStepContext<TParsed = any> = {
8
9
  request: RunTaskRequest;
9
10
  mainResult: RunTaskResponse<TParsed>;
@@ -12,6 +13,8 @@ export type RunAuditPostStepContext<TParsed = any> = {
12
13
  reRunMain: (overrideContext: string) => Promise<RunTaskResponse<TParsed>>;
13
14
  /** Optional runTask trace collector (executionMode: "trace"). */
14
15
  traceCollector?: DebugTraceCollector | null;
16
+ /** Optional executionTrace v2 observation sink (nodePlan POST units). */
17
+ observationSink?: (obs: LlmCallObservation) => void;
15
18
  };
16
19
  export type RunAuditPostStepResult = {
17
20
  outputText: string;
@@ -1 +1 @@
1
- {"version":3,"file":"runAudit.d.ts","sourceRoot":"","sources":["../../../src/post-steps/audit/runAudit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EACV,WAAW,EAEX,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAgB7E,MAAM,MAAM,uBAAuB,CAAC,OAAO,GAAG,GAAG,IAAI;IACnD,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,iEAAiE;IACjE,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC;AA2CF,wBAAsB,gBAAgB,CAAC,OAAO,GAAG,GAAG,EAClD,GAAG,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACpC,OAAO,CAAC,sBAAsB,CAAC,CA6XjC"}
1
+ {"version":3,"file":"runAudit.d.ts","sourceRoot":"","sources":["../../../src/post-steps/audit/runAudit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EACV,WAAW,EAEX,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAU7E,OAAO,KAAK,EAAiB,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAMhF,MAAM,MAAM,uBAAuB,CAAC,OAAO,GAAG,GAAG,IAAI;IACnD,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,iEAAiE;IACjE,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,yEAAyE;IACzE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC;AA2CF,wBAAsB,gBAAgB,CAAC,OAAO,GAAG,GAAG,EAClD,GAAG,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAiajC"}