@uselemma/tracing 2.15.0 → 2.16.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/trace-wrapper.d.ts
CHANGED
|
@@ -5,9 +5,10 @@ export type TraceContext = {
|
|
|
5
5
|
/** Unique identifier for this agent run. */
|
|
6
6
|
runId: string;
|
|
7
7
|
/**
|
|
8
|
-
* Record the run output. Sets `ai.agent.output` on
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Record the run output and end the agent span. Sets `ai.agent.output` on
|
|
9
|
+
* the span and calls `span.end()` immediately — the parent span does not
|
|
10
|
+
* stay open until the wrapped function returns. If omitted, the function's
|
|
11
|
+
* return value is captured when the wrapped function completes.
|
|
11
12
|
*/
|
|
12
13
|
onComplete: (result: unknown) => void;
|
|
13
14
|
/** Record an error on the span. Marks the span as errored. */
|
|
@@ -31,8 +32,10 @@ export type WrapRunOptions = {
|
|
|
31
32
|
* agent metadata (name, run ID, experiment flag), and handles error recording.
|
|
32
33
|
*
|
|
33
34
|
* `ai.agent.input` and `ai.agent.output` are set as JSON strings for Lemma
|
|
34
|
-
* ingestion and UI.
|
|
35
|
-
*
|
|
35
|
+
* ingestion and UI. When you call {@link TraceContext.onComplete}, the span
|
|
36
|
+
* ends immediately at that call — it does not wait for the wrapped function
|
|
37
|
+
* to return. If you never call `onComplete`, the span ends when the wrapped
|
|
38
|
+
* function returns or throws, and the return value is used as output.
|
|
36
39
|
*
|
|
37
40
|
* @example
|
|
38
41
|
* const myAgent = wrapAgent<{ topic: string }>(
|
|
@@ -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;AAKxE,MAAM,MAAM,YAAY,GAAG;IACzB,wDAAwD;IACxD,IAAI,EAAE,IAAI,CAAC;IACX,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd
|
|
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;;;;;OAKG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,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;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAkBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAG,OAAO,EACvC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,KAAK,GAAG,EACrD,OAAO,CAAC,EAAE,gBAAgB,UAGlB,GAAG,SACF,KAAK,eACC,cAAc;;;;GAqE9B"}
|
package/dist/trace-wrapper.js
CHANGED
|
@@ -26,8 +26,10 @@ function normalizeThreadId(threadId) {
|
|
|
26
26
|
* agent metadata (name, run ID, experiment flag), and handles error recording.
|
|
27
27
|
*
|
|
28
28
|
* `ai.agent.input` and `ai.agent.output` are set as JSON strings for Lemma
|
|
29
|
-
* ingestion and UI.
|
|
30
|
-
*
|
|
29
|
+
* ingestion and UI. When you call {@link TraceContext.onComplete}, the span
|
|
30
|
+
* ends immediately at that call — it does not wait for the wrapped function
|
|
31
|
+
* to return. If you never call `onComplete`, the span ends when the wrapped
|
|
32
|
+
* function returns or throws, and the return value is used as output.
|
|
31
33
|
*
|
|
32
34
|
* @example
|
|
33
35
|
* const myAgent = wrapAgent<{ topic: string }>(
|
|
@@ -69,8 +71,11 @@ function wrapAgent(agentName, fn, options) {
|
|
|
69
71
|
try {
|
|
70
72
|
return await api_1.context.with(ctx, async () => {
|
|
71
73
|
const onComplete = (result) => {
|
|
74
|
+
if (outputSet)
|
|
75
|
+
return;
|
|
72
76
|
span.setAttribute("ai.agent.output", JSON.stringify(result) ?? "null");
|
|
73
77
|
outputSet = true;
|
|
78
|
+
span.end();
|
|
74
79
|
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "onComplete called", { runId });
|
|
75
80
|
};
|
|
76
81
|
const recordError = (error) => {
|
|
@@ -80,9 +85,9 @@ function wrapAgent(agentName, fn, options) {
|
|
|
80
85
|
const result = await fn.call(this, { span, runId, onComplete, recordError }, input);
|
|
81
86
|
if (!outputSet) {
|
|
82
87
|
span.setAttribute("ai.agent.output", JSON.stringify(result) ?? "null");
|
|
88
|
+
span.end();
|
|
89
|
+
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span ended after fn returned (no onComplete)", { runId });
|
|
83
90
|
}
|
|
84
|
-
span.end();
|
|
85
|
-
(0, debug_mode_1.lemmaDebug)("trace-wrapper", "span ended after fn returned", { runId });
|
|
86
91
|
return { result, runId, span };
|
|
87
92
|
});
|
|
88
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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"}
|