@uselemma/tracing 0.3.0 → 0.5.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Tracing Module
1
+ # @uselemma/tracing
2
2
 
3
- OpenTelemetry-based tracing module for Lemma.
3
+ Utilities for OpenTelemetry-based tracing and prompt management.
4
4
 
5
5
  ## Installation
6
6
 
@@ -8,113 +8,119 @@ OpenTelemetry-based tracing module for Lemma.
8
8
  npm install @uselemma/tracing
9
9
  ```
10
10
 
11
- ## Usage
11
+ ## Components
12
12
 
13
- ### Basic Setup
13
+ ### MemorySpanExporter
14
+
15
+ A custom OpenTelemetry span exporter that stores spans in memory for programmatic access. Useful for testing, debugging, or capturing trace data for custom processing.
16
+
17
+ #### Usage
14
18
 
15
19
  ```typescript
16
- import { Tracer, TraceRunner, SpanType } from "@uselemma/tracing";
20
+ import { NodeSDK } from "@opentelemetry/sdk-node";
21
+ import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
22
+ import { MemorySpanExporter } from "@uselemma/tracing";
17
23
 
18
- // Create a tracer
19
- const tracer = new Tracer("my-service");
24
+ // Create and configure the exporter
25
+ const memoryExporter = new MemorySpanExporter();
20
26
 
21
- // Use TraceRunner for managing traces
22
- const traceRunner = new TraceRunner(tracer, {
23
- "prompt-name": "override template here",
27
+ const sdk = new NodeSDK({
28
+ spanProcessors: [new SimpleSpanProcessor(memoryExporter)],
24
29
  });
25
30
 
26
- // Run code within tracing context
27
- await traceRunner.run(async () => {
28
- // Your code here
29
- const renderedPrompt = await tracer.prompt(
30
- "prompt-name",
31
- "Hello {{ name }}!",
32
- { name: "World" }
33
- );
34
-
35
- // ... use renderedPrompt ...
36
-
37
- tracer.addLLMOutput("LLM response", "gpt-4", {
38
- prompt_tokens: 100,
39
- completion_tokens: 50,
40
- total_tokens: 150,
41
- });
42
- });
31
+ sdk.start();
32
+
33
+ // Later, retrieve spans
34
+ const allSpans = memoryExporter.getSpans();
35
+ const spansAsDicts = memoryExporter.getSpansAsDicts();
36
+ const traceSpans = memoryExporter.getSpansByTraceId("your-trace-id");
43
37
 
44
- // Get trace data
45
- const traceData = await traceRunner.record();
46
- console.log(traceData.trace_id);
47
- console.log(traceData.spans);
38
+ // Clear memory when needed
39
+ memoryExporter.clear();
48
40
  ```
49
41
 
50
- ### Function Tracing
42
+ #### Methods
51
43
 
52
- ```typescript
53
- // Wrap a function for tracing
54
- const tracedFunction = tracer.wrap(SpanType.TOOL, myFunction);
44
+ - **`getSpans(): ReadableSpan[]`** - Get all stored spans as OpenTelemetry ReadableSpan objects
45
+ - **`getSpansAsDicts(): SpanDict[]`** - Get all stored spans as formatted dictionaries
46
+ - **`getSpansByTraceId(traceId: string): SpanDict[]`** - Get all spans for a specific trace ID
47
+ - **`clear(): void`** - Clear all stored spans from memory
48
+ - **`export(spans: ReadableSpan[]): Promise<{ code: ExportResultCode }>`** - Export spans (called automatically by OpenTelemetry)
49
+ - **`shutdown(): Promise<void>`** - Shutdown the exporter
50
+ - **`forceFlush(): Promise<void>`** - Force flush pending spans
55
51
 
56
- // Or use manually
57
- const span = tracer.getCurrentSpan();
58
- tracer.addMetadata("key", "value");
59
- tracer.addEvent("event-name", { data: "value" });
60
- ```
52
+ ### CandidatePromptManager
53
+
54
+ Manages prompt template overrides using AsyncLocalStorage for context-local state. Useful for A/B testing or evaluating different prompt variations.
61
55
 
62
- ### Prompt Tracing
56
+ #### Usage
63
57
 
64
58
  ```typescript
65
- // Method 1: Using prompt() (returns rendered prompt)
66
- const renderedPrompt = await tracer.prompt(
67
- "translation",
68
- "Translate: {{ text }}",
69
- { text: "Hello" }
59
+ import { CandidatePromptManager } from "@uselemma/tracing";
60
+
61
+ const promptManager = new CandidatePromptManager();
62
+
63
+ // Run code with prompt overrides
64
+ await promptManager.run(
65
+ {
66
+ greeting: "Hello {{ name }}, welcome!",
67
+ farewell: "Goodbye {{ name }}!",
68
+ },
69
+ async () => {
70
+ // Within this context, candidate prompts will be used
71
+ const [template, wasOverridden] = promptManager.getEffectiveTemplate(
72
+ "greeting",
73
+ "Hi {{ name }}" // default template
74
+ );
75
+
76
+ console.log(template); // "Hello {{ name }}, welcome!"
77
+ console.log(wasOverridden); // true
78
+ }
70
79
  );
71
- // ... use renderedPrompt ...
72
- tracer.addLLMOutput(result.content);
73
-
74
- // Method 2: Using startPrompt() (returns context object)
75
- const promptCtx = tracer.startPrompt("translation", "Translate: {{ text }}", {
76
- text: "Hello",
77
- });
78
- // ... use promptCtx.renderedPrompt ...
79
- tracer.addLLMOutput(result.content);
80
- promptCtx.end(); // Manually end span
81
80
  ```
82
81
 
83
- ## API
82
+ #### Methods
84
83
 
85
- ### SpanType
84
+ - **`run<T>(candidatePrompts: Record<string, string> | null, callback: () => Promise<T> | T): Promise<T>`**
85
+ Run a callback with candidate prompts set in the async context
86
+ - **`getEffectiveTemplate(promptName: string, defaultTemplate: string): [string, boolean]`**
87
+ Get the effective template, applying candidate override if present. Returns `[template, wasOverridden]`
88
+ - **`annotateSpan(span: { setAttribute: (key: string, value: unknown) => void }): void`**
89
+ Annotate an OpenTelemetry span with candidate prompt metadata
86
90
 
87
- Enum for specifying span types:
91
+ ## Example: Dual Processor Setup
88
92
 
89
- - `SpanType.AGENT` - For agent operations
90
- - `SpanType.NODE` - For node operations
91
- - `SpanType.TOOL` - For tool operations
93
+ Use `MemorySpanExporter` alongside other exporters to both send traces to your backend and capture them locally:
92
94
 
93
- ### Tracer
94
-
95
- - `wrap<T>(spanType: SpanType, func: T): T` - Wrap a function for tracing
96
- - `prompt(promptName: string, promptTemplate: string, inputVars: Record<string, unknown>): Promise<string>` - Create a prompt span and render template
97
- - `startPrompt(...)`: Start a prompt span and return context object
98
- - `addLLMOutput(output: string, model?: string, usage?: {...}): void` - Add LLM output to current prompt span
99
- - `addMetadata(key: string, value: unknown): void` - Add metadata to current span
100
- - `addEvent(eventName: string, attributes?: Record<string, unknown>): void` - Add event to current span
101
- - `getTraceId(): string | undefined` - Get current trace ID
102
- - `forceFlush(): Promise<void>` - Force flush all pending spans
103
- - `getSpans(): ReadableSpan[]` - Get all collected spans
104
- - `getSpansAsDicts(): SpanDict[]` - Get all collected spans as dictionaries
95
+ ```typescript
96
+ import { NodeSDK } from "@opentelemetry/sdk-node";
97
+ import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
98
+ import { MemorySpanExporter } from "@uselemma/tracing";
99
+ import { OtherSpanProcessor } from "your-backend";
100
+
101
+ export const memoryExporter = new MemorySpanExporter();
102
+
103
+ const sdk = new NodeSDK({
104
+ spanProcessors: [
105
+ new OtherSpanProcessor(), // Send to your backend
106
+ new SimpleSpanProcessor(memoryExporter), // Store in memory for local access
107
+ ],
108
+ });
105
109
 
106
- ### TraceRunner
110
+ sdk.start();
107
111
 
108
- - `run<T>(callback: () => Promise<T> | T): Promise<T>` - Run callback within tracing context
109
- - `record(): Promise<TraceData>` - Export spans and return trace data
112
+ // In your application code
113
+ import { memoryExporter } from "./instrumentation";
110
114
 
111
- ### CandidatePromptManager
115
+ function myTracedFunction() {
116
+ // ... your code ...
112
117
 
113
- - `run<T>(candidatePrompts: Record<string, string> | null, callback: () => Promise<T> | T): Promise<T>` - Run callback with candidate prompts
114
- - `getEffectiveTemplate(promptName: string, defaultTemplate: string): [string, boolean]` - Get effective template
118
+ // Access spans programmatically
119
+ const allSpans = memoryExporter.getSpansAsDicts();
120
+ const myTrace = memoryExporter.getSpansByTraceId(currentTraceId);
121
+ }
122
+ ```
115
123
 
116
- ### MemorySpanExporter
124
+ ## License
117
125
 
118
- - `getSpans(): ReadableSpan[]` - Get all stored spans
119
- - `getSpansAsDicts(): SpanDict[]` - Get all stored spans as dictionaries
120
- - `clear(): void` - Clear stored spans
126
+ MIT
@@ -7,8 +7,8 @@ export interface SpanDict {
7
7
  parent_span_id: string | null;
8
8
  name: string;
9
9
  kind: string;
10
- start_time_ns: bigint;
11
- end_time_ns: bigint | null;
10
+ start_time_ns: string;
11
+ end_time_ns: string | null;
12
12
  duration_ms: number | null;
13
13
  attributes: Record<string, unknown>;
14
14
  status: {
@@ -17,7 +17,7 @@ export interface SpanDict {
17
17
  } | null;
18
18
  events: Array<{
19
19
  name: string;
20
- timestamp_ns: bigint;
20
+ timestamp_ns: string;
21
21
  attributes: Record<string, unknown>;
22
22
  }>;
23
23
  resource: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAKlE,QAAQ,IAAI,YAAY,EAAE;IAI1B,eAAe,IAAI,QAAQ,EAAE;IAI7B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IA2CnB,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
1
+ {"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAKlE,QAAQ,IAAI,YAAY,EAAE;IAI1B,eAAe,IAAI,QAAQ,EAAE;IAI7B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAkDnB,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
package/dist/exporter.js CHANGED
@@ -39,9 +39,11 @@ class MemorySpanExporter {
39
39
  parent_span_id: parentSpanId,
40
40
  name: span.name,
41
41
  kind: span.kind.toString(),
42
- start_time_ns: BigInt(span.startTime[0]) * 1000000000n + BigInt(span.startTime[1]),
42
+ start_time_ns: (BigInt(span.startTime[0]) * 1000000000n +
43
+ BigInt(span.startTime[1])).toString(),
43
44
  end_time_ns: span.endTime
44
- ? BigInt(span.endTime[0]) * 1000000000n + BigInt(span.endTime[1])
45
+ ? (BigInt(span.endTime[0]) * 1000000000n +
46
+ BigInt(span.endTime[1])).toString()
45
47
  : null,
46
48
  duration_ms: span.endTime
47
49
  ? (span.endTime[0] - span.startTime[0]) * 1000 +
@@ -56,7 +58,8 @@ class MemorySpanExporter {
56
58
  : null,
57
59
  events: (span.events || []).map((event) => ({
58
60
  name: event.name,
59
- timestamp_ns: BigInt(event.time[0]) * 1000000000n + BigInt(event.time[1]),
61
+ timestamp_ns: (BigInt(event.time[0]) * 1000000000n +
62
+ BigInt(event.time[1])).toString(),
60
63
  attributes: event.attributes ? { ...event.attributes } : {},
61
64
  })),
62
65
  resource: span.resource?.attributes
@@ -1 +1 @@
1
- {"version":3,"file":"exporter.js","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exporter.js","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- export { CandidatePromptManager } from './candidate-prompt-manager';
2
- export { MemorySpanExporter, type SpanDict } from './exporter';
3
- export { TraceRunner, type TraceData } from './trace-runner';
4
- export { SpanType, Tracer } from './tracer';
1
+ export { CandidatePromptManager } from "./candidate-prompt-manager";
2
+ export { MemorySpanExporter, type SpanDict } from "./memory-exporter";
5
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,13 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Tracer = exports.SpanType = exports.TraceRunner = exports.MemorySpanExporter = exports.CandidatePromptManager = void 0;
3
+ exports.MemorySpanExporter = exports.CandidatePromptManager = void 0;
4
4
  var candidate_prompt_manager_1 = require("./candidate-prompt-manager");
5
5
  Object.defineProperty(exports, "CandidatePromptManager", { enumerable: true, get: function () { return candidate_prompt_manager_1.CandidatePromptManager; } });
6
- var exporter_1 = require("./exporter");
7
- Object.defineProperty(exports, "MemorySpanExporter", { enumerable: true, get: function () { return exporter_1.MemorySpanExporter; } });
8
- var trace_runner_1 = require("./trace-runner");
9
- Object.defineProperty(exports, "TraceRunner", { enumerable: true, get: function () { return trace_runner_1.TraceRunner; } });
10
- var tracer_1 = require("./tracer");
11
- Object.defineProperty(exports, "SpanType", { enumerable: true, get: function () { return tracer_1.SpanType; } });
12
- Object.defineProperty(exports, "Tracer", { enumerable: true, get: function () { return tracer_1.Tracer; } });
6
+ var memory_exporter_1 = require("./memory-exporter");
7
+ Object.defineProperty(exports, "MemorySpanExporter", { enumerable: true, get: function () { return memory_exporter_1.MemorySpanExporter; } });
13
8
  //# 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,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAC/B,uCAA+D;AAAtD,8GAAA,kBAAkB,OAAA;AAC3B,+CAA6D;AAApD,2GAAA,WAAW,OAAA;AACpB,mCAA4C;AAAnC,kGAAA,QAAQ,OAAA;AAAE,gGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAC/B,qDAAsE;AAA7D,qHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,43 @@
1
+ import { ExportResultCode } from "@opentelemetry/core";
2
+ import type { ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-base";
3
+ export interface SpanDict {
4
+ timestamp: string;
5
+ trace_id: string;
6
+ span_id: string;
7
+ parent_span_id: string | null;
8
+ name: string;
9
+ kind: string;
10
+ start_time_ns: string;
11
+ end_time_ns: string | null;
12
+ duration_ms: number | null;
13
+ attributes: Record<string, unknown>;
14
+ status: {
15
+ status_code: string;
16
+ description?: string;
17
+ } | null;
18
+ events: Array<{
19
+ name: string;
20
+ timestamp_ns: string;
21
+ attributes: Record<string, unknown>;
22
+ }>;
23
+ resource: Record<string, unknown>;
24
+ }
25
+ /**
26
+ * Span exporter that stores spans in memory for retrieval.
27
+ */
28
+ export declare class MemorySpanExporter implements SpanExporter {
29
+ private readonly _spans;
30
+ export(spans: ReadableSpan[]): Promise<{
31
+ code: ExportResultCode;
32
+ }>;
33
+ getSpans(): ReadableSpan[];
34
+ getSpansAsDicts(): SpanDict[];
35
+ getSpansByTraceId(traceId: string): SpanDict[];
36
+ private _formatTraceId;
37
+ private _formatSpanId;
38
+ private _spanToDict;
39
+ clear(): void;
40
+ shutdown(): Promise<void>;
41
+ forceFlush(): Promise<void>;
42
+ }
43
+ //# sourceMappingURL=memory-exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-exporter.d.ts","sourceRoot":"","sources":["../src/memory-exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAKlE,QAAQ,IAAI,YAAY,EAAE;IAI1B,eAAe,IAAI,QAAQ,EAAE;IAI7B,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE;IAO9C,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAkDnB,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemorySpanExporter = void 0;
4
+ const core_1 = require("@opentelemetry/core");
5
+ /**
6
+ * Span exporter that stores spans in memory for retrieval.
7
+ */
8
+ class MemorySpanExporter {
9
+ _spans = [];
10
+ export(spans) {
11
+ this._spans.push(...spans);
12
+ return Promise.resolve({ code: core_1.ExportResultCode.SUCCESS });
13
+ }
14
+ getSpans() {
15
+ return [...this._spans];
16
+ }
17
+ getSpansAsDicts() {
18
+ return this._spans.map((span) => this._spanToDict(span));
19
+ }
20
+ getSpansByTraceId(traceId) {
21
+ const formattedTraceId = this._formatTraceId(traceId);
22
+ return this._spans
23
+ .map((span) => this._spanToDict(span))
24
+ .filter((span) => span.trace_id === formattedTraceId);
25
+ }
26
+ _formatTraceId(traceId) {
27
+ // Ensure trace ID is 32-character hex string
28
+ return traceId.padStart(32, "0").slice(0, 32);
29
+ }
30
+ _formatSpanId(spanId) {
31
+ // Ensure span ID is 16-character hex string
32
+ return spanId.padStart(16, "0").slice(0, 16);
33
+ }
34
+ _spanToDict(span) {
35
+ const spanCtx = span.spanContext();
36
+ const traceId = this._formatTraceId(spanCtx.traceId);
37
+ const spanId = this._formatSpanId(spanCtx.spanId);
38
+ const parentSpanId = span.parentSpanContext
39
+ ? this._formatSpanId(span.parentSpanContext.spanId)
40
+ : null;
41
+ return {
42
+ timestamp: new Date().toISOString(),
43
+ trace_id: traceId,
44
+ span_id: spanId,
45
+ parent_span_id: parentSpanId,
46
+ name: span.name,
47
+ kind: span.kind.toString(),
48
+ start_time_ns: (BigInt(span.startTime[0]) * 1000000000n +
49
+ BigInt(span.startTime[1])).toString(),
50
+ end_time_ns: span.endTime
51
+ ? (BigInt(span.endTime[0]) * 1000000000n +
52
+ BigInt(span.endTime[1])).toString()
53
+ : null,
54
+ duration_ms: span.endTime
55
+ ? (span.endTime[0] - span.startTime[0]) * 1000 +
56
+ (span.endTime[1] - span.startTime[1]) / 1_000_000
57
+ : null,
58
+ attributes: span.attributes ? { ...span.attributes } : {},
59
+ status: span.status
60
+ ? {
61
+ status_code: span.status.code.toString(),
62
+ description: span.status.message,
63
+ }
64
+ : null,
65
+ events: (span.events || []).map((event) => ({
66
+ name: event.name,
67
+ timestamp_ns: (BigInt(event.time[0]) * 1000000000n +
68
+ BigInt(event.time[1])).toString(),
69
+ attributes: event.attributes ? { ...event.attributes } : {},
70
+ })),
71
+ resource: span.resource?.attributes
72
+ ? { ...span.resource.attributes }
73
+ : {},
74
+ };
75
+ }
76
+ clear() {
77
+ this._spans.length = 0;
78
+ }
79
+ shutdown() {
80
+ return Promise.resolve();
81
+ }
82
+ forceFlush() {
83
+ return Promise.resolve();
84
+ }
85
+ }
86
+ exports.MemorySpanExporter = MemorySpanExporter;
87
+ //# sourceMappingURL=memory-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-exporter.js","sourceRoot":"","sources":["../src/memory-exporter.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ export interface TraceData {
8
8
  parent_span_id: string | null;
9
9
  name: string;
10
10
  kind: string;
11
- start_time_ns: bigint;
12
- end_time_ns: bigint | null;
11
+ start_time_ns: string;
12
+ end_time_ns: string | null;
13
13
  duration_ms: number | null;
14
14
  attributes: Record<string, unknown>;
15
15
  status: {
@@ -18,7 +18,7 @@ export interface TraceData {
18
18
  } | null;
19
19
  events: Array<{
20
20
  name: string;
21
- timestamp_ns: bigint;
21
+ timestamp_ns: string;
22
22
  attributes: Record<string, unknown>;
23
23
  }>;
24
24
  resource: Record<string, unknown>;
@@ -56,6 +56,11 @@ export declare class TraceRunner {
56
56
  * @returns Result of the callback
57
57
  */
58
58
  run<T>(callback: () => Promise<T> | T): Promise<T>;
59
+ /**
60
+ * Set the trace_id manually. This can be called after run() to explicitly set the trace.
61
+ * Normally not needed as record() will auto-detect from spans.
62
+ */
63
+ setTraceId(traceId: string): void;
59
64
  /**
60
65
  * Export all spans and return the full trace with all child spans.
61
66
  *
@@ -1 +1 @@
1
- {"version":3,"file":"trace-runner.d.ts","sourceRoot":"","sources":["../src/trace-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,MAAM,EAAE;YACN,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,GAAG,IAAI,CAAC;QACT,MAAM,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACrC,CAAC,CAAC;QACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAS;gBAG/B,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAWlD;;;;;;;;OAQG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBxD;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;CAmCnC"}
1
+ {"version":3,"file":"trace-runner.d.ts","sourceRoot":"","sources":["../src/trace-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,MAAM,EAAE;YACN,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,GAAG,IAAI,CAAC;QACT,MAAM,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACrC,CAAC,CAAC;QACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAS;gBAG/B,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAWlD;;;;;;;;OAQG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA4BxD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;CAyCnC"}
@@ -45,19 +45,31 @@ class TraceRunner {
45
45
  throw new Error("Cannot enter context after record() has been called");
46
46
  }
47
47
  // Set up candidate prompts context
48
- return this._cpm.run(this._candidatePrompts, async () => {
48
+ const result = await this._cpm.run(this._candidatePrompts, async () => {
49
49
  this._contextEntered = true;
50
50
  try {
51
- const result = await callback();
52
- // Capture trace_id from tracer after execution completes
53
- this._traceId = this._tracer.getTraceId();
54
- return result;
51
+ return await callback();
55
52
  }
56
53
  finally {
57
54
  // Reset state when context exits
58
55
  this._contextEntered = false;
59
56
  }
60
57
  });
58
+ // Capture trace_id from the most recent span after execution
59
+ await this._tracer.forceFlush();
60
+ const spans = this._tracer.getMemoryExporter().getSpansAsDicts();
61
+ if (spans.length > 0 && this._traceId === undefined) {
62
+ // Get trace_id from the most recently created span
63
+ this._traceId = spans[spans.length - 1].trace_id;
64
+ }
65
+ return result;
66
+ }
67
+ /**
68
+ * Set the trace_id manually. This can be called after run() to explicitly set the trace.
69
+ * Normally not needed as record() will auto-detect from spans.
70
+ */
71
+ setTraceId(traceId) {
72
+ this._traceId = traceId;
61
73
  }
62
74
  /**
63
75
  * Export all spans and return the full trace with all child spans.
@@ -69,9 +81,14 @@ class TraceRunner {
69
81
  if (this._alreadyRecorded) {
70
82
  throw new Error("record() can only be called once per TraceRunner instance");
71
83
  }
72
- // Capture trace_id from tracer if we haven't captured it yet
84
+ // Capture trace_id if we haven't yet
73
85
  if (this._traceId === undefined) {
74
- this._traceId = this._tracer.getTraceId();
86
+ // Try to get from any span in the exporter
87
+ const allSpans = this._tracer.getMemoryExporter().getSpansAsDicts();
88
+ if (allSpans.length > 0) {
89
+ // Get the most recent span's trace_id
90
+ this._traceId = allSpans[allSpans.length - 1].trace_id;
91
+ }
75
92
  }
76
93
  if (this._traceId === undefined) {
77
94
  throw new Error("trace_id could not be captured. Ensure spans are created within the context.");
@@ -79,7 +96,7 @@ class TraceRunner {
79
96
  // Force flush all pending spans
80
97
  await this._tracer.forceFlush();
81
98
  // Get all spans for this trace
82
- const allSpans = this._tracer.getSpansAsDicts();
99
+ const allSpans = this._tracer.getMemoryExporter().getSpansAsDicts();
83
100
  // Filter spans to only include those matching the trace_id
84
101
  const traceSpans = allSpans.filter((span) => span.trace_id === this._traceId);
85
102
  this._alreadyRecorded = true;
@@ -1 +1 @@
1
- {"version":3,"file":"trace-runner.js","sourceRoot":"","sources":["../src/trace-runner.ts"],"names":[],"mappings":";;;AA6BA;;;;;;;;;;;;;GAaG;AACH,MAAa,WAAW;IACL,OAAO,CAAS;IAChB,IAAI,CAAyB;IAC7B,iBAAiB,CAAgC;IAC1D,QAAQ,CAAqB;IAC7B,eAAe,GAAG,KAAK,CAAC;IACxB,gBAAgB,GAAG,KAAK,CAAC;IAEjC,YACE,MAAc,EACd,gBAAgD;QAEhD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,mEAAmE;QACnE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,yBAAyB,EAAE,CAAC;QAC/C,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,IAAI,IAAI,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CAAI,QAA8B;QACzC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,mCAAmC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAE5B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAChC,yDAAyD;gBACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC1C,OAAO,MAAM,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,iCAAiC;gBACjC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QAED,6DAA6D;QAC7D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAEhC,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAChD,2DAA2D;QAC3D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAChC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAC1C,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,UAAU;SAClB,CAAC;IACJ,CAAC;CACF;AA5FD,kCA4FC"}
1
+ {"version":3,"file":"trace-runner.js","sourceRoot":"","sources":["../src/trace-runner.ts"],"names":[],"mappings":"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"}
package/dist/tracer.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { type Span } from "@opentelemetry/api";
2
2
  import type { SpanExporter } from "@opentelemetry/sdk-trace-base";
3
- import { ReadableSpan } from "@opentelemetry/sdk-trace-base";
4
3
  import { CandidatePromptManager } from "./candidate-prompt-manager";
5
4
  import { MemorySpanExporter } from "./exporter";
6
5
  type AnyFunction<TArgs extends unknown[] = unknown[], TReturn = unknown> = (...args: TArgs) => TReturn;
@@ -22,7 +21,6 @@ export declare class Tracer {
22
21
  private readonly _provider;
23
22
  private readonly _currentPromptSpan;
24
23
  private readonly _llmStartTime;
25
- private readonly _traceId;
26
24
  constructor(serviceName: string, exporter?: SpanExporter, candidatePromptManager?: CandidatePromptManager);
27
25
  /**
28
26
  * Wraps a function to trace it as a span.
@@ -118,7 +116,7 @@ export declare class Tracer {
118
116
  */
119
117
  addEvent(eventName: string, attributes?: Record<string, string | number | boolean>): void;
120
118
  /**
121
- * Get the trace_id from the current context.
119
+ * Get the trace_id from the current active span.
122
120
  *
123
121
  * @returns trace_id as a 32-character hexadecimal string, or undefined if not available
124
122
  */
@@ -132,23 +130,23 @@ export declare class Tracer {
132
130
  */
133
131
  forceFlush(): Promise<void>;
134
132
  /**
135
- * Get all collected spans from memory.
133
+ * Get the candidate prompt manager instance.
136
134
  *
137
- * @returns List of ReadableSpan objects for all spans collected so far
135
+ * @returns The CandidatePromptManager instance used by this tracer
138
136
  */
139
- getSpans(): ReadableSpan[];
137
+ getCandidatePromptManager(): CandidatePromptManager;
140
138
  /**
141
- * Get all collected spans as dictionaries.
139
+ * Get the memory exporter instance.
140
+ * This is used internally by TraceRunner to access collected spans.
142
141
  *
143
- * @returns List of span dictionaries with all span data
142
+ * @returns The MemorySpanExporter instance
144
143
  */
145
- getSpansAsDicts(): ReturnType<MemorySpanExporter["getSpansAsDicts"]>;
144
+ getMemoryExporter(): MemorySpanExporter;
146
145
  /**
147
- * Get the candidate prompt manager instance.
148
- *
149
- * @returns The CandidatePromptManager instance used by this tracer
146
+ * Clear all spans from memory exporter.
147
+ * Useful for cleaning up between test runs.
150
148
  */
151
- getCandidatePromptManager(): CandidatePromptManager;
149
+ clearSpans(): void;
152
150
  }
153
151
  export {};
154
152
  //# sourceMappingURL=tracer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,IAAI,EAAyB,MAAM,oBAAoB,CAAC;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAQlE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKhD,KAAK,WAAW,CAAC,KAAK,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,OAAO,GAAG,OAAO,IAAI,CACzE,GAAG,IAAI,EAAE,KAAK,KACX,OAAO,CAAC;AAEb;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2C;IAC9E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;gBAGzE,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,YAAY,EACvB,sBAAsB,CAAC,EAAE,sBAAsB;IAgDjD;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACnC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,GAChC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;IAsE9B;;;;;;;;;;;;;;;;OAgBG;IACG,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC;IAsClB;;;;;;;;;;;;;;OAcG;IACH,WAAW,CACT,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,IAAI,CAAC;QACX,GAAG,EAAE,MAAM,IAAI,CAAC;KACjB;IAuCD;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CACV,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE;QACN,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,IAAI;IAqCP;;;;OAIG;IACH,cAAc,IAAI,IAAI,GAAG,SAAS;IAKlC;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAkB9C;;;;;;;;OAQG;IACH,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,IAAI;IAOP;;;;OAIG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;IAQhC;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;OAIG;IACH,yBAAyB,IAAI,sBAAsB;IAInD;;;;;OAKG;IACH,iBAAiB,IAAI,kBAAkB;IAIvC;;;OAGG;IACH,UAAU,IAAI,IAAI;CAGnB"}
package/dist/tracer.js CHANGED
@@ -5,12 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Tracer = exports.SpanType = void 0;
7
7
  const api_1 = require("@opentelemetry/api");
8
+ const context_async_hooks_1 = require("@opentelemetry/context-async-hooks");
8
9
  const resources_1 = require("@opentelemetry/resources");
9
10
  const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
10
11
  const node_async_hooks_1 = require("node:async_hooks");
11
12
  const nunjucks_1 = __importDefault(require("nunjucks"));
12
13
  const candidate_prompt_manager_1 = require("./candidate-prompt-manager");
13
14
  const exporter_1 = require("./exporter");
15
+ // Track if global context manager has been initialized
16
+ let globalContextManagerInitialized = false;
14
17
  /**
15
18
  * Span type for tracing different kinds of operations.
16
19
  */
@@ -30,12 +33,11 @@ class Tracer {
30
33
  _provider;
31
34
  _currentPromptSpan;
32
35
  _llmStartTime;
33
- _traceId;
34
36
  constructor(serviceName, exporter, candidatePromptManager) {
35
37
  const resource = resources_1.Resource.default().merge(new resources_1.Resource({
36
38
  "service.name": serviceName,
37
39
  }));
38
- // Create memory exporter to collect spans (always used)
40
+ // Always create a memory exporter for TraceRunner to use
39
41
  this._memoryExporter = new exporter_1.MemorySpanExporter();
40
42
  // Prepare span processors
41
43
  const spanProcessors = [
@@ -44,19 +46,29 @@ class Tracer {
44
46
  if (exporter) {
45
47
  spanProcessors.push(new sdk_trace_base_1.SimpleSpanProcessor(exporter));
46
48
  }
49
+ // Set up context manager for async context propagation (only once globally)
50
+ if (!globalContextManagerInitialized) {
51
+ const contextManager = new context_async_hooks_1.AsyncLocalStorageContextManager();
52
+ contextManager.enable();
53
+ api_1.context.setGlobalContextManager(contextManager);
54
+ globalContextManagerInitialized = true;
55
+ }
47
56
  // Create provider with span processors
48
57
  this._provider = new sdk_trace_base_1.BasicTracerProvider({
49
58
  resource,
50
59
  spanProcessors,
51
60
  });
52
- // Register provider globally
61
+ // Register provider globally (this will overwrite any previous registration,
62
+ // but we use the provider's getTracer method directly to ensure spans go to
63
+ // this provider's processors)
53
64
  this._provider.register();
54
- this._tracer = api_1.trace.getTracer(serviceName);
65
+ // Use the provider's getTracer method directly to ensure spans are processed
66
+ // by this provider's span processors (including this tracer's memory exporter)
67
+ this._tracer = this._provider.getTracer(serviceName);
55
68
  this._cpm = candidatePromptManager ?? new candidate_prompt_manager_1.CandidatePromptManager();
56
69
  // Context-local state for prompt spans and timing
57
70
  this._currentPromptSpan = new node_async_hooks_1.AsyncLocalStorage();
58
71
  this._llmStartTime = new node_async_hooks_1.AsyncLocalStorage();
59
- this._traceId = new node_async_hooks_1.AsyncLocalStorage();
60
72
  }
61
73
  /**
62
74
  * Wraps a function to trace it as a span.
@@ -67,18 +79,10 @@ class Tracer {
67
79
  */
68
80
  wrap(spanType, func) {
69
81
  const wrapped = ((...args) => {
70
- const span = this._tracer.startSpan(func.name);
71
- const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
72
- // Capture trace_id from span context
73
- const spanContext = span.spanContext();
74
- if (spanContext.traceFlags !== undefined) {
75
- const traceId = this._formatTraceId(spanContext.traceId);
76
- // Store trace ID in async context for later retrieval
77
- const currentStore = this._traceId.getStore();
78
- if (!currentStore) {
79
- this._traceId.enterWith({ traceId });
80
- }
81
- }
82
+ // Capture the current context so the span inherits the parent's trace_id
83
+ const currentContext = api_1.context.active();
84
+ const span = this._tracer.startSpan(func.name, undefined, currentContext);
85
+ const activeContext = api_1.trace.setSpan(currentContext, span);
82
86
  span.setAttribute("span.type", spanType);
83
87
  span.setAttribute("function.name", func.name);
84
88
  // Add input metadata for agent spans
@@ -158,18 +162,9 @@ class Tracer {
158
162
  * @returns Promise that resolves to the rendered prompt
159
163
  */
160
164
  async prompt(promptName, promptTemplate, inputVars) {
161
- const span = this._tracer.startSpan(promptName);
162
- const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
163
- // Capture trace_id from span context and store in async context
164
- const spanContext = span.spanContext();
165
- if (spanContext.traceFlags !== undefined) {
166
- const traceId = this._formatTraceId(spanContext.traceId);
167
- // Store trace ID in async context for later retrieval
168
- const currentStore = this._traceId.getStore();
169
- if (!currentStore) {
170
- this._traceId.enterWith({ traceId });
171
- }
172
- }
165
+ const currentContext = api_1.context.active();
166
+ const span = this._tracer.startSpan(promptName, undefined, currentContext);
167
+ const activeContext = api_1.trace.setSpan(currentContext, span);
173
168
  span.setAttribute("span.type", "prompt");
174
169
  span.setAttribute("prompt.name", promptName);
175
170
  span.setAttribute("prompt.template", promptTemplate);
@@ -210,18 +205,9 @@ class Tracer {
210
205
  * @returns Object with renderedPrompt and end() method
211
206
  */
212
207
  startPrompt(promptName, promptTemplate, inputVars) {
213
- const span = this._tracer.startSpan(promptName);
214
- const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
215
- // Capture trace_id from span context and store in async context
216
- const spanContext = span.spanContext();
217
- if (spanContext.traceFlags !== undefined) {
218
- const traceId = this._formatTraceId(spanContext.traceId);
219
- // Store trace ID in async context for later retrieval
220
- const currentStore = this._traceId.getStore();
221
- if (!currentStore) {
222
- this._traceId.enterWith({ traceId });
223
- }
224
- }
208
+ const currentContext = api_1.context.active();
209
+ const span = this._tracer.startSpan(promptName, undefined, currentContext);
210
+ const activeContext = api_1.trace.setSpan(currentContext, span);
225
211
  span.setAttribute("span.type", "prompt");
226
212
  span.setAttribute("prompt.name", promptName);
227
213
  span.setAttribute("prompt.template", promptTemplate);
@@ -339,13 +325,16 @@ class Tracer {
339
325
  }
340
326
  }
341
327
  /**
342
- * Get the trace_id from the current context.
328
+ * Get the trace_id from the current active span.
343
329
  *
344
330
  * @returns trace_id as a 32-character hexadecimal string, or undefined if not available
345
331
  */
346
332
  getTraceId() {
347
- const store = this._traceId.getStore();
348
- return store?.traceId;
333
+ const span = this.getCurrentSpan();
334
+ if (span) {
335
+ return this._formatTraceId(span.spanContext().traceId);
336
+ }
337
+ return undefined;
349
338
  }
350
339
  /**
351
340
  * Helper to format trace ID as 32-character hex string.
@@ -361,28 +350,28 @@ class Tracer {
361
350
  await this._provider.forceFlush();
362
351
  }
363
352
  /**
364
- * Get all collected spans from memory.
353
+ * Get the candidate prompt manager instance.
365
354
  *
366
- * @returns List of ReadableSpan objects for all spans collected so far
355
+ * @returns The CandidatePromptManager instance used by this tracer
367
356
  */
368
- getSpans() {
369
- return this._memoryExporter.getSpans();
357
+ getCandidatePromptManager() {
358
+ return this._cpm;
370
359
  }
371
360
  /**
372
- * Get all collected spans as dictionaries.
361
+ * Get the memory exporter instance.
362
+ * This is used internally by TraceRunner to access collected spans.
373
363
  *
374
- * @returns List of span dictionaries with all span data
364
+ * @returns The MemorySpanExporter instance
375
365
  */
376
- getSpansAsDicts() {
377
- return this._memoryExporter.getSpansAsDicts();
366
+ getMemoryExporter() {
367
+ return this._memoryExporter;
378
368
  }
379
369
  /**
380
- * Get the candidate prompt manager instance.
381
- *
382
- * @returns The CandidatePromptManager instance used by this tracer
370
+ * Clear all spans from memory exporter.
371
+ * Useful for cleaning up between test runs.
383
372
  */
384
- getCandidatePromptManager() {
385
- return this._cpm;
373
+ clearSpans() {
374
+ this._memoryExporter.clear();
386
375
  }
387
376
  }
388
377
  exports.Tracer = Tracer;
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uselemma/tracing",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "OpenTelemetry-based tracing module for Lemma",
5
5
  "license": "MIT",
6
6
  "author": "Lemma",
@@ -32,9 +32,10 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "@opentelemetry/api": "^1.9.0",
35
+ "@opentelemetry/context-async-hooks": "^2.2.0",
35
36
  "@opentelemetry/core": "^2.2.0",
36
- "@opentelemetry/resources": "^1.27.0",
37
- "@opentelemetry/sdk-trace-base": "^1.27.0",
37
+ "@opentelemetry/resources": "^2.2.0",
38
+ "@opentelemetry/sdk-trace-base": "^2.2.0",
38
39
  "nunjucks": "^3.2.4"
39
40
  },
40
41
  "devDependencies": {