@llmtracer/sdk 1.1.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/cjs/auto.d.ts +2 -0
  2. package/dist/cjs/auto.d.ts.map +1 -0
  3. package/dist/cjs/auto.js +5 -0
  4. package/dist/cjs/auto.js.map +1 -0
  5. package/dist/cjs/caller.d.ts +6 -0
  6. package/dist/cjs/caller.d.ts.map +1 -0
  7. package/dist/cjs/caller.js +62 -0
  8. package/dist/cjs/caller.js.map +1 -0
  9. package/dist/cjs/config.d.ts +7 -0
  10. package/dist/cjs/config.d.ts.map +1 -0
  11. package/dist/cjs/config.js +10 -0
  12. package/dist/cjs/config.js.map +1 -0
  13. package/dist/cjs/context.d.ts +9 -0
  14. package/dist/cjs/context.d.ts.map +1 -0
  15. package/dist/cjs/context.js +21 -0
  16. package/dist/cjs/context.js.map +1 -0
  17. package/dist/cjs/index.d.ts +20 -0
  18. package/dist/cjs/index.d.ts.map +1 -0
  19. package/dist/cjs/index.js +93 -0
  20. package/dist/cjs/index.js.map +1 -0
  21. package/dist/cjs/patcher.d.ts +4 -0
  22. package/dist/cjs/patcher.d.ts.map +1 -0
  23. package/dist/cjs/patcher.js +93 -0
  24. package/dist/cjs/patcher.js.map +1 -0
  25. package/dist/cjs/providers/anthropic.d.ts +4 -0
  26. package/dist/cjs/providers/anthropic.d.ts.map +1 -0
  27. package/dist/cjs/providers/anthropic.js +111 -0
  28. package/dist/cjs/providers/anthropic.js.map +1 -0
  29. package/dist/cjs/providers/index.d.ts +3 -0
  30. package/dist/cjs/providers/index.d.ts.map +1 -0
  31. package/dist/cjs/providers/index.js +10 -0
  32. package/dist/cjs/providers/index.js.map +1 -0
  33. package/dist/cjs/providers/openai.d.ts +4 -0
  34. package/dist/cjs/providers/openai.d.ts.map +1 -0
  35. package/dist/cjs/providers/openai.js +108 -0
  36. package/dist/cjs/providers/openai.js.map +1 -0
  37. package/dist/cjs/schema.d.ts +18 -0
  38. package/dist/cjs/schema.d.ts.map +1 -0
  39. package/dist/cjs/schema.js +93 -0
  40. package/dist/cjs/schema.js.map +1 -0
  41. package/dist/cjs/transport.d.ts +6 -0
  42. package/dist/cjs/transport.d.ts.map +1 -0
  43. package/dist/cjs/transport.js +69 -0
  44. package/dist/cjs/transport.js.map +1 -0
  45. package/dist/cjs/wrapper.d.ts +3 -0
  46. package/dist/cjs/wrapper.d.ts.map +1 -0
  47. package/dist/cjs/wrapper.js +86 -0
  48. package/dist/cjs/wrapper.js.map +1 -0
  49. package/dist/esm/auto.d.ts +2 -0
  50. package/dist/esm/auto.d.ts.map +1 -0
  51. package/dist/esm/auto.js +3 -0
  52. package/dist/esm/auto.js.map +1 -0
  53. package/dist/esm/caller.d.ts +6 -0
  54. package/dist/esm/caller.d.ts.map +1 -0
  55. package/dist/esm/caller.js +59 -0
  56. package/dist/esm/caller.js.map +1 -0
  57. package/dist/esm/config.d.ts +7 -0
  58. package/dist/esm/config.d.ts.map +1 -0
  59. package/dist/esm/config.js +7 -0
  60. package/dist/esm/config.js.map +1 -0
  61. package/dist/esm/context.d.ts +9 -0
  62. package/dist/esm/context.d.ts.map +1 -0
  63. package/dist/esm/context.js +17 -0
  64. package/dist/esm/context.js.map +1 -0
  65. package/dist/esm/index.d.ts +20 -0
  66. package/dist/esm/index.d.ts.map +1 -0
  67. package/dist/esm/index.js +53 -0
  68. package/dist/esm/index.js.map +1 -0
  69. package/dist/esm/package.json +1 -0
  70. package/dist/esm/patcher.d.ts +4 -0
  71. package/dist/esm/patcher.d.ts.map +1 -0
  72. package/dist/esm/patcher.js +88 -0
  73. package/dist/esm/patcher.js.map +1 -0
  74. package/dist/esm/providers/anthropic.d.ts +4 -0
  75. package/dist/esm/providers/anthropic.d.ts.map +1 -0
  76. package/dist/esm/providers/anthropic.js +74 -0
  77. package/dist/esm/providers/anthropic.js.map +1 -0
  78. package/dist/esm/providers/index.d.ts +3 -0
  79. package/dist/esm/providers/index.d.ts.map +1 -0
  80. package/dist/esm/providers/index.js +3 -0
  81. package/dist/esm/providers/index.js.map +1 -0
  82. package/dist/esm/providers/openai.d.ts +4 -0
  83. package/dist/esm/providers/openai.d.ts.map +1 -0
  84. package/dist/esm/providers/openai.js +71 -0
  85. package/dist/esm/providers/openai.js.map +1 -0
  86. package/dist/esm/schema.d.ts +18 -0
  87. package/dist/esm/schema.d.ts.map +1 -0
  88. package/dist/esm/schema.js +88 -0
  89. package/dist/esm/schema.js.map +1 -0
  90. package/dist/esm/transport.d.ts +6 -0
  91. package/dist/esm/transport.d.ts.map +1 -0
  92. package/dist/esm/transport.js +62 -0
  93. package/dist/esm/transport.js.map +1 -0
  94. package/dist/esm/wrapper.d.ts +3 -0
  95. package/dist/esm/wrapper.d.ts.map +1 -0
  96. package/dist/esm/wrapper.js +50 -0
  97. package/dist/esm/wrapper.js.map +1 -0
  98. package/package.json +56 -11
  99. package/dist/index.d.ts +0 -118
  100. package/dist/index.d.ts.map +0 -1
  101. package/dist/index.js +0 -568
  102. package/dist/index.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/auto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("./index");
4
+ (0, index_1.init)();
5
+ //# sourceMappingURL=auto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/auto.ts"],"names":[],"mappings":";;AAAA,mCAA+B;AAE/B,IAAA,YAAI,GAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function getCallerInfo(): {
2
+ caller_file?: string;
3
+ caller_function?: string;
4
+ caller_line?: number;
5
+ };
6
+ //# sourceMappingURL=caller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caller.d.ts","sourceRoot":"","sources":["../../src/caller.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,IAAI;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CA0CxG"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCallerInfo = getCallerInfo;
4
+ function getCallerInfo() {
5
+ try {
6
+ const err = new Error();
7
+ const stack = err.stack?.split('\n');
8
+ if (!stack)
9
+ return {};
10
+ for (let i = 1; i < stack.length; i++) {
11
+ const line = stack[i];
12
+ // Skip our own SDK frames (dist/ or src/ within the SDK package)
13
+ if (isInternalFrame(line)) {
14
+ continue;
15
+ }
16
+ // Skip node internals
17
+ if (line.includes('node:') || line.includes('(<anonymous>)')) {
18
+ continue;
19
+ }
20
+ // " at functionName (/path/to/file.js:line:col)"
21
+ const matchWithFn = line.match(/at\s+(.+?)\s+\((.+):(\d+):(\d+)\)/);
22
+ if (matchWithFn) {
23
+ return {
24
+ caller_function: matchWithFn[1],
25
+ caller_file: matchWithFn[2],
26
+ caller_line: parseInt(matchWithFn[3], 10),
27
+ };
28
+ }
29
+ // " at /path/to/file.js:line:col"
30
+ const matchNoFn = line.match(/at\s+(.+):(\d+):(\d+)/);
31
+ if (matchNoFn) {
32
+ return {
33
+ caller_file: matchNoFn[1],
34
+ caller_line: parseInt(matchNoFn[2], 10),
35
+ };
36
+ }
37
+ }
38
+ return {};
39
+ }
40
+ catch {
41
+ return {};
42
+ }
43
+ }
44
+ function isInternalFrame(line) {
45
+ // Match frames from our compiled output or source
46
+ // e.g. /path/to/@llmtracer/sdk/dist/cjs/wrapper.js
47
+ // or /path/to/llmtracer-sdk/dist/cjs/schema.js
48
+ // or /path/to/llmtracer-sdk/src/wrapper.ts
49
+ // Skip if it's within our dist/ or src/ directories
50
+ if (line.includes('node_modules/@llmtracer/') ||
51
+ line.includes('node_modules\\@llmtracer\\')) {
52
+ return true;
53
+ }
54
+ // When running from the repo itself (dev/test), skip dist/ and src/ paths
55
+ // but NOT test/ paths
56
+ const distOrSrc = /llmtracer-sdk[/\\](?:dist|src)[/\\]/;
57
+ if (distOrSrc.test(line)) {
58
+ return true;
59
+ }
60
+ return false;
61
+ }
62
+ //# sourceMappingURL=caller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caller.js","sourceRoot":"","sources":["../../src/caller.ts"],"names":[],"mappings":";;AAAA,sCA0CC;AA1CD,SAAgB,aAAa;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,iEAAiE;YACjE,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YAED,sBAAsB;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7D,SAAS;YACX,CAAC;YAED,oDAAoD;YACpD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACpE,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO;oBACL,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;oBAC/B,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;oBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;iBAC1C,CAAC;YACJ,CAAC;YAED,qCAAqC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACtD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO;oBACL,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;oBACzB,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;iBACxC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,kDAAkD;IAClD,mDAAmD;IACnD,iDAAiD;IACjD,6CAA6C;IAE7C,oDAAoD;IACpD,IACE,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,sBAAsB;IACtB,MAAM,SAAS,GAAG,qCAAqC,CAAC;IACxD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const config: {
2
+ apiKey: string;
3
+ endpoint: string;
4
+ debug: boolean;
5
+ enabled: boolean;
6
+ };
7
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;CAKlB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.config = {
5
+ apiKey: '',
6
+ endpoint: 'https://us-central1-llmtracer-alt.cloudfunctions.net/v1Events',
7
+ debug: false,
8
+ enabled: false,
9
+ };
10
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,+DAA+D;IACzE,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;CACf,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface TraceContext {
2
+ traceId: string;
3
+ spanId: string;
4
+ tags: Record<string, any>;
5
+ parentSpanId?: string;
6
+ }
7
+ export declare function getCurrent(): TraceContext | undefined;
8
+ export declare function run<T>(tags: Record<string, any>, fn: () => T): T;
9
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,wBAAgB,UAAU,IAAI,YAAY,GAAG,SAAS,CAErD;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAWhE"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCurrent = getCurrent;
4
+ exports.run = run;
5
+ const async_hooks_1 = require("async_hooks");
6
+ const crypto_1 = require("crypto");
7
+ const store = new async_hooks_1.AsyncLocalStorage();
8
+ function getCurrent() {
9
+ return store.getStore();
10
+ }
11
+ function run(tags, fn) {
12
+ const parent = store.getStore();
13
+ const ctx = {
14
+ traceId: parent?.traceId || (0, crypto_1.randomUUID)(),
15
+ spanId: (0, crypto_1.randomUUID)(),
16
+ tags: { ...(parent?.tags || {}), ...tags },
17
+ parentSpanId: parent?.spanId,
18
+ };
19
+ return store.run(ctx, fn);
20
+ }
21
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;AAYA,gCAEC;AAED,kBAWC;AA3BD,6CAAgD;AAChD,mCAAoC;AASpC,MAAM,KAAK,GAAG,IAAI,+BAAiB,EAAgB,CAAC;AAEpD,SAAgB,UAAU;IACxB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,SAAgB,GAAG,CAAI,IAAyB,EAAE,EAAW;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAEhC,MAAM,GAAG,GAAiB;QACxB,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAA,mBAAU,GAAE;QACxC,MAAM,EAAE,IAAA,mBAAU,GAAE;QACpB,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE;QAC1C,YAAY,EAAE,MAAM,EAAE,MAAM;KAC7B,CAAC;IAEF,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { config } from './config';
2
+ import * as transport from './transport';
3
+ import * as patcher from './patcher';
4
+ export declare const __version__ = "2.0.0";
5
+ export declare function init(options?: {
6
+ apiKey?: string;
7
+ debug?: boolean;
8
+ endpoint?: string;
9
+ }): void;
10
+ export declare function trace<T>(tags: Record<string, any>, fn: () => T | Promise<T>): T | Promise<T>;
11
+ export declare function flush(): Promise<void>;
12
+ export { patcher as _patcher, transport as _transport, config as _config };
13
+ declare const llmtracer: {
14
+ init: typeof init;
15
+ trace: typeof trace;
16
+ flush: typeof flush;
17
+ __version__: string;
18
+ };
19
+ export default llmtracer;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsB5F;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAS5F;AAED,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3C;AAGD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,IAAI,OAAO,EAAE,CAAC;AAG3E,QAAA,MAAM,SAAS;;;;;CAAsC,CAAC;AACtD,eAAe,SAAS,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports._config = exports._transport = exports._patcher = exports.__version__ = void 0;
37
+ exports.init = init;
38
+ exports.trace = trace;
39
+ exports.flush = flush;
40
+ const config_1 = require("./config");
41
+ Object.defineProperty(exports, "_config", { enumerable: true, get: function () { return config_1.config; } });
42
+ const context = __importStar(require("./context"));
43
+ const transport = __importStar(require("./transport"));
44
+ exports._transport = transport;
45
+ const patcher = __importStar(require("./patcher"));
46
+ exports._patcher = patcher;
47
+ exports.__version__ = '2.0.0';
48
+ function init(options) {
49
+ try {
50
+ config_1.config.apiKey = options?.apiKey || process.env.LLMTRACER_API_KEY || '';
51
+ config_1.config.debug = options?.debug || false;
52
+ config_1.config.endpoint = options?.endpoint || 'https://us-central1-llmtracer-alt.cloudfunctions.net/v1Events';
53
+ config_1.config.enabled = Boolean(config_1.config.apiKey);
54
+ if (!config_1.config.enabled) {
55
+ if (config_1.config.debug)
56
+ console.log('[llmtracer] No API key found. Tracing disabled.');
57
+ return;
58
+ }
59
+ transport.start();
60
+ patcher.patchOpenAI(config_1.config.debug);
61
+ patcher.patchAnthropic(config_1.config.debug);
62
+ if (config_1.config.debug)
63
+ console.log('[llmtracer] Ready. Events \u2192 dashboard.llmtracer.com');
64
+ }
65
+ catch (e) {
66
+ config_1.config.enabled = false;
67
+ if (config_1.config.debug)
68
+ console.log(`[llmtracer] init() failed: ${e}. Tracing disabled.`);
69
+ }
70
+ }
71
+ function trace(tags, fn) {
72
+ try {
73
+ if (!config_1.config.enabled) {
74
+ return fn();
75
+ }
76
+ return context.run(tags, fn);
77
+ }
78
+ catch {
79
+ return fn();
80
+ }
81
+ }
82
+ async function flush() {
83
+ try {
84
+ await transport.flush();
85
+ }
86
+ catch {
87
+ // crash-proof: never throw
88
+ }
89
+ }
90
+ // Default export for ESM: import llmtracer from 'llmtracer'
91
+ const llmtracer = { init, trace, flush, __version__: exports.__version__ };
92
+ exports.default = llmtracer;
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,oBAsBC;AAED,sBASC;AAED,sBAMC;AAhDD,qCAAkC;AAmD+B,wFAnDxD,eAAM,OAmDyD;AAlDxE,mDAAqC;AACrC,uDAAyC;AAiDE,+BAAU;AAhDrD,mDAAqC;AAgDjB,2BAAQ;AA9Cf,QAAA,WAAW,GAAG,OAAO,CAAC;AAEnC,SAAgB,IAAI,CAAC,OAAiE;IACpF,IAAI,CAAC;QACH,eAAM,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACvE,eAAM,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;QACvC,eAAM,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,+DAA+D,CAAC;QACvG,eAAM,CAAC,OAAO,GAAG,OAAO,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,eAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,eAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,SAAS,CAAC,KAAK,EAAE,CAAC;QAElB,OAAO,CAAC,WAAW,CAAC,eAAM,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,cAAc,CAAC,eAAM,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,eAAM,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,eAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,IAAI,eAAM,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,qBAAqB,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,SAAgB,KAAK,CAAI,IAAyB,EAAE,EAAwB;IAC1E,IAAI,CAAC;QACH,IAAI,CAAC,eAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,KAAK;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;AACH,CAAC;AAKD,4DAA4D;AAC5D,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAX,mBAAW,EAAE,CAAC;AACtD,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function patchOpenAI(debug: boolean): void;
2
+ export declare function patchAnthropic(debug: boolean): void;
3
+ export declare function unpatchAll(): void;
4
+ //# sourceMappingURL=patcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patcher.d.ts","sourceRoot":"","sources":["../../src/patcher.ts"],"names":[],"mappings":"AA4BA,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAyBhD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAyBnD;AAED,wBAAgB,UAAU,IAAI,IAAI,CAMjC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.patchOpenAI = patchOpenAI;
4
+ exports.patchAnthropic = patchAnthropic;
5
+ exports.unpatchAll = unpatchAll;
6
+ const wrapper_1 = require("./wrapper");
7
+ const openai_1 = require("./providers/openai");
8
+ const anthropic_1 = require("./providers/anthropic");
9
+ const originals = new Map();
10
+ function getPackageVersion(packageName) {
11
+ try {
12
+ const path = require('path');
13
+ const fs = require('fs');
14
+ const entryPoint = require.resolve(packageName);
15
+ let dir = path.dirname(entryPoint);
16
+ while (dir !== path.dirname(dir)) {
17
+ const pkgPath = path.join(dir, 'package.json');
18
+ try {
19
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
20
+ if (pkg.name === packageName)
21
+ return pkg.version || 'unknown';
22
+ }
23
+ catch {
24
+ // no package.json here, keep walking up
25
+ }
26
+ dir = path.dirname(dir);
27
+ }
28
+ }
29
+ catch {
30
+ // ignore
31
+ }
32
+ return 'unknown';
33
+ }
34
+ function patchOpenAI(debug) {
35
+ try {
36
+ const completionsModule = require('openai/resources/chat/completions');
37
+ const CompletionsProto = completionsModule.Completions?.prototype;
38
+ if (!CompletionsProto)
39
+ throw new Error('Completions prototype not found');
40
+ if (CompletionsProto._llmtracer_patched)
41
+ return;
42
+ const originalCreate = CompletionsProto.create;
43
+ CompletionsProto.create = (0, wrapper_1.makeAsyncWrapper)(originalCreate, 'openai', openai_1.parseOpenAIResponse, openai_1.wrapOpenAIStream);
44
+ CompletionsProto._llmtracer_patched = true;
45
+ originals.set('openai.Completions.create', {
46
+ target: CompletionsProto,
47
+ methodName: 'create',
48
+ original: originalCreate,
49
+ });
50
+ if (debug) {
51
+ const version = getPackageVersion('openai');
52
+ console.log(`[llmtracer] \u2713 Patched openai (v${version})`);
53
+ }
54
+ }
55
+ catch (e) {
56
+ if (debug)
57
+ console.log(`[llmtracer] \u2717 openai not found or patch failed: ${e}`);
58
+ }
59
+ }
60
+ function patchAnthropic(debug) {
61
+ try {
62
+ const messagesModule = require('@anthropic-ai/sdk/resources/messages');
63
+ const MessagesProto = messagesModule.Messages?.prototype;
64
+ if (!MessagesProto)
65
+ throw new Error('Messages prototype not found');
66
+ if (MessagesProto._llmtracer_patched)
67
+ return;
68
+ const originalCreate = MessagesProto.create;
69
+ MessagesProto.create = (0, wrapper_1.makeAsyncWrapper)(originalCreate, 'anthropic', anthropic_1.parseAnthropicResponse, anthropic_1.wrapAnthropicStream);
70
+ MessagesProto._llmtracer_patched = true;
71
+ originals.set('anthropic.Messages.create', {
72
+ target: MessagesProto,
73
+ methodName: 'create',
74
+ original: originalCreate,
75
+ });
76
+ if (debug) {
77
+ const version = getPackageVersion('@anthropic-ai/sdk');
78
+ console.log(`[llmtracer] \u2713 Patched anthropic (v${version})`);
79
+ }
80
+ }
81
+ catch (e) {
82
+ if (debug)
83
+ console.log(`[llmtracer] \u2717 anthropic not found or patch failed: ${e}`);
84
+ }
85
+ }
86
+ function unpatchAll() {
87
+ for (const [, entry] of originals) {
88
+ entry.target[entry.methodName] = entry.original;
89
+ delete entry.target._llmtracer_patched;
90
+ }
91
+ originals.clear();
92
+ }
93
+ //# sourceMappingURL=patcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../src/patcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ContextData, ResponseData } from '../schema';
2
+ export declare function parseAnthropicResponse(result: any): ResponseData;
3
+ export declare function wrapAnthropicStream(result: any, context: ContextData, elapsedMs: number, args: any[]): any;
4
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGhF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY,CAQhE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CA4D1G"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.parseAnthropicResponse = parseAnthropicResponse;
37
+ exports.wrapAnthropicStream = wrapAnthropicStream;
38
+ const config_1 = require("../config");
39
+ const schema_1 = require("../schema");
40
+ const transport = __importStar(require("../transport"));
41
+ function parseAnthropicResponse(result) {
42
+ return {
43
+ provider: 'anthropic',
44
+ model: result?.model || 'unknown',
45
+ input_tokens: result?.usage?.input_tokens || 0,
46
+ output_tokens: result?.usage?.output_tokens || 0,
47
+ status: result?.stop_reason ? 'success' : 'error',
48
+ };
49
+ }
50
+ function wrapAnthropicStream(result, context, elapsedMs, args) {
51
+ let model = 'unknown';
52
+ let inputTokens = 0;
53
+ let outputTokens = 0;
54
+ function record() {
55
+ const event = (0, schema_1.buildEvent)(context, {
56
+ provider: 'anthropic',
57
+ model,
58
+ input_tokens: inputTokens,
59
+ output_tokens: outputTokens,
60
+ status: 'success',
61
+ }, elapsedMs);
62
+ transport.enqueue(event);
63
+ if (config_1.config.debug)
64
+ (0, schema_1.printCapture)(event);
65
+ }
66
+ return new Proxy(result, {
67
+ get(target, prop) {
68
+ if (prop === Symbol.asyncIterator) {
69
+ return function () {
70
+ const originalIterator = target[Symbol.asyncIterator]();
71
+ return {
72
+ async next() {
73
+ const iterResult = await originalIterator.next();
74
+ if (!iterResult.done) {
75
+ const event = iterResult.value;
76
+ // Anthropic stream events:
77
+ // - message_start: contains model and input token count
78
+ // - message_delta: contains output token count
79
+ // - content_block_delta: contains text deltas
80
+ if (event?.type === 'message_start' && event.message) {
81
+ model = event.message.model || model;
82
+ inputTokens = event.message.usage?.input_tokens || inputTokens;
83
+ }
84
+ if (event?.type === 'message_delta' && event.usage) {
85
+ outputTokens = event.usage.output_tokens || outputTokens;
86
+ }
87
+ }
88
+ if (iterResult.done) {
89
+ try {
90
+ record();
91
+ }
92
+ catch {
93
+ // swallow
94
+ }
95
+ }
96
+ return iterResult;
97
+ },
98
+ return: originalIterator.return?.bind(originalIterator),
99
+ throw: originalIterator.throw?.bind(originalIterator),
100
+ };
101
+ };
102
+ }
103
+ const value = target[prop];
104
+ if (typeof value === 'function') {
105
+ return value.bind(target);
106
+ }
107
+ return value;
108
+ },
109
+ });
110
+ }
111
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { parseOpenAIResponse, wrapOpenAIStream } from './openai';
2
+ export { parseAnthropicResponse, wrapAnthropicStream } from './anthropic';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wrapAnthropicStream = exports.parseAnthropicResponse = exports.wrapOpenAIStream = exports.parseOpenAIResponse = void 0;
4
+ var openai_1 = require("./openai");
5
+ Object.defineProperty(exports, "parseOpenAIResponse", { enumerable: true, get: function () { return openai_1.parseOpenAIResponse; } });
6
+ Object.defineProperty(exports, "wrapOpenAIStream", { enumerable: true, get: function () { return openai_1.wrapOpenAIStream; } });
7
+ var anthropic_1 = require("./anthropic");
8
+ Object.defineProperty(exports, "parseAnthropicResponse", { enumerable: true, get: function () { return anthropic_1.parseAnthropicResponse; } });
9
+ Object.defineProperty(exports, "wrapAnthropicStream", { enumerable: true, get: function () { return anthropic_1.wrapAnthropicStream; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;AAAA,mCAAiE;AAAxD,6GAAA,mBAAmB,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAC9C,yCAA0E;AAAjE,mHAAA,sBAAsB,OAAA;AAAE,gHAAA,mBAAmB,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { ContextData, ResponseData } from '../schema';
2
+ export declare function parseOpenAIResponse(result: any): ResponseData;
3
+ export declare function wrapOpenAIStream(result: any, context: ContextData, elapsedMs: number, args: any[]): any;
4
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/providers/openai.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGhF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY,CAQ7D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CA0DvG"}