@traceroot-ai/traceroot 0.1.5 → 0.1.6
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/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -1
- package/dist/constants.js.map +1 -1
- package/dist/git_context.d.ts +19 -0
- package/dist/git_context.d.ts.map +1 -1
- package/dist/git_context.js +97 -1
- package/dist/git_context.js.map +1 -1
- package/dist/instrumentation.d.ts +7 -4
- package/dist/instrumentation.d.ts.map +1 -1
- package/dist/instrumentation.js +44 -36
- package/dist/instrumentation.js.map +1 -1
- package/dist/traceroot.d.ts.map +1 -1
- package/dist/traceroot.js +28 -6
- package/dist/traceroot.js.map +1 -1
- package/package.json +1 -1
package/dist/constants.d.ts
CHANGED
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,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,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,10 @@
|
|
|
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 = 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_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
|
+
// GitHub Actions environment variable names used for git-context harvesting.
|
|
6
|
+
exports.GITHUB_REPOSITORY = 'GITHUB_REPOSITORY';
|
|
7
|
+
exports.GITHUB_SHA = 'GITHUB_SHA';
|
|
5
8
|
// Flush/batch defaults — mirror traceroot-py/traceroot/constants.py
|
|
6
9
|
exports.DEFAULT_FLUSH_INTERVAL_SEC = 5; // seconds → BatchSpanProcessor scheduledDelayMillis (×1000)
|
|
7
10
|
exports.DEFAULT_FLUSH_AT = 100; // BatchSpanProcessor maxExportBatchSize
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA,6EAA6E;;;AAE7E,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,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/git_context.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
export declare function getGitRoot(): string | undefined;
|
|
2
|
+
/**
|
|
3
|
+
* Read git context directly from `.git` files (no `git` subprocess).
|
|
4
|
+
* Works in containers that ship a `.git` dir but no `git` binary.
|
|
5
|
+
* Only inspects `<cwd>/.git` (does not walk parent directories).
|
|
6
|
+
*/
|
|
7
|
+
export declare function gitContextFromFiles(cwd?: string): {
|
|
8
|
+
gitRepo?: string;
|
|
9
|
+
gitRef?: string;
|
|
10
|
+
};
|
|
2
11
|
/**
|
|
3
12
|
* Auto-detects git repo (as "owner/repo") and current commit ref.
|
|
4
13
|
* Returns an empty object if git is unavailable or any command fails.
|
|
@@ -7,6 +16,16 @@ export declare function autoDetectGitContext(): {
|
|
|
7
16
|
gitRepo?: string;
|
|
8
17
|
gitRef?: string;
|
|
9
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Resolve git context from GitHub Actions environment variables —
|
|
21
|
+
* `GITHUB_REPOSITORY` (owner/repo) and `GITHUB_SHA`.
|
|
22
|
+
*
|
|
23
|
+
* repo and ref are resolved independently (a build may provide one, not both).
|
|
24
|
+
*/
|
|
25
|
+
export declare function harvestCiGitContext(env?: NodeJS.ProcessEnv): {
|
|
26
|
+
gitRepo?: string;
|
|
27
|
+
gitRef?: string;
|
|
28
|
+
};
|
|
10
29
|
/** @internal — reset cached git root between tests */
|
|
11
30
|
export declare function _resetGitContextCache(): void;
|
|
12
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git_context.d.ts","sourceRoot":"","sources":["../src/git_context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git_context.d.ts","sourceRoot":"","sources":["../src/git_context.ts"],"names":[],"mappings":"AAWA,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAW/C;AAWD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAiEA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAiC5E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAKA;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAsB/F"}
|
package/dist/git_context.js
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getGitRoot = getGitRoot;
|
|
4
|
+
exports.gitContextFromFiles = gitContextFromFiles;
|
|
4
5
|
exports.autoDetectGitContext = autoDetectGitContext;
|
|
6
|
+
exports.harvestCiGitContext = harvestCiGitContext;
|
|
5
7
|
exports._resetGitContextCache = _resetGitContextCache;
|
|
6
8
|
exports.captureSourceLocation = captureSourceLocation;
|
|
7
9
|
// src/git_context.ts
|
|
8
10
|
const node_child_process_1 = require("node:child_process");
|
|
11
|
+
const node_fs_1 = require("node:fs");
|
|
12
|
+
const node_path_1 = require("node:path");
|
|
13
|
+
const constants_1 = require("./constants");
|
|
14
|
+
const REPO_URL_RE = /(?:https?:\/\/|ssh:\/\/git@|git@)github\.com[:/](.+?)(?:\.git)?$/;
|
|
15
|
+
const SHA_RE = /^[0-9a-f]{40}$/;
|
|
9
16
|
let _gitRootCache = null; // null = not yet detected, '' = failed
|
|
10
17
|
function getGitRoot() {
|
|
11
18
|
if (_gitRootCache !== null)
|
|
@@ -29,6 +36,83 @@ function relativePath(filepath) {
|
|
|
29
36
|
// If we can't make the path relative, don't stamp it — avoid leaking absolute paths.
|
|
30
37
|
return undefined;
|
|
31
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Read git context directly from `.git` files (no `git` subprocess).
|
|
41
|
+
* Works in containers that ship a `.git` dir but no `git` binary.
|
|
42
|
+
* Only inspects `<cwd>/.git` (does not walk parent directories).
|
|
43
|
+
*/
|
|
44
|
+
function gitContextFromFiles(cwd = process.cwd()) {
|
|
45
|
+
const gitDir = (0, node_path_1.join)(cwd, '.git');
|
|
46
|
+
let gitRepo;
|
|
47
|
+
let gitRef;
|
|
48
|
+
try {
|
|
49
|
+
const config = (0, node_fs_1.readFileSync)((0, node_path_1.join)(gitDir, 'config'), 'utf8');
|
|
50
|
+
let seenOrigin = false;
|
|
51
|
+
for (const line of config.split(/\r?\n/)) {
|
|
52
|
+
if (/^\[remote "origin"\]/.test(line)) {
|
|
53
|
+
seenOrigin = true;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (seenOrigin && line.startsWith('['))
|
|
57
|
+
break; // left the origin section
|
|
58
|
+
if (seenOrigin) {
|
|
59
|
+
const m = line.match(/\burl\s*=\s*(.+)$/);
|
|
60
|
+
if (m) {
|
|
61
|
+
const rm = m[1].trim().match(REPO_URL_RE);
|
|
62
|
+
if (rm)
|
|
63
|
+
gitRepo = rm[1].replace(/\/$/, '');
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
/* no .git/config */
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const head = (0, node_fs_1.readFileSync)((0, node_path_1.join)(gitDir, 'HEAD'), 'utf8').trim();
|
|
74
|
+
if (SHA_RE.test(head)) {
|
|
75
|
+
gitRef = head;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
const rm = head.match(/ref:\s+(\S+)/);
|
|
79
|
+
if (rm) {
|
|
80
|
+
const refPath = rm[1]; // e.g. refs/heads/main
|
|
81
|
+
try {
|
|
82
|
+
const loose = (0, node_fs_1.readFileSync)((0, node_path_1.join)(gitDir, refPath), 'utf8').trim();
|
|
83
|
+
if (SHA_RE.test(loose))
|
|
84
|
+
gitRef = loose;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
/* loose ref missing — the ref may be packed */
|
|
88
|
+
}
|
|
89
|
+
if (gitRef === undefined) {
|
|
90
|
+
try {
|
|
91
|
+
// Packed refs (after `git gc`/fresh clone): `<sha> refs/heads/main`.
|
|
92
|
+
const packed = (0, node_fs_1.readFileSync)((0, node_path_1.join)(gitDir, 'packed-refs'), 'utf8');
|
|
93
|
+
for (const line of packed.split(/\r?\n/)) {
|
|
94
|
+
if (!line || line[0] === '#' || line[0] === '^')
|
|
95
|
+
continue;
|
|
96
|
+
// Object IDs are exactly 40 (SHA-1) or 64 (SHA-256) hex chars.
|
|
97
|
+
const m = line.match(/^([0-9a-f]{40}|[0-9a-f]{64})\s+(.+)$/);
|
|
98
|
+
if (m && m[2] === refPath) {
|
|
99
|
+
gitRef = m[1];
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
/* no packed-refs */
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
/* no .git/HEAD */
|
|
113
|
+
}
|
|
114
|
+
return { gitRepo, gitRef };
|
|
115
|
+
}
|
|
32
116
|
/**
|
|
33
117
|
* Auto-detects git repo (as "owner/repo") and current commit ref.
|
|
34
118
|
* Returns an empty object if git is unavailable or any command fails.
|
|
@@ -42,7 +126,7 @@ function autoDetectGitContext() {
|
|
|
42
126
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
43
127
|
}).trim();
|
|
44
128
|
// Normalize to "owner/repo" — handles https, git@, ssh:// formats
|
|
45
|
-
const match = remote.match(
|
|
129
|
+
const match = remote.match(REPO_URL_RE);
|
|
46
130
|
if (match) {
|
|
47
131
|
gitRepo = match[1].replace(/\/$/, '');
|
|
48
132
|
}
|
|
@@ -64,6 +148,18 @@ function autoDetectGitContext() {
|
|
|
64
148
|
getGitRoot();
|
|
65
149
|
return { gitRepo, gitRef };
|
|
66
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Resolve git context from GitHub Actions environment variables —
|
|
153
|
+
* `GITHUB_REPOSITORY` (owner/repo) and `GITHUB_SHA`.
|
|
154
|
+
*
|
|
155
|
+
* repo and ref are resolved independently (a build may provide one, not both).
|
|
156
|
+
*/
|
|
157
|
+
function harvestCiGitContext(env = process.env) {
|
|
158
|
+
return {
|
|
159
|
+
gitRepo: env[constants_1.GITHUB_REPOSITORY] || undefined,
|
|
160
|
+
gitRef: env[constants_1.GITHUB_SHA] || undefined,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
67
163
|
/** @internal — reset cached git root between tests */
|
|
68
164
|
function _resetGitContextCache() {
|
|
69
165
|
_gitRootCache = null;
|
package/dist/git_context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git_context.js","sourceRoot":"","sources":["../src/git_context.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"git_context.js","sourceRoot":"","sources":["../src/git_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { InitializeOptions } from './types';
|
|
1
|
+
import type { InitializeOptions } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Wires OpenInference instrumentations based on the instrumentModules option:
|
|
4
4
|
*
|
|
5
|
-
* - undefined
|
|
6
|
-
* - {}
|
|
7
|
-
* - { openAI }
|
|
5
|
+
* - undefined -> RITM auto-instrumentation for all supported modules (CJS only)
|
|
6
|
+
* - {} -> no instrumentation
|
|
7
|
+
* - { openAI } -> manual patch only the provided module refs
|
|
8
8
|
*
|
|
9
9
|
* Called once by TraceRoot.initialize().
|
|
10
|
+
*
|
|
11
|
+
* All OpenInference instrumentations are lazy-loaded via require() so that
|
|
12
|
+
* missing peer dependencies don't crash initialization.
|
|
10
13
|
*/
|
|
11
14
|
export declare function wireInstrumentations(instrumentModules: InitializeOptions['instrumentModules']): void;
|
|
12
15
|
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA6BjD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,iBAAiB,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,GACxD,IAAI,CAuCN"}
|
package/dist/instrumentation.js
CHANGED
|
@@ -3,62 +3,70 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.wireInstrumentations = wireInstrumentations;
|
|
4
4
|
// src/instrumentation.ts
|
|
5
5
|
const instrumentation_1 = require("@opentelemetry/instrumentation");
|
|
6
|
-
const openinference_instrumentation_anthropic_1 = require("@arizeai/openinference-instrumentation-anthropic");
|
|
7
|
-
const openinference_instrumentation_bedrock_1 = require("@arizeai/openinference-instrumentation-bedrock");
|
|
8
|
-
const openinference_instrumentation_langchain_1 = require("@arizeai/openinference-instrumentation-langchain");
|
|
9
|
-
const openinference_instrumentation_openai_1 = require("@arizeai/openinference-instrumentation-openai");
|
|
10
6
|
const openai_agents_1 = require("./openai-agents");
|
|
11
7
|
const claude_agent_sdk_1 = require("./claude-agent-sdk");
|
|
8
|
+
const OPENINFERENCE_PACKAGES = {
|
|
9
|
+
openAI: ['@arizeai/openinference-instrumentation-openai', 'OpenAIInstrumentation'],
|
|
10
|
+
anthropic: ['@arizeai/openinference-instrumentation-anthropic', 'AnthropicInstrumentation'],
|
|
11
|
+
langchain: ['@arizeai/openinference-instrumentation-langchain', 'LangChainInstrumentation'],
|
|
12
|
+
bedrock: ['@arizeai/openinference-instrumentation-bedrock', 'BedrockInstrumentation'],
|
|
13
|
+
};
|
|
14
|
+
function loadInstrumentation(pkg, exportName) {
|
|
15
|
+
try {
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
17
|
+
const mod = require(pkg);
|
|
18
|
+
const ctor = mod[exportName];
|
|
19
|
+
if (typeof ctor !== 'function')
|
|
20
|
+
return null;
|
|
21
|
+
return ctor;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
12
27
|
/**
|
|
13
28
|
* Wires OpenInference instrumentations based on the instrumentModules option:
|
|
14
29
|
*
|
|
15
|
-
* - undefined
|
|
16
|
-
* - {}
|
|
17
|
-
* - { openAI }
|
|
30
|
+
* - undefined -> RITM auto-instrumentation for all supported modules (CJS only)
|
|
31
|
+
* - {} -> no instrumentation
|
|
32
|
+
* - { openAI } -> manual patch only the provided module refs
|
|
18
33
|
*
|
|
19
34
|
* Called once by TraceRoot.initialize().
|
|
35
|
+
*
|
|
36
|
+
* All OpenInference instrumentations are lazy-loaded via require() so that
|
|
37
|
+
* missing peer dependencies don't crash initialization.
|
|
20
38
|
*/
|
|
21
39
|
function wireInstrumentations(instrumentModules) {
|
|
22
40
|
if (instrumentModules === undefined) {
|
|
23
41
|
// Auto-instrumentation via require-in-the-middle (CJS only).
|
|
24
42
|
// ESM users must pass explicit module refs.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
new
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
43
|
+
const instrs = [];
|
|
44
|
+
for (const [pkg, exportName] of Object.values(OPENINFERENCE_PACKAGES)) {
|
|
45
|
+
const Ctor = loadInstrumentation(pkg, exportName);
|
|
46
|
+
if (Ctor)
|
|
47
|
+
instrs.push(new Ctor());
|
|
48
|
+
}
|
|
49
|
+
if (instrs.length > 0) {
|
|
50
|
+
(0, instrumentation_1.registerInstrumentations)({ instrumentations: instrs });
|
|
51
|
+
}
|
|
33
52
|
return;
|
|
34
53
|
}
|
|
35
54
|
const instrs = [];
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
instr
|
|
45
|
-
}
|
|
46
|
-
if (instrumentModules.langchain) {
|
|
47
|
-
// langchain must be: import * as lcCallbackManager from '@langchain/core/callbacks/manager'
|
|
48
|
-
const instr = new openinference_instrumentation_langchain_1.LangChainInstrumentation();
|
|
55
|
+
for (const [key, [pkg, exportName]] of Object.entries(OPENINFERENCE_PACKAGES)) {
|
|
56
|
+
const moduleRef = instrumentModules[key];
|
|
57
|
+
if (!moduleRef)
|
|
58
|
+
continue;
|
|
59
|
+
const Ctor = loadInstrumentation(pkg, exportName);
|
|
60
|
+
if (!Ctor) {
|
|
61
|
+
throw new Error(`[TraceRoot] Failed to load ${pkg}. Install it: npm install ${pkg}`);
|
|
62
|
+
}
|
|
63
|
+
const instr = new Ctor();
|
|
49
64
|
instrs.push(instr);
|
|
50
|
-
instr.manuallyInstrument(
|
|
65
|
+
instr.manuallyInstrument(moduleRef);
|
|
51
66
|
}
|
|
52
67
|
if (instrumentModules.claudeAgentSDK) {
|
|
53
|
-
// Claude Agent SDK uses TraceRoot's in-house wrapper for stable agent/tool/LLM structure.
|
|
54
|
-
// Auto RITM is intentionally not enabled for it until this wrapper has its own loader hook.
|
|
55
68
|
(0, claude_agent_sdk_1.wireClaudeAgentSDKInstrumentation)(instrumentModules.claudeAgentSDK);
|
|
56
69
|
}
|
|
57
|
-
if (instrumentModules.bedrock) {
|
|
58
|
-
const instr = new openinference_instrumentation_bedrock_1.BedrockInstrumentation();
|
|
59
|
-
instrs.push(instr);
|
|
60
|
-
instr.manuallyInstrument(instrumentModules.bedrock);
|
|
61
|
-
}
|
|
62
70
|
if (instrumentModules.openaiAgents) {
|
|
63
71
|
(0, openai_agents_1.wireOpenAIAgentsProcessor)(instrumentModules.openaiAgents);
|
|
64
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":";;AA2CA,oDAyCC;AApFD,yBAAyB;AACzB,oEAAgG;AAEhG,mDAA4D;AAC5D,yDAAuE;AAQvE,MAAM,sBAAsB,GAAG;IAC7B,MAAM,EAAE,CAAC,+CAA+C,EAAE,uBAAuB,CAAC;IAClF,SAAS,EAAE,CAAC,kDAAkD,EAAE,0BAA0B,CAAC;IAC3F,SAAS,EAAE,CAAC,kDAAkD,EAAE,0BAA0B,CAAC;IAC3F,OAAO,EAAE,CAAC,gDAAgD,EAAE,wBAAwB,CAAC;CAC7E,CAAC;AAEX,SAAS,mBAAmB,CAAC,GAAW,EAAE,UAAkB;IAC1D,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAA4B,CAAC;QACpD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7B,IAAI,OAAO,IAAI,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAC5C,OAAO,IAA2B,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAClC,iBAAyD;IAEzD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,6DAA6D;QAC7D,4CAA4C;QAC5C,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAClD,IAAI,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAA,0CAAwB,EAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC9E,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAA0C,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,6BAA6B,GAAG,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,iBAAiB,CAAC,cAAc,EAAE,CAAC;QACrC,IAAA,oDAAiC,EAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,iBAAiB,CAAC,YAAY,EAAE,CAAC;QACnC,IAAA,yCAAyB,EAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,IAAA,0CAAwB,EAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
|
package/dist/traceroot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceroot.d.ts","sourceRoot":"","sources":["../src/traceroot.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"traceroot.d.ts","sourceRoot":"","sources":["../src/traceroot.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAkB5C,qBAAa,SAAS;IACpB,OAAO;IAEP,MAAM,CAAC,aAAa,IAAI,OAAO;IAI/B,MAAM,CAAC,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI;WAiI3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;WAItB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMvC;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,IAAI,IAAI,CAQvC"}
|
package/dist/traceroot.js
CHANGED
|
@@ -57,17 +57,39 @@ class TraceRoot {
|
|
|
57
57
|
compression: 'gzip',
|
|
58
58
|
});
|
|
59
59
|
const environment = options.environment ?? process.env['TRACEROOT_ENVIRONMENT'];
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
let gitRepo =
|
|
63
|
-
let gitRef =
|
|
60
|
+
// `|| undefined` so an empty option/env var ('') is treated as unset —
|
|
61
|
+
// otherwise it would block fallback detection and suppress the warning.
|
|
62
|
+
let gitRepo = options.gitRepo || process.env['TRACEROOT_GIT_REPO'] || undefined;
|
|
63
|
+
let gitRef = options.gitRef || process.env['TRACEROOT_GIT_REF'] || undefined;
|
|
64
|
+
// CI/platform env vars — production path (no .git needed).
|
|
65
|
+
if (gitRepo === undefined || gitRef === undefined) {
|
|
66
|
+
const ci = (0, git_context_1.harvestCiGitContext)();
|
|
67
|
+
gitRepo ??= ci.gitRepo;
|
|
68
|
+
gitRef ??= ci.gitRef;
|
|
69
|
+
}
|
|
70
|
+
// .git read as files — dev fallback, no git binary required.
|
|
71
|
+
if (gitRepo === undefined || gitRef === undefined) {
|
|
72
|
+
const fromFiles = (0, git_context_1.gitContextFromFiles)();
|
|
73
|
+
gitRepo ??= fromFiles.gitRepo;
|
|
74
|
+
gitRef ??= fromFiles.gitRef;
|
|
75
|
+
}
|
|
76
|
+
// git subprocess — last resort (handles run-from-subdirectory).
|
|
64
77
|
if (gitRepo === undefined || gitRef === undefined) {
|
|
65
78
|
const autoGit = (0, git_context_1.autoDetectGitContext)();
|
|
66
79
|
gitRepo ??= autoGit.gitRepo;
|
|
67
80
|
gitRef ??= autoGit.gitRef;
|
|
68
81
|
}
|
|
69
|
-
|
|
70
|
-
|
|
82
|
+
// Warm git-root cache for per-span source paths (cached/idempotent).
|
|
83
|
+
(0, git_context_1.getGitRoot)();
|
|
84
|
+
// Honest absence: warn once, never fabricate.
|
|
85
|
+
if (gitRepo === undefined || gitRef === undefined) {
|
|
86
|
+
console.warn('[TraceRoot] git context incomplete (repo=' +
|
|
87
|
+
(gitRepo ?? 'unset') +
|
|
88
|
+
', ref=' +
|
|
89
|
+
(gitRef ?? 'unset') +
|
|
90
|
+
'). The AI agent needs both to correlate traces to source. ' +
|
|
91
|
+
'Set TRACEROOT_GIT_REPO / TRACEROOT_GIT_REF (see ' +
|
|
92
|
+
'https://docs.traceroot.ai/tracing/git-context).');
|
|
71
93
|
}
|
|
72
94
|
// Flush/batch tuning — env vars take precedence over SDK defaults.
|
|
73
95
|
const flushIntervalSec = Number(process.env['TRACEROOT_FLUSH_INTERVAL'] || constants_1.DEFAULT_FLUSH_INTERVAL_SEC);
|
package/dist/traceroot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceroot.js","sourceRoot":"","sources":["../src/traceroot.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"traceroot.js","sourceRoot":"","sources":["../src/traceroot.ts"],"names":[],"mappings":"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"}
|