@llmtracer/sdk 1.1.0 → 2.0.8
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/cjs/caller.d.ts +6 -0
- package/dist/cjs/caller.d.ts.map +1 -0
- package/dist/cjs/caller.js +62 -0
- package/dist/cjs/caller.js.map +1 -0
- package/dist/cjs/config.d.ts +7 -0
- package/dist/cjs/config.d.ts.map +1 -0
- package/dist/cjs/config.js +10 -0
- package/dist/cjs/config.js.map +1 -0
- package/dist/cjs/context.d.ts +9 -0
- package/dist/cjs/context.d.ts.map +1 -0
- package/dist/cjs/context.js +21 -0
- package/dist/cjs/context.js.map +1 -0
- package/dist/cjs/index.d.ts +20 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +94 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/patcher.d.ts +5 -0
- package/dist/cjs/patcher.d.ts.map +1 -0
- package/dist/cjs/patcher.js +131 -0
- package/dist/cjs/patcher.js.map +1 -0
- package/dist/cjs/providers/anthropic.d.ts +4 -0
- package/dist/cjs/providers/anthropic.d.ts.map +1 -0
- package/dist/cjs/providers/anthropic.js +126 -0
- package/dist/cjs/providers/anthropic.js.map +1 -0
- package/dist/cjs/providers/google.d.ts +4 -0
- package/dist/cjs/providers/google.d.ts.map +1 -0
- package/dist/cjs/providers/google.js +133 -0
- package/dist/cjs/providers/google.js.map +1 -0
- package/dist/cjs/providers/index.d.ts +4 -0
- package/dist/cjs/providers/index.d.ts.map +1 -0
- package/dist/cjs/providers/index.js +13 -0
- package/dist/cjs/providers/index.js.map +1 -0
- package/dist/cjs/providers/openai.d.ts +4 -0
- package/dist/cjs/providers/openai.d.ts.map +1 -0
- package/dist/cjs/providers/openai.js +123 -0
- package/dist/cjs/providers/openai.js.map +1 -0
- package/dist/cjs/schema.d.ts +18 -0
- package/dist/cjs/schema.d.ts.map +1 -0
- package/dist/cjs/schema.js +98 -0
- package/dist/cjs/schema.js.map +1 -0
- package/dist/cjs/transport.d.ts +15 -0
- package/dist/cjs/transport.d.ts.map +1 -0
- package/dist/cjs/transport.js +130 -0
- package/dist/cjs/transport.js.map +1 -0
- package/dist/cjs/wrapper.d.ts +3 -0
- package/dist/cjs/wrapper.d.ts.map +1 -0
- package/dist/cjs/wrapper.js +97 -0
- package/dist/cjs/wrapper.js.map +1 -0
- package/dist/esm/caller.d.ts +6 -0
- package/dist/esm/caller.d.ts.map +1 -0
- package/dist/esm/caller.js +59 -0
- package/dist/esm/caller.js.map +1 -0
- package/dist/esm/config.d.ts +7 -0
- package/dist/esm/config.d.ts.map +1 -0
- package/dist/esm/config.js +7 -0
- package/dist/esm/config.js.map +1 -0
- package/dist/esm/context.d.ts +9 -0
- package/dist/esm/context.d.ts.map +1 -0
- package/dist/esm/context.js +17 -0
- package/dist/esm/context.js.map +1 -0
- package/dist/esm/index.d.ts +20 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +54 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/patcher.d.ts +5 -0
- package/dist/esm/patcher.d.ts.map +1 -0
- package/dist/esm/patcher.js +125 -0
- package/dist/esm/patcher.js.map +1 -0
- package/dist/esm/providers/anthropic.d.ts +4 -0
- package/dist/esm/providers/anthropic.d.ts.map +1 -0
- package/dist/esm/providers/anthropic.js +89 -0
- package/dist/esm/providers/anthropic.js.map +1 -0
- package/dist/esm/providers/google.d.ts +4 -0
- package/dist/esm/providers/google.d.ts.map +1 -0
- package/dist/esm/providers/google.js +96 -0
- package/dist/esm/providers/google.js.map +1 -0
- package/dist/esm/providers/index.d.ts +4 -0
- package/dist/esm/providers/index.d.ts.map +1 -0
- package/dist/esm/providers/index.js +4 -0
- package/dist/esm/providers/index.js.map +1 -0
- package/dist/esm/providers/openai.d.ts +4 -0
- package/dist/esm/providers/openai.d.ts.map +1 -0
- package/dist/esm/providers/openai.js +86 -0
- package/dist/esm/providers/openai.js.map +1 -0
- package/dist/esm/schema.d.ts +18 -0
- package/dist/esm/schema.d.ts.map +1 -0
- package/dist/esm/schema.js +93 -0
- package/dist/esm/schema.js.map +1 -0
- package/dist/esm/transport.d.ts +15 -0
- package/dist/esm/transport.d.ts.map +1 -0
- package/dist/esm/transport.js +122 -0
- package/dist/esm/transport.js.map +1 -0
- package/dist/esm/wrapper.d.ts +3 -0
- package/dist/esm/wrapper.d.ts.map +1 -0
- package/dist/esm/wrapper.js +61 -0
- package/dist/esm/wrapper.js.map +1 -0
- package/package.json +52 -11
- package/dist/index.d.ts +0 -118
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -568
- package/dist/index.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,15 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llmtracer/sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.8",
|
|
4
4
|
"description": "See where your AI budget goes. Lightweight LLM cost tracking SDK.",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
5
|
+
"main": "dist/cjs/index.js",
|
|
6
|
+
"module": "dist/esm/index.js",
|
|
7
|
+
"types": "dist/cjs/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": {
|
|
11
|
+
"types": "./dist/esm/index.d.ts",
|
|
12
|
+
"default": "./dist/esm/index.js"
|
|
13
|
+
},
|
|
14
|
+
"require": {
|
|
15
|
+
"types": "./dist/cjs/index.d.ts",
|
|
16
|
+
"default": "./dist/cjs/index.js"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
8
23
|
"scripts": {
|
|
9
|
-
"build": "
|
|
10
|
-
"
|
|
24
|
+
"build": "npm run build:cjs && npm run build:esm && npm run build:esm-pkg",
|
|
25
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
26
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
27
|
+
"build:esm-pkg": "node -e \"require('fs').writeFileSync('dist/esm/package.json', '{\\\"type\\\":\\\"module\\\"}')\"",
|
|
28
|
+
"test": "node --test test/sdk.test.js"
|
|
11
29
|
},
|
|
12
|
-
"keywords": [
|
|
30
|
+
"keywords": [
|
|
31
|
+
"llm",
|
|
32
|
+
"openai",
|
|
33
|
+
"anthropic",
|
|
34
|
+
"google",
|
|
35
|
+
"gemini",
|
|
36
|
+
"cost",
|
|
37
|
+
"tracking",
|
|
38
|
+
"observability",
|
|
39
|
+
"tracing"
|
|
40
|
+
],
|
|
13
41
|
"author": "LLM Tracer <hello@llmtracer.com>",
|
|
14
42
|
"license": "MIT",
|
|
15
43
|
"repository": {
|
|
@@ -20,13 +48,26 @@
|
|
|
20
48
|
"bugs": {
|
|
21
49
|
"url": "https://github.com/llmtracer/sdk/issues"
|
|
22
50
|
},
|
|
23
|
-
"dependencies": {},
|
|
24
51
|
"devDependencies": {
|
|
25
|
-
"
|
|
26
|
-
"openai": "^4.0.0"
|
|
52
|
+
"@anthropic-ai/sdk": "^0.74.0",
|
|
53
|
+
"openai": "^4.0.0",
|
|
54
|
+
"typescript": "^5.3.0"
|
|
27
55
|
},
|
|
28
56
|
"peerDependencies": {
|
|
29
|
-
"openai": ">=4.0.0"
|
|
57
|
+
"openai": ">=4.0.0",
|
|
58
|
+
"@anthropic-ai/sdk": ">=0.30.0",
|
|
59
|
+
"@google/genai": ">=0.1.0"
|
|
60
|
+
},
|
|
61
|
+
"peerDependenciesMeta": {
|
|
62
|
+
"openai": {
|
|
63
|
+
"optional": true
|
|
64
|
+
},
|
|
65
|
+
"@anthropic-ai/sdk": {
|
|
66
|
+
"optional": true
|
|
67
|
+
},
|
|
68
|
+
"@google/genai": {
|
|
69
|
+
"optional": true
|
|
70
|
+
}
|
|
30
71
|
},
|
|
31
72
|
"engines": {
|
|
32
73
|
"node": ">=18"
|
package/dist/index.d.ts
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
/** Configuration for LLMTracer SDK (Section 9.1 of spec) */
|
|
2
|
-
export interface LLMTracerConfig {
|
|
3
|
-
/** Your LLM Tracer API key (starts with lt_) */
|
|
4
|
-
apiKey: string;
|
|
5
|
-
/** Ingestion endpoint URL */
|
|
6
|
-
endpoint?: string;
|
|
7
|
-
/** Max events per batch before auto-flush. Default: 50 */
|
|
8
|
-
maxBatchSize?: number;
|
|
9
|
-
/** Auto-flush interval in ms. Default: 10000 (10s) */
|
|
10
|
-
flushIntervalMs?: number;
|
|
11
|
-
/** Max events in queue before dropping oldest. Default: 10000 */
|
|
12
|
-
maxQueueSize?: number;
|
|
13
|
-
/** Max retry attempts for failed flushes. Default: 3 */
|
|
14
|
-
maxRetries?: number;
|
|
15
|
-
/** Base delay for exponential backoff in ms. Default: 1000 */
|
|
16
|
-
retryBaseMs?: number;
|
|
17
|
-
/** Sampling rate 0.0-1.0. Default: 1.0 (capture everything) */
|
|
18
|
-
sampleRate?: number;
|
|
19
|
-
/** Whether to capture full prompt content. Default: false */
|
|
20
|
-
capturePrompt?: boolean;
|
|
21
|
-
/** Enable debug logging. Default: false */
|
|
22
|
-
debug?: boolean;
|
|
23
|
-
/** Callback after each flush (Section 9.2) */
|
|
24
|
-
onFlush?: (stats: FlushStats) => void;
|
|
25
|
-
/** Callback on transport errors (Section 9.2) */
|
|
26
|
-
onError?: (error: Error) => void;
|
|
27
|
-
}
|
|
28
|
-
/** Stats passed to onFlush callback */
|
|
29
|
-
export interface FlushStats {
|
|
30
|
-
sent: number;
|
|
31
|
-
accepted: number;
|
|
32
|
-
rejected: number;
|
|
33
|
-
dropped: number;
|
|
34
|
-
last_error: Error | null;
|
|
35
|
-
}
|
|
36
|
-
/** Tags passed to instrumentOpenAI */
|
|
37
|
-
export interface InstrumentOptions {
|
|
38
|
-
tags?: Record<string, string>;
|
|
39
|
-
}
|
|
40
|
-
/** Trace context for agentic workflow tracking (Section 3.3) */
|
|
41
|
-
interface TraceContext {
|
|
42
|
-
traceId: string;
|
|
43
|
-
currentPhase: string | null;
|
|
44
|
-
sampled: boolean;
|
|
45
|
-
phase: (name: string, fn: () => Promise<unknown>) => Promise<unknown>;
|
|
46
|
-
}
|
|
47
|
-
export declare class LLMTracer {
|
|
48
|
-
private readonly apiKey;
|
|
49
|
-
private readonly endpoint;
|
|
50
|
-
private readonly maxBatchSize;
|
|
51
|
-
private readonly flushIntervalMs;
|
|
52
|
-
private readonly maxQueueSize;
|
|
53
|
-
private readonly maxRetries;
|
|
54
|
-
private readonly retryBaseMs;
|
|
55
|
-
private readonly sampleRate;
|
|
56
|
-
private readonly capturePrompt;
|
|
57
|
-
private readonly debugMode;
|
|
58
|
-
private readonly onFlushCallback;
|
|
59
|
-
private readonly onErrorCallback;
|
|
60
|
-
private queue;
|
|
61
|
-
private droppedCount;
|
|
62
|
-
private flushTimer;
|
|
63
|
-
private circuitState;
|
|
64
|
-
private consecutiveFailures;
|
|
65
|
-
private circuitOpenedAt;
|
|
66
|
-
private lastErrorSummary;
|
|
67
|
-
private readonly circuitFailureThreshold;
|
|
68
|
-
private readonly circuitCooldownMs;
|
|
69
|
-
private activeTraceId;
|
|
70
|
-
private activePhase;
|
|
71
|
-
private activeTraceSampled;
|
|
72
|
-
private flushing;
|
|
73
|
-
constructor(config: LLMTracerConfig);
|
|
74
|
-
/**
|
|
75
|
-
* Wraps an OpenAI client to automatically capture usage events.
|
|
76
|
-
* Supports both non-streaming and streaming calls.
|
|
77
|
-
*
|
|
78
|
-
* Usage:
|
|
79
|
-
* tracer.instrumentOpenAI(openai, { tags: { service: "api" } });
|
|
80
|
-
*/
|
|
81
|
-
instrumentOpenAI(openai: any, options?: InstrumentOptions): void;
|
|
82
|
-
/**
|
|
83
|
-
* Flush all buffered events to the backend.
|
|
84
|
-
* CRITICAL: Call this before returning in serverless environments.
|
|
85
|
-
*
|
|
86
|
-
* Usage:
|
|
87
|
-
* await tracer.flush();
|
|
88
|
-
*/
|
|
89
|
-
flush(): Promise<void>;
|
|
90
|
-
/**
|
|
91
|
-
* Track an agentic workflow with phases.
|
|
92
|
-
* All LLM calls within this trace are grouped together.
|
|
93
|
-
* Sampling is per-trace (Section 11.1).
|
|
94
|
-
*
|
|
95
|
-
* Usage:
|
|
96
|
-
* await tracer.trace("user-request-123", async (t) => {
|
|
97
|
-
* await t.phase("planning", async () => {
|
|
98
|
-
* await openai.chat.completions.create(...);
|
|
99
|
-
* });
|
|
100
|
-
* });
|
|
101
|
-
*/
|
|
102
|
-
trace(traceId: string, fn: (ctx: TraceContext) => Promise<unknown>): Promise<void>;
|
|
103
|
-
/**
|
|
104
|
-
* Flush remaining events and stop the auto-flush timer.
|
|
105
|
-
*/
|
|
106
|
-
shutdown(): Promise<void>;
|
|
107
|
-
private handleNonStreamingCall;
|
|
108
|
-
private handleStreamingCall;
|
|
109
|
-
private captureEvent;
|
|
110
|
-
private sendBatch;
|
|
111
|
-
private handleTransportError;
|
|
112
|
-
private enforceQueueLimit;
|
|
113
|
-
private handleInternalError;
|
|
114
|
-
private log;
|
|
115
|
-
private sleep;
|
|
116
|
-
}
|
|
117
|
-
export {};
|
|
118
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|