@uselemma/tracing 0.2.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,112 +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();
43
32
 
44
- // Get trace data
45
- const traceData = await traceRunner.record();
46
- console.log(traceData.trace_id);
47
- console.log(traceData.spans);
33
+ // Later, retrieve spans
34
+ const allSpans = memoryExporter.getSpans();
35
+ const spansAsDicts = memoryExporter.getSpansAsDicts();
36
+ const traceSpans = memoryExporter.getSpansByTraceId("your-trace-id");
37
+
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
61
53
 
62
- ### Prompt Tracing
54
+ Manages prompt template overrides using AsyncLocalStorage for context-local state. Useful for A/B testing or evaluating different prompt variations.
55
+
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:
88
- - `SpanType.AGENT` - For agent operations
89
- - `SpanType.NODE` - For node operations
90
- - `SpanType.TOOL` - For tool operations
91
+ ## Example: Dual Processor Setup
91
92
 
92
- ### Tracer
93
+ Use `MemorySpanExporter` alongside other exporters to both send traces to your backend and capture them locally:
93
94
 
94
- - `wrap<T>(spanType: SpanType, func: T): T` - Wrap a function for tracing
95
- - `prompt(promptName: string, promptTemplate: string, inputVars: Record<string, unknown>): Promise<string>` - Create a prompt span and render template
96
- - `startPrompt(...)`: Start a prompt span and return context object
97
- - `addLlmOutput(output: string, model?: string, usage?: {...}): void` - Add LLM output to current prompt span
98
- - `addMetadata(key: string, value: unknown): void` - Add metadata to current span
99
- - `addEvent(eventName: string, attributes?: Record<string, unknown>): void` - Add event to current span
100
- - `getTraceId(): string | undefined` - Get current trace ID
101
- - `forceFlush(): Promise<void>` - Force flush all pending spans
102
- - `getSpans(): ReadableSpan[]` - Get all collected spans
103
- - `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
+ });
104
109
 
105
- ### TraceRunner
110
+ sdk.start();
106
111
 
107
- - `run<T>(callback: () => Promise<T> | T): Promise<T>` - Run callback within tracing context
108
- - `record(): Promise<TraceData>` - Export spans and return trace data
112
+ // In your application code
113
+ import { memoryExporter } from "./instrumentation";
109
114
 
110
- ### CandidatePromptManager
115
+ function myTracedFunction() {
116
+ // ... your code ...
111
117
 
112
- - `run<T>(candidatePrompts: Record<string, string> | null, callback: () => Promise<T> | T): Promise<T>` - Run callback with candidate prompts
113
- - `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
+ ```
114
123
 
115
- ### MemorySpanExporter
124
+ ## License
116
125
 
117
- - `getSpans(): ReadableSpan[]` - Get all stored spans
118
- - `getSpansAsDicts(): SpanDict[]` - Get all stored spans as dictionaries
119
- - `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":";;;AAAA,8CAAuD;AA0BvD;;GAEG;AACH,MAAa,kBAAkB;IACZ,MAAM,GAAmB,EAAE,CAAC;IAE7C,MAAM,CAAC,KAAqB;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,cAAc,CAAC,OAAe;QACpC,6CAA6C;QAC7C,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,4CAA4C;QAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEO,WAAW,CAAC,IAAkB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY;YACpC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC;QAET,OAAO;YACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,YAAY;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1B,aAAa,EACX,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,WAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACxE,WAAW,EAAE,IAAI,CAAC,OAAO;gBACvB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,WAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpE,CAAC,CAAC,IAAI;YACR,WAAW,EAAE,IAAI,CAAC,OAAO;gBACvB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;oBAC5C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;gBACnD,CAAC,CAAC,IAAI;YACR,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;YACzD,MAAM,EAAE,IAAI,CAAC,MAAM;gBACjB,CAAC,CAAC;oBACE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACxC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;iBACjC;gBACH,CAAC,CAAC,IAAI;YACR,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EACV,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,WAAc,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;aAC5D,CAAC,CAAC;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU;gBACjC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;gBACjC,CAAC,CAAC,EAAE;SACP,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAhFD,gDAgFC"}
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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"}
@@ -1,4 +1,4 @@
1
- import type { Tracer } from './tracer';
1
+ import type { Tracer } from "./tracer";
2
2
  export interface TraceData {
3
3
  trace_id: string;
4
4
  spans: Array<{
@@ -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;IAUlD;;;;;;;;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"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TraceRunner = void 0;
4
- const candidate_prompt_manager_1 = require("./candidate-prompt-manager");
5
4
  /**
6
5
  * Wrapper around Tracer that manages candidate prompts and tracks trace_id.
7
6
  *
@@ -25,7 +24,8 @@ class TraceRunner {
25
24
  _alreadyRecorded = false;
26
25
  constructor(tracer, candidatePrompts) {
27
26
  this._tracer = tracer;
28
- this._cpm = new candidate_prompt_manager_1.CandidatePromptManager();
27
+ // Use the tracer's CandidatePromptManager to ensure shared context
28
+ this._cpm = tracer.getCandidatePromptManager();
29
29
  this._candidatePrompts = candidatePrompts ?? null;
30
30
  this._traceId = undefined;
31
31
  this._contextEntered = false;
@@ -42,22 +42,34 @@ class TraceRunner {
42
42
  */
43
43
  async run(callback) {
44
44
  if (this._alreadyRecorded) {
45
- throw new Error('Cannot enter context after record() has been called');
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.
@@ -67,19 +79,24 @@ class TraceRunner {
67
79
  */
68
80
  async record() {
69
81
  if (this._alreadyRecorded) {
70
- throw new Error('record() can only be called once per TraceRunner instance');
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
- throw new Error('trace_id could not be captured. Ensure spans are created within the context.');
94
+ throw new Error("trace_id could not be captured. Ensure spans are created within the context.");
78
95
  }
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":";;;AACA,yEAAoE;AA4BpE;;;;;;;;;;;;;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,IAAI,CAAC,IAAI,GAAG,IAAI,iDAAsB,EAAE,CAAC;QACzC,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;AA3FD,kCA2FC"}
1
+ {"version":3,"file":"trace-runner.js","sourceRoot":"","sources":["../src/trace-runner.ts"],"names":[],"mappings":";;;AA8BA;;;;;;;;;;;;;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,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YACpE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAE5B,IAAI,CAAC;gBACH,OAAO,MAAM,QAAQ,EAAE,CAAC;YAC1B,CAAC;oBAAS,CAAC;gBACT,iCAAiC;gBACjC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6DAA6D;QAC7D,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,eAAe,EAAE,CAAC;QACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpD,mDAAmD;YACnD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,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,qCAAqC;QACrC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,eAAe,EAAE,CAAC;YACpE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,sCAAsC;gBACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzD,CAAC;QACH,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,iBAAiB,EAAE,CAAC,eAAe,EAAE,CAAC;QAEpE,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;AAjHD,kCAiHC"}
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;
@@ -19,9 +18,9 @@ export declare class Tracer {
19
18
  private readonly _tracer;
20
19
  private readonly _cpm;
21
20
  private readonly _memoryExporter;
21
+ private readonly _provider;
22
22
  private readonly _currentPromptSpan;
23
23
  private readonly _llmStartTime;
24
- private readonly _traceId;
25
24
  constructor(serviceName: string, exporter?: SpanExporter, candidatePromptManager?: CandidatePromptManager);
26
25
  /**
27
26
  * Wraps a function to trace it as a span.
@@ -117,7 +116,7 @@ export declare class Tracer {
117
116
  */
118
117
  addEvent(eventName: string, attributes?: Record<string, string | number | boolean>): void;
119
118
  /**
120
- * Get the trace_id from the current context.
119
+ * Get the trace_id from the current active span.
121
120
  *
122
121
  * @returns trace_id as a 32-character hexadecimal string, or undefined if not available
123
122
  */
@@ -131,17 +130,23 @@ export declare class Tracer {
131
130
  */
132
131
  forceFlush(): Promise<void>;
133
132
  /**
134
- * Get all collected spans from memory.
133
+ * Get the candidate prompt manager instance.
135
134
  *
136
- * @returns List of ReadableSpan objects for all spans collected so far
135
+ * @returns The CandidatePromptManager instance used by this tracer
137
136
  */
138
- getSpans(): ReadableSpan[];
137
+ getCandidatePromptManager(): CandidatePromptManager;
139
138
  /**
140
- * Get all collected spans as dictionaries.
139
+ * Get the memory exporter instance.
140
+ * This is used internally by TraceRunner to access collected spans.
141
141
  *
142
- * @returns List of span dictionaries with all span data
142
+ * @returns The MemorySpanExporter instance
143
143
  */
144
- getSpansAsDicts(): ReturnType<MemorySpanExporter["getSpansAsDicts"]>;
144
+ getMemoryExporter(): MemorySpanExporter;
145
+ /**
146
+ * Clear all spans from memory exporter.
147
+ * Useful for cleaning up between test runs.
148
+ */
149
+ clearSpans(): void;
145
150
  }
146
151
  export {};
147
152
  //# sourceMappingURL=tracer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,IAAI,EAAyB,MAAM,oBAAoB,CAAC;AAE/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAGL,YAAY,EACb,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,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,kBAAkB,CAA2C;IAC9E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAC3E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;gBAGvE,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,YAAY,EACvB,sBAAsB,CAAC,EAAE,sBAAsB;IAiCjD;;;;;;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;IA+E9B;;;;;;;;;;;;;;;;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;IAgDlB;;;;;;;;;;;;;;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;IAiDD;;;;;;;;;;;;;;;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;IAKhC;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;;;OAIG;IACH,QAAQ,IAAI,YAAY,EAAE;IAI1B;;;;OAIG;IACH,eAAe,IAAI,UAAU,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;CAGrE"}
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
  */
@@ -27,31 +30,45 @@ class Tracer {
27
30
  _tracer;
28
31
  _cpm;
29
32
  _memoryExporter;
33
+ _provider;
30
34
  _currentPromptSpan;
31
35
  _llmStartTime;
32
- _traceId;
33
36
  constructor(serviceName, exporter, candidatePromptManager) {
34
37
  const resource = resources_1.Resource.default().merge(new resources_1.Resource({
35
38
  "service.name": serviceName,
36
39
  }));
37
- // Create memory exporter to collect spans (always used)
40
+ // Always create a memory exporter for TraceRunner to use
38
41
  this._memoryExporter = new exporter_1.MemorySpanExporter();
39
42
  // Prepare span processors
40
- const spanProcessors = [new sdk_trace_base_1.BatchSpanProcessor(this._memoryExporter)];
43
+ const spanProcessors = [
44
+ new sdk_trace_base_1.SimpleSpanProcessor(this._memoryExporter),
45
+ ];
41
46
  if (exporter) {
42
- spanProcessors.push(new sdk_trace_base_1.BatchSpanProcessor(exporter));
47
+ spanProcessors.push(new sdk_trace_base_1.SimpleSpanProcessor(exporter));
43
48
  }
44
- const provider = new sdk_trace_base_1.BasicTracerProvider({
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
+ }
56
+ // Create provider with span processors
57
+ this._provider = new sdk_trace_base_1.BasicTracerProvider({
45
58
  resource,
46
59
  spanProcessors,
47
60
  });
48
- api_1.trace.setGlobalTracerProvider(provider);
49
- this._tracer = api_1.trace.getTracer(serviceName);
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)
64
+ this._provider.register();
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);
50
68
  this._cpm = candidatePromptManager ?? new candidate_prompt_manager_1.CandidatePromptManager();
51
69
  // Context-local state for prompt spans and timing
52
70
  this._currentPromptSpan = new node_async_hooks_1.AsyncLocalStorage();
53
71
  this._llmStartTime = new node_async_hooks_1.AsyncLocalStorage();
54
- this._traceId = new node_async_hooks_1.AsyncLocalStorage();
55
72
  }
56
73
  /**
57
74
  * Wraps a function to trace it as a span.
@@ -62,18 +79,10 @@ class Tracer {
62
79
  */
63
80
  wrap(spanType, func) {
64
81
  const wrapped = ((...args) => {
65
- const span = this._tracer.startSpan(func.name);
66
- const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
67
- // Capture trace_id from span context
68
- const spanContext = span.spanContext();
69
- if (spanContext.traceFlags !== undefined) {
70
- const traceId = this._formatTraceId(spanContext.traceId);
71
- // Store trace ID in async context for later retrieval
72
- const currentStore = this._traceId.getStore();
73
- if (!currentStore) {
74
- this._traceId.enterWith({ traceId });
75
- }
76
- }
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);
77
86
  span.setAttribute("span.type", spanType);
78
87
  span.setAttribute("function.name", func.name);
79
88
  // Add input metadata for agent spans
@@ -153,18 +162,9 @@ class Tracer {
153
162
  * @returns Promise that resolves to the rendered prompt
154
163
  */
155
164
  async prompt(promptName, promptTemplate, inputVars) {
156
- const span = this._tracer.startSpan(promptName);
157
- const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
158
- // Capture trace_id from span context and store in async context
159
- const spanContext = span.spanContext();
160
- if (spanContext.traceFlags !== undefined) {
161
- const traceId = this._formatTraceId(spanContext.traceId);
162
- // Store trace ID in async context for later retrieval
163
- const currentStore = this._traceId.getStore();
164
- if (!currentStore) {
165
- this._traceId.enterWith({ traceId });
166
- }
167
- }
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);
168
168
  span.setAttribute("span.type", "prompt");
169
169
  span.setAttribute("prompt.name", promptName);
170
170
  span.setAttribute("prompt.template", promptTemplate);
@@ -205,18 +205,9 @@ class Tracer {
205
205
  * @returns Object with renderedPrompt and end() method
206
206
  */
207
207
  startPrompt(promptName, promptTemplate, inputVars) {
208
- const span = this._tracer.startSpan(promptName);
209
- const activeContext = api_1.trace.setSpan(api_1.context.active(), span);
210
- // Capture trace_id from span context and store in async context
211
- const spanContext = span.spanContext();
212
- if (spanContext.traceFlags !== undefined) {
213
- const traceId = this._formatTraceId(spanContext.traceId);
214
- // Store trace ID in async context for later retrieval
215
- const currentStore = this._traceId.getStore();
216
- if (!currentStore) {
217
- this._traceId.enterWith({ traceId });
218
- }
219
- }
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);
220
211
  span.setAttribute("span.type", "prompt");
221
212
  span.setAttribute("prompt.name", promptName);
222
213
  span.setAttribute("prompt.template", promptTemplate);
@@ -334,13 +325,16 @@ class Tracer {
334
325
  }
335
326
  }
336
327
  /**
337
- * Get the trace_id from the current context.
328
+ * Get the trace_id from the current active span.
338
329
  *
339
330
  * @returns trace_id as a 32-character hexadecimal string, or undefined if not available
340
331
  */
341
332
  getTraceId() {
342
- const store = this._traceId.getStore();
343
- return store?.traceId;
333
+ const span = this.getCurrentSpan();
334
+ if (span) {
335
+ return this._formatTraceId(span.spanContext().traceId);
336
+ }
337
+ return undefined;
344
338
  }
345
339
  /**
346
340
  * Helper to format trace ID as 32-character hex string.
@@ -353,26 +347,31 @@ class Tracer {
353
347
  * Force flush all pending spans.
354
348
  */
355
349
  async forceFlush() {
356
- const provider = api_1.trace.getTracerProvider();
357
- if ("forceFlush" in provider) {
358
- await provider.forceFlush();
359
- }
350
+ await this._provider.forceFlush();
360
351
  }
361
352
  /**
362
- * Get all collected spans from memory.
353
+ * Get the candidate prompt manager instance.
363
354
  *
364
- * @returns List of ReadableSpan objects for all spans collected so far
355
+ * @returns The CandidatePromptManager instance used by this tracer
365
356
  */
366
- getSpans() {
367
- return this._memoryExporter.getSpans();
357
+ getCandidatePromptManager() {
358
+ return this._cpm;
368
359
  }
369
360
  /**
370
- * Get all collected spans as dictionaries.
361
+ * Get the memory exporter instance.
362
+ * This is used internally by TraceRunner to access collected spans.
371
363
  *
372
- * @returns List of span dictionaries with all span data
364
+ * @returns The MemorySpanExporter instance
365
+ */
366
+ getMemoryExporter() {
367
+ return this._memoryExporter;
368
+ }
369
+ /**
370
+ * Clear all spans from memory exporter.
371
+ * Useful for cleaning up between test runs.
373
372
  */
374
- getSpansAsDicts() {
375
- return this._memoryExporter.getSpansAsDicts();
373
+ clearSpans() {
374
+ this._memoryExporter.clear();
376
375
  }
377
376
  }
378
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":";;;;;;AAAA,4CAA+E;AAC/E,4EAAqF;AACrF,wDAAoD;AAEpD,kEAGuC;AACvC,uDAAqD;AACrD,wDAAgC;AAEhC,yEAAoE;AACpE,yCAAgD;AAEhD,uDAAuD;AACvD,IAAI,+BAA+B,GAAG,KAAK,CAAC;AAM5C;;GAEG;AACH,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;AACf,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAED;;GAEG;AACH,MAAa,MAAM;IACA,OAAO,CAAqC;IAC5C,IAAI,CAAyB;IAC7B,eAAe,CAAqB;IACpC,SAAS,CAAsB;IAC/B,kBAAkB,CAA2C;IAC7D,aAAa,CAA6C;IAE3E,YACE,WAAmB,EACnB,QAAuB,EACvB,sBAA+C;QAE/C,MAAM,QAAQ,GAAG,oBAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CACvC,IAAI,oBAAQ,CAAC;YACX,cAAc,EAAE,WAAW;SAC5B,CAAC,CACH,CAAC;QAEF,yDAAyD;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,6BAAkB,EAAE,CAAC;QAEhD,0BAA0B;QAC1B,MAAM,cAAc,GAA0B;YAC5C,IAAI,oCAAmB,CAAC,IAAI,CAAC,eAAe,CAAC;SAC9C,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,cAAc,CAAC,IAAI,CAAC,IAAI,oCAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,4EAA4E;QAC5E,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,IAAI,qDAA+B,EAAE,CAAC;YAC7D,cAAc,CAAC,MAAM,EAAE,CAAC;YACxB,aAAO,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;YAChD,+BAA+B,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,oCAAmB,CAAC;YACvC,QAAQ;YACR,cAAc;SACf,CAAC,CAAC;QAEH,6EAA6E;QAC7E,4EAA4E;QAC5E,8BAA8B;QAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAE1B,6EAA6E;QAC7E,+EAA+E;QAC/E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,sBAAsB,IAAI,IAAI,iDAAsB,EAAE,CAAC;QAEnE,kDAAkD;QAClD,IAAI,CAAC,kBAAkB,GAAG,IAAI,oCAAiB,EAAyB,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,IAAI,oCAAiB,EAA2B,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CACF,QAAkB,EAClB,IAAiC;QAEjC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;YAClC,yEAAyE;YACzE,MAAM,cAAc,GAAG,aAAO,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAC1E,MAAM,aAAa,GAAG,WAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAE1D,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAE9C,qCAAqC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEhC,IAAI,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACP,mCAAmC;YACrC,CAAC;YAED,OAAO,aAAO,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;gBACtC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC7B,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;wBAC9B,OAAO,MAAM;6BACV,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;4BACZ,IAAI,CAAC;gCACH,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC5D,CAAC;4BAAC,MAAM,CAAC;gCACP,qCAAqC;4BACvC,CAAC;4BACD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,EAAE,EAAE,CAAC,CAAC;4BAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;4BACX,OAAO,GAAG,CAAC;wBACb,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;4BACtB,IAAI,CAAC,SAAS,CAAC;gCACb,IAAI,EAAE,oBAAc,CAAC,KAAK;gCAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;6BACvB,CAAC,CAAC;4BACH,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;4BAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;4BACX,MAAM,KAAK,CAAC;wBACd,CAAC,CAAC,CAAC;oBACP,CAAC;oBAED,IAAI,CAAC;wBACH,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC/D,CAAC;oBAAC,MAAM,CAAC;wBACP,qCAAqC;oBACvC,CAAC;oBACD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtE,IAAI,CAAC,SAAS,CAAC;wBACb,IAAI,EAAE,oBAAc,CAAC,KAAK;wBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;qBACrB,CAAC,CAAC;oBACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAgC,CAAC;QAElC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,cAAsB,EACtB,SAAkC;QAElC,MAAM,cAAc,GAAG,aAAO,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,WAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAElE,6EAA6E;QAC7E,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CACzE,UAAU,EACV,cAAc,CACf,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;QAE9D,MAAM,cAAc,GAAG,kBAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAE3E,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,iEAAiE;QACjE,+DAA+D;QAC/D,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;YAChD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;gBACtD,iDAAiD;gBACjD,kEAAkE;gBAClE,mDAAmD;gBACnD,OAAO,aAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;oBAC5C,OAAO,cAAc,CAAC;gBACxB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,WAAW,CACT,UAAkB,EAClB,cAAsB,EACtB,SAAkC;QAMlC,MAAM,cAAc,GAAG,aAAO,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,WAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAElE,6EAA6E;QAC7E,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CACzE,UAAU,EACV,cAAc,CACf,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;QAE9D,MAAM,cAAc,GAAG,kBAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAE3E,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,iEAAiE;QACjE,+DAA+D;QAC/D,sCAAsC;QACtC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAElD,OAAO;YACL,cAAc;YACd,IAAI;YACJ,GAAG,EAAE,GAAG,EAAE;gBACR,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CACV,MAAc,EACd,KAAc,EACd,KAIC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC;QACjC,MAAM,SAAS,GAAG,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;QAE1C,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE1C,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW;QACxE,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAEjD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,CACf,gCAAgC,EAChC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAC7B,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;YAClC,WAAW,EAAE,UAAU;YACvB,eAAe,EAAE,MAAM,CAAC,MAAM;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,cAAc;QACZ,MAAM,IAAI,GAAG,WAAK,CAAC,aAAa,EAAE,CAAC;QACnC,OAAO,IAAwB,CAAC;IAClC,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAW,EAAE,KAAc;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,IACE,OAAO,KAAK,KAAK,QAAQ;gBACzB,OAAO,KAAK,KAAK,QAAQ;gBACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CACN,SAAiB,EACjB,UAAsD;QAEtD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe;QACpC,gFAAgF;QAChF,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,yBAAyB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACF;AA/aD,wBA+aC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uselemma/tracing",
3
- "version": "0.2.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": {