@introspection-sdk/introspection-node 0.4.2 → 0.4.4
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/.turbo/turbo-build.log +1 -1
- package/dist/client.d.ts +42 -132
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +67 -366
- package/dist/client.js.map +1 -0
- package/dist/converters/claude.d.ts +4 -0
- package/dist/converters/claude.d.ts.map +1 -1
- package/dist/converters/claude.js +7 -0
- package/dist/converters/claude.js.map +1 -0
- package/dist/converters/gemini.d.ts +90 -0
- package/dist/converters/gemini.d.ts.map +1 -0
- package/dist/converters/gemini.js +171 -0
- package/dist/converters/gemini.js.map +1 -0
- package/dist/converters/index.d.ts +1 -1
- package/dist/converters/index.d.ts.map +1 -1
- package/dist/converters/index.js +2 -1
- package/dist/converters/index.js.map +1 -0
- package/dist/converters/openai.js +1 -0
- package/dist/converters/openai.js.map +1 -0
- package/dist/converters/openinference.js +1 -0
- package/dist/converters/openinference.js.map +1 -0
- package/dist/converters/vercel.d.ts.map +1 -1
- package/dist/converters/vercel.js +31 -3
- package/dist/converters/vercel.js.map +1 -0
- package/dist/http.d.ts +36 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +145 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +24 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -32
- package/dist/index.js.map +1 -0
- package/dist/{anthropic.d.ts → otel/anthropic.d.ts} +23 -13
- package/dist/otel/anthropic.d.ts.map +1 -0
- package/dist/{anthropic.js → otel/anthropic.js} +132 -40
- package/dist/otel/anthropic.js.map +1 -0
- package/dist/{claude-hooks.d.ts → otel/claude-hooks.d.ts} +19 -1
- package/dist/otel/claude-hooks.d.ts.map +1 -0
- package/dist/{claude-hooks.js → otel/claude-hooks.js} +94 -20
- package/dist/otel/claude-hooks.js.map +1 -0
- package/dist/otel/claude-wrapper.d.ts.map +1 -0
- package/dist/{claude-wrapper.js → otel/claude-wrapper.js} +2 -1
- package/dist/otel/claude-wrapper.js.map +1 -0
- package/dist/otel/gemini.d.ts +56 -0
- package/dist/otel/gemini.d.ts.map +1 -0
- package/dist/otel/gemini.js +348 -0
- package/dist/otel/gemini.js.map +1 -0
- package/dist/otel/index.d.ts +32 -0
- package/dist/otel/index.d.ts.map +1 -0
- package/dist/otel/index.js +41 -0
- package/dist/otel/index.js.map +1 -0
- package/dist/otel/init.d.ts +126 -0
- package/dist/otel/init.d.ts.map +1 -0
- package/dist/otel/init.js +259 -0
- package/dist/otel/init.js.map +1 -0
- package/dist/otel/integrations/anthropic.d.ts +10 -0
- package/dist/otel/integrations/anthropic.d.ts.map +1 -0
- package/dist/otel/integrations/anthropic.js +22 -0
- package/dist/otel/integrations/anthropic.js.map +1 -0
- package/dist/otel/integrations/base.d.ts +83 -0
- package/dist/otel/integrations/base.d.ts.map +1 -0
- package/dist/otel/integrations/base.js +23 -0
- package/dist/otel/integrations/base.js.map +1 -0
- package/dist/otel/integrations/claude-agent.d.ts +13 -0
- package/dist/otel/integrations/claude-agent.d.ts.map +1 -0
- package/dist/otel/integrations/claude-agent.js +27 -0
- package/dist/otel/integrations/claude-agent.js.map +1 -0
- package/dist/otel/integrations/gemini.d.ts +11 -0
- package/dist/otel/integrations/gemini.d.ts.map +1 -0
- package/dist/otel/integrations/gemini.js +21 -0
- package/dist/otel/integrations/gemini.js.map +1 -0
- package/dist/otel/integrations/index.d.ts +39 -0
- package/dist/otel/integrations/index.d.ts.map +1 -0
- package/dist/otel/integrations/index.js +131 -0
- package/dist/otel/integrations/index.js.map +1 -0
- package/dist/otel/integrations/langchain.d.ts +16 -0
- package/dist/otel/integrations/langchain.d.ts.map +1 -0
- package/dist/otel/integrations/langchain.js +41 -0
- package/dist/otel/integrations/langchain.js.map +1 -0
- package/dist/otel/integrations/mastra.d.ts +14 -0
- package/dist/otel/integrations/mastra.d.ts.map +1 -0
- package/dist/otel/integrations/mastra.js +27 -0
- package/dist/otel/integrations/mastra.js.map +1 -0
- package/dist/otel/integrations/openai-agents.d.ts +11 -0
- package/dist/otel/integrations/openai-agents.d.ts.map +1 -0
- package/dist/otel/integrations/openai-agents.js +25 -0
- package/dist/otel/integrations/openai-agents.js.map +1 -0
- package/dist/otel/integrations/pi.d.ts +12 -0
- package/dist/otel/integrations/pi.d.ts.map +1 -0
- package/dist/otel/integrations/pi.js +20 -0
- package/dist/otel/integrations/pi.js.map +1 -0
- package/dist/otel/integrations/vercel.d.ts +15 -0
- package/dist/otel/integrations/vercel.d.ts.map +1 -0
- package/dist/otel/integrations/vercel.js +20 -0
- package/dist/otel/integrations/vercel.js.map +1 -0
- package/dist/{langchain-handler.d.ts → otel/langchain-handler.d.ts} +10 -1
- package/dist/otel/langchain-handler.d.ts.map +1 -0
- package/dist/{langchain-handler.js → otel/langchain-handler.js} +43 -6
- package/dist/otel/langchain-handler.js.map +1 -0
- package/dist/otel/logs.d.ts +82 -0
- package/dist/otel/logs.d.ts.map +1 -0
- package/dist/otel/logs.js +271 -0
- package/dist/otel/logs.js.map +1 -0
- package/dist/{mastra-exporter.d.ts → otel/mastra-exporter.d.ts} +3 -1
- package/dist/otel/mastra-exporter.d.ts.map +1 -0
- package/dist/{mastra-exporter.js → otel/mastra-exporter.js} +71 -17
- package/dist/otel/mastra-exporter.js.map +1 -0
- package/dist/otel/pi.d.ts +59 -0
- package/dist/otel/pi.d.ts.map +1 -0
- package/dist/otel/pi.js +67 -0
- package/dist/otel/pi.js.map +1 -0
- package/dist/otel/register.d.ts +8 -0
- package/dist/otel/register.d.ts.map +1 -0
- package/dist/otel/register.js +48 -0
- package/dist/otel/register.js.map +1 -0
- package/dist/otel/setup.d.ts +52 -0
- package/dist/otel/setup.d.ts.map +1 -0
- package/dist/otel/setup.js +146 -0
- package/dist/otel/setup.js.map +1 -0
- package/dist/{span-processor.d.ts → otel/span-processor.d.ts} +1 -1
- package/dist/otel/span-processor.d.ts.map +1 -0
- package/dist/{span-processor.js → otel/span-processor.js} +11 -5
- package/dist/otel/span-processor.js.map +1 -0
- package/dist/{tracing-processor.d.ts → otel/tracing-processor.d.ts} +4 -1
- package/dist/otel/tracing-processor.d.ts.map +1 -0
- package/dist/{tracing-processor.js → otel/tracing-processor.js} +64 -14
- package/dist/otel/tracing-processor.js.map +1 -0
- package/dist/resources/experiments.d.ts +31 -0
- package/dist/resources/experiments.d.ts.map +1 -0
- package/dist/resources/experiments.js +133 -0
- package/dist/resources/experiments.js.map +1 -0
- package/dist/resources/recipes.d.ts +22 -0
- package/dist/resources/recipes.d.ts.map +1 -0
- package/dist/resources/recipes.js +61 -0
- package/dist/resources/recipes.js.map +1 -0
- package/dist/resources/runtimes.d.ts +76 -0
- package/dist/resources/runtimes.d.ts.map +1 -0
- package/dist/resources/runtimes.js +179 -0
- package/dist/resources/runtimes.js.map +1 -0
- package/dist/runner-resources/files.d.ts +35 -0
- package/dist/runner-resources/files.d.ts.map +1 -0
- package/dist/runner-resources/files.js +131 -0
- package/dist/runner-resources/files.js.map +1 -0
- package/dist/runner-resources/tasks.d.ts +39 -0
- package/dist/runner-resources/tasks.d.ts.map +1 -0
- package/dist/runner-resources/tasks.js +129 -0
- package/dist/runner-resources/tasks.js.map +1 -0
- package/dist/runner.d.ts +80 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +159 -0
- package/dist/runner.js.map +1 -0
- package/dist/streaming.d.ts +8 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/streaming.js +67 -0
- package/dist/streaming.js.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +10 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -4
- package/dist/utils.js.map +1 -0
- package/dist/version.js +1 -0
- package/dist/version.js.map +1 -0
- package/package.json +91 -22
- package/src/client.ts +76 -473
- package/src/converters/claude.ts +10 -0
- package/src/converters/gemini.ts +243 -0
- package/src/converters/index.ts +13 -7
- package/src/converters/vercel.ts +41 -3
- package/src/http.ts +163 -0
- package/src/index.ts +110 -75
- package/src/{anthropic.ts → otel/anthropic.ts} +206 -54
- package/src/{claude-hooks.ts → otel/claude-hooks.ts} +119 -20
- package/src/{claude-wrapper.ts → otel/claude-wrapper.ts} +1 -1
- package/src/otel/gemini.ts +491 -0
- package/src/otel/index.ts +121 -0
- package/src/otel/init.ts +411 -0
- package/src/otel/integrations/anthropic.ts +26 -0
- package/src/otel/integrations/base.ts +95 -0
- package/src/otel/integrations/claude-agent.ts +32 -0
- package/src/otel/integrations/gemini.ts +25 -0
- package/src/otel/integrations/index.ts +151 -0
- package/src/otel/integrations/langchain.ts +45 -0
- package/src/otel/integrations/mastra.ts +30 -0
- package/src/otel/integrations/openai-agents.ts +31 -0
- package/src/otel/integrations/pi.ts +24 -0
- package/src/otel/integrations/vercel.ts +24 -0
- package/src/{langchain-handler.ts → otel/langchain-handler.ts} +53 -6
- package/src/otel/logs.ts +394 -0
- package/src/{mastra-exporter.ts → otel/mastra-exporter.ts} +83 -22
- package/src/otel/pi.ts +88 -0
- package/src/otel/register.ts +50 -0
- package/src/otel/setup.ts +215 -0
- package/src/{span-processor.ts → otel/span-processor.ts} +11 -6
- package/src/{tracing-processor.ts → otel/tracing-processor.ts} +94 -19
- package/src/resources/experiments.ts +170 -0
- package/src/resources/recipes.ts +73 -0
- package/src/resources/runtimes.ts +231 -0
- package/src/runner-resources/files.ts +163 -0
- package/src/runner-resources/tasks.ts +156 -0
- package/src/runner.ts +194 -0
- package/src/streaming.ts +57 -0
- package/src/utils.ts +12 -5
- package/dist/ai-sdk-integration.d.ts +0 -123
- package/dist/ai-sdk-integration.d.ts.map +0 -1
- package/dist/ai-sdk-integration.js +0 -475
- package/dist/anthropic.d.ts.map +0 -1
- package/dist/claude-hooks.d.ts.map +0 -1
- package/dist/claude-wrapper.d.ts.map +0 -1
- package/dist/converters/ai-sdk.d.ts +0 -65
- package/dist/converters/ai-sdk.d.ts.map +0 -1
- package/dist/converters/ai-sdk.js +0 -261
- package/dist/langchain-handler.d.ts.map +0 -1
- package/dist/mastra-exporter.d.ts.map +0 -1
- package/dist/span-processor.d.ts.map +0 -1
- package/dist/tracing-processor.d.ts.map +0 -1
- package/src/ai-sdk-integration.ts +0 -691
- package/src/converters/ai-sdk.ts +0 -323
- /package/dist/{claude-wrapper.d.ts → otel/claude-wrapper.d.ts} +0 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,39 +1,29 @@
|
|
|
1
|
-
import { IntrospectionSpanProcessor } from "./span-processor.js";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* Root entry point — REST-only surface.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Exports `IntrospectionClient` (REST), Runner / RuntimeHandle /
|
|
5
|
+
* ExperimentHandle, REST wire types, and HTTP helpers. None of these
|
|
6
|
+
* touch the OpenTelemetry SDK.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* import introspectionSpanProcessor from "@introspection-sdk/introspection-node";
|
|
14
|
-
*
|
|
15
|
-
* logfire.configure({ additionalSpanProcessors: [introspectionSpanProcessor()] });
|
|
16
|
-
* ```
|
|
8
|
+
* For the OTel surface (logs, span processors, instrumentors) import
|
|
9
|
+
* from `@introspection-sdk/introspection-node/otel`.
|
|
17
10
|
*/
|
|
18
|
-
|
|
19
|
-
return new IntrospectionSpanProcessor(options);
|
|
20
|
-
}
|
|
21
|
-
// Span processor exports (for OpenTelemetry integration)
|
|
22
|
-
export { IntrospectionSpanProcessor } from "./span-processor.js";
|
|
23
|
-
// Client exports
|
|
11
|
+
// REST client.
|
|
24
12
|
export { IntrospectionClient } from "./client.js";
|
|
25
|
-
//
|
|
26
|
-
export {
|
|
27
|
-
|
|
28
|
-
export {
|
|
29
|
-
|
|
30
|
-
|
|
13
|
+
// Runner-bound REST namespaces (runner.tasks, runner.files) + HTTP/SSE.
|
|
14
|
+
export { TasksApi, TaskRunsApi, RunHandle } from "./runner-resources/tasks.js";
|
|
15
|
+
export { FilesApi, FileVersionsApi } from "./runner-resources/files.js";
|
|
16
|
+
export { HttpClient } from "./http.js";
|
|
17
|
+
export { parseSse } from "./streaming.js";
|
|
18
|
+
// Runner + CP resources.
|
|
19
|
+
export { Runner } from "./runner.js";
|
|
20
|
+
export { RuntimesApi, RuntimeHandle, attachRuntimes, isUuid, } from "./resources/runtimes.js";
|
|
21
|
+
export { ExperimentsApi, ExperimentHandle, attachExperiments, } from "./resources/experiments.js";
|
|
22
|
+
export { RecipesApi, attachRecipes } from "./resources/recipes.js";
|
|
23
|
+
export { IntrospectionAPIError, AuthenticationError, InsufficientScopeError, RunnerExpiredError, NotFoundError, ConflictError, ValidationError, RateLimitError, SandboxUnavailableError, StreamError, NetworkError, apiErrorFromResponse, } from "@introspection-sdk/types";
|
|
31
24
|
export { toAttributes } from "@introspection-sdk/types";
|
|
32
|
-
// OpenAI converter exports
|
|
25
|
+
// OpenAI converter exports (pure functions, no OTel SDK imports).
|
|
33
26
|
export { convertResponsesInputsToSemconv, convertResponsesOutputsToSemconv, convertResponsesToolsToSemconv, convertResponsesInstructionsToSemconv, } from "./converters/openai.js";
|
|
34
|
-
//
|
|
35
|
-
export {
|
|
36
|
-
|
|
37
|
-
export { addOpenInferenceAttributes, OpenInferenceSpanExporter, } from "./converters/openinference.js";
|
|
38
|
-
// Anthropic instrumentor exports
|
|
39
|
-
export { AnthropicInstrumentor, tracedMessagesCreate, REDACTED_THINKING_CONTENT, } from "./anthropic.js";
|
|
27
|
+
// Gemini converters (pure functions, no OTel SDK imports).
|
|
28
|
+
export { convertGeminiContentsToInputMessages, convertGeminiCandidatesToOutputMessages, convertGeminiSystemInstructionToSemconv, convertGeminiToolsToToolDefinitions, } from "./converters/gemini.js";
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUlD,wEAAwE;AACxE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,yBAAyB;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,MAAM,GACP,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAmDnE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAclC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,kEAAkE;AAClE,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,qCAAqC,GACtC,MAAM,wBAAwB,CAAC;AAShC,2DAA2D;AAC3D,OAAO,EACL,oCAAoC,EACpC,uCAAuC,EACvC,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,wBAAwB,CAAC"}
|
|
@@ -28,26 +28,36 @@ export declare function tracedMessagesCreate(tracer: Tracer, client: {
|
|
|
28
28
|
messages: {
|
|
29
29
|
create: (...args: unknown[]) => Promise<unknown>;
|
|
30
30
|
};
|
|
31
|
-
}, kwargs: Record<string, unknown
|
|
32
|
-
/**
|
|
33
|
-
* Auto-instrumentor that patches `Anthropic.messages.create` to add tracing.
|
|
34
|
-
*
|
|
35
|
-
* Captures all content blocks including thinking (extended thinking) with
|
|
36
|
-
* signatures. Supports both non-streaming and streaming calls.
|
|
37
|
-
*/
|
|
38
|
-
/**
|
|
39
|
-
* Auto-instrumentor that wraps an Anthropic client instance to add tracing.
|
|
40
|
-
*
|
|
41
|
-
* Captures all content blocks including thinking (extended thinking) with
|
|
42
|
-
* signatures. Supports both non-streaming and streaming calls.
|
|
43
|
-
*/
|
|
31
|
+
}, kwargs: Record<string, unknown>, conversationId?: string): Promise<unknown>;
|
|
44
32
|
export declare class AnthropicInstrumentor {
|
|
45
33
|
private tracer;
|
|
46
34
|
private patchedClients;
|
|
35
|
+
private protoRestores;
|
|
36
|
+
private conversationId;
|
|
47
37
|
instrument(opts: {
|
|
48
38
|
tracerProvider?: BasicTracerProvider;
|
|
49
39
|
/** The Anthropic client instance to instrument. */
|
|
50
40
|
client: any;
|
|
41
|
+
/**
|
|
42
|
+
* Conversation ID shared across all spans produced by this instrumentor.
|
|
43
|
+
* Enables the Introspection processor to reliably link multi-turn API calls
|
|
44
|
+
* into a single conversation without relying on history-hash matching.
|
|
45
|
+
* Defaults to a random UUID generated at instrument() time.
|
|
46
|
+
*/
|
|
47
|
+
conversationId?: string;
|
|
48
|
+
}): void;
|
|
49
|
+
/**
|
|
50
|
+
* Patch `Anthropic.Messages.prototype.create` so **every** client constructed
|
|
51
|
+
* from the given module is traced — the one-liner path used by
|
|
52
|
+
* `introspection.init()`. Idempotent: a second call is a no-op.
|
|
53
|
+
*
|
|
54
|
+
* @param opts.anthropic The `@anthropic-ai/sdk` module's default export
|
|
55
|
+
* (the `Anthropic` class). Its `.Messages.prototype.create` is patched.
|
|
56
|
+
*/
|
|
57
|
+
instrumentClass(opts: {
|
|
58
|
+
anthropic: any;
|
|
59
|
+
tracerProvider?: BasicTracerProvider;
|
|
60
|
+
conversationId?: string;
|
|
51
61
|
}): void;
|
|
52
62
|
uninstrument(): void;
|
|
53
63
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/otel/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAgBH,OAAO,KAAK,EAAE,MAAM,EAAQ,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAMzE,6FAA6F;AAC7F,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAiWtD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;IAAE,QAAQ,EAAE;QAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,EAC1E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC,CAuBlB;AA+FD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAuB;IAErC,OAAO,CAAC,cAAc,CAAmD;IACzE,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAAqB;IAE3C,UAAU,CAAC,IAAI,EAAE;QACf,cAAc,CAAC,EAAE,mBAAmB,CAAC;QACrC,mDAAmD;QAEnD,MAAM,EAAE,GAAG,CAAC;QACZ;;;;;WAKG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,IAAI;IAyBR;;;;;;;OAOG;IACH,eAAe,CAAC,IAAI,EAAE;QAEpB,SAAS,EAAE,GAAG,CAAC;QACf,cAAc,CAAC,EAAE,mBAAmB,CAAC;QACrC,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,IAAI;IA6BR,YAAY,IAAI,IAAI;CASrB"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* // All client.messages.create calls are now traced
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
import { trace, SpanKind, SpanStatusCode } from "@opentelemetry/api";
|
|
19
|
+
import { trace, context as otelContext, propagation, SpanKind, SpanStatusCode, } from "@opentelemetry/api";
|
|
20
20
|
// ---------------------------------------------------------------------------
|
|
21
21
|
// Converters
|
|
22
22
|
// ---------------------------------------------------------------------------
|
|
@@ -126,7 +126,7 @@ function serializeMessages(msgs) {
|
|
|
126
126
|
return obj;
|
|
127
127
|
}));
|
|
128
128
|
}
|
|
129
|
-
function startSpan(tracer, model) {
|
|
129
|
+
function startSpan(tracer, model, conversationId) {
|
|
130
130
|
const span = tracer.startSpan("chat", {
|
|
131
131
|
kind: SpanKind.CLIENT,
|
|
132
132
|
attributes: {
|
|
@@ -135,6 +135,9 @@ function startSpan(tracer, model) {
|
|
|
135
135
|
"gen_ai.operation.name": "chat",
|
|
136
136
|
"gen_ai.request.model": model,
|
|
137
137
|
"openinference.span.kind": "LLM",
|
|
138
|
+
...(conversationId
|
|
139
|
+
? { "gen_ai.conversation.id": conversationId }
|
|
140
|
+
: undefined),
|
|
138
141
|
},
|
|
139
142
|
});
|
|
140
143
|
return { span, token: null };
|
|
@@ -147,9 +150,25 @@ function setRequestAttrs(span, kwargs) {
|
|
|
147
150
|
}
|
|
148
151
|
const system = kwargs.system;
|
|
149
152
|
if (system) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
+
let sysVal;
|
|
154
|
+
if (typeof system === "string") {
|
|
155
|
+
sysVal = JSON.stringify([{ type: "text", content: system }]);
|
|
156
|
+
}
|
|
157
|
+
else if (Array.isArray(system)) {
|
|
158
|
+
// Anthropic block format: [{type:"text", text:"...", cache_control:{...}}]
|
|
159
|
+
// Normalize to gen_ai format: [{type:"text", content:"..."}]
|
|
160
|
+
sysVal = JSON.stringify(system.map((block) => ({
|
|
161
|
+
type: "text",
|
|
162
|
+
content: typeof block.text === "string"
|
|
163
|
+
? block.text
|
|
164
|
+
: typeof block.content === "string"
|
|
165
|
+
? block.content
|
|
166
|
+
: "",
|
|
167
|
+
})));
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
sysVal = JSON.stringify(system);
|
|
171
|
+
}
|
|
153
172
|
span.setAttribute("gen_ai.system_instructions", sysVal);
|
|
154
173
|
}
|
|
155
174
|
const tools = kwargs.tools;
|
|
@@ -180,6 +199,10 @@ function setResponseAttrs(span, response) {
|
|
|
180
199
|
span.setAttribute("gen_ai.usage.input_tokens", usage.input_tokens);
|
|
181
200
|
if (usage.output_tokens != null)
|
|
182
201
|
span.setAttribute("gen_ai.usage.output_tokens", usage.output_tokens);
|
|
202
|
+
if (usage.cache_read_input_tokens != null)
|
|
203
|
+
span.setAttribute("gen_ai.usage.cache_read.input_tokens", usage.cache_read_input_tokens);
|
|
204
|
+
if (usage.cache_creation_input_tokens != null)
|
|
205
|
+
span.setAttribute("gen_ai.usage.cache_creation.input_tokens", usage.cache_creation_input_tokens);
|
|
183
206
|
}
|
|
184
207
|
span.setStatus({ code: SpanStatusCode.OK });
|
|
185
208
|
}
|
|
@@ -192,6 +215,8 @@ class TracedStream {
|
|
|
192
215
|
responseModel = null;
|
|
193
216
|
inputTokens = 0;
|
|
194
217
|
outputTokens = 0;
|
|
218
|
+
cacheReadInputTokens = 0;
|
|
219
|
+
cacheCreationInputTokens = 0;
|
|
195
220
|
finalized = false;
|
|
196
221
|
constructor(inner, span) {
|
|
197
222
|
this.inner = inner;
|
|
@@ -213,8 +238,11 @@ class TracedStream {
|
|
|
213
238
|
this.responseId = event.message.id || null;
|
|
214
239
|
this.responseModel = event.message.model || null;
|
|
215
240
|
const usage = event.message.usage;
|
|
216
|
-
if (usage)
|
|
241
|
+
if (usage) {
|
|
217
242
|
this.inputTokens = usage.input_tokens || 0;
|
|
243
|
+
this.cacheReadInputTokens = usage.cache_read_input_tokens || 0;
|
|
244
|
+
this.cacheCreationInputTokens = usage.cache_creation_input_tokens || 0;
|
|
245
|
+
}
|
|
218
246
|
}
|
|
219
247
|
else if (event.type === "content_block_start" && event.content_block) {
|
|
220
248
|
const bt = event.content_block.type || "";
|
|
@@ -277,6 +305,10 @@ class TracedStream {
|
|
|
277
305
|
this.span.setAttribute("gen_ai.usage.input_tokens", this.inputTokens);
|
|
278
306
|
if (this.outputTokens)
|
|
279
307
|
this.span.setAttribute("gen_ai.usage.output_tokens", this.outputTokens);
|
|
308
|
+
if (this.cacheReadInputTokens)
|
|
309
|
+
this.span.setAttribute("gen_ai.usage.cache_read.input_tokens", this.cacheReadInputTokens);
|
|
310
|
+
if (this.cacheCreationInputTokens)
|
|
311
|
+
this.span.setAttribute("gen_ai.usage.cache_creation.input_tokens", this.cacheCreationInputTokens);
|
|
280
312
|
this.span.setStatus({ code: SpanStatusCode.OK });
|
|
281
313
|
this.span.end();
|
|
282
314
|
}
|
|
@@ -288,8 +320,8 @@ class TracedStream {
|
|
|
288
320
|
* Traced wrapper around `client.messages.create(kwargs)`.
|
|
289
321
|
* Creates a gen_ai span with full Anthropic response including thinking blocks.
|
|
290
322
|
*/
|
|
291
|
-
export async function tracedMessagesCreate(tracer, client, kwargs) {
|
|
292
|
-
const { span } = startSpan(tracer, kwargs.model || "unknown");
|
|
323
|
+
export async function tracedMessagesCreate(tracer, client, kwargs, conversationId) {
|
|
324
|
+
const { span } = startSpan(tracer, kwargs.model || "unknown", conversationId);
|
|
293
325
|
try {
|
|
294
326
|
setRequestAttrs(span, kwargs);
|
|
295
327
|
const response = (await client.messages.create(kwargs));
|
|
@@ -319,57 +351,117 @@ export async function tracedMessagesCreate(tracer, client, kwargs) {
|
|
|
319
351
|
* Captures all content blocks including thinking (extended thinking) with
|
|
320
352
|
* signatures. Supports both non-streaming and streaming calls.
|
|
321
353
|
*/
|
|
354
|
+
/**
|
|
355
|
+
* Build the traced replacement for `messages.create`.
|
|
356
|
+
*
|
|
357
|
+
* Shared by {@link AnthropicInstrumentor.instrument} (patches a single client
|
|
358
|
+
* instance) and {@link AnthropicInstrumentor.instrumentClass} (patches
|
|
359
|
+
* `Anthropic.Messages.prototype.create` so every client is auto-traced). The
|
|
360
|
+
* returned function preserves the call-site `this`, so it works whether it is
|
|
361
|
+
* assigned to an instance property or onto the class prototype.
|
|
362
|
+
*/
|
|
363
|
+
function buildTracedCreate(
|
|
364
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
365
|
+
origCreate, tracer, defaultConversationId) {
|
|
366
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
367
|
+
return function tracedCreate(...args) {
|
|
368
|
+
const kwargs = args[0];
|
|
369
|
+
const isStream = kwargs?.stream === true;
|
|
370
|
+
// Baggage on the active context overrides the conversation ID bound at
|
|
371
|
+
// instrument() time, so callers can wrap a request in
|
|
372
|
+
// IntrospectionClient.withConversation() to scope a single call to a
|
|
373
|
+
// distinct conversation without re-instrumenting the client.
|
|
374
|
+
const baggage = propagation.getBaggage(otelContext.active());
|
|
375
|
+
const baggageConvId = baggage?.getEntry("gen_ai.conversation.id")?.value;
|
|
376
|
+
const baggageAgentName = baggage?.getEntry("gen_ai.agent.name")?.value;
|
|
377
|
+
const baggageAgentId = baggage?.getEntry("gen_ai.agent.id")?.value;
|
|
378
|
+
const { span } = startSpan(tracer, kwargs?.model || "unknown", baggageConvId ?? defaultConversationId);
|
|
379
|
+
if (baggageAgentName) {
|
|
380
|
+
span.setAttribute("gen_ai.agent.name", baggageAgentName);
|
|
381
|
+
}
|
|
382
|
+
if (baggageAgentId) {
|
|
383
|
+
span.setAttribute("gen_ai.agent.id", baggageAgentId);
|
|
384
|
+
}
|
|
385
|
+
setRequestAttrs(span, kwargs || {});
|
|
386
|
+
if (isStream) {
|
|
387
|
+
const streamPromise = origCreate.apply(this, args);
|
|
388
|
+
return streamPromise.then((stream) => new TracedStream(stream, span), (err) => {
|
|
389
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: String(err) });
|
|
390
|
+
span.end();
|
|
391
|
+
throw err;
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
const resultPromise = origCreate.apply(this, args);
|
|
395
|
+
return resultPromise.then((response) => {
|
|
396
|
+
setResponseAttrs(span, response);
|
|
397
|
+
span.end();
|
|
398
|
+
return response;
|
|
399
|
+
}, (err) => {
|
|
400
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: String(err) });
|
|
401
|
+
span.end();
|
|
402
|
+
throw err;
|
|
403
|
+
});
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Marker placed on a patched `Messages.prototype.create` so repeated
|
|
408
|
+
* `instrumentClass()` calls (e.g. a second `introspection.init()`) are no-ops.
|
|
409
|
+
*/
|
|
410
|
+
const PATCHED = Symbol.for("introspection.anthropic.patched");
|
|
322
411
|
export class AnthropicInstrumentor {
|
|
323
412
|
tracer = null;
|
|
324
413
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
325
414
|
patchedClients = [];
|
|
415
|
+
protoRestores = [];
|
|
416
|
+
conversationId;
|
|
326
417
|
instrument(opts) {
|
|
327
418
|
const { client } = opts;
|
|
328
419
|
if (!client?.messages?.create) {
|
|
329
420
|
throw new Error("Invalid client — pass an Anthropic client instance (new Anthropic())");
|
|
330
421
|
}
|
|
422
|
+
this.conversationId = opts.conversationId ?? crypto.randomUUID();
|
|
331
423
|
const provider = opts.tracerProvider ?? trace.getTracerProvider();
|
|
332
424
|
this.tracer = provider.getTracer("introspection-anthropic");
|
|
333
425
|
const origCreate = client.messages.create.bind(client.messages);
|
|
334
426
|
this.patchedClients.push({ client, originalCreate: origCreate });
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
span.end();
|
|
364
|
-
throw err;
|
|
365
|
-
});
|
|
366
|
-
};
|
|
427
|
+
client.messages.create = buildTracedCreate(origCreate, this.tracer, this.conversationId);
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Patch `Anthropic.Messages.prototype.create` so **every** client constructed
|
|
431
|
+
* from the given module is traced — the one-liner path used by
|
|
432
|
+
* `introspection.init()`. Idempotent: a second call is a no-op.
|
|
433
|
+
*
|
|
434
|
+
* @param opts.anthropic The `@anthropic-ai/sdk` module's default export
|
|
435
|
+
* (the `Anthropic` class). Its `.Messages.prototype.create` is patched.
|
|
436
|
+
*/
|
|
437
|
+
instrumentClass(opts) {
|
|
438
|
+
const Messages = opts.anthropic?.Messages;
|
|
439
|
+
const proto = Messages?.prototype;
|
|
440
|
+
if (typeof proto?.create !== "function") {
|
|
441
|
+
throw new Error("Invalid Anthropic module — expected `Anthropic.Messages.prototype.create`");
|
|
442
|
+
}
|
|
443
|
+
if (proto.create[PATCHED])
|
|
444
|
+
return;
|
|
445
|
+
this.conversationId = opts.conversationId ?? crypto.randomUUID();
|
|
446
|
+
const provider = opts.tracerProvider ?? trace.getTracerProvider();
|
|
447
|
+
this.tracer = provider.getTracer("introspection-anthropic");
|
|
448
|
+
const origCreate = proto.create;
|
|
449
|
+
const patched = buildTracedCreate(origCreate, this.tracer, this.conversationId);
|
|
450
|
+
patched[PATCHED] = true;
|
|
451
|
+
proto.create = patched;
|
|
452
|
+
this.protoRestores.push(() => {
|
|
453
|
+
proto.create = origCreate;
|
|
454
|
+
});
|
|
367
455
|
}
|
|
368
456
|
uninstrument() {
|
|
369
457
|
for (const { client, originalCreate } of this.patchedClients) {
|
|
370
458
|
client.messages.create = originalCreate;
|
|
371
459
|
}
|
|
372
460
|
this.patchedClients = [];
|
|
461
|
+
for (const restore of this.protoRestores)
|
|
462
|
+
restore();
|
|
463
|
+
this.protoRestores = [];
|
|
373
464
|
this.tracer = null;
|
|
374
465
|
}
|
|
375
466
|
}
|
|
467
|
+
//# sourceMappingURL=anthropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/otel/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -172,6 +172,8 @@ export interface ClaudeAssistantMessage {
|
|
|
172
172
|
usage?: {
|
|
173
173
|
input_tokens?: number;
|
|
174
174
|
output_tokens?: number;
|
|
175
|
+
cache_read_input_tokens?: number;
|
|
176
|
+
cache_creation_input_tokens?: number;
|
|
175
177
|
};
|
|
176
178
|
content?: Array<{
|
|
177
179
|
type: string;
|
|
@@ -202,12 +204,16 @@ export interface ClaudeHooksAdvancedOptions {
|
|
|
202
204
|
export interface IntrospectionClaudeHooksOptions {
|
|
203
205
|
/** Authentication token (env: INTROSPECTION_TOKEN) */
|
|
204
206
|
token?: string;
|
|
205
|
-
/** Base URL for the API (env:
|
|
207
|
+
/** Base URL for the API (env: INTROSPECTION_BASE_OTEL_URL) */
|
|
206
208
|
baseUrl?: string;
|
|
207
209
|
/** Service name for the OTel resource (defaults to "claude-agent") */
|
|
208
210
|
serviceName?: string;
|
|
209
211
|
/** Agent name set on session spans as gen_ai.agent.name (defaults to serviceName) */
|
|
210
212
|
agentName?: string;
|
|
213
|
+
/** Agent ID set on session spans as gen_ai.agent.id */
|
|
214
|
+
agentId?: string;
|
|
215
|
+
/** Conversation ID set on session spans as gen_ai.conversation.id */
|
|
216
|
+
conversationId?: string;
|
|
211
217
|
/** Additional headers to include in requests */
|
|
212
218
|
additionalHeaders?: Record<string, string>;
|
|
213
219
|
/** Advanced options for testing and customization */
|
|
@@ -249,6 +255,8 @@ export declare class IntrospectionClaudeHooks {
|
|
|
249
255
|
private _tracerProvider;
|
|
250
256
|
private _tracer;
|
|
251
257
|
private _agentName;
|
|
258
|
+
private _agentId?;
|
|
259
|
+
private _conversationId?;
|
|
252
260
|
private _sessionSpans;
|
|
253
261
|
private _toolSpans;
|
|
254
262
|
private _subagentSpans;
|
|
@@ -261,6 +269,16 @@ export declare class IntrospectionClaudeHooks {
|
|
|
261
269
|
* @returns A {@link ClaudeHooksConfig} wired to this instance's tracing.
|
|
262
270
|
*/
|
|
263
271
|
getHooks(): ClaudeHooksConfig;
|
|
272
|
+
/**
|
|
273
|
+
* Resolve effective agent / conversation identity for a session, in order
|
|
274
|
+
* of precedence: OTel baggage on the active context > constructor option >
|
|
275
|
+
* the Claude session ID. Lets callers override identity per-invocation via
|
|
276
|
+
* `IntrospectionClient.withAgent()` / `.withConversation()` without
|
|
277
|
+
* having to construct a new hooks instance per call.
|
|
278
|
+
*
|
|
279
|
+
* Requires an active context manager — see {@link setupTracing}.
|
|
280
|
+
*/
|
|
281
|
+
private _resolveIdentity;
|
|
264
282
|
/**
|
|
265
283
|
* Set the input prompt for a session so it appears as
|
|
266
284
|
* `gen_ai.input.messages` on the session span.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-hooks.d.ts","sourceRoot":"","sources":["../../src/otel/claude-hooks.ts"],"names":[],"mappings":"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"}
|