@exellix/ai-tasks 10.1.0 → 10.1.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.
@@ -1,42 +1,18 @@
1
- import type { CostTrace, ExecutionUnitPlanV2, GraphExecutionTraceV2, ResolvedInvocationTrace } from "@x12i/graphenix-executable-contracts";
2
- export type UnitCompletionOutcome = {
3
- completedAt?: string;
4
- durationMs: number;
5
- modelInvocationIds?: string[];
6
- };
7
- export type UnitFailureOutcome = {
8
- completedAt?: string;
9
- durationMs: number;
10
- errorMessage?: string;
11
- };
12
- export type ModelInvocationStartArgs = {
13
- invocationId: string;
14
- unit: ExecutionUnitPlanV2;
15
- nodeId: string;
16
- startedAt?: string;
17
- attempt?: number;
18
- };
19
- export type ModelInvocationOutcome = {
20
- completedAt?: string;
21
- durationMs: number;
22
- usage?: {
23
- inputTokens?: number;
24
- outputTokens?: number;
25
- totalTokens?: number;
26
- cachedInputTokens?: number;
27
- };
28
- cost?: CostTrace;
29
- resolvedInvocation?: ResolvedInvocationTrace;
30
- promptPreview?: string;
31
- completionPreview?: string;
32
- errorMessage?: string;
33
- };
1
+ /**
2
+ * GTF-FR-001 lifecycle helpers — delegate to @x12i/graphenix-trace-format (≥2.12.0) with
3
+ * ai-tasks argument shims; fall back to local implementation on older trace-format.
4
+ */
5
+ import type { ExecutionUnitPlanV2, GraphExecutionTraceV2 } from "@x12i/graphenix-executable-contracts";
6
+ import * as local from "./traceLifecycleLocal.js";
7
+ export type { UnitCompletionOutcome, UnitFailureOutcome, ModelInvocationStartArgs, ModelInvocationOutcome, } from "./traceLifecycleLocal.js";
34
8
  export declare function markUnitStarted(trace: GraphExecutionTraceV2, unit: ExecutionUnitPlanV2, at?: string): void;
35
- export declare function markUnitCompleted(trace: GraphExecutionTraceV2, unitId: string, outcome: UnitCompletionOutcome, unit?: ExecutionUnitPlanV2): void;
36
- export declare function markUnitFailed(trace: GraphExecutionTraceV2, unitId: string, error: unknown, outcome?: UnitFailureOutcome, unit?: ExecutionUnitPlanV2): void;
37
- export declare function recordModelInvocationStarted(trace: GraphExecutionTraceV2, args: ModelInvocationStartArgs): void;
38
- export declare function recordModelInvocationCompleted(trace: GraphExecutionTraceV2, invocationId: string, outcome: ModelInvocationOutcome): void;
39
- export declare function recordModelInvocationFailed(trace: GraphExecutionTraceV2, invocationId: string, error: unknown, outcome?: ModelInvocationOutcome): void;
40
- export declare function appendFallbackAppliedEvent(trace: GraphExecutionTraceV2, unit: ExecutionUnitPlanV2, extra?: Record<string, unknown>): void;
41
- export declare function rollupNodeExecution(trace: GraphExecutionTraceV2, nodeId: string): void;
9
+ export declare function markUnitCompleted(trace: GraphExecutionTraceV2, unitId: string, outcome: local.UnitCompletionOutcome, unit?: ExecutionUnitPlanV2): void;
10
+ export declare function markUnitFailed(trace: GraphExecutionTraceV2, unitId: string, error: unknown, outcome?: local.UnitFailureOutcome, unit?: ExecutionUnitPlanV2): void;
11
+ export declare function recordModelInvocationStarted(trace: GraphExecutionTraceV2, args: local.ModelInvocationStartArgs): void;
12
+ export declare function recordModelInvocationCompleted(trace: GraphExecutionTraceV2, invocationId: string, outcome: local.ModelInvocationOutcome): void;
13
+ export declare function recordModelInvocationFailed(trace: GraphExecutionTraceV2, invocationId: string, error: unknown, outcome?: local.ModelInvocationOutcome): void;
14
+ export declare const appendFallbackAppliedEvent: typeof local.appendFallbackAppliedEvent;
15
+ export declare const rollupNodeExecution: typeof local.rollupNodeExecution;
16
+ /** True when GTF-FR-001 lifecycle helpers are exported from graphenix-trace-format. */
17
+ export declare function usesUpstreamTraceLifecycle(): boolean;
42
18
  //# sourceMappingURL=traceLifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traceLifecycle.d.ts","sourceRoot":"","sources":["../../src/node-execution/traceLifecycle.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EAErB,uBAAuB,EAExB,MAAM,sCAAsC,CAAC;AAyC9C,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,mBAAmB,EACzB,EAAE,CAAC,EAAE,MAAM,GACV,IAAI,CAgCN;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,EAC9B,IAAI,CAAC,EAAE,mBAAmB,GACzB,IAAI,CA8BN;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,kBAAkB,EAC5B,IAAI,CAAC,EAAE,mBAAmB,GACzB,IAAI,CAgCN;AAiBD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,wBAAwB,GAC7B,IAAI,CA2BN;AAmBD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,sBAAsB,GAC9B,IAAI,CA0CN;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,IAAI,CA2BN;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAcN;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAuDtF"}
1
+ {"version":3,"file":"traceLifecycle.d.ts","sourceRoot":"","sources":["../../src/node-execution/traceLifecycle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAEvG,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAuBlC,wBAAgB,eAAe,CAC7B,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,mBAAmB,EACzB,EAAE,CAAC,EAAE,MAAM,GACV,IAAI,CAUN;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,KAAK,CAAC,qBAAqB,EACpC,IAAI,CAAC,EAAE,mBAAmB,GACzB,IAAI,CAUN;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAClC,IAAI,CAAC,EAAE,mBAAmB,GACzB,IAAI,CAcN;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,KAAK,CAAC,wBAAwB,GACnC,IAAI,CAgBN;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,KAAK,CAAC,sBAAsB,GACpC,IAAI,CAgBN;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,KAAK,CAAC,sBAAsB,GACrC,IAAI,CAUN;AAED,eAAO,MAAM,0BAA0B,yCAAmC,CAAC;AAC3E,eAAO,MAAM,mBAAmB,kCAA4B,CAAC;AAE7D,uFAAuF;AACvF,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD"}
@@ -1,312 +1,105 @@
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
- });
1
+ import * as GTF from "@x12i/graphenix-trace-format";
2
+ import * as local from "./traceLifecycleLocal.js";
3
+ const hasUpstream = typeof GTF.markUnitStarted === "function" &&
4
+ typeof GTF.recordModelInvocationStarted === "function";
5
+ function normalizeError(error) {
6
+ if (error instanceof Error) {
7
+ return { message: error.message, code: "UNIT_FAILED" };
8
+ }
9
+ if (typeof error === "string") {
10
+ return { message: error, code: "UNIT_FAILED" };
35
11
  }
12
+ if (error && typeof error === "object" && "message" in error) {
13
+ const record = error;
14
+ return {
15
+ message: String(record.message ?? "Unit failed"),
16
+ code: typeof record.code === "string" ? record.code : "UNIT_FAILED",
17
+ };
18
+ }
19
+ return { message: String(error), code: "UNIT_FAILED" };
36
20
  }
37
21
  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)
22
+ if (hasUpstream && typeof GTF.appendUnitLifecycleEvent === "function") {
23
+ GTF.appendUnitLifecycleEvent(trace, "unit.started", unit, { at, ts: at });
24
+ return;
25
+ }
26
+ if (hasUpstream) {
27
+ GTF.markUnitStarted(trace, unit, at);
42
28
  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
- });
29
+ }
30
+ local.markUnitStarted(trace, unit, at);
68
31
  }
69
32
  export function markUnitCompleted(trace, unitId, outcome, unit) {
70
- const ts = outcome.completedAt ?? new Date().toISOString();
71
- const existing = trace.unitExecutions[unitId];
72
- if (!existing)
33
+ if (hasUpstream && typeof GTF.appendUnitLifecycleEvent === "function" && unit) {
34
+ GTF.appendUnitLifecycleEvent(trace, "unit.completed", unit, outcome);
73
35
  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
- });
36
+ }
37
+ if (hasUpstream) {
38
+ GTF.markUnitCompleted(trace, unitId, outcome);
39
+ return;
40
+ }
41
+ local.markUnitCompleted(trace, unitId, outcome, unit);
98
42
  }
99
43
  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)
44
+ const normalized = normalizeError(error);
45
+ if (hasUpstream && typeof GTF.appendUnitLifecycleEvent === "function" && unit) {
46
+ GTF.appendUnitLifecycleEvent(trace, "unit.failed", unit, {
47
+ ...outcome,
48
+ error: normalized,
49
+ });
106
50
  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
- };
51
+ }
52
+ if (hasUpstream) {
53
+ GTF.markUnitFailed(trace, unitId, normalized, outcome);
54
+ return;
55
+ }
56
+ local.markUnitFailed(trace, unitId, error, outcome, unit);
140
57
  }
141
58
  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 {};
59
+ if (hasUpstream) {
60
+ GTF.recordModelInvocationStarted(trace, {
61
+ invocationId: args.invocationId,
62
+ unitId: args.unit.unitId,
63
+ nodeId: args.nodeId,
64
+ modelSlot: args.unit.modelSlot,
65
+ plannedModelSelection: args.unit.modelSelection,
66
+ }, args.startedAt);
67
+ return;
171
68
  }
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
- };
69
+ local.recordModelInvocationStarted(trace, args);
178
70
  }
179
71
  export function recordModelInvocationCompleted(trace, invocationId, outcome) {
180
- const ts = outcome.completedAt ?? new Date().toISOString();
181
- const existing = trace.modelInvocations[invocationId];
182
- if (!existing)
72
+ if (hasUpstream) {
73
+ GTF.recordModelInvocationCompleted(trace, invocationId, {
74
+ durationMs: outcome.durationMs,
75
+ usage: outcome.usage,
76
+ cost: outcome.cost ? { costUsd: outcome.cost.costUsd } : undefined,
77
+ resolvedModel: outcome.resolvedInvocation?.modelId,
78
+ resolvedInvocation: outcome.resolvedInvocation,
79
+ previews: {
80
+ ...(outcome.promptPreview !== undefined ? { input: outcome.promptPreview } : {}),
81
+ ...(outcome.completionPreview !== undefined ? { output: outcome.completionPreview } : {}),
82
+ },
83
+ });
183
84
  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
85
  }
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
- });
86
+ local.recordModelInvocationCompleted(trace, invocationId, outcome);
219
87
  }
220
88
  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,
89
+ if (hasUpstream) {
90
+ const normalized = normalizeError(error);
91
+ GTF.recordModelInvocationFailed(trace, invocationId, {
92
+ message: outcome?.errorMessage ?? normalized.message,
93
+ code: normalized.code ?? "MODEL_INVOCATION_FAILED",
309
94
  });
95
+ return;
310
96
  }
97
+ local.recordModelInvocationFailed(trace, invocationId, error, outcome);
98
+ }
99
+ export const appendFallbackAppliedEvent = local.appendFallbackAppliedEvent;
100
+ export const rollupNodeExecution = local.rollupNodeExecution;
101
+ /** True when GTF-FR-001 lifecycle helpers are exported from graphenix-trace-format. */
102
+ export function usesUpstreamTraceLifecycle() {
103
+ return hasUpstream;
311
104
  }
312
105
  //# sourceMappingURL=traceLifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traceLifecycle.js","sourceRoot":"","sources":["../../src/node-execution/traceLifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traceLifecycle.js","sourceRoot":"","sources":["../../src/node-execution/traceLifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { CostTrace, ExecutionUnitPlanV2, GraphExecutionTraceV2, ResolvedInvocationTrace } from "@x12i/graphenix-executable-contracts";
2
+ export type UnitCompletionOutcome = {
3
+ completedAt?: string;
4
+ durationMs: number;
5
+ modelInvocationIds?: string[];
6
+ };
7
+ export type UnitFailureOutcome = {
8
+ completedAt?: string;
9
+ durationMs: number;
10
+ errorMessage?: string;
11
+ };
12
+ export type ModelInvocationStartArgs = {
13
+ invocationId: string;
14
+ unit: ExecutionUnitPlanV2;
15
+ nodeId: string;
16
+ startedAt?: string;
17
+ attempt?: number;
18
+ };
19
+ export type ModelInvocationOutcome = {
20
+ completedAt?: string;
21
+ durationMs: number;
22
+ usage?: {
23
+ inputTokens?: number;
24
+ outputTokens?: number;
25
+ totalTokens?: number;
26
+ cachedInputTokens?: number;
27
+ };
28
+ cost?: CostTrace;
29
+ resolvedInvocation?: ResolvedInvocationTrace;
30
+ promptPreview?: string;
31
+ completionPreview?: string;
32
+ errorMessage?: string;
33
+ };
34
+ export declare function markUnitStarted(trace: GraphExecutionTraceV2, unit: ExecutionUnitPlanV2, at?: string): void;
35
+ export declare function markUnitCompleted(trace: GraphExecutionTraceV2, unitId: string, outcome: UnitCompletionOutcome, unit?: ExecutionUnitPlanV2): void;
36
+ export declare function markUnitFailed(trace: GraphExecutionTraceV2, unitId: string, error: unknown, outcome?: UnitFailureOutcome, unit?: ExecutionUnitPlanV2): void;
37
+ export declare function recordModelInvocationStarted(trace: GraphExecutionTraceV2, args: ModelInvocationStartArgs): void;
38
+ export declare function recordModelInvocationCompleted(trace: GraphExecutionTraceV2, invocationId: string, outcome: ModelInvocationOutcome): void;
39
+ export declare function recordModelInvocationFailed(trace: GraphExecutionTraceV2, invocationId: string, error: unknown, outcome?: ModelInvocationOutcome): void;
40
+ export declare function appendFallbackAppliedEvent(trace: GraphExecutionTraceV2, unit: ExecutionUnitPlanV2, extra?: Record<string, unknown>): void;
41
+ export declare function rollupNodeExecution(trace: GraphExecutionTraceV2, nodeId: string): void;
42
+ //# sourceMappingURL=traceLifecycleLocal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traceLifecycleLocal.d.ts","sourceRoot":"","sources":["../../src/node-execution/traceLifecycleLocal.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EAErB,uBAAuB,EAExB,MAAM,sCAAsC,CAAC;AAyC9C,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,mBAAmB,EACzB,EAAE,CAAC,EAAE,MAAM,GACV,IAAI,CAgCN;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,EAC9B,IAAI,CAAC,EAAE,mBAAmB,GACzB,IAAI,CA8BN;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,kBAAkB,EAC5B,IAAI,CAAC,EAAE,mBAAmB,GACzB,IAAI,CAgCN;AAiBD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,wBAAwB,GAC7B,IAAI,CA2BN;AAmBD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,sBAAsB,GAC9B,IAAI,CA0CN;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,IAAI,CA2BN;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAcN;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAuDtF"}