@runflow-ai/sdk 1.0.75 → 1.0.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/observability/logging.d.ts.map +1 -1
- package/dist/observability/logging.js +25 -25
- package/dist/observability/logging.js.map +1 -1
- package/dist/observability/trace-collector.d.ts +2 -2
- package/dist/observability/trace-collector.d.ts.map +1 -1
- package/dist/observability/trace-collector.js +86 -72
- package/dist/observability/trace-collector.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/observability/logging.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/observability/logging.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAiED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAmElD;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAE1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAsClE"}
|
|
@@ -22,21 +22,21 @@ function getTraceCollector() {
|
|
|
22
22
|
}
|
|
23
23
|
// Se não existe, tentar inicializar automaticamente
|
|
24
24
|
try {
|
|
25
|
-
const { createTraceCollector } = require(
|
|
26
|
-
const { createRunflowAPIClient } = require(
|
|
25
|
+
const { createTraceCollector } = require("./trace-collector");
|
|
26
|
+
const { createRunflowAPIClient } = require("../core/api-client");
|
|
27
27
|
const apiClient = createRunflowAPIClient();
|
|
28
|
-
const projectId = process.env.RUNFLOW_AGENT_ID ||
|
|
28
|
+
const projectId = process.env.RUNFLOW_AGENT_ID || "default-agent";
|
|
29
29
|
const collector = createTraceCollector(apiClient, projectId, {
|
|
30
|
-
batchSize:
|
|
31
|
-
flushInterval:
|
|
30
|
+
batchSize: 50, // Accumulate traces during execution, flush at the end
|
|
31
|
+
flushInterval: 5000, // Fallback timer (will be overridden by manual flush in wrapper)
|
|
32
32
|
});
|
|
33
33
|
// Salvar no global
|
|
34
34
|
global.__runflowTraceCollector = collector;
|
|
35
|
-
console.log(
|
|
35
|
+
console.log("✅ [SDK] TraceCollector auto-initialized for logging");
|
|
36
36
|
return collector;
|
|
37
37
|
}
|
|
38
38
|
catch (error) {
|
|
39
|
-
console.warn(
|
|
39
|
+
console.warn("⚠️ [SDK] Failed to auto-initialize TraceCollector. Logs will not be tracked.");
|
|
40
40
|
return undefined;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -54,8 +54,8 @@ function scheduleAutoFlush() {
|
|
|
54
54
|
}
|
|
55
55
|
// Schedule flush after 5s of inactivity
|
|
56
56
|
autoFlushTimer = setTimeout(() => {
|
|
57
|
-
traceCollector.flush().catch(err => {
|
|
58
|
-
console.error(
|
|
57
|
+
traceCollector.flush().catch((err) => {
|
|
58
|
+
console.error("Auto-flush failed:", err);
|
|
59
59
|
});
|
|
60
60
|
}, 5000);
|
|
61
61
|
}
|
|
@@ -80,7 +80,7 @@ function log(name, data) {
|
|
|
80
80
|
const state = context_1.Runflow.getState();
|
|
81
81
|
const traceCollector = getTraceCollector();
|
|
82
82
|
if (!traceCollector) {
|
|
83
|
-
console.warn(
|
|
83
|
+
console.warn("⚠️ TraceCollector not available, log will not be tracked");
|
|
84
84
|
return;
|
|
85
85
|
}
|
|
86
86
|
const executionId = state.executionId || generateExecutionId();
|
|
@@ -88,14 +88,14 @@ function log(name, data) {
|
|
|
88
88
|
// Permite que logs dentro de tools/LLMs sejam hierárquicos
|
|
89
89
|
const parentTraceId = global.__runflow_current_span_id;
|
|
90
90
|
// Debug: Log quando parent trace é encontrado (útil para troubleshooting)
|
|
91
|
-
if (process.env.RUNFLOW_DEBUG_LOGS ===
|
|
91
|
+
if (process.env.RUNFLOW_DEBUG_LOGS === "true" && parentTraceId) {
|
|
92
92
|
console.log(`[Runflow] Custom log "${name}" will be child of ${parentTraceId}`);
|
|
93
93
|
}
|
|
94
|
-
const span = traceCollector.startSpan(
|
|
94
|
+
const span = traceCollector.startSpan("custom_event", {
|
|
95
95
|
executionId,
|
|
96
96
|
operation: name,
|
|
97
97
|
custom: {
|
|
98
|
-
customLog: true
|
|
98
|
+
customLog: true,
|
|
99
99
|
},
|
|
100
100
|
// ✅ Passar campos do state como fallback
|
|
101
101
|
// Se TraceCollector tiver context setado via setContext(), ele sobrescreve
|
|
@@ -105,9 +105,8 @@ function log(name, data) {
|
|
|
105
105
|
sessionId: state.sessionId,
|
|
106
106
|
entityType: state.entityType,
|
|
107
107
|
entityValue: state.entityValue,
|
|
108
|
-
}, parentTraceId
|
|
109
|
-
)
|
|
110
|
-
if (typeof data === 'object' && data !== null) {
|
|
108
|
+
}, parentTraceId);
|
|
109
|
+
if (typeof data === "object" && data !== null) {
|
|
111
110
|
if (data.input !== undefined) {
|
|
112
111
|
span?.setInput(data.input);
|
|
113
112
|
}
|
|
@@ -118,7 +117,9 @@ function log(name, data) {
|
|
|
118
117
|
span?.setMetadata(data.metadata);
|
|
119
118
|
}
|
|
120
119
|
// If none of the special fields, treat whole object as output
|
|
121
|
-
if (data.input === undefined &&
|
|
120
|
+
if (data.input === undefined &&
|
|
121
|
+
data.output === undefined &&
|
|
122
|
+
data.metadata === undefined) {
|
|
122
123
|
span?.setOutput(data);
|
|
123
124
|
}
|
|
124
125
|
}
|
|
@@ -126,7 +127,7 @@ function log(name, data) {
|
|
|
126
127
|
span?.setOutput(data);
|
|
127
128
|
}
|
|
128
129
|
span?.finish();
|
|
129
|
-
|
|
130
|
+
// Traces are batched and will be flushed at the end of execution
|
|
130
131
|
}
|
|
131
132
|
/**
|
|
132
133
|
* Log an event with structured input/output
|
|
@@ -156,19 +157,19 @@ function logError(name, error) {
|
|
|
156
157
|
const state = context_1.Runflow.getState();
|
|
157
158
|
const traceCollector = getTraceCollector();
|
|
158
159
|
if (!traceCollector) {
|
|
159
|
-
console.warn(
|
|
160
|
+
console.warn("⚠️ TraceCollector not available, error will not be tracked");
|
|
160
161
|
return;
|
|
161
162
|
}
|
|
162
163
|
const executionId = state.executionId || generateExecutionId();
|
|
163
164
|
// ✅ Capturar parent span do contexto global (se existe)
|
|
164
165
|
const parentTraceId = global.__runflow_current_span_id;
|
|
165
|
-
const span = traceCollector.startSpan(
|
|
166
|
+
const span = traceCollector.startSpan("error_event", {
|
|
166
167
|
executionId,
|
|
167
168
|
operation: name,
|
|
168
169
|
custom: {
|
|
169
170
|
customError: true,
|
|
170
|
-
errorType: error instanceof Error ? error.name :
|
|
171
|
-
errorMessage: error instanceof Error ? error.message : String(error)
|
|
171
|
+
errorType: error instanceof Error ? error.name : "Error",
|
|
172
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
172
173
|
},
|
|
173
174
|
// ✅ Passar campos do state como fallback
|
|
174
175
|
threadId: state.threadId,
|
|
@@ -176,10 +177,9 @@ function logError(name, error) {
|
|
|
176
177
|
sessionId: state.sessionId,
|
|
177
178
|
entityType: state.entityType,
|
|
178
179
|
entityValue: state.entityValue,
|
|
179
|
-
}, parentTraceId
|
|
180
|
-
);
|
|
180
|
+
}, parentTraceId);
|
|
181
181
|
span?.setError(error);
|
|
182
182
|
span?.finish();
|
|
183
|
-
|
|
183
|
+
// Traces are batched and will be flushed at the end of execution
|
|
184
184
|
}
|
|
185
185
|
//# sourceMappingURL=logging.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/observability/logging.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/observability/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TraceCollector, TraceSpan, TraceData, TraceMetadata, TraceCosts, TraceCollectorOptions, RunflowAPIClient } from
|
|
1
|
+
import { TraceCollector, TraceSpan, TraceData, TraceMetadata, TraceCosts, TraceCollectorOptions, RunflowAPIClient } from "../types";
|
|
2
2
|
export declare class RunflowTraceCollector implements TraceCollector {
|
|
3
3
|
private apiClient;
|
|
4
4
|
private projectId;
|
|
@@ -10,7 +10,7 @@ export declare class RunflowTraceCollector implements TraceCollector {
|
|
|
10
10
|
private onTraceCallback?;
|
|
11
11
|
private context;
|
|
12
12
|
constructor(apiClient: RunflowAPIClient, projectId: string, options?: TraceCollectorOptions, onTraceCallback?: (trace: TraceData) => TraceData | null | void);
|
|
13
|
-
trace(data: Omit<TraceData,
|
|
13
|
+
trace(data: Omit<TraceData, "traceId" | "startTime" | "endTime" | "duration">): string;
|
|
14
14
|
/**
|
|
15
15
|
* Set execution context (called by Agent.process)
|
|
16
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-collector.d.ts","sourceRoot":"","sources":["../../src/observability/trace-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAQlB,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,eAAe,CAAC,CAAgD;IACxE,OAAO,CAAC,OAAO,CAMR;gBAGL,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,EACnC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI;IAqBjE,KAAK,
|
|
1
|
+
{"version":3,"file":"trace-collector.d.ts","sourceRoot":"","sources":["../../src/observability/trace-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,8 +65,9 @@ class RunflowTraceCollector {
|
|
|
65
65
|
// Collect trace
|
|
66
66
|
trace(data) {
|
|
67
67
|
// Sampling
|
|
68
|
-
if (this.options.enableSampling &&
|
|
69
|
-
|
|
68
|
+
if (this.options.enableSampling &&
|
|
69
|
+
Math.random() > this.options.samplingRate) {
|
|
70
|
+
return "sampled_out";
|
|
70
71
|
}
|
|
71
72
|
const traceId = this.generateTraceId();
|
|
72
73
|
const now = new Date();
|
|
@@ -100,8 +101,7 @@ class RunflowTraceCollector {
|
|
|
100
101
|
...metadata,
|
|
101
102
|
...this.context, // Inject context automatically
|
|
102
103
|
sequenceNumber, // Adicionar número de sequência
|
|
103
|
-
}, (traceData) => this.addTrace(traceData), parentTraceId
|
|
104
|
-
);
|
|
104
|
+
}, (traceData) => this.addTrace(traceData), parentTraceId);
|
|
105
105
|
}
|
|
106
106
|
// Batch send
|
|
107
107
|
async flush() {
|
|
@@ -114,9 +114,10 @@ class RunflowTraceCollector {
|
|
|
114
114
|
await this.sendTraces(tracesToSend);
|
|
115
115
|
}
|
|
116
116
|
catch (error) {
|
|
117
|
-
console.error(
|
|
117
|
+
console.error("[TraceCollector] ❌ Failed to send traces:", error);
|
|
118
118
|
// Re-add traces for retry (with limit)
|
|
119
|
-
if (tracesToSend.length < 100) {
|
|
119
|
+
if (tracesToSend.length < 100) {
|
|
120
|
+
// Prevent memory leak
|
|
120
121
|
this.pendingTraces.unshift(...tracesToSend);
|
|
121
122
|
}
|
|
122
123
|
}
|
|
@@ -141,19 +142,22 @@ class RunflowTraceCollector {
|
|
|
141
142
|
return;
|
|
142
143
|
}
|
|
143
144
|
// If returned modified trace, use it
|
|
144
|
-
if (result && typeof result ===
|
|
145
|
+
if (result && typeof result === "object") {
|
|
145
146
|
trace = result;
|
|
146
147
|
}
|
|
147
148
|
// If returned void/undefined, continue with original
|
|
148
149
|
}
|
|
149
150
|
catch (error) {
|
|
150
|
-
console.error(
|
|
151
|
+
console.error("[TraceCollector] onTrace callback failed:", error);
|
|
151
152
|
// Continue with original trace on error
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
this.pendingTraces.push(trace);
|
|
155
156
|
if (this.pendingTraces.length >= this.options.batchSize) {
|
|
156
|
-
|
|
157
|
+
// Auto-flush when batch is full
|
|
158
|
+
this.flush().catch((err) => {
|
|
159
|
+
console.error("[TraceCollector] Auto-flush on batchSize failed:", err);
|
|
160
|
+
});
|
|
157
161
|
}
|
|
158
162
|
}
|
|
159
163
|
async sendTraces(traces) {
|
|
@@ -178,16 +182,16 @@ class RunflowTraceCollector {
|
|
|
178
182
|
* Check if traces should be saved locally (development mode)
|
|
179
183
|
*/
|
|
180
184
|
shouldSaveLocally() {
|
|
181
|
-
return process.env.RUNFLOW_LOCAL_TRACES ===
|
|
182
|
-
|
|
185
|
+
return (process.env.RUNFLOW_LOCAL_TRACES === "true" ||
|
|
186
|
+
process.env.RUNFLOW_ENV === "development");
|
|
183
187
|
}
|
|
184
188
|
/**
|
|
185
189
|
* Save traces to local file for development
|
|
186
190
|
*/
|
|
187
191
|
async saveTracesToFile(traces) {
|
|
188
192
|
try {
|
|
189
|
-
const runflowDir = path.join(process.cwd(),
|
|
190
|
-
const tracesFile = path.join(runflowDir,
|
|
193
|
+
const runflowDir = path.join(process.cwd(), ".runflow");
|
|
194
|
+
const tracesFile = path.join(runflowDir, "traces.json");
|
|
191
195
|
// Ensure .runflow directory exists
|
|
192
196
|
if (!fs.existsSync(runflowDir)) {
|
|
193
197
|
fs.mkdirSync(runflowDir, { recursive: true });
|
|
@@ -196,29 +200,33 @@ class RunflowTraceCollector {
|
|
|
196
200
|
let existingData = { executions: {}, traces: [] };
|
|
197
201
|
if (fs.existsSync(tracesFile)) {
|
|
198
202
|
try {
|
|
199
|
-
const fileContent = fs.readFileSync(tracesFile,
|
|
203
|
+
const fileContent = fs.readFileSync(tracesFile, "utf-8");
|
|
200
204
|
// Handle empty file
|
|
201
|
-
if (!fileContent || fileContent.trim() ===
|
|
202
|
-
console.warn(
|
|
205
|
+
if (!fileContent || fileContent.trim() === "") {
|
|
206
|
+
console.warn("⚠️ [LOCAL TRACES] Empty traces file, initializing new structure");
|
|
203
207
|
}
|
|
204
208
|
else {
|
|
205
209
|
const parsed = JSON.parse(fileContent);
|
|
206
210
|
// Validate structure and merge with defaults
|
|
207
211
|
existingData = {
|
|
208
|
-
executions:
|
|
212
|
+
executions: parsed.executions &&
|
|
213
|
+
typeof parsed.executions === "object" &&
|
|
214
|
+
!Array.isArray(parsed.executions)
|
|
209
215
|
? parsed.executions
|
|
210
216
|
: {},
|
|
211
|
-
traces: Array.isArray(parsed.traces) ? parsed.traces : []
|
|
217
|
+
traces: Array.isArray(parsed.traces) ? parsed.traces : [],
|
|
212
218
|
};
|
|
213
219
|
}
|
|
214
220
|
}
|
|
215
221
|
catch (error) {
|
|
216
|
-
console.warn(
|
|
222
|
+
console.warn("⚠️ [LOCAL TRACES] Failed to read existing traces, creating new file:", error instanceof Error ? error.message : "unknown error");
|
|
217
223
|
// existingData already has default structure
|
|
218
224
|
}
|
|
219
225
|
}
|
|
220
226
|
// Ensure executions is always a valid object
|
|
221
|
-
if (!existingData.executions ||
|
|
227
|
+
if (!existingData.executions ||
|
|
228
|
+
typeof existingData.executions !== "object" ||
|
|
229
|
+
Array.isArray(existingData.executions)) {
|
|
222
230
|
existingData.executions = {};
|
|
223
231
|
}
|
|
224
232
|
// Ensure traces is always a valid array
|
|
@@ -226,19 +234,20 @@ class RunflowTraceCollector {
|
|
|
226
234
|
existingData.traces = [];
|
|
227
235
|
}
|
|
228
236
|
// Group traces by executionId
|
|
229
|
-
traces.forEach(trace => {
|
|
230
|
-
const execId = trace.metadata?.executionId ||
|
|
237
|
+
traces.forEach((trace) => {
|
|
238
|
+
const execId = trace.metadata?.executionId || "unknown";
|
|
231
239
|
// Create execution context if doesn't exist or is invalid
|
|
232
|
-
if (!existingData.executions[execId] ||
|
|
240
|
+
if (!existingData.executions[execId] ||
|
|
241
|
+
typeof existingData.executions[execId] !== "object") {
|
|
233
242
|
existingData.executions[execId] = {
|
|
234
243
|
executionId: execId,
|
|
235
|
-
threadId: trace.metadata?.threadId ||
|
|
244
|
+
threadId: trace.metadata?.threadId || "unknown",
|
|
236
245
|
entityType: trace.metadata?.entityType,
|
|
237
246
|
entityValue: trace.metadata?.entityValue,
|
|
238
247
|
userId: trace.metadata?.userId,
|
|
239
248
|
agentName: trace.metadata?.agentName,
|
|
240
249
|
startedAt: trace.startTime,
|
|
241
|
-
traces: []
|
|
250
|
+
traces: [],
|
|
242
251
|
};
|
|
243
252
|
}
|
|
244
253
|
// Add trace to execution (ensure traces array exists)
|
|
@@ -289,53 +298,53 @@ class RunflowTraceCollector {
|
|
|
289
298
|
return;
|
|
290
299
|
this.exitHandlersRegistered = true;
|
|
291
300
|
// Normal exit - synchronous flush only
|
|
292
|
-
process.on(
|
|
301
|
+
process.on("exit", () => {
|
|
293
302
|
if (this.pendingTraces.length > 0) {
|
|
294
303
|
console.log(`🔄 [TraceCollector] Process exiting with ${this.pendingTraces.length} pending traces, flushing...`);
|
|
295
304
|
this.flushSync();
|
|
296
305
|
}
|
|
297
306
|
});
|
|
298
307
|
// Uncaught exception - async flush then exit
|
|
299
|
-
process.on(
|
|
300
|
-
console.error(
|
|
308
|
+
process.on("uncaughtException", async (error) => {
|
|
309
|
+
console.error("❌ [TraceCollector] Uncaught exception detected, flushing traces...", error.message);
|
|
301
310
|
try {
|
|
302
311
|
await this.flush();
|
|
303
312
|
}
|
|
304
313
|
catch (flushError) {
|
|
305
|
-
console.error(
|
|
314
|
+
console.error("Failed to flush traces on uncaught exception:", flushError);
|
|
306
315
|
}
|
|
307
316
|
process.exit(1);
|
|
308
317
|
});
|
|
309
318
|
// Unhandled rejection - async flush then exit
|
|
310
|
-
process.on(
|
|
311
|
-
console.error(
|
|
319
|
+
process.on("unhandledRejection", async (reason) => {
|
|
320
|
+
console.error("❌ [TraceCollector] Unhandled rejection detected, flushing traces...", reason);
|
|
312
321
|
try {
|
|
313
322
|
await this.flush();
|
|
314
323
|
}
|
|
315
324
|
catch (flushError) {
|
|
316
|
-
console.error(
|
|
325
|
+
console.error("Failed to flush traces on unhandled rejection:", flushError);
|
|
317
326
|
}
|
|
318
327
|
process.exit(1);
|
|
319
328
|
});
|
|
320
329
|
// SIGTERM - graceful shutdown
|
|
321
|
-
process.on(
|
|
322
|
-
console.log(
|
|
330
|
+
process.on("SIGTERM", async () => {
|
|
331
|
+
console.log("🛑 [TraceCollector] SIGTERM received, flushing traces...");
|
|
323
332
|
try {
|
|
324
333
|
await this.flush();
|
|
325
334
|
}
|
|
326
335
|
catch (flushError) {
|
|
327
|
-
console.error(
|
|
336
|
+
console.error("Failed to flush traces on SIGTERM:", flushError);
|
|
328
337
|
}
|
|
329
338
|
process.exit(0);
|
|
330
339
|
});
|
|
331
340
|
// SIGINT - graceful shutdown (Ctrl+C)
|
|
332
|
-
process.on(
|
|
333
|
-
console.log(
|
|
341
|
+
process.on("SIGINT", async () => {
|
|
342
|
+
console.log("🛑 [TraceCollector] SIGINT received, flushing traces...");
|
|
334
343
|
try {
|
|
335
344
|
await this.flush();
|
|
336
345
|
}
|
|
337
346
|
catch (flushError) {
|
|
338
|
-
console.error(
|
|
347
|
+
console.error("Failed to flush traces on SIGINT:", flushError);
|
|
339
348
|
}
|
|
340
349
|
process.exit(0);
|
|
341
350
|
});
|
|
@@ -359,15 +368,15 @@ class RunflowTraceCollector {
|
|
|
359
368
|
}
|
|
360
369
|
}
|
|
361
370
|
catch (error) {
|
|
362
|
-
console.error(
|
|
371
|
+
console.error("Failed to flush traces on exit:", error);
|
|
363
372
|
}
|
|
364
373
|
}
|
|
365
374
|
/**
|
|
366
375
|
* Synchronous version of saveTracesToFile for exit handlers
|
|
367
376
|
*/
|
|
368
377
|
saveTracesToFileSync(traces) {
|
|
369
|
-
const runflowDir = path.join(process.cwd(),
|
|
370
|
-
const tracesFile = path.join(runflowDir,
|
|
378
|
+
const runflowDir = path.join(process.cwd(), ".runflow");
|
|
379
|
+
const tracesFile = path.join(runflowDir, "traces.json");
|
|
371
380
|
// Ensure .runflow directory exists
|
|
372
381
|
if (!fs.existsSync(runflowDir)) {
|
|
373
382
|
fs.mkdirSync(runflowDir, { recursive: true });
|
|
@@ -376,29 +385,33 @@ class RunflowTraceCollector {
|
|
|
376
385
|
let existingData = { executions: {}, traces: [] };
|
|
377
386
|
if (fs.existsSync(tracesFile)) {
|
|
378
387
|
try {
|
|
379
|
-
const fileContent = fs.readFileSync(tracesFile,
|
|
388
|
+
const fileContent = fs.readFileSync(tracesFile, "utf-8");
|
|
380
389
|
// Handle empty file
|
|
381
|
-
if (!fileContent || fileContent.trim() ===
|
|
382
|
-
console.warn(
|
|
390
|
+
if (!fileContent || fileContent.trim() === "") {
|
|
391
|
+
console.warn("⚠️ [LOCAL TRACES] Empty traces file, initializing new structure");
|
|
383
392
|
}
|
|
384
393
|
else {
|
|
385
394
|
const parsed = JSON.parse(fileContent);
|
|
386
395
|
// Validate structure and merge with defaults
|
|
387
396
|
existingData = {
|
|
388
|
-
executions:
|
|
397
|
+
executions: parsed.executions &&
|
|
398
|
+
typeof parsed.executions === "object" &&
|
|
399
|
+
!Array.isArray(parsed.executions)
|
|
389
400
|
? parsed.executions
|
|
390
401
|
: {},
|
|
391
|
-
traces: Array.isArray(parsed.traces) ? parsed.traces : []
|
|
402
|
+
traces: Array.isArray(parsed.traces) ? parsed.traces : [],
|
|
392
403
|
};
|
|
393
404
|
}
|
|
394
405
|
}
|
|
395
406
|
catch (error) {
|
|
396
|
-
console.warn(
|
|
407
|
+
console.warn("⚠️ [LOCAL TRACES] Failed to read existing traces, creating new file:", error instanceof Error ? error.message : "unknown error");
|
|
397
408
|
// existingData already has default structure
|
|
398
409
|
}
|
|
399
410
|
}
|
|
400
411
|
// Ensure executions is always a valid object
|
|
401
|
-
if (!existingData.executions ||
|
|
412
|
+
if (!existingData.executions ||
|
|
413
|
+
typeof existingData.executions !== "object" ||
|
|
414
|
+
Array.isArray(existingData.executions)) {
|
|
402
415
|
existingData.executions = {};
|
|
403
416
|
}
|
|
404
417
|
// Ensure traces is always a valid array
|
|
@@ -406,19 +419,20 @@ class RunflowTraceCollector {
|
|
|
406
419
|
existingData.traces = [];
|
|
407
420
|
}
|
|
408
421
|
// Group traces by executionId
|
|
409
|
-
traces.forEach(trace => {
|
|
410
|
-
const execId = trace.metadata?.executionId ||
|
|
422
|
+
traces.forEach((trace) => {
|
|
423
|
+
const execId = trace.metadata?.executionId || "unknown";
|
|
411
424
|
// Create execution context if doesn't exist or is invalid
|
|
412
|
-
if (!existingData.executions[execId] ||
|
|
425
|
+
if (!existingData.executions[execId] ||
|
|
426
|
+
typeof existingData.executions[execId] !== "object") {
|
|
413
427
|
existingData.executions[execId] = {
|
|
414
428
|
executionId: execId,
|
|
415
|
-
threadId: trace.metadata?.threadId ||
|
|
429
|
+
threadId: trace.metadata?.threadId || "unknown",
|
|
416
430
|
entityType: trace.metadata?.entityType,
|
|
417
431
|
entityValue: trace.metadata?.entityValue,
|
|
418
432
|
userId: trace.metadata?.userId,
|
|
419
433
|
agentName: trace.metadata?.agentName,
|
|
420
434
|
startedAt: trace.startTime,
|
|
421
|
-
traces: []
|
|
435
|
+
traces: [],
|
|
422
436
|
};
|
|
423
437
|
}
|
|
424
438
|
// Add trace to execution (ensure traces array exists)
|
|
@@ -430,7 +444,7 @@ class RunflowTraceCollector {
|
|
|
430
444
|
// Add to global traces array
|
|
431
445
|
existingData.traces.push(...traces);
|
|
432
446
|
// Write synchronously
|
|
433
|
-
fs.writeFileSync(tracesFile, JSON.stringify(existingData, null, 2),
|
|
447
|
+
fs.writeFileSync(tracesFile, JSON.stringify(existingData, null, 2), "utf-8");
|
|
434
448
|
}
|
|
435
449
|
}
|
|
436
450
|
exports.RunflowTraceCollector = RunflowTraceCollector;
|
|
@@ -480,7 +494,7 @@ class RunflowTraceSpan {
|
|
|
480
494
|
operation: this.operation,
|
|
481
495
|
input: this.input,
|
|
482
496
|
output: this.output,
|
|
483
|
-
status: this.error ?
|
|
497
|
+
status: this.error ? "error" : "success",
|
|
484
498
|
error: this.error,
|
|
485
499
|
startTime: this.startTime,
|
|
486
500
|
endTime,
|
|
@@ -492,23 +506,23 @@ class RunflowTraceSpan {
|
|
|
492
506
|
}
|
|
493
507
|
inferTraceType() {
|
|
494
508
|
// Inferir tipo baseado na operação
|
|
495
|
-
if (this.operation.startsWith(
|
|
496
|
-
return
|
|
497
|
-
if (this.operation.startsWith(
|
|
498
|
-
return
|
|
499
|
-
if (this.operation.startsWith(
|
|
500
|
-
return
|
|
501
|
-
if (this.operation.startsWith(
|
|
502
|
-
return
|
|
503
|
-
if (this.operation.startsWith(
|
|
504
|
-
return
|
|
505
|
-
if (this.operation.startsWith(
|
|
506
|
-
return
|
|
507
|
-
if (this.operation.startsWith(
|
|
508
|
-
return
|
|
509
|
-
if (this.operation.startsWith(
|
|
510
|
-
return
|
|
511
|
-
return
|
|
509
|
+
if (this.operation.startsWith("agent_"))
|
|
510
|
+
return "agent_execution";
|
|
511
|
+
if (this.operation.startsWith("workflow_"))
|
|
512
|
+
return "workflow_execution";
|
|
513
|
+
if (this.operation.startsWith("tool_"))
|
|
514
|
+
return "tool_call";
|
|
515
|
+
if (this.operation.startsWith("connector_"))
|
|
516
|
+
return "connector_call";
|
|
517
|
+
if (this.operation.startsWith("vector_"))
|
|
518
|
+
return "vector_search";
|
|
519
|
+
if (this.operation.startsWith("memory_"))
|
|
520
|
+
return "memory_operation";
|
|
521
|
+
if (this.operation.startsWith("llm_"))
|
|
522
|
+
return "llm_call";
|
|
523
|
+
if (this.operation.startsWith("stream_"))
|
|
524
|
+
return "streaming_session";
|
|
525
|
+
return "agent_execution"; // default
|
|
512
526
|
}
|
|
513
527
|
}
|
|
514
528
|
exports.RunflowTraceSpan = RunflowTraceSpan;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-collector.js","sourceRoot":"","sources":["../../src/observability/trace-collector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trace-collector.js","sourceRoot":"","sources":["../../src/observability/trace-collector.ts"],"names":[],"mappings":"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"}
|