@traceroot-ai/traceroot 0.1.6 → 0.1.7

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.
@@ -0,0 +1,14 @@
1
+ import { Span } from '@opentelemetry/api';
2
+ import { ObserveOptions, SpanType, TokenUsage } from './types';
3
+ export declare const SPAN_KIND_MAP: Record<SpanType, string>;
4
+ export declare function trySerialize(value: unknown): string | undefined;
5
+ export declare function applyModel(span: Span, model?: string, modelParameters?: Record<string, unknown>): void;
6
+ export declare function applyUsage(span: Span, usage: TokenUsage): void;
7
+ export declare function applyIO(span: Span, io: {
8
+ input?: unknown;
9
+ output?: unknown;
10
+ }): void;
11
+ /** Moved verbatim from observe.ts:_applyCommonAttributes (kind, ambient ctx,
12
+ * session/user, input-from-args, metadata, tags, git source). */
13
+ export declare function applyCommonAttributes(span: Span, options: ObserveOptions, args: unknown[]): void;
14
+ //# sourceMappingURL=attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAW,MAAM,oBAAoB,CAAC;AAsBnD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAK/D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKlD,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAM/D;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,EACV,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,IAAI,CASN;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAe9D;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CASnF;AAED;kEACkE;AAClE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CA4BhG"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SPAN_KIND_MAP = void 0;
4
+ exports.trySerialize = trySerialize;
5
+ exports.applyModel = applyModel;
6
+ exports.applyUsage = applyUsage;
7
+ exports.applyIO = applyIO;
8
+ exports.applyCommonAttributes = applyCommonAttributes;
9
+ // src/attributes.ts — native field → OTel attribute mapping (single source of truth)
10
+ const api_1 = require("@opentelemetry/api");
11
+ const openinference_core_1 = require("@arizeai/openinference-core");
12
+ const openinference_semantic_conventions_1 = require("@arizeai/openinference-semantic-conventions");
13
+ const constants_1 = require("./constants");
14
+ const git_context_1 = require("./git_context");
15
+ const OPENINFERENCE_SPAN_KIND = openinference_semantic_conventions_1.SemanticConventions.OPENINFERENCE_SPAN_KIND;
16
+ exports.SPAN_KIND_MAP = {
17
+ agent: 'AGENT',
18
+ tool: 'TOOL',
19
+ llm: 'LLM',
20
+ span: 'CHAIN',
21
+ };
22
+ function trySerialize(value) {
23
+ try {
24
+ return JSON.stringify(value);
25
+ }
26
+ catch {
27
+ return undefined;
28
+ }
29
+ }
30
+ function applyModel(span, model, modelParameters) {
31
+ if (model !== undefined) {
32
+ span.setAttribute(constants_1.OI_LLM_MODEL_NAME, model); // read by backend
33
+ span.setAttribute(constants_1.LLM_MODEL, model); // back-compat
34
+ }
35
+ if (modelParameters !== undefined) {
36
+ const s = trySerialize(modelParameters);
37
+ if (s !== undefined)
38
+ span.setAttribute(constants_1.LLM_MODEL_PARAMETERS, s);
39
+ }
40
+ }
41
+ function applyUsage(span, usage) {
42
+ const input = usage.input ?? 0;
43
+ const cacheRead = usage.cacheRead ?? 0;
44
+ const cacheWrite = usage.cacheWrite ?? 0;
45
+ const output = usage.output ?? 0;
46
+ const prompt = input + cacheRead + cacheWrite; // GROSS
47
+ if (prompt > 0)
48
+ span.setAttribute(constants_1.OI_LLM_TOKEN_COUNT_PROMPT, prompt);
49
+ if (output > 0)
50
+ span.setAttribute(constants_1.OI_LLM_TOKEN_COUNT_COMPLETION, output);
51
+ const total = usage.total ?? prompt + output;
52
+ if (total > 0)
53
+ span.setAttribute(constants_1.OI_LLM_TOKEN_COUNT_TOTAL, total);
54
+ if (cacheRead > 0)
55
+ span.setAttribute(constants_1.OI_LLM_TOKEN_COUNT_CACHE_READ, cacheRead);
56
+ if (cacheWrite > 0)
57
+ span.setAttribute(constants_1.OI_LLM_TOKEN_COUNT_CACHE_WRITE, cacheWrite);
58
+ // Preserve the full object (incl. any custom keys) as a blob for completeness.
59
+ const blob = trySerialize(usage);
60
+ if (blob !== undefined)
61
+ span.setAttribute(constants_1.LLM_USAGE, blob);
62
+ }
63
+ function applyIO(span, io) {
64
+ if (io.input !== undefined) {
65
+ const s = trySerialize(io.input);
66
+ if (s !== undefined)
67
+ span.setAttribute(openinference_semantic_conventions_1.INPUT_VALUE, s);
68
+ }
69
+ if (io.output !== undefined) {
70
+ const s = trySerialize(io.output);
71
+ if (s !== undefined)
72
+ span.setAttribute(openinference_semantic_conventions_1.OUTPUT_VALUE, s);
73
+ }
74
+ }
75
+ /** Moved verbatim from observe.ts:_applyCommonAttributes (kind, ambient ctx,
76
+ * session/user, input-from-args, metadata, tags, git source). */
77
+ function applyCommonAttributes(span, options, args) {
78
+ span.setAttribute(OPENINFERENCE_SPAN_KIND, exports.SPAN_KIND_MAP[options.type ?? 'span']);
79
+ const ctxAttrs = (0, openinference_core_1.getAttributesFromContext)(api_1.context.active());
80
+ if (ctxAttrs && Object.keys(ctxAttrs).length > 0)
81
+ span.setAttributes(ctxAttrs);
82
+ if (options.sessionId !== undefined)
83
+ span.setAttribute(openinference_semantic_conventions_1.SESSION_ID, options.sessionId);
84
+ if (options.userId !== undefined)
85
+ span.setAttribute(openinference_semantic_conventions_1.USER_ID, options.userId);
86
+ if (options.captureInput !== false && args.length > 0) {
87
+ const inputValue = args.length === 1 ? args[0] : args;
88
+ const s = trySerialize(inputValue);
89
+ if (s !== undefined)
90
+ span.setAttribute(openinference_semantic_conventions_1.INPUT_VALUE, s);
91
+ }
92
+ if (options.metadata !== undefined) {
93
+ const s = trySerialize(options.metadata);
94
+ if (s !== undefined)
95
+ span.setAttribute(constants_1.SPAN_METADATA, s);
96
+ }
97
+ if (options.tags !== undefined) {
98
+ const s = trySerialize(options.tags);
99
+ if (s !== undefined)
100
+ span.setAttribute(constants_1.SPAN_TAGS, s);
101
+ }
102
+ const loc = (0, git_context_1.captureSourceLocation)();
103
+ if (loc.file !== undefined)
104
+ span.setAttribute('traceroot.git.source_file', loc.file);
105
+ if (loc.line !== undefined)
106
+ span.setAttribute('traceroot.git.source_line', loc.line);
107
+ if (loc.functionName !== undefined)
108
+ span.setAttribute('traceroot.git.source_function', loc.functionName);
109
+ }
110
+ //# sourceMappingURL=attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":";;;AAmCA,oCAMC;AAED,gCAaC;AAED,gCAeC;AAED,0BASC;AAID,sDA4BC;AApHD,qFAAqF;AACrF,4CAAmD;AACnD,oEAAuE;AACvE,oGAMqD;AACrD,2CAYqB;AAErB,+CAAsD;AAEtD,MAAM,uBAAuB,GAAG,wDAAmB,CAAC,uBAAuB,CAAC;AAE/D,QAAA,aAAa,GAA6B;IACrD,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,SAAgB,YAAY,CAAC,KAAc;IACzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CACxB,IAAU,EACV,KAAc,EACd,eAAyC;IAEzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,6BAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,kBAAkB;QAC/D,IAAI,CAAC,YAAY,CAAC,qBAAS,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc;IACrD,CAAC;IACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,CAAC,gCAAoB,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,IAAU,EAAE,KAAiB;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC,QAAQ;IACvD,IAAI,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,YAAY,CAAC,qCAAyB,EAAE,MAAM,CAAC,CAAC;IACrE,IAAI,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,YAAY,CAAC,yCAA6B,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM,GAAG,MAAM,CAAC;IAC7C,IAAI,KAAK,GAAG,CAAC;QAAE,IAAI,CAAC,YAAY,CAAC,oCAAwB,EAAE,KAAK,CAAC,CAAC;IAClE,IAAI,SAAS,GAAG,CAAC;QAAE,IAAI,CAAC,YAAY,CAAC,yCAA6B,EAAE,SAAS,CAAC,CAAC;IAC/E,IAAI,UAAU,GAAG,CAAC;QAAE,IAAI,CAAC,YAAY,CAAC,0CAA8B,EAAE,UAAU,CAAC,CAAC;IAClF,+EAA+E;IAC/E,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,CAAC,qBAAS,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,SAAgB,OAAO,CAAC,IAAU,EAAE,EAAyC;IAC3E,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,CAAC,gDAAW,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,CAAC,iDAAY,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;kEACkE;AAClE,SAAgB,qBAAqB,CAAC,IAAU,EAAE,OAAuB,EAAE,IAAe;IACxF,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,qBAAa,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAG,IAAA,6CAAwB,EAAC,aAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE/E,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,CAAC,+CAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,CAAC,4CAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7E,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,CAAC,gDAAW,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,CAAC,yBAAa,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,CAAC,qBAAS,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,mCAAqB,GAAE,CAAC;IACpC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACrF,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACrF,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;QAChC,IAAI,CAAC,YAAY,CAAC,+BAA+B,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;AACzE,CAAC"}
@@ -13,6 +13,9 @@ export declare const TOOL_NAME = "tool.name";
13
13
  export declare const OI_LLM_MODEL_NAME = "llm.model_name";
14
14
  export declare const OI_LLM_TOKEN_COUNT_PROMPT = "llm.token_count.prompt";
15
15
  export declare const OI_LLM_TOKEN_COUNT_COMPLETION = "llm.token_count.completion";
16
+ export declare const OI_LLM_TOKEN_COUNT_TOTAL = "llm.token_count.total";
17
+ export declare const OI_LLM_TOKEN_COUNT_CACHE_READ = "llm.token_count.prompt_details.cache_read";
18
+ export declare const OI_LLM_TOKEN_COUNT_CACHE_WRITE = "llm.token_count.prompt_details.cache_write";
16
19
  export declare const LLM_MODEL = "traceroot.llm.model";
17
20
  export declare const LLM_MODEL_PARAMETERS = "traceroot.llm.model_parameters";
18
21
  export declare const LLM_USAGE = "traceroot.llm.usage";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,UAAU,eAAe,CAAC;AAGvC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAGtC,eAAO,MAAM,YAAY,4BAA4B,CAAC;AACtD,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAC9C,eAAO,MAAM,aAAa,4BAA4B,CAAC;AACvD,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAC/C,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,SAAS,cAAc,CAAC;AAGrC,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AAC1E,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAC/C,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AACrE,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAC/C,eAAO,MAAM,UAAU,yBAAyB,CAAC;AAGjD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAChD,eAAO,MAAM,cAAc,6BAA6B,CAAC;AACzD,eAAO,MAAM,UAAU,yBAAyB,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;CA6BjB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,UAAU,eAAe,CAAC;AAGvC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAGtC,eAAO,MAAM,YAAY,4BAA4B,CAAC;AACtD,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAC9C,eAAO,MAAM,aAAa,4BAA4B,CAAC;AACvD,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAC/C,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,SAAS,cAAc,CAAC;AAGrC,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AAC1E,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAChE,eAAO,MAAM,6BAA6B,8CAA8C,CAAC;AACzF,eAAO,MAAM,8BAA8B,+CAA+C,CAAC;AAC3F,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAC/C,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AACrE,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAC/C,eAAO,MAAM,UAAU,yBAAyB,CAAC;AAGjD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAChD,eAAO,MAAM,cAAc,6BAA6B,CAAC;AACzD,eAAO,MAAM,UAAU,yBAAyB,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;CA6BjB,CAAC"}
package/dist/constants.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // src/constants.ts — TraceRoot-specific span attribute keys and SDK defaults
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.SpanAttributes = exports.TRACE_TAGS = exports.TRACE_METADATA = exports.OI_TRACE_SESSION_ID = exports.OI_TRACE_USER_ID = exports.LLM_PROMPT = exports.LLM_USAGE = exports.LLM_MODEL_PARAMETERS = exports.LLM_MODEL = exports.OI_LLM_TOKEN_COUNT_COMPLETION = exports.OI_LLM_TOKEN_COUNT_PROMPT = exports.OI_LLM_MODEL_NAME = exports.TOOL_NAME = exports.AGENT_NAME = exports.SPAN_TAGS = exports.SPAN_METADATA = exports.OI_OUTPUT_VALUE = exports.OI_INPUT_VALUE = exports.OI_SPAN_KIND = exports.DEFAULT_TIMEOUT_SEC = exports.DEFAULT_FLUSH_AT = exports.DEFAULT_FLUSH_INTERVAL_SEC = exports.GITHUB_SHA = exports.GITHUB_REPOSITORY = void 0;
4
+ exports.SpanAttributes = exports.TRACE_TAGS = exports.TRACE_METADATA = exports.OI_TRACE_SESSION_ID = exports.OI_TRACE_USER_ID = exports.LLM_PROMPT = exports.LLM_USAGE = exports.LLM_MODEL_PARAMETERS = exports.LLM_MODEL = exports.OI_LLM_TOKEN_COUNT_CACHE_WRITE = exports.OI_LLM_TOKEN_COUNT_CACHE_READ = exports.OI_LLM_TOKEN_COUNT_TOTAL = exports.OI_LLM_TOKEN_COUNT_COMPLETION = exports.OI_LLM_TOKEN_COUNT_PROMPT = exports.OI_LLM_MODEL_NAME = exports.TOOL_NAME = exports.AGENT_NAME = exports.SPAN_TAGS = exports.SPAN_METADATA = exports.OI_OUTPUT_VALUE = exports.OI_INPUT_VALUE = exports.OI_SPAN_KIND = exports.DEFAULT_TIMEOUT_SEC = exports.DEFAULT_FLUSH_AT = exports.DEFAULT_FLUSH_INTERVAL_SEC = exports.GITHUB_SHA = exports.GITHUB_REPOSITORY = void 0;
5
5
  // GitHub Actions environment variable names used for git-context harvesting.
6
6
  exports.GITHUB_REPOSITORY = 'GITHUB_REPOSITORY';
7
7
  exports.GITHUB_SHA = 'GITHUB_SHA';
@@ -21,6 +21,9 @@ exports.TOOL_NAME = 'tool.name';
21
21
  exports.OI_LLM_MODEL_NAME = 'llm.model_name';
22
22
  exports.OI_LLM_TOKEN_COUNT_PROMPT = 'llm.token_count.prompt';
23
23
  exports.OI_LLM_TOKEN_COUNT_COMPLETION = 'llm.token_count.completion';
24
+ exports.OI_LLM_TOKEN_COUNT_TOTAL = 'llm.token_count.total';
25
+ exports.OI_LLM_TOKEN_COUNT_CACHE_READ = 'llm.token_count.prompt_details.cache_read';
26
+ exports.OI_LLM_TOKEN_COUNT_CACHE_WRITE = 'llm.token_count.prompt_details.cache_write';
24
27
  exports.LLM_MODEL = 'traceroot.llm.model';
25
28
  exports.LLM_MODEL_PARAMETERS = 'traceroot.llm.model_parameters';
26
29
  exports.LLM_USAGE = 'traceroot.llm.usage';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA,6EAA6E;;;AAE7E,6EAA6E;AAChE,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,UAAU,GAAG,YAAY,CAAC;AAEvC,oEAAoE;AACvD,QAAA,0BAA0B,GAAG,CAAC,CAAC,CAAC,4DAA4D;AAC5F,QAAA,gBAAgB,GAAG,GAAG,CAAC,CAAC,wCAAwC;AAChE,QAAA,mBAAmB,GAAG,EAAE,CAAC,CAAC,2DAA2D;AAElG,aAAa;AACA,QAAA,YAAY,GAAG,yBAAyB,CAAC;AACzC,QAAA,cAAc,GAAG,aAAa,CAAC;AAC/B,QAAA,eAAe,GAAG,cAAc,CAAC;AACjC,QAAA,aAAa,GAAG,yBAAyB,CAAC;AAC1C,QAAA,SAAS,GAAG,qBAAqB,CAAC;AAClC,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,SAAS,GAAG,WAAW,CAAC;AAErC,eAAe;AACF,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;AACrC,QAAA,yBAAyB,GAAG,wBAAwB,CAAC;AACrD,QAAA,6BAA6B,GAAG,4BAA4B,CAAC;AAC7D,QAAA,SAAS,GAAG,qBAAqB,CAAC;AAClC,QAAA,oBAAoB,GAAG,gCAAgC,CAAC;AACxD,QAAA,SAAS,GAAG,qBAAqB,CAAC;AAClC,QAAA,UAAU,GAAG,sBAAsB,CAAC;AAEjD,cAAc;AACD,QAAA,gBAAgB,GAAG,SAAS,CAAC;AAC7B,QAAA,mBAAmB,GAAG,YAAY,CAAC;AACnC,QAAA,cAAc,GAAG,0BAA0B,CAAC;AAC5C,QAAA,UAAU,GAAG,sBAAsB,CAAC;AAEjD;;;;;;;GAOG;AACU,QAAA,cAAc,GAAG;IAC5B,aAAa;IACb,SAAS,EAAE,qBAAqB;IAChC,UAAU,EAAE,sBAAc,EAAE,gBAAgB;IAC5C,WAAW,EAAE,uBAAe,EAAE,gBAAgB;IAC9C,aAAa,EADiB,gBAAgB;IAC9C,qBAAa;IACb,SAAS,EAAT,iBAAS;IAET,eAAe;IACf,SAAS,EAAT,iBAAS;IACT,oBAAoB,EAApB,4BAAoB;IACpB,SAAS,EAAT,iBAAS;IACT,UAAU,EAAV,kBAAU;IAEV,cAAc;IACd,aAAa,EAAE,wBAAgB,EAAE,gBAAgB;IACjD,gBAAgB,EAAE,2BAAmB,EAAE,gBAAgB;IACvD,cAAc,EADyB,gBAAgB;IACvD,sBAAc;IACd,UAAU,EAAV,kBAAU;IAEV,cAAc;IACd,QAAQ,EAAE,oBAAoB;IAC9B,OAAO,EAAE,mBAAmB;IAC5B,eAAe,EAAE,2BAA2B;IAC5C,eAAe,EAAE,2BAA2B;IAC5C,mBAAmB,EAAE,+BAA+B;IAEpD,aAAa;IACb,WAAW,EAAE,wBAAwB;CAC7B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA,6EAA6E;;;AAE7E,6EAA6E;AAChE,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,UAAU,GAAG,YAAY,CAAC;AAEvC,oEAAoE;AACvD,QAAA,0BAA0B,GAAG,CAAC,CAAC,CAAC,4DAA4D;AAC5F,QAAA,gBAAgB,GAAG,GAAG,CAAC,CAAC,wCAAwC;AAChE,QAAA,mBAAmB,GAAG,EAAE,CAAC,CAAC,2DAA2D;AAElG,aAAa;AACA,QAAA,YAAY,GAAG,yBAAyB,CAAC;AACzC,QAAA,cAAc,GAAG,aAAa,CAAC;AAC/B,QAAA,eAAe,GAAG,cAAc,CAAC;AACjC,QAAA,aAAa,GAAG,yBAAyB,CAAC;AAC1C,QAAA,SAAS,GAAG,qBAAqB,CAAC;AAClC,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,SAAS,GAAG,WAAW,CAAC;AAErC,eAAe;AACF,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;AACrC,QAAA,yBAAyB,GAAG,wBAAwB,CAAC;AACrD,QAAA,6BAA6B,GAAG,4BAA4B,CAAC;AAC7D,QAAA,wBAAwB,GAAG,uBAAuB,CAAC;AACnD,QAAA,6BAA6B,GAAG,2CAA2C,CAAC;AAC5E,QAAA,8BAA8B,GAAG,4CAA4C,CAAC;AAC9E,QAAA,SAAS,GAAG,qBAAqB,CAAC;AAClC,QAAA,oBAAoB,GAAG,gCAAgC,CAAC;AACxD,QAAA,SAAS,GAAG,qBAAqB,CAAC;AAClC,QAAA,UAAU,GAAG,sBAAsB,CAAC;AAEjD,cAAc;AACD,QAAA,gBAAgB,GAAG,SAAS,CAAC;AAC7B,QAAA,mBAAmB,GAAG,YAAY,CAAC;AACnC,QAAA,cAAc,GAAG,0BAA0B,CAAC;AAC5C,QAAA,UAAU,GAAG,sBAAsB,CAAC;AAEjD;;;;;;;GAOG;AACU,QAAA,cAAc,GAAG;IAC5B,aAAa;IACb,SAAS,EAAE,qBAAqB;IAChC,UAAU,EAAE,sBAAc,EAAE,gBAAgB;IAC5C,WAAW,EAAE,uBAAe,EAAE,gBAAgB;IAC9C,aAAa,EADiB,gBAAgB;IAC9C,qBAAa;IACb,SAAS,EAAT,iBAAS;IAET,eAAe;IACf,SAAS,EAAT,iBAAS;IACT,oBAAoB,EAApB,4BAAoB;IACpB,SAAS,EAAT,iBAAS;IACT,UAAU,EAAV,kBAAU;IAEV,cAAc;IACd,aAAa,EAAE,wBAAgB,EAAE,gBAAgB;IACjD,gBAAgB,EAAE,2BAAmB,EAAE,gBAAgB;IACvD,cAAc,EADyB,gBAAgB;IACvD,sBAAc;IACd,UAAU,EAAV,kBAAU;IAEV,cAAc;IACd,QAAQ,EAAE,oBAAoB;IAC9B,OAAO,EAAE,mBAAmB;IAC5B,eAAe,EAAE,2BAA2B;IAC5C,eAAe,EAAE,2BAA2B;IAC5C,mBAAmB,EAAE,+BAA+B;IAEpD,aAAa;IACb,WAAW,EAAE,wBAAwB;CAC7B,CAAC"}
package/dist/context.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { type Span } from './spans';
2
+ import type { TokenUsage } from './types';
1
3
  /**
2
4
  * Sets attributes on the currently active span.
3
5
  * No-op when called outside an active span.
@@ -15,10 +17,12 @@ export declare function updateCurrentSpan(attrs: {
15
17
  model?: string;
16
18
  /** LLM model parameters (e.g. { temperature: 0.7, max_tokens: 1024 }). */
17
19
  modelParameters?: Record<string, unknown>;
18
- /** Token usage (e.g. { inputTokens: 100, outputTokens: 50 }). */
19
- usage?: Record<string, number>;
20
+ /** Token usage (e.g. { input: 100, output: 50 }). */
21
+ usage?: TokenUsage;
20
22
  /** Prompt / messages sent to the LLM. */
21
23
  prompt?: unknown;
24
+ /** Arbitrary span attributes for keys the typed fields don't cover. */
25
+ attributes?: Record<string, string | number | boolean>;
22
26
  }): void;
23
27
  /**
24
28
  * Sets trace-level association attributes (user, session, tags, metadata) on the
@@ -30,6 +34,8 @@ export declare function updateCurrentTrace(attrs: {
30
34
  tags?: string[];
31
35
  metadata?: Record<string, unknown>;
32
36
  }): void;
37
+ /** The active span as a TraceRoot handle, or undefined outside a span. */
38
+ export declare function getCurrentSpan(): Span | undefined;
33
39
  /**
34
40
  * Returns the trace ID of the currently active span, or undefined if no span is active.
35
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,IAAI,CAoDP;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,IAAI,CAwBP;AAOD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAErD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,qDAAqD;IACrD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACxD,GAAG,IAAI,CA2BP;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,IAAI,CAwBP;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,IAAI,IAAI,GAAG,SAAS,CAGjD;AAOD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAErD"}
package/dist/context.js CHANGED
@@ -2,12 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateCurrentSpan = updateCurrentSpan;
4
4
  exports.updateCurrentTrace = updateCurrentTrace;
5
+ exports.getCurrentSpan = getCurrentSpan;
5
6
  exports.getCurrentTraceId = getCurrentTraceId;
6
7
  exports.getCurrentSpanId = getCurrentSpanId;
7
8
  // src/context.ts
8
9
  const api_1 = require("@opentelemetry/api");
9
10
  const openinference_semantic_conventions_1 = require("@arizeai/openinference-semantic-conventions");
10
11
  const constants_1 = require("./constants");
12
+ const spans_1 = require("./spans");
13
+ const attributes_1 = require("./attributes");
11
14
  /**
12
15
  * Sets attributes on the currently active span.
13
16
  * No-op when called outside an active span.
@@ -22,22 +25,7 @@ function updateCurrentSpan(attrs) {
22
25
  if (attrs.name !== undefined) {
23
26
  span.updateName(attrs.name);
24
27
  }
25
- if (attrs.input !== undefined) {
26
- try {
27
- span.setAttribute(openinference_semantic_conventions_1.INPUT_VALUE, JSON.stringify(attrs.input));
28
- }
29
- catch {
30
- /* non-serializable */
31
- }
32
- }
33
- if (attrs.output !== undefined) {
34
- try {
35
- span.setAttribute(openinference_semantic_conventions_1.OUTPUT_VALUE, JSON.stringify(attrs.output));
36
- }
37
- catch {
38
- /* non-serializable */
39
- }
40
- }
28
+ (0, attributes_1.applyIO)(span, { input: attrs.input, output: attrs.output });
41
29
  if (attrs.metadata !== undefined) {
42
30
  try {
43
31
  span.setAttribute(constants_1.SPAN_METADATA, JSON.stringify(attrs.metadata));
@@ -46,25 +34,11 @@ function updateCurrentSpan(attrs) {
46
34
  /* non-serializable */
47
35
  }
48
36
  }
49
- if (attrs.model !== undefined) {
50
- span.setAttribute(constants_1.LLM_MODEL, attrs.model);
51
- }
52
- if (attrs.modelParameters !== undefined) {
53
- try {
54
- span.setAttribute(constants_1.LLM_MODEL_PARAMETERS, JSON.stringify(attrs.modelParameters));
55
- }
56
- catch {
57
- /* non-serializable */
58
- }
59
- }
60
- if (attrs.usage !== undefined) {
61
- try {
62
- span.setAttribute(constants_1.LLM_USAGE, JSON.stringify(attrs.usage));
63
- }
64
- catch {
65
- /* non-serializable */
66
- }
37
+ if (attrs.model !== undefined || attrs.modelParameters !== undefined) {
38
+ (0, attributes_1.applyModel)(span, attrs.model, attrs.modelParameters);
67
39
  }
40
+ if (attrs.usage !== undefined)
41
+ (0, attributes_1.applyUsage)(span, attrs.usage);
68
42
  if (attrs.prompt !== undefined) {
69
43
  try {
70
44
  span.setAttribute(constants_1.LLM_PROMPT, JSON.stringify(attrs.prompt));
@@ -73,6 +47,8 @@ function updateCurrentSpan(attrs) {
73
47
  /* non-serializable */
74
48
  }
75
49
  }
50
+ if (attrs.attributes !== undefined)
51
+ span.setAttributes(attrs.attributes);
76
52
  }
77
53
  /**
78
54
  * Sets trace-level association attributes (user, session, tags, metadata) on the
@@ -105,6 +81,11 @@ function updateCurrentTrace(attrs) {
105
81
  }
106
82
  }
107
83
  }
84
+ /** The active span as a TraceRoot handle, or undefined outside a span. */
85
+ function getCurrentSpan() {
86
+ const otel = api_1.trace.getActiveSpan();
87
+ return otel ? (0, spans_1.wrapSpan)(otel) : undefined;
88
+ }
108
89
  function activeSpanContext() {
109
90
  const span = api_1.trace.getActiveSpan();
110
91
  return span ? span.spanContext() : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,12 @@
1
1
  export { TraceRoot } from './traceroot';
2
2
  export { observe } from './observe';
3
- export { updateCurrentSpan, updateCurrentTrace, getCurrentTraceId, getCurrentSpanId, } from './context';
3
+ export { updateCurrentSpan, updateCurrentTrace, getCurrentTraceId, getCurrentSpanId, getCurrentSpan, } from './context';
4
4
  export { usingAttributes } from './usingAttributes';
5
5
  export { SpanAttributes } from './constants';
6
6
  export type { SpanType, ObserveOptions, InitializeOptions } from './types';
7
7
  export type { UsingAttributesOptions } from './usingAttributes';
8
8
  export { OpenAIAgentsProcessor } from './openai-agents';
9
+ export { startSpan, usingSpan } from './spans';
10
+ export type { Span } from './spans';
11
+ export type { StartSpanOptions, SpanUpdate, TokenUsage } from './types';
9
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenAIAgentsProcessor = exports.SpanAttributes = exports.usingAttributes = exports.getCurrentSpanId = exports.getCurrentTraceId = exports.updateCurrentTrace = exports.updateCurrentSpan = exports.observe = exports.TraceRoot = void 0;
3
+ exports.usingSpan = exports.startSpan = exports.OpenAIAgentsProcessor = exports.SpanAttributes = exports.usingAttributes = exports.getCurrentSpan = exports.getCurrentSpanId = exports.getCurrentTraceId = exports.updateCurrentTrace = exports.updateCurrentSpan = exports.observe = exports.TraceRoot = void 0;
4
4
  // src/index.ts
5
5
  var traceroot_1 = require("./traceroot");
6
6
  Object.defineProperty(exports, "TraceRoot", { enumerable: true, get: function () { return traceroot_1.TraceRoot; } });
@@ -11,10 +11,14 @@ Object.defineProperty(exports, "updateCurrentSpan", { enumerable: true, get: fun
11
11
  Object.defineProperty(exports, "updateCurrentTrace", { enumerable: true, get: function () { return context_1.updateCurrentTrace; } });
12
12
  Object.defineProperty(exports, "getCurrentTraceId", { enumerable: true, get: function () { return context_1.getCurrentTraceId; } });
13
13
  Object.defineProperty(exports, "getCurrentSpanId", { enumerable: true, get: function () { return context_1.getCurrentSpanId; } });
14
+ Object.defineProperty(exports, "getCurrentSpan", { enumerable: true, get: function () { return context_1.getCurrentSpan; } });
14
15
  var usingAttributes_1 = require("./usingAttributes");
15
16
  Object.defineProperty(exports, "usingAttributes", { enumerable: true, get: function () { return usingAttributes_1.usingAttributes; } });
16
17
  var constants_1 = require("./constants");
17
18
  Object.defineProperty(exports, "SpanAttributes", { enumerable: true, get: function () { return constants_1.SpanAttributes; } });
18
19
  var openai_agents_1 = require("./openai-agents");
19
20
  Object.defineProperty(exports, "OpenAIAgentsProcessor", { enumerable: true, get: function () { return openai_agents_1.OpenAIAgentsProcessor; } });
21
+ var spans_1 = require("./spans");
22
+ Object.defineProperty(exports, "startSpan", { enumerable: true, get: function () { return spans_1.startSpan; } });
23
+ Object.defineProperty(exports, "usingSpan", { enumerable: true, get: function () { return spans_1.usingSpan; } });
20
24
  //# 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,eAAe;AACf,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qCAKmB;AAJjB,4GAAA,iBAAiB,OAAA;AACjB,6GAAA,kBAAkB,OAAA;AAClB,4GAAA,iBAAiB,OAAA;AACjB,2GAAA,gBAAgB,OAAA;AAElB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AAGvB,iDAAwD;AAA/C,sHAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,eAAe;AACf,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qCAMmB;AALjB,4GAAA,iBAAiB,OAAA;AACjB,6GAAA,kBAAkB,OAAA;AAClB,4GAAA,iBAAiB,OAAA;AACjB,2GAAA,gBAAgB,OAAA;AAChB,yGAAA,cAAc,OAAA;AAEhB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AAGvB,iDAAwD;AAA/C,sHAAA,qBAAqB,OAAA;AAC9B,iCAA+C;AAAtC,kGAAA,SAAS,OAAA;AAAE,kGAAA,SAAS,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAY,MAAM,SAAS,CAAC;AAiCnD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC5C,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,EACrC,GAAG,IAAI,EAAE,CAAC,GACT,cAAc,CAAC,CAAC,CAAC,CAAC;AAGrB,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC5C,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClC,GAAG,IAAI,EAAE,CAAC,GACT,OAAO,CAAC,CAAC,CAAC,CAAC;AAoKd,mDAAmD;AACnD,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC"}
1
+ {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAczC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC5C,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,EACrC,GAAG,IAAI,EAAE,CAAC,GACT,cAAc,CAAC,CAAC,CAAC,CAAC;AAGrB,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC5C,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClC,GAAG,IAAI,EAAE,CAAC,GACT,OAAO,CAAC,CAAC,CAAC,CAAC;AA6Hd,mDAAmD;AACnD,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC"}
package/dist/observe.js CHANGED
@@ -37,17 +37,8 @@ exports.observe = observe;
37
37
  exports._resetObserveState = _resetObserveState;
38
38
  // src/observe.ts
39
39
  const api_1 = require("@opentelemetry/api");
40
- const openinference_core_1 = require("@arizeai/openinference-core");
41
40
  const openinference_semantic_conventions_1 = require("@arizeai/openinference-semantic-conventions");
42
- const constants_1 = require("./constants");
43
- const git_context_1 = require("./git_context");
44
- const OPENINFERENCE_SPAN_KIND = openinference_semantic_conventions_1.SemanticConventions.OPENINFERENCE_SPAN_KIND;
45
- const SPAN_KIND_MAP = {
46
- agent: 'AGENT',
47
- tool: 'TOOL',
48
- llm: 'LLM',
49
- span: 'CHAIN',
50
- };
41
+ const attributes_1 = require("./attributes");
51
42
  // Cached once after the first call; the tracer name never changes.
52
43
  let _tracer;
53
44
  let _hasWarnedUninit = false;
@@ -57,15 +48,6 @@ const AsyncGeneratorFunction = Object.getPrototypeOf(async function* () { })
57
48
  function isAsyncGeneratorFunction(fn) {
58
49
  return typeof fn === 'function' && fn instanceof AsyncGeneratorFunction;
59
50
  }
60
- /** Serialize a value for a span attribute, returning undefined on failure. */
61
- function trySerialize(value) {
62
- try {
63
- return JSON.stringify(value);
64
- }
65
- catch {
66
- return undefined;
67
- }
68
- }
69
51
  // Implementation
70
52
  function observe(options, fn, ...args) {
71
53
  const name = options.name ?? (fn.name || 'anonymous');
@@ -97,10 +79,10 @@ async function _observeRegular(name, options, fn, args) {
97
79
  }
98
80
  }
99
81
  try {
100
- _applyCommonAttributes(span, options, args);
82
+ (0, attributes_1.applyCommonAttributes)(span, options, args);
101
83
  const result = await fn(...args);
102
84
  if (options.captureOutput !== false) {
103
- const serialized = trySerialize(result);
85
+ const serialized = (0, attributes_1.trySerialize)(result);
104
86
  if (serialized !== undefined)
105
87
  span.setAttribute(openinference_semantic_conventions_1.OUTPUT_VALUE, serialized);
106
88
  }
@@ -136,7 +118,7 @@ async function* _observeAsyncGenerator(name, options, fn, args) {
136
118
  yield* fn(...args);
137
119
  return;
138
120
  }
139
- _applyCommonAttributes(span, options, args);
121
+ (0, attributes_1.applyCommonAttributes)(span, options, args);
140
122
  // Activate the span in the OTel context so that updateCurrentSpan() and
141
123
  // nested observe() calls inside the generator body target the correct span.
142
124
  // We must wrap each .next() call in context.with() because AsyncLocalStorage
@@ -154,7 +136,7 @@ async function* _observeAsyncGenerator(name, options, fn, args) {
154
136
  yield value;
155
137
  }
156
138
  if (options.captureOutput !== false && collected.length > 0) {
157
- const serialized = trySerialize(collected);
139
+ const serialized = (0, attributes_1.trySerialize)(collected);
158
140
  if (serialized !== undefined)
159
141
  span.setAttribute(openinference_semantic_conventions_1.OUTPUT_VALUE, serialized);
160
142
  }
@@ -168,46 +150,6 @@ async function* _observeAsyncGenerator(name, options, fn, args) {
168
150
  span.end();
169
151
  }
170
152
  }
171
- /**
172
- * Apply attributes common to all span types: kind, ambient context, session/user,
173
- * input from args, metadata, tags, git source location.
174
- */
175
- function _applyCommonAttributes(span, options, args) {
176
- span.setAttribute(OPENINFERENCE_SPAN_KIND, SPAN_KIND_MAP[options.type ?? 'span']);
177
- // Propagate any ambient attributes set by usingAttributes() in the call stack.
178
- const ctxAttrs = (0, openinference_core_1.getAttributesFromContext)(api_1.context.active());
179
- if (ctxAttrs && Object.keys(ctxAttrs).length > 0) {
180
- span.setAttributes(ctxAttrs);
181
- }
182
- if (options.sessionId !== undefined)
183
- span.setAttribute(openinference_semantic_conventions_1.SESSION_ID, options.sessionId);
184
- if (options.userId !== undefined)
185
- span.setAttribute(openinference_semantic_conventions_1.USER_ID, options.userId);
186
- // Auto-capture input from args. Single arg → use directly; multiple → array.
187
- if (options.captureInput !== false && args.length > 0) {
188
- const inputValue = args.length === 1 ? args[0] : args;
189
- const serialized = trySerialize(inputValue);
190
- if (serialized !== undefined)
191
- span.setAttribute(openinference_semantic_conventions_1.INPUT_VALUE, serialized);
192
- }
193
- if (options.metadata !== undefined) {
194
- const s = trySerialize(options.metadata);
195
- if (s !== undefined)
196
- span.setAttribute(constants_1.SPAN_METADATA, s);
197
- }
198
- if (options.tags !== undefined) {
199
- const s = trySerialize(options.tags);
200
- if (s !== undefined)
201
- span.setAttribute(constants_1.SPAN_TAGS, s);
202
- }
203
- const loc = (0, git_context_1.captureSourceLocation)();
204
- if (loc.file !== undefined)
205
- span.setAttribute('traceroot.git.source_file', loc.file);
206
- if (loc.line !== undefined)
207
- span.setAttribute('traceroot.git.source_line', loc.line);
208
- if (loc.functionName !== undefined)
209
- span.setAttribute('traceroot.git.source_function', loc.functionName);
210
- }
211
153
  /** @internal — reset module state between tests */
212
154
  function _resetObserveState() {
213
155
  _tracer = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Span as OtelSpan } from '@opentelemetry/api';
2
+ import { StartSpanOptions, SpanUpdate } from './types';
3
+ export interface Span {
4
+ readonly spanId: string;
5
+ readonly traceId: string;
6
+ update(attrs: SpanUpdate): this;
7
+ end(): void;
8
+ startSpan(options: Omit<StartSpanOptions, 'parent'>): Span;
9
+ setError(err: unknown): this;
10
+ }
11
+ /** Wrap an existing OTel span (e.g. the active one) as a Span handle. */
12
+ export declare function wrapSpan(otel: OtelSpan): Span;
13
+ export declare function startSpan(options: StartSpanOptions): Span;
14
+ /** Run fn with `span` as the active span so inner observe()/startSpan() nest under it. */
15
+ export declare function usingSpan<T>(span: Span, fn: () => T): T;
16
+ /** @internal test reset */
17
+ export declare function _resetSpansState(): void;
18
+ //# sourceMappingURL=spans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spans.d.ts","sourceRoot":"","sources":["../src/spans.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,IAAI,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGtF,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGvD,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,GAAG,IAAI,IAAI,CAAC;IACZ,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAwCD,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAE7C;AAKD,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAsCzD;AAED,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAGvD;AAED,2BAA2B;AAC3B,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
package/dist/spans.js ADDED
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wrapSpan = wrapSpan;
4
+ exports.startSpan = startSpan;
5
+ exports.usingSpan = usingSpan;
6
+ exports._resetSpansState = _resetSpansState;
7
+ // src/spans.ts — imperative span handle API
8
+ const api_1 = require("@opentelemetry/api");
9
+ const attributes_1 = require("./attributes");
10
+ const constants_1 = require("./constants");
11
+ const traceroot_1 = require("./traceroot");
12
+ class TracerootSpan {
13
+ otelSpan;
14
+ constructor(otelSpan) {
15
+ this.otelSpan = otelSpan;
16
+ }
17
+ get spanId() {
18
+ return this.otelSpan.spanContext().spanId;
19
+ }
20
+ get traceId() {
21
+ return this.otelSpan.spanContext().traceId;
22
+ }
23
+ update(attrs) {
24
+ if (attrs.name !== undefined)
25
+ this.otelSpan.updateName(attrs.name);
26
+ (0, attributes_1.applyIO)(this.otelSpan, { input: attrs.input, output: attrs.output });
27
+ if (attrs.metadata !== undefined) {
28
+ const s = (0, attributes_1.trySerialize)(attrs.metadata);
29
+ if (s !== undefined)
30
+ this.otelSpan.setAttribute(constants_1.SPAN_METADATA, s);
31
+ }
32
+ if (attrs.model !== undefined || attrs.modelParameters !== undefined) {
33
+ (0, attributes_1.applyModel)(this.otelSpan, attrs.model, attrs.modelParameters);
34
+ }
35
+ if (attrs.usage !== undefined)
36
+ (0, attributes_1.applyUsage)(this.otelSpan, attrs.usage);
37
+ if (attrs.attributes !== undefined)
38
+ this.otelSpan.setAttributes(attrs.attributes);
39
+ return this;
40
+ }
41
+ end() {
42
+ this.otelSpan.end();
43
+ }
44
+ startSpan(options) {
45
+ return startSpan({ ...options, parent: this });
46
+ }
47
+ setError(err) {
48
+ this.otelSpan.recordException(err instanceof Error ? err : new Error(String(err)));
49
+ this.otelSpan.setStatus({
50
+ code: api_1.SpanStatusCode.ERROR,
51
+ message: err instanceof Error ? err.message : String(err),
52
+ });
53
+ return this;
54
+ }
55
+ }
56
+ /** Wrap an existing OTel span (e.g. the active one) as a Span handle. */
57
+ function wrapSpan(otel) {
58
+ return new TracerootSpan(otel);
59
+ }
60
+ let _tracer;
61
+ let _hasWarnedUninit = false;
62
+ function startSpan(options) {
63
+ // Synchronous init guard — mirrors observe(). Unlike observe() (which is async
64
+ // and can await a dynamic import), startSpan() is synchronous, so it must init
65
+ // BEFORE creating the span or the first span would be dropped. initialize() is
66
+ // synchronous and safe to call repeatedly.
67
+ if (process.env['TRACEROOT_API_KEY'] && !traceroot_1.TraceRoot.isInitialized()) {
68
+ traceroot_1.TraceRoot.initialize();
69
+ }
70
+ _tracer ??= api_1.trace.getTracer('traceroot-ts');
71
+ const parentOtel = options.parent ? options.parent.otelSpan : undefined;
72
+ const ctx = parentOtel ? api_1.trace.setSpan(api_1.context.active(), parentOtel) : api_1.context.active();
73
+ const otel = _tracer.startSpan(options.name, undefined, ctx);
74
+ if (!otel.isRecording() && !_hasWarnedUninit) {
75
+ _hasWarnedUninit = true;
76
+ console.warn('[TraceRoot] startSpan() called but TraceRoot.initialize() was not called. Spans will not be recorded.');
77
+ }
78
+ if (otel.isRecording()) {
79
+ (0, attributes_1.applyCommonAttributes)(otel, {
80
+ type: options.type,
81
+ metadata: options.metadata,
82
+ tags: options.tags,
83
+ sessionId: options.sessionId,
84
+ userId: options.userId,
85
+ }, options.input !== undefined ? [options.input] : []);
86
+ if (options.model !== undefined || options.modelParameters !== undefined) {
87
+ (0, attributes_1.applyModel)(otel, options.model, options.modelParameters);
88
+ }
89
+ if (options.attributes !== undefined)
90
+ otel.setAttributes(options.attributes);
91
+ }
92
+ return new TracerootSpan(otel);
93
+ }
94
+ /** Run fn with `span` as the active span so inner observe()/startSpan() nest under it. */
95
+ function usingSpan(span, fn) {
96
+ const otel = span.otelSpan;
97
+ return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), otel), fn);
98
+ }
99
+ /** @internal test reset */
100
+ function _resetSpansState() {
101
+ _tracer = undefined;
102
+ _hasWarnedUninit = false;
103
+ }
104
+ //# sourceMappingURL=spans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spans.js","sourceRoot":"","sources":["../src/spans.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -86,4 +86,50 @@ export interface InitializeOptions {
86
86
  */
87
87
  gitRef?: string;
88
88
  }
89
+ /** LLM token usage. Known fields map to OpenInference token-count keys;
90
+ * extra keys are preserved in the traceroot.llm.usage blob. */
91
+ export interface TokenUsage {
92
+ /** Uncached prompt tokens. */
93
+ input?: number;
94
+ /** Completion tokens. */
95
+ output?: number;
96
+ /** Cache-read (Anthropic cache_read_input_tokens). */
97
+ cacheRead?: number;
98
+ /** Cache-write / creation (Anthropic cache_creation_input_tokens). */
99
+ cacheWrite?: number;
100
+ /** Total; derived from prompt+completion if omitted. */
101
+ total?: number;
102
+ [key: string]: number | undefined;
103
+ }
104
+ export interface StartSpanOptions {
105
+ name: string;
106
+ type?: SpanType;
107
+ input?: unknown;
108
+ metadata?: Record<string, unknown>;
109
+ tags?: string[];
110
+ sessionId?: string;
111
+ userId?: string;
112
+ model?: string;
113
+ modelParameters?: Record<string, unknown>;
114
+ /** Arbitrary span attributes (see {@link SpanUpdate.attributes}). */
115
+ attributes?: Record<string, string | number | boolean>;
116
+ /** Explicit parent handle. Default: the current active span. */
117
+ parent?: import('./spans').Span;
118
+ }
119
+ export interface SpanUpdate {
120
+ name?: string;
121
+ input?: unknown;
122
+ output?: unknown;
123
+ metadata?: Record<string, unknown>;
124
+ model?: string;
125
+ modelParameters?: Record<string, unknown>;
126
+ usage?: TokenUsage;
127
+ /**
128
+ * Arbitrary span attributes for keys the typed fields above don't cover
129
+ * (e.g. `gen_ai.*` semconv keys, domain-specific tags). Set through to the
130
+ * underlying span verbatim — the escape hatch so callers never need raw
131
+ * OpenTelemetry for a one-off attribute.
132
+ */
133
+ attributes?: Record<string, string | number | boolean>;
134
+ }
89
135
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,uFAAuF;IACvF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@traceroot-ai/traceroot",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "TraceRoot TypeScript SDK for AI observability",
5
5
  "keywords": [
6
6
  "traceroot",