@introspection-sdk/introspection-node 0.4.1 → 0.4.3

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 (166) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-check-types.log +4 -0
  3. package/.turbo/turbo-lint.log +5 -0
  4. package/dist/ai-sdk-integration.d.ts.map +1 -1
  5. package/dist/ai-sdk-integration.js +2 -2
  6. package/dist/claude-hooks.d.ts.map +1 -1
  7. package/dist/claude-hooks.js +3 -3
  8. package/dist/client.d.ts +42 -132
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +66 -365
  11. package/dist/client.js.map +1 -0
  12. package/dist/converters/claude.d.ts +5 -1
  13. package/dist/converters/claude.d.ts.map +1 -1
  14. package/dist/converters/claude.js +7 -0
  15. package/dist/converters/claude.js.map +1 -0
  16. package/dist/converters/gemini.d.ts +90 -0
  17. package/dist/converters/gemini.d.ts.map +1 -0
  18. package/dist/converters/gemini.js +171 -0
  19. package/dist/converters/gemini.js.map +1 -0
  20. package/dist/converters/index.d.ts +1 -1
  21. package/dist/converters/index.d.ts.map +1 -1
  22. package/dist/converters/index.js +2 -1
  23. package/dist/converters/index.js.map +1 -0
  24. package/dist/converters/openai.js +1 -0
  25. package/dist/converters/openai.js.map +1 -0
  26. package/dist/converters/openclaw.d.ts +16 -0
  27. package/dist/converters/openclaw.d.ts.map +1 -0
  28. package/dist/converters/openclaw.js +49 -0
  29. package/dist/converters/openinference.js +1 -0
  30. package/dist/converters/openinference.js.map +1 -0
  31. package/dist/converters/vercel.d.ts.map +1 -1
  32. package/dist/converters/vercel.js +31 -3
  33. package/dist/converters/vercel.js.map +1 -0
  34. package/dist/http.d.ts +36 -0
  35. package/dist/http.d.ts.map +1 -0
  36. package/dist/http.js +145 -0
  37. package/dist/http.js.map +1 -0
  38. package/dist/index.d.ts +24 -27
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +22 -32
  41. package/dist/index.js.map +1 -0
  42. package/dist/langchain-handler.d.ts.map +1 -1
  43. package/dist/langchain-handler.js +2 -2
  44. package/dist/mastra-exporter.d.ts.map +1 -1
  45. package/dist/mastra-exporter.js +2 -2
  46. package/dist/otel/anthropic.d.ts +62 -0
  47. package/dist/otel/anthropic.d.ts.map +1 -0
  48. package/dist/otel/anthropic.js +425 -0
  49. package/dist/otel/anthropic.js.map +1 -0
  50. package/dist/otel/claude-hooks.d.ts +346 -0
  51. package/dist/otel/claude-hooks.d.ts.map +1 -0
  52. package/dist/otel/claude-hooks.js +645 -0
  53. package/dist/otel/claude-hooks.js.map +1 -0
  54. package/dist/otel/claude-wrapper.d.ts +93 -0
  55. package/dist/otel/claude-wrapper.d.ts.map +1 -0
  56. package/dist/otel/claude-wrapper.js +155 -0
  57. package/dist/otel/claude-wrapper.js.map +1 -0
  58. package/dist/otel/gemini.d.ts +48 -0
  59. package/dist/otel/gemini.d.ts.map +1 -0
  60. package/dist/otel/gemini.js +297 -0
  61. package/dist/otel/gemini.js.map +1 -0
  62. package/dist/otel/index.d.ts +27 -0
  63. package/dist/otel/index.d.ts.map +1 -0
  64. package/dist/otel/index.js +33 -0
  65. package/dist/otel/index.js.map +1 -0
  66. package/dist/otel/langchain-handler.d.ts +112 -0
  67. package/dist/otel/langchain-handler.d.ts.map +1 -0
  68. package/dist/otel/langchain-handler.js +555 -0
  69. package/dist/otel/langchain-handler.js.map +1 -0
  70. package/dist/otel/logs.d.ts +82 -0
  71. package/dist/otel/logs.d.ts.map +1 -0
  72. package/dist/otel/logs.js +271 -0
  73. package/dist/otel/logs.js.map +1 -0
  74. package/dist/otel/mastra-exporter.d.ts +87 -0
  75. package/dist/otel/mastra-exporter.d.ts.map +1 -0
  76. package/dist/otel/mastra-exporter.js +525 -0
  77. package/dist/otel/mastra-exporter.js.map +1 -0
  78. package/dist/otel/pi.d.ts +59 -0
  79. package/dist/otel/pi.d.ts.map +1 -0
  80. package/dist/otel/pi.js +67 -0
  81. package/dist/otel/pi.js.map +1 -0
  82. package/dist/otel/setup.d.ts +23 -0
  83. package/dist/otel/setup.d.ts.map +1 -0
  84. package/dist/otel/setup.js +127 -0
  85. package/dist/otel/setup.js.map +1 -0
  86. package/dist/otel/span-processor.d.ts +62 -0
  87. package/dist/otel/span-processor.d.ts.map +1 -0
  88. package/dist/otel/span-processor.js +319 -0
  89. package/dist/otel/span-processor.js.map +1 -0
  90. package/dist/otel/tracing-processor.d.ts +139 -0
  91. package/dist/otel/tracing-processor.d.ts.map +1 -0
  92. package/dist/otel/tracing-processor.js +418 -0
  93. package/dist/otel/tracing-processor.js.map +1 -0
  94. package/dist/resources/experiments.d.ts +31 -0
  95. package/dist/resources/experiments.d.ts.map +1 -0
  96. package/dist/resources/experiments.js +133 -0
  97. package/dist/resources/experiments.js.map +1 -0
  98. package/dist/resources/recipes.d.ts +22 -0
  99. package/dist/resources/recipes.d.ts.map +1 -0
  100. package/dist/resources/recipes.js +61 -0
  101. package/dist/resources/recipes.js.map +1 -0
  102. package/dist/resources/runtimes.d.ts +76 -0
  103. package/dist/resources/runtimes.d.ts.map +1 -0
  104. package/dist/resources/runtimes.js +179 -0
  105. package/dist/resources/runtimes.js.map +1 -0
  106. package/dist/runner-resources/files.d.ts +35 -0
  107. package/dist/runner-resources/files.d.ts.map +1 -0
  108. package/dist/runner-resources/files.js +131 -0
  109. package/dist/runner-resources/files.js.map +1 -0
  110. package/dist/runner-resources/tasks.d.ts +39 -0
  111. package/dist/runner-resources/tasks.d.ts.map +1 -0
  112. package/dist/runner-resources/tasks.js +129 -0
  113. package/dist/runner-resources/tasks.js.map +1 -0
  114. package/dist/runner.d.ts +80 -0
  115. package/dist/runner.d.ts.map +1 -0
  116. package/dist/runner.js +159 -0
  117. package/dist/runner.js.map +1 -0
  118. package/dist/span-processor.d.ts.map +1 -1
  119. package/dist/span-processor.js +3 -3
  120. package/dist/streaming.d.ts +8 -0
  121. package/dist/streaming.d.ts.map +1 -0
  122. package/dist/streaming.js +67 -0
  123. package/dist/streaming.js.map +1 -0
  124. package/dist/tracing-processor.d.ts.map +1 -1
  125. package/dist/tracing-processor.js +3 -3
  126. package/dist/types/genai.d.ts +165 -0
  127. package/dist/types/genai.d.ts.map +1 -0
  128. package/dist/types/genai.js +82 -0
  129. package/dist/types.js +1 -0
  130. package/dist/types.js.map +1 -0
  131. package/dist/utils.d.ts +1 -0
  132. package/dist/utils.d.ts.map +1 -1
  133. package/dist/utils.js +14 -0
  134. package/dist/utils.js.map +1 -0
  135. package/dist/version.js +1 -0
  136. package/dist/version.js.map +1 -0
  137. package/package.json +83 -25
  138. package/src/client.ts +76 -471
  139. package/src/converters/claude.ts +11 -1
  140. package/src/converters/gemini.ts +243 -0
  141. package/src/converters/index.ts +13 -7
  142. package/src/converters/vercel.ts +41 -3
  143. package/src/http.ts +163 -0
  144. package/src/index.ts +110 -75
  145. package/src/{anthropic.ts → otel/anthropic.ts} +95 -8
  146. package/src/{claude-hooks.ts → otel/claude-hooks.ts} +125 -24
  147. package/src/{claude-wrapper.ts → otel/claude-wrapper.ts} +1 -1
  148. package/src/otel/gemini.ts +397 -0
  149. package/src/otel/index.ts +80 -0
  150. package/src/{langchain-handler.ts → otel/langchain-handler.ts} +56 -7
  151. package/src/otel/logs.ts +394 -0
  152. package/src/{mastra-exporter.ts → otel/mastra-exporter.ts} +86 -23
  153. package/src/otel/pi.ts +88 -0
  154. package/src/otel/setup.ts +174 -0
  155. package/src/{span-processor.ts → otel/span-processor.ts} +17 -10
  156. package/src/{tracing-processor.ts → otel/tracing-processor.ts} +100 -23
  157. package/src/resources/experiments.ts +170 -0
  158. package/src/resources/recipes.ts +73 -0
  159. package/src/resources/runtimes.ts +231 -0
  160. package/src/runner-resources/files.ts +163 -0
  161. package/src/runner-resources/tasks.ts +156 -0
  162. package/src/runner.ts +194 -0
  163. package/src/streaming.ts +57 -0
  164. package/src/utils.ts +15 -0
  165. package/src/ai-sdk-integration.ts +0 -689
  166. package/src/converters/ai-sdk.ts +0 -323
@@ -0,0 +1,33 @@
1
+ /**
2
+ * OpenTelemetry surface for the Introspection Node SDK.
3
+ *
4
+ * Subpath entry point: `@introspection-sdk/introspection-node/otel`.
5
+ *
6
+ * Importing from here pulls in OTel SDK packages (peer deps). The
7
+ * REST-only `IntrospectionClient` is available from the package root
8
+ * and does not require these to be installed.
9
+ */
10
+ // IntrospectionLogs — OTel logs exporter with track/feedback/identify
11
+ // and baggage context helpers (extracted from the old IntrospectionClient).
12
+ export { IntrospectionLogs } from "./logs.js";
13
+ // One-call tracing bootstrap (NodeTracerProvider + AsyncLocalStorage +
14
+ // W3C baggage propagator + IntrospectionSpanProcessor).
15
+ export { setupTracing } from "./setup.js";
16
+ // Span processor — attach to your own TracerProvider.
17
+ export { IntrospectionSpanProcessor } from "./span-processor.js";
18
+ // OpenAI Agents SDK tracing processor.
19
+ export { IntrospectionTracingProcessor } from "./tracing-processor.js";
20
+ // Claude Agent SDK hooks.
21
+ export { IntrospectionClaudeHooks } from "./claude-hooks.js";
22
+ // Claude Agent SDK wrapper.
23
+ export { withIntrospection } from "./claude-wrapper.js";
24
+ // Anthropic SDK instrumentor.
25
+ export { AnthropicInstrumentor, tracedMessagesCreate, REDACTED_THINKING_CONTENT, } from "./anthropic.js";
26
+ // Pi Agent SDK instrumentor.
27
+ export { IntrospectionPiInstrumentor } from "./pi.js";
28
+ // Gemini SDK instrumentor.
29
+ export { GeminiInstrumentor } from "./gemini.js";
30
+ // OpenInference span exporter (drops Arize/OpenInference attrs onto a
31
+ // downstream OTel SpanExporter).
32
+ export { addOpenInferenceAttributes, OpenInferenceSpanExporter, } from "../converters/openinference.js";
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/otel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sEAAsE;AACtE,4EAA4E;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,uEAAuE;AACvE,wDAAwD;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,sDAAsD;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGjE,uCAAuC;AACvC,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAMvE,0BAA0B;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAiB7D,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,8BAA8B;AAC9B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,6BAA6B;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAMtD,2BAA2B;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,sEAAsE;AACtE,iCAAiC;AACjC,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * LangChain/LangGraph Callback Handler for Introspection.
3
+ *
4
+ * Hooks into LangChain's native callback system to capture LLM, tool, and
5
+ * chain interactions as gen_ai.* OTel spans for the Introspection backend.
6
+ *
7
+ * Similar to IntrospectionTracingProcessor for OpenAI Agents SDK and
8
+ * IntrospectionClaudeHooks for Claude Agent SDK.
9
+ *
10
+ * **Important:** This module requires `@langchain/core` at runtime.
11
+ * Import via the subpath: `@introspection-sdk/introspection-node/langchain`
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { IntrospectionCallbackHandler } from "@introspection-sdk/introspection-node/langchain";
16
+ * import { ChatOpenAI } from "@langchain/openai";
17
+ *
18
+ * const handler = new IntrospectionCallbackHandler({
19
+ * serviceName: "my-langchain-app",
20
+ * });
21
+ *
22
+ * const model = new ChatOpenAI({ modelName: "gpt-4o" });
23
+ * const response = await model.invoke("Hello!", { callbacks: [handler] });
24
+ *
25
+ * await handler.shutdown();
26
+ * ```
27
+ */
28
+ import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
29
+ import type { Serialized } from "@langchain/core/load/serializable";
30
+ import type { LLMResult } from "@langchain/core/outputs";
31
+ import type { BaseMessage } from "@langchain/core/messages";
32
+ import type { ChainValues } from "@langchain/core/utils/types";
33
+ import { type SpanExporter, type IdGenerator } from "@opentelemetry/sdk-trace-base";
34
+ /** Advanced options for testing and customization. */
35
+ export interface LangChainHandlerAdvancedOptions {
36
+ /** Custom span exporter for testing. */
37
+ spanExporter?: SpanExporter;
38
+ /** Custom ID generator for testing. */
39
+ idGenerator?: IdGenerator;
40
+ /** Use SimpleSpanProcessor instead of BatchSpanProcessor. */
41
+ useSimpleSpanProcessor?: boolean;
42
+ }
43
+ /** Configuration for {@link IntrospectionCallbackHandler}. */
44
+ export interface IntrospectionCallbackHandlerOptions {
45
+ /** Authentication token (env: INTROSPECTION_TOKEN). */
46
+ token?: string;
47
+ /** Base URL for the API (env: INTROSPECTION_BASE_OTEL_URL). */
48
+ baseUrl?: string;
49
+ /** Service name for telemetry (env: INTROSPECTION_SERVICE_NAME). */
50
+ serviceName?: string;
51
+ /** Additional headers to include in requests. */
52
+ additionalHeaders?: Record<string, string>;
53
+ /** Advanced options for testing. */
54
+ advanced?: LangChainHandlerAdvancedOptions;
55
+ }
56
+ /**
57
+ * LangChain callback handler that captures LLM, tool, and chain events
58
+ * as gen_ai.* OTel spans and exports them to the Introspection backend.
59
+ *
60
+ * Pass as a callback to any LangChain invoke call, or set globally via
61
+ * `setGlobalHandler()`.
62
+ */
63
+ export declare class IntrospectionCallbackHandler extends BaseCallbackHandler {
64
+ name: string;
65
+ private _tracerProvider;
66
+ private _tracer;
67
+ private _spans;
68
+ private _conversationId;
69
+ private _spanNames;
70
+ private _spanParents;
71
+ private _runRoots;
72
+ private static _wrapperNames;
73
+ private _llmInputs;
74
+ constructor(options?: IntrospectionCallbackHandlerOptions);
75
+ private _rootRunId;
76
+ /** Keep the top-level run span aligned with child conversation IDs. */
77
+ private _setRootConversationId;
78
+ private _endRootIfComplete;
79
+ /** Create a span under a LangChain parent when one exists.
80
+ * Sets gen_ai.agent.name to the parent span's name for hierarchy. */
81
+ private _createChildSpan;
82
+ handleChatModelStart(llm: Serialized, messages: BaseMessage[][], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>, _tags?: string[], metadata?: Record<string, unknown>, runName?: string): void;
83
+ handleLLMStart(llm: Serialized, prompts: string[], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>, _tags?: string[], metadata?: Record<string, unknown>, runName?: string): void;
84
+ handleLLMEnd(output: LLMResult, runId: string): void;
85
+ handleLLMError(err: Error, runId: string): void;
86
+ handleChainStart(chain: Serialized, _inputs: ChainValues, runId: string, _runType?: string, _tags?: string[], metadata?: Record<string, unknown>, runName?: string, parentRunId?: string): void;
87
+ handleChainEnd(_outputs: ChainValues, runId: string): void;
88
+ handleChainError(err: Error, runId: string): void;
89
+ handleToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, _tags?: string[], metadata?: Record<string, unknown>, runName?: string): void;
90
+ handleToolEnd(output: unknown, runId: string): void;
91
+ handleToolError(err: Error, runId: string): void;
92
+ shutdown(): Promise<void>;
93
+ forceFlush(): Promise<void>;
94
+ private _extractModelName;
95
+ private _extractProvider;
96
+ /** Walk up the span tree to find the first non-wrapper span name. */
97
+ private _findAgentName;
98
+ private _getConversationId;
99
+ /**
100
+ * Read a single value from the active OTel baggage. Returns undefined when
101
+ * no propagator is installed or the key is absent.
102
+ *
103
+ * Used so callers can scope LangChain calls with
104
+ * `IntrospectionClient.withAgent()` / `.withConversation()` /
105
+ * `.withGenAi()` without threading metadata through every invoke().
106
+ */
107
+ private _readBaggage;
108
+ private _convertMessages;
109
+ private _mapRole;
110
+ private _extractContent;
111
+ }
112
+ //# sourceMappingURL=langchain-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain-handler.d.ts","sourceRoot":"","sources":["../../src/otel/langchain-handler.ts"],"names":[],"mappings":"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"}