@uselemma/tracing 2.0.0 → 2.1.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
@@ -20,9 +20,21 @@ import { registerOTel } from "@uselemma/tracing";
20
20
  registerOTel();
21
21
  ```
22
22
 
23
+ You can also enable experiment mode globally for the process:
24
+
25
+ ```typescript
26
+ import { enableExperimentMode } from "@uselemma/tracing";
27
+
28
+ enableExperimentMode();
29
+ ```
30
+
23
31
  ### 2. Wrap your agent
24
32
 
25
- `wrapAgent` creates an OpenTelemetry span around your agent function and provides helpers for recording results.
33
+ `wrapAgent` creates a root OpenTelemetry span named `ai.agent.run` and records:
34
+ - `ai.agent.name`
35
+ - `ai.agent.run_id`
36
+ - `ai.agent.input`
37
+ - `lemma.is_experiment`
26
38
 
27
39
  ```typescript
28
40
  import { wrapAgent } from "@uselemma/tracing";
@@ -40,6 +52,13 @@ const wrappedFn = wrapAgent(
40
52
  const { result, runId } = await wrappedFn();
41
53
  ```
42
54
 
55
+ ## Export Behavior
56
+
57
+ - Spans are exported in run-specific batches keyed by `ai.agent.run_id`.
58
+ - A run batch is exported when its top-level `ai.agent.run` span ends.
59
+ - `forceFlush()` exports remaining runs in separate batches per run.
60
+ - Spans with `instrumentationScope.name === "next.js"` are excluded from export.
61
+
43
62
  ## Environment Variables
44
63
 
45
64
  | Variable | Description |
@@ -0,0 +1,4 @@
1
+ export declare function enableExperimentMode(): void;
2
+ export declare function disableExperimentMode(): void;
3
+ export declare function isExperimentModeEnabled(): boolean;
4
+ //# sourceMappingURL=experiment-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiment-mode.d.ts","sourceRoot":"","sources":["../src/experiment-mode.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enableExperimentMode = enableExperimentMode;
4
+ exports.disableExperimentMode = disableExperimentMode;
5
+ exports.isExperimentModeEnabled = isExperimentModeEnabled;
6
+ let experimentModeEnabled = false;
7
+ function enableExperimentMode() {
8
+ experimentModeEnabled = true;
9
+ }
10
+ function disableExperimentMode() {
11
+ experimentModeEnabled = false;
12
+ }
13
+ function isExperimentModeEnabled() {
14
+ return experimentModeEnabled;
15
+ }
16
+ //# sourceMappingURL=experiment-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiment-mode.js","sourceRoot":"","sources":["../src/experiment-mode.ts"],"names":[],"mappings":";;AAEA,oDAEC;AAED,sDAEC;AAED,0DAEC;AAZD,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAElC,SAAgB,oBAAoB;IAClC,qBAAqB,GAAG,IAAI,CAAC;AAC/B,CAAC;AAED,SAAgB,qBAAqB;IACnC,qBAAqB,GAAG,KAAK,CAAC;AAChC,CAAC;AAED,SAAgB,uBAAuB;IACrC,OAAO,qBAAqB,CAAC;AAC/B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { registerOTel, createLemmaSpanProcessor, type LemmaOTelOptions, type RegisterOTelOptions, type CreateLemmaSpanProcessorOptions, } from "./register";
2
+ export { enableExperimentMode, disableExperimentMode, isExperimentModeEnabled, } from "./experiment-mode";
2
3
  export { wrapAgent, type TraceContext } from "./trace-wrapper";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACrC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACrC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wrapAgent = exports.createLemmaSpanProcessor = exports.registerOTel = void 0;
3
+ exports.wrapAgent = exports.isExperimentModeEnabled = exports.disableExperimentMode = exports.enableExperimentMode = exports.createLemmaSpanProcessor = exports.registerOTel = void 0;
4
4
  var register_1 = require("./register");
5
5
  Object.defineProperty(exports, "registerOTel", { enumerable: true, get: function () { return register_1.registerOTel; } });
6
6
  Object.defineProperty(exports, "createLemmaSpanProcessor", { enumerable: true, get: function () { return register_1.createLemmaSpanProcessor; } });
7
+ var experiment_mode_1 = require("./experiment-mode");
8
+ Object.defineProperty(exports, "enableExperimentMode", { enumerable: true, get: function () { return experiment_mode_1.enableExperimentMode; } });
9
+ Object.defineProperty(exports, "disableExperimentMode", { enumerable: true, get: function () { return experiment_mode_1.disableExperimentMode; } });
10
+ Object.defineProperty(exports, "isExperimentModeEnabled", { enumerable: true, get: function () { return experiment_mode_1.isExperimentModeEnabled; } });
7
11
  var trace_wrapper_1 = require("./trace-wrapper");
8
12
  Object.defineProperty(exports, "wrapAgent", { enumerable: true, get: function () { return trace_wrapper_1.wrapAgent; } });
9
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AALlB,wGAAA,YAAY,OAAA;AACZ,oHAAA,wBAAwB,OAAA;AAK1B,iDAA+D;AAAtD,0GAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AALlB,wGAAA,YAAY,OAAA;AACZ,oHAAA,wBAAwB,OAAA;AAK1B,qDAI2B;AAHzB,uHAAA,oBAAoB,OAAA;AACpB,wHAAA,qBAAqB,OAAA;AACrB,0HAAA,uBAAuB,OAAA;AAEzB,iDAA+D;AAAtD,0GAAA,SAAS,OAAA"}
@@ -1,5 +1,5 @@
1
1
  import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
2
- import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
2
+ import { type SpanProcessor } from "@opentelemetry/sdk-trace-base";
3
3
  export type LemmaOTelOptions = {
4
4
  /** Lemma API key. Defaults to LEMMA_API_KEY environment variable. */
5
5
  apiKey?: string;
@@ -34,7 +34,7 @@ export type CreateLemmaSpanProcessorOptions = LemmaOTelOptions;
34
34
  * });
35
35
  * provider.register();
36
36
  */
37
- export declare function createLemmaSpanProcessor(options?: LemmaOTelOptions): BatchSpanProcessor;
37
+ export declare function createLemmaSpanProcessor(options?: LemmaOTelOptions): SpanProcessor;
38
38
  /**
39
39
  * Registers an OpenTelemetry tracer provider configured to send traces to Lemma.
40
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACnD,+CAA+C;AAC/C,MAAM,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,gBAAqB,GAC7B,kBAAkB,CAoBpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,sBAU1D"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACnD,+CAA+C;AAC/C,MAAM,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,gBAAqB,GAC7B,aAAa,CAoBf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,sBAU1D"}
package/dist/register.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLemmaSpanProcessor = createLemmaSpanProcessor;
4
4
  exports.registerOTel = registerOTel;
5
5
  const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
6
- const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
7
6
  const exporter_trace_otlp_proto_1 = require("@opentelemetry/exporter-trace-otlp-proto");
7
+ const run_batch_span_processor_1 = require("./run-batch-span-processor");
8
8
  /**
9
9
  * Creates a `BatchSpanProcessor` pre-configured to export traces to Lemma.
10
10
  *
@@ -34,7 +34,7 @@ function createLemmaSpanProcessor(options = {}) {
34
34
  if (!apiKey || !projectId) {
35
35
  throw new Error("@uselemma/tracing: Missing API key and/or project ID. Set the LEMMA_API_KEY and LEMMA_PROJECT_ID environment variables or pass them to createLemmaSpanProcessor().");
36
36
  }
37
- return new sdk_trace_base_1.BatchSpanProcessor(new exporter_trace_otlp_proto_1.OTLPTraceExporter({
37
+ return new run_batch_span_processor_1.RunBatchSpanProcessor(new exporter_trace_otlp_proto_1.OTLPTraceExporter({
38
38
  url: `${baseUrl}/otel/v1/traces`,
39
39
  headers: {
40
40
  Authorization: `Bearer ${apiKey}`,
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":";;AAyCA,4DAsBC;AAwBD,oCAUC;AAjGD,kEAAmE;AACnE,kEAAmE;AACnE,wFAA6E;AAiB7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,wBAAwB,CACtC,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,yBAAyB,CAAC;IAE7D,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,oKAAoK,CACrK,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,mCAAkB,CAC3B,IAAI,6CAAiB,CAAC;QACpB,GAAG,EAAE,GAAG,OAAO,iBAAiB;QAChC,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,oBAAoB,EAAE,SAAS;SAChC;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,YAAY,CAAC,UAA4B,EAAE;IACzD,MAAM,cAAc,GAAG,IAAI,mCAAkB,CAAC;QAC5C,cAAc,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;KACpD,CAAC,CAAC;IAEH,8DAA8D;IAC9D,8CAA8C;IAC9C,cAAc,CAAC,QAAQ,EAAE,CAAC;IAE1B,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":";;AA0CA,4DAsBC;AAwBD,oCAUC;AAlGD,kEAAmE;AAEnE,wFAA6E;AAC7E,yEAAmE;AAiBnE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,wBAAwB,CACtC,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,yBAAyB,CAAC;IAE7D,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,oKAAoK,CACrK,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,gDAAqB,CAC9B,IAAI,6CAAiB,CAAC;QACpB,GAAG,EAAE,GAAG,OAAO,iBAAiB;QAChC,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,oBAAoB,EAAE,SAAS;SAChC;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,YAAY,CAAC,UAA4B,EAAE;IACzD,MAAM,cAAc,GAAG,IAAI,mCAAkB,CAAC;QAC5C,cAAc,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;KACpD,CAAC,CAAC;IAEH,8DAA8D;IAC9D,8CAA8C;IAC9C,cAAc,CAAC,QAAQ,EAAE,CAAC;IAE1B,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { Context } from "@opentelemetry/api";
2
+ import { type ReadableSpan, type Span, type SpanExporter, type SpanProcessor } from "@opentelemetry/sdk-trace-base";
3
+ export declare class RunBatchSpanProcessor implements SpanProcessor {
4
+ private isShutdown;
5
+ private spanIdToRunId;
6
+ private batches;
7
+ private endedRuns;
8
+ private readonly exporter;
9
+ constructor(exporter: SpanExporter);
10
+ onStart(span: Span, _parentContext: Context): void;
11
+ onEnd(span: ReadableSpan): void;
12
+ forceFlush(): Promise<void>;
13
+ shutdown(): Promise<void>;
14
+ private isTopLevelRun;
15
+ private getRunIdFromSpan;
16
+ private getInstrumentationScopeName;
17
+ private exportRunBatch;
18
+ private clearRunMapping;
19
+ }
20
+ //# sourceMappingURL=run-batch-span-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-batch-span-processor.d.ts","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAKvC,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;gBAE5B,QAAQ,EAAE,YAAY;IAIlC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IAoBlD,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAyBzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,2BAA2B;YAQrB,cAAc;IAgB5B,OAAO,CAAC,eAAe;CAOxB"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunBatchSpanProcessor = void 0;
4
+ const crypto_1 = require("crypto");
5
+ class RunBatchSpanProcessor {
6
+ isShutdown = false;
7
+ spanIdToRunId = new Map();
8
+ batches = new Map();
9
+ endedRuns = new Set();
10
+ exporter;
11
+ constructor(exporter) {
12
+ this.exporter = exporter;
13
+ }
14
+ onStart(span, _parentContext) {
15
+ const spanId = span.spanContext().spanId;
16
+ if (this.isTopLevelRun(span)) {
17
+ const runId = this.getRunIdFromSpan(span) ?? (0, crypto_1.randomUUID)();
18
+ span.setAttribute("ai.agent.run_id", runId);
19
+ this.spanIdToRunId.set(spanId, runId);
20
+ return;
21
+ }
22
+ const parentSpanId = span.parentSpanContext?.spanId;
23
+ if (!parentSpanId)
24
+ return;
25
+ const runId = this.spanIdToRunId.get(parentSpanId);
26
+ if (!runId)
27
+ return;
28
+ this.spanIdToRunId.set(spanId, runId);
29
+ span.setAttribute("ai.agent.run_id", runId);
30
+ }
31
+ onEnd(span) {
32
+ const spanId = span.spanContext().spanId;
33
+ const runId = this.spanIdToRunId.get(spanId) ??
34
+ (span.parentSpanContext?.spanId
35
+ ? this.spanIdToRunId.get(span.parentSpanContext.spanId)
36
+ : undefined);
37
+ if (!runId)
38
+ return;
39
+ const isTopLevelRun = this.isTopLevelRun(span);
40
+ const shouldSkipExport = this.getInstrumentationScopeName(span) === "next.js";
41
+ if (!shouldSkipExport) {
42
+ const batch = this.batches.get(runId);
43
+ if (batch)
44
+ batch.push(span);
45
+ else
46
+ this.batches.set(runId, [span]);
47
+ }
48
+ if (isTopLevelRun) {
49
+ this.endedRuns.add(runId);
50
+ void this.exportRunBatch(runId, false);
51
+ }
52
+ }
53
+ async forceFlush() {
54
+ const runIds = [...this.batches.keys()];
55
+ await Promise.all(runIds.map((runId) => this.exportRunBatch(runId, true)));
56
+ if (this.exporter.forceFlush) {
57
+ await this.exporter.forceFlush();
58
+ }
59
+ }
60
+ async shutdown() {
61
+ if (this.isShutdown)
62
+ return;
63
+ this.isShutdown = true;
64
+ await this.forceFlush();
65
+ this.exporter.shutdown();
66
+ }
67
+ isTopLevelRun(span) {
68
+ return span.name === "ai.agent.run" && !span.parentSpanContext;
69
+ }
70
+ getRunIdFromSpan(span) {
71
+ const attributes = span
72
+ .attributes;
73
+ const runId = attributes?.["ai.agent.run_id"];
74
+ return typeof runId === "string" && runId.length > 0 ? runId : undefined;
75
+ }
76
+ getInstrumentationScopeName(span) {
77
+ return span.instrumentationScope?.name;
78
+ }
79
+ async exportRunBatch(runId, force) {
80
+ if (!force && !this.endedRuns.has(runId))
81
+ return;
82
+ const batch = this.batches.get(runId);
83
+ this.batches.delete(runId);
84
+ this.endedRuns.delete(runId);
85
+ this.clearRunMapping(runId);
86
+ if (!batch || batch.length === 0)
87
+ return;
88
+ await new Promise((resolve) => {
89
+ this.exporter.export(batch, () => resolve());
90
+ });
91
+ }
92
+ clearRunMapping(runId) {
93
+ for (const [spanId, mappedRunId] of this.spanIdToRunId.entries()) {
94
+ if (mappedRunId === runId) {
95
+ this.spanIdToRunId.delete(spanId);
96
+ }
97
+ }
98
+ }
99
+ }
100
+ exports.RunBatchSpanProcessor = RunBatchSpanProcessor;
101
+ //# sourceMappingURL=run-batch-span-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-batch-span-processor.js","sourceRoot":"","sources":["../src/run-batch-span-processor.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,8 @@ export type TraceContext = {
15
15
  * Wraps an agent function with OpenTelemetry tracing, automatically creating
16
16
  * a span for the agent run and providing a `TraceContext` to the wrapped function.
17
17
  *
18
- * The returned function creates a new span on every invocation, attaches agent
19
- * metadata (run ID, input, experiment flag), and handles error recording.
18
+ * The returned function creates a new root span on every invocation, attaches
19
+ * agent metadata (name, run ID, input, experiment flag), and handles error recording.
20
20
  * The `input` passed to the returned function is recorded as the agent's initial
21
21
  * state on the span.
22
22
  *
@@ -41,7 +41,7 @@ export type TraceContext = {
41
41
  * { endOnExit: false },
42
42
  * );
43
43
  *
44
- * @param agentName - Human-readable name used as the span name.
44
+ * @param agentName - Human-readable agent name recorded as `ai.agent.name`.
45
45
  * @param fn - The agent function to wrap. Receives a {@link TraceContext} as its first argument and the call-time input as its second.
46
46
  * @param options - Configuration for the agent trace.
47
47
  * @param options.isExperiment - Mark this run as an experiment in Lemma.
@@ -1 +1 @@
1
- {"version":3,"file":"trace-wrapper.d.ts","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,MAAM,YAAY,GAAG;IACzB,wDAAwD;IACxD,IAAI,EAAE,IAAI,CAAC;IACX,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,2FAA2F;IAC3F,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,4EAA4E;IAC5E,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CACpE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,KAAK,GAAG,EAAE,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,UAC9H,GAAG,SAAS,KAAK;;;;GA8DhE"}
1
+ {"version":3,"file":"trace-wrapper.d.ts","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAIxE,MAAM,MAAM,YAAY,GAAG;IACzB,wDAAwD;IACxD,IAAI,EAAE,IAAI,CAAC;IACX,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,2FAA2F;IAC3F,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,4EAA4E;IAC5E,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CACpE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,KAAK,GAAG,EAAE,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,UAC9H,GAAG,SAAS,KAAK;;;;GA+DhE"}
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.wrapAgent = wrapAgent;
4
4
  const api_1 = require("@opentelemetry/api");
5
5
  const uuid_1 = require("uuid");
6
+ const experiment_mode_1 = require("./experiment-mode");
6
7
  /**
7
8
  * Wraps an agent function with OpenTelemetry tracing, automatically creating
8
9
  * a span for the agent run and providing a `TraceContext` to the wrapped function.
9
10
  *
10
- * The returned function creates a new span on every invocation, attaches agent
11
- * metadata (run ID, input, experiment flag), and handles error recording.
11
+ * The returned function creates a new root span on every invocation, attaches
12
+ * agent metadata (name, run ID, input, experiment flag), and handles error recording.
12
13
  * The `input` passed to the returned function is recorded as the agent's initial
13
14
  * state on the span.
14
15
  *
@@ -33,7 +34,7 @@ const uuid_1 = require("uuid");
33
34
  * { endOnExit: false },
34
35
  * );
35
36
  *
36
- * @param agentName - Human-readable name used as the span name.
37
+ * @param agentName - Human-readable agent name recorded as `ai.agent.name`.
37
38
  * @param fn - The agent function to wrap. Receives a {@link TraceContext} as its first argument and the call-time input as its second.
38
39
  * @param options - Configuration for the agent trace.
39
40
  * @param options.isExperiment - Mark this run as an experiment in Lemma.
@@ -46,21 +47,22 @@ function wrapAgent(agentName, fn, options) {
46
47
  const tracer = api_1.trace.getTracer("lemma");
47
48
  // Generate a unique run ID and open a new span for this agent invocation
48
49
  const runId = (0, uuid_1.v4)();
49
- const span = tracer.startSpan(agentName, {
50
+ const span = tracer.startSpan("ai.agent.run", {
50
51
  attributes: {
51
- "lemma.agent.run_id": runId,
52
- "lemma.agent.input": JSON.stringify(input),
53
- "lemma.agent.is_experiment": options?.isExperiment,
52
+ "ai.agent.name": agentName,
53
+ "ai.agent.run_id": runId,
54
+ "ai.agent.input": JSON.stringify(input),
55
+ "lemma.is_experiment": (0, experiment_mode_1.isExperimentModeEnabled)() || options?.isExperiment === true,
54
56
  },
55
- });
57
+ }, api_1.ROOT_CONTEXT);
56
58
  // Propagate the span as the active context so child spans are nested correctly
57
- const ctx = api_1.trace.setSpan(api_1.context.active(), span);
59
+ const ctx = api_1.trace.setSpan(api_1.ROOT_CONTEXT, span);
58
60
  try {
59
61
  return await api_1.context.with(ctx, async () => {
60
62
  // Build the TraceContext callbacks that the agent function can use
61
63
  // to manually signal completion, errors, or record generation results
62
64
  const onComplete = (result) => {
63
- span.setAttribute("lemma.agent.output", JSON.stringify(result));
65
+ span.setAttribute("ai.agent.output", JSON.stringify(result));
64
66
  span.end();
65
67
  };
66
68
  const onError = (error) => {
@@ -70,7 +72,7 @@ function wrapAgent(agentName, fn, options) {
70
72
  span.end();
71
73
  };
72
74
  const recordGenerationResults = (results) => {
73
- span.setAttribute("lemma.agent.generation_results", JSON.stringify(results));
75
+ span.setAttribute("ai.agent.generation_results", JSON.stringify(results));
74
76
  };
75
77
  // Invoke the wrapped agent function with the trace context and call-time input
76
78
  const result = await fn.call(this, { span, runId, onComplete, onError, recordGenerationResults }, input);
@@ -1 +1 @@
1
- {"version":3,"file":"trace-wrapper.js","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":";;AAqDA,8BA+DC;AApHD,4CAA0D;AAC1D,+BAAoC;AAepC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,SAAgB,SAAS,CAAkB,SAAiB,EAAE,EAAqD,EAAE,OAAyD;IAC5K,MAAM,eAAe,GAAG,KAAK,WAAsB,KAAY;QAC7D,wDAAwD;QACxD,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExC,yEAAyE;QACzE,MAAM,KAAK,GAAG,IAAA,SAAM,GAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE;YACvC,UAAU,EAAE;gBACV,oBAAoB,EAAE,KAAK;gBAC3B,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC1C,2BAA2B,EAAE,OAAO,EAAE,YAAY;aACnD;SACF,CAAC,CAAC;QAEH,+EAA+E;QAC/E,MAAM,GAAG,GAAG,WAAK,CAAC,OAAO,CAAC,aAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC;YACH,OAAO,MAAM,aAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;gBACxC,mEAAmE;gBACnE,sEAAsE;gBAEtE,MAAM,UAAU,GAAG,CAAC,MAAe,EAAE,EAAE;oBACrC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC,CAAC;gBAEF,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE;oBACjC,uEAAuE;oBACvE,IAAI,CAAC,eAAe,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChF,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;oBACpD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC,CAAC;gBAEF,MAAM,uBAAuB,GAAG,CAAC,OAA+B,EAAE,EAAE;oBAClE,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/E,CAAC,CAAC;gBAEF,+EAA+E;gBAC/E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,uBAAuB,EAAE,EAAE,KAAK,CAAC,CAAC;gBAEzG,qEAAqE;gBACrE,IAAI,OAAO,EAAE,SAAS,KAAK,KAAK,EAAE,CAAC;oBACjC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,0DAA0D;YAC1D,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;YAEpD,IAAI,OAAO,EAAE,SAAS,KAAK,KAAK,EAAE,CAAC;gBACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;YAED,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"trace-wrapper.js","sourceRoot":"","sources":["../src/trace-wrapper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uselemma/tracing",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "OpenTelemetry-based tracing module for Lemma",
5
5
  "license": "MIT",
6
6
  "author": "Lemma",