@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.
- package/dist/attributes.d.ts +14 -0
- package/dist/attributes.d.ts.map +1 -0
- package/dist/attributes.js +110 -0
- package/dist/attributes.js.map +1 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -1
- package/dist/constants.js.map +1 -1
- package/dist/context.d.ts +8 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +15 -34
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/observe.d.ts.map +1 -1
- package/dist/observe.js +5 -63
- package/dist/observe.js.map +1 -1
- package/dist/spans.d.ts +18 -0
- package/dist/spans.d.ts.map +1 -0
- package/dist/spans.js +104 -0
- package/dist/spans.js.map +1 -0
- package/dist/types.d.ts +46 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -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";
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -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';
|
package/dist/constants.js.map
CHANGED
|
@@ -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. {
|
|
19
|
-
usage?:
|
|
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
|
*/
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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"}
|
package/dist/observe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
package/dist/observe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe.js","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"observe.js","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"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"}
|
package/dist/spans.d.ts
ADDED
|
@@ -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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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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"}
|