@uselemma/tracing 2.9.0 → 2.11.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.
- package/dist/debug-mode.d.ts +5 -0
- package/dist/debug-mode.d.ts.map +1 -0
- package/dist/debug-mode.js +27 -0
- package/dist/debug-mode.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/run-batch-span-processor.d.ts.map +1 -1
- package/dist/run-batch-span-processor.js +9 -0
- package/dist/run-batch-span-processor.js.map +1 -1
- package/dist/trace-wrapper.d.ts +3 -0
- package/dist/trace-wrapper.d.ts.map +1 -1
- package/dist/trace-wrapper.js +13 -1
- package/dist/trace-wrapper.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function enableDebugMode(): void;
|
|
2
|
+
export declare function disableDebugMode(): void;
|
|
3
|
+
export declare function isDebugModeEnabled(): boolean;
|
|
4
|
+
export declare function lemmaDebug(prefix: string, msg: string, data?: Record<string, unknown>): void;
|
|
5
|
+
//# sourceMappingURL=debug-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-mode.d.ts","sourceRoot":"","sources":["../src/debug-mode.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAO5F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enableDebugMode = enableDebugMode;
|
|
4
|
+
exports.disableDebugMode = disableDebugMode;
|
|
5
|
+
exports.isDebugModeEnabled = isDebugModeEnabled;
|
|
6
|
+
exports.lemmaDebug = lemmaDebug;
|
|
7
|
+
let debugModeEnabled = false;
|
|
8
|
+
function enableDebugMode() {
|
|
9
|
+
debugModeEnabled = true;
|
|
10
|
+
}
|
|
11
|
+
function disableDebugMode() {
|
|
12
|
+
debugModeEnabled = false;
|
|
13
|
+
}
|
|
14
|
+
function isDebugModeEnabled() {
|
|
15
|
+
return debugModeEnabled || process.env["LEMMA_DEBUG"] === "true";
|
|
16
|
+
}
|
|
17
|
+
function lemmaDebug(prefix, msg, data) {
|
|
18
|
+
if (!isDebugModeEnabled())
|
|
19
|
+
return;
|
|
20
|
+
if (data !== undefined) {
|
|
21
|
+
console.log(`[LEMMA:${prefix}] ${msg}`, data);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log(`[LEMMA:${prefix}] ${msg}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=debug-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-mode.js","sourceRoot":"","sources":["../src/debug-mode.ts"],"names":[],"mappings":";;AAEA,0CAEC;AAED,4CAEC;AAED,gDAEC;AAED,gCAOC;AArBD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,SAAgB,eAAe;IAC7B,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED,SAAgB,gBAAgB;IAC9B,gBAAgB,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC;AACnE,CAAC;AAED,SAAgB,UAAU,CAAC,MAAc,EAAE,GAAW,EAAE,IAA8B;IACpF,IAAI,CAAC,kBAAkB,EAAE;QAAE,OAAO;IAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { registerOTel, createLemmaSpanProcessor, type LemmaOTelOptions, type RegisterOTelOptions, type CreateLemmaSpanProcessorOptions, } from "./register";
|
|
2
2
|
export { enableExperimentMode, disableExperimentMode, isExperimentModeEnabled, } from "./experiment-mode";
|
|
3
|
+
export { enableDebugMode, disableDebugMode, isDebugModeEnabled, } from "./debug-mode";
|
|
3
4
|
export { wrapAgent, type TraceContext, type WrapAgentOptions } from "./trace-wrapper";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACrC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACrC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wrapAgent = exports.isExperimentModeEnabled = exports.disableExperimentMode = exports.enableExperimentMode = exports.createLemmaSpanProcessor = exports.registerOTel = void 0;
|
|
3
|
+
exports.wrapAgent = exports.isDebugModeEnabled = exports.disableDebugMode = exports.enableDebugMode = exports.isExperimentModeEnabled = exports.disableExperimentMode = exports.enableExperimentMode = exports.createLemmaSpanProcessor = exports.registerOTel = void 0;
|
|
4
4
|
var register_1 = require("./register");
|
|
5
5
|
Object.defineProperty(exports, "registerOTel", { enumerable: true, get: function () { return register_1.registerOTel; } });
|
|
6
6
|
Object.defineProperty(exports, "createLemmaSpanProcessor", { enumerable: true, get: function () { return register_1.createLemmaSpanProcessor; } });
|
|
@@ -8,6 +8,10 @@ var experiment_mode_1 = require("./experiment-mode");
|
|
|
8
8
|
Object.defineProperty(exports, "enableExperimentMode", { enumerable: true, get: function () { return experiment_mode_1.enableExperimentMode; } });
|
|
9
9
|
Object.defineProperty(exports, "disableExperimentMode", { enumerable: true, get: function () { return experiment_mode_1.disableExperimentMode; } });
|
|
10
10
|
Object.defineProperty(exports, "isExperimentModeEnabled", { enumerable: true, get: function () { return experiment_mode_1.isExperimentModeEnabled; } });
|
|
11
|
+
var debug_mode_1 = require("./debug-mode");
|
|
12
|
+
Object.defineProperty(exports, "enableDebugMode", { enumerable: true, get: function () { return debug_mode_1.enableDebugMode; } });
|
|
13
|
+
Object.defineProperty(exports, "disableDebugMode", { enumerable: true, get: function () { return debug_mode_1.disableDebugMode; } });
|
|
14
|
+
Object.defineProperty(exports, "isDebugModeEnabled", { enumerable: true, get: function () { return debug_mode_1.isDebugModeEnabled; } });
|
|
11
15
|
var trace_wrapper_1 = require("./trace-wrapper");
|
|
12
16
|
Object.defineProperty(exports, "wrapAgent", { enumerable: true, get: function () { return trace_wrapper_1.wrapAgent; } });
|
|
13
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AALlB,wGAAA,YAAY,OAAA;AACZ,oHAAA,wBAAwB,OAAA;AAK1B,qDAI2B;AAHzB,uHAAA,oBAAoB,OAAA;AACpB,wHAAA,qBAAqB,OAAA;AACrB,0HAAA,uBAAuB,OAAA;AAEzB,iDAAsF;AAA7E,0GAAA,SAAS,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AALlB,wGAAA,YAAY,OAAA;AACZ,oHAAA,wBAAwB,OAAA;AAK1B,qDAI2B;AAHzB,uHAAA,oBAAoB,OAAA;AACpB,wHAAA,qBAAqB,OAAA;AACrB,0HAAA,uBAAuB,OAAA;AAEzB,2CAIsB;AAHpB,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAChB,gHAAA,kBAAkB,OAAA;AAEpB,iDAAsF;AAA7E,0GAAA,SAAS,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-batch-span-processor.d.ts","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"run-batch-span-processor.d.ts","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAMvC,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,qBAAqB,CAA4B;IACzD,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,uBAAuB,CAA4B;IAC3D,OAAO,CAAC,wBAAwB,CAA4B;IAC5D,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;gBAE5B,QAAQ,EAAE,YAAY;IAIlC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IAiClD,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAqDzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,gBAAgB;YAIV,cAAc;IAmB5B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,eAAe;CAgBxB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RunBatchSpanProcessor = void 0;
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
|
+
const debug_mode_1 = require("./debug-mode");
|
|
5
6
|
class RunBatchSpanProcessor {
|
|
6
7
|
isShutdown = false;
|
|
7
8
|
spanIdToRunId = new Map();
|
|
@@ -28,6 +29,7 @@ class RunBatchSpanProcessor {
|
|
|
28
29
|
this.autoEndEnabledRuns.add(runId);
|
|
29
30
|
}
|
|
30
31
|
this.directChildCountByRunId.set(runId, 0);
|
|
32
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onStart: top-level run span", { spanId, runId, autoEnd: this.autoEndEnabledRuns.has(runId) });
|
|
31
33
|
return;
|
|
32
34
|
}
|
|
33
35
|
const parentSpanId = span.parentSpanContext?.spanId;
|
|
@@ -42,6 +44,7 @@ class RunBatchSpanProcessor {
|
|
|
42
44
|
}
|
|
43
45
|
this.spanIdToRunId.set(spanId, runId);
|
|
44
46
|
span.setAttribute("lemma.run_id", runId);
|
|
47
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onStart: child span", { spanName: span.name, spanId, runId });
|
|
45
48
|
}
|
|
46
49
|
onEnd(span) {
|
|
47
50
|
const spanId = span.spanContext().spanId;
|
|
@@ -60,15 +63,18 @@ class RunBatchSpanProcessor {
|
|
|
60
63
|
const currentCount = this.directChildCountByRunId.get(directChildRunId) ?? 0;
|
|
61
64
|
const nextCount = Math.max(0, currentCount - 1);
|
|
62
65
|
this.directChildCountByRunId.set(directChildRunId, nextCount);
|
|
66
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onEnd: direct child ended", { spanName: span.name, spanId, runId: directChildRunId, remainingChildren: nextCount });
|
|
63
67
|
if (nextCount === 0 &&
|
|
64
68
|
!this.endedRuns.has(directChildRunId) &&
|
|
65
69
|
this.autoEndEnabledRuns.has(directChildRunId)) {
|
|
66
70
|
topLevelSpanToAutoEnd = this.topLevelSpanByRunId.get(directChildRunId);
|
|
67
71
|
if (topLevelSpanToAutoEnd) {
|
|
68
72
|
this.topLevelSpanByRunId.delete(directChildRunId);
|
|
73
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onEnd: triggering auto-end of top-level span", { runId: directChildRunId });
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
76
|
}
|
|
77
|
+
(0, debug_mode_1.lemmaDebug)("processor", "onEnd: span ended", { spanName: span.name, spanId, runId, isTopLevelRun, skipped: shouldSkipExport });
|
|
72
78
|
if (!shouldSkipExport) {
|
|
73
79
|
const batch = this.batches.get(runId);
|
|
74
80
|
if (batch)
|
|
@@ -86,6 +92,7 @@ class RunBatchSpanProcessor {
|
|
|
86
92
|
void this.exportRunBatch(runId, false);
|
|
87
93
|
}
|
|
88
94
|
async forceFlush() {
|
|
95
|
+
(0, debug_mode_1.lemmaDebug)("processor", "forceFlush called");
|
|
89
96
|
const runIds = [...this.batches.keys()];
|
|
90
97
|
await Promise.all(runIds.map((runId) => this.exportRunBatch(runId, true)));
|
|
91
98
|
if (this.exporter.forceFlush) {
|
|
@@ -95,6 +102,7 @@ class RunBatchSpanProcessor {
|
|
|
95
102
|
async shutdown() {
|
|
96
103
|
if (this.isShutdown)
|
|
97
104
|
return;
|
|
105
|
+
(0, debug_mode_1.lemmaDebug)("processor", "shutdown called");
|
|
98
106
|
this.isShutdown = true;
|
|
99
107
|
await this.forceFlush();
|
|
100
108
|
this.exporter.shutdown();
|
|
@@ -129,6 +137,7 @@ class RunBatchSpanProcessor {
|
|
|
129
137
|
this.clearRunMapping(runId);
|
|
130
138
|
if (!batch || batch.length === 0)
|
|
131
139
|
return;
|
|
140
|
+
(0, debug_mode_1.lemmaDebug)("processor", "exporting batch", { runId, spanCount: batch.length, force });
|
|
132
141
|
await new Promise((resolve) => {
|
|
133
142
|
this.exporter.export(batch, () => resolve());
|
|
134
143
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-batch-span-processor.js","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;
|
|
1
|
+
{"version":3,"file":"run-batch-span-processor.js","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":"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"}
|
package/dist/trace-wrapper.d.ts
CHANGED
|
@@ -30,6 +30,9 @@ export type WrapAgentOptions = {
|
|
|
30
30
|
* The returned function creates a new root span on every invocation, attaches
|
|
31
31
|
* agent metadata (name, run ID, experiment flag), and handles error recording.
|
|
32
32
|
*
|
|
33
|
+
* `ai.agent.input` and `ai.agent.output` are set as JSON strings for Lemma
|
|
34
|
+
* ingestion and UI.
|
|
35
|
+
*
|
|
33
36
|
* @example
|
|
34
37
|
* const myAgent = wrapAgent<{ topic: string }>(
|
|
35
38
|
* 'my-agent',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-wrapper.d.ts","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"trace-wrapper.d.ts","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAKxE,MAAM,MAAM,YAAY,GAAG;IACzB,wDAAwD;IACxD,IAAI,EAAE,IAAI,CAAC;IACX,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACzC,8DAA8D;IAC9D,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,KAAK,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,UAC/F,GAAG,SAAS,KAAK;;;;GAsEhE"}
|
package/dist/trace-wrapper.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.wrapAgent = wrapAgent;
|
|
4
4
|
const api_1 = require("@opentelemetry/api");
|
|
5
5
|
const uuid_1 = require("uuid");
|
|
6
|
+
const debug_mode_1 = require("./debug-mode");
|
|
6
7
|
const experiment_mode_1 = require("./experiment-mode");
|
|
7
8
|
/**
|
|
8
9
|
* Wraps an agent function with OpenTelemetry tracing, automatically creating
|
|
@@ -11,6 +12,9 @@ const experiment_mode_1 = require("./experiment-mode");
|
|
|
11
12
|
* The returned function creates a new root span on every invocation, attaches
|
|
12
13
|
* agent metadata (name, run ID, experiment flag), and handles error recording.
|
|
13
14
|
*
|
|
15
|
+
* `ai.agent.input` and `ai.agent.output` are set as JSON strings for Lemma
|
|
16
|
+
* ingestion and UI.
|
|
17
|
+
*
|
|
14
18
|
* @example
|
|
15
19
|
* const myAgent = wrapAgent<{ topic: string }>(
|
|
16
20
|
* 'my-agent',
|
|
@@ -43,17 +47,22 @@ function wrapAgent(agentName, fn, options) {
|
|
|
43
47
|
"lemma.auto_end_root": autoEndRoot,
|
|
44
48
|
},
|
|
45
49
|
}, api_1.ROOT_CONTEXT);
|
|
50
|
+
span.setAttribute("ai.agent.input", JSON.stringify(input) ?? "null");
|
|
51
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span started", { agentName, runId, autoEndRoot });
|
|
46
52
|
// Propagate the span as the active context so child spans are nested correctly
|
|
47
53
|
const ctx = api_1.trace.setSpan(api_1.ROOT_CONTEXT, span);
|
|
48
54
|
let rootEnded = false;
|
|
49
55
|
try {
|
|
50
56
|
return await api_1.context.with(ctx, async () => {
|
|
51
|
-
const onComplete = (
|
|
57
|
+
const onComplete = (resultFromComplete) => {
|
|
52
58
|
if (!autoEndRoot && !rootEnded) {
|
|
59
|
+
span.setAttribute("ai.agent.output", JSON.stringify(resultFromComplete) ?? "null");
|
|
53
60
|
rootEnded = true;
|
|
54
61
|
span.end();
|
|
62
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span ended via onComplete", { runId });
|
|
55
63
|
return true;
|
|
56
64
|
}
|
|
65
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "onComplete called but span not ended (autoEndRoot active or already ended)", { runId });
|
|
57
66
|
return false;
|
|
58
67
|
};
|
|
59
68
|
const recordError = (error) => {
|
|
@@ -63,8 +72,10 @@ function wrapAgent(agentName, fn, options) {
|
|
|
63
72
|
const result = await fn.call(this, { span, runId, onComplete, recordError }, input);
|
|
64
73
|
// Auto-end the span if autoEndRoot is enabled and onComplete hasn't ended it yet
|
|
65
74
|
if (autoEndRoot && !rootEnded) {
|
|
75
|
+
span.setAttribute("ai.agent.output", JSON.stringify(result) ?? "null");
|
|
66
76
|
rootEnded = true;
|
|
67
77
|
span.end();
|
|
78
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span auto-ended after fn returned", { runId });
|
|
68
79
|
}
|
|
69
80
|
return { result, runId, span };
|
|
70
81
|
});
|
|
@@ -76,6 +87,7 @@ function wrapAgent(agentName, fn, options) {
|
|
|
76
87
|
if (!rootEnded) {
|
|
77
88
|
rootEnded = true;
|
|
78
89
|
span.end();
|
|
90
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span ended on error", { runId, error: String(err) });
|
|
79
91
|
}
|
|
80
92
|
throw err;
|
|
81
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-wrapper.js","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"trace-wrapper.js","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":"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"}
|