@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,525 @@
1
+ /**
2
+ * Mastra-compatible Exporter for Introspection.
3
+ *
4
+ * Extends Mastra's BaseExporter to receive TracingEvents (Mastra's native
5
+ * span format) and convert them to gen_ai.* OTel spans for the Introspection
6
+ * backend.
7
+ *
8
+ * **Important:** This module requires `@mastra/observability` and `@mastra/core`
9
+ * at runtime. Import via the subpath: `@introspection-sdk/introspection-node/mastra`
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { Mastra } from "@mastra/core/mastra";
14
+ * import { IntrospectionMastraExporter } from "@introspection-sdk/introspection-node/mastra";
15
+ *
16
+ * const mastra = new Mastra({
17
+ * agents: { myAgent },
18
+ * observability: {
19
+ * configs: {
20
+ * otel: {
21
+ * serviceName: "my-mastra-app",
22
+ * exporters: [new IntrospectionMastraExporter()],
23
+ * },
24
+ * },
25
+ * },
26
+ * });
27
+ * ```
28
+ */
29
+ import { BaseExporter } from "@mastra/observability";
30
+ import { context as otelContext, trace as otelTrace, } from "@opentelemetry/api";
31
+ import { BasicTracerProvider, BatchSpanProcessor, SimpleSpanProcessor, } from "@opentelemetry/sdk-trace-base";
32
+ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
33
+ import { resourceFromAttributes } from "@opentelemetry/resources";
34
+ import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
35
+ import { randomUUID } from "crypto";
36
+ import { logger, withOtlpHttpsProxy } from "../utils.js";
37
+ import { VERSION } from "../version.js";
38
+ // ---------------------------------------------------------------------------
39
+ // Exporter
40
+ // ---------------------------------------------------------------------------
41
+ export class IntrospectionMastraExporter extends BaseExporter {
42
+ name = "introspection";
43
+ _options;
44
+ _tracerProvider;
45
+ _tracer;
46
+ _conversationIds = new Map();
47
+ // Track root OTel spans per Mastra traceId so children share the same trace
48
+ _rootSpans = new Map();
49
+ constructor(options = {}) {
50
+ super({ logLevel: options.debug ? "debug" : "info" });
51
+ this._options = options;
52
+ const token = options.token || process.env.INTROSPECTION_TOKEN;
53
+ if (!token && !options.advanced?.spanExporter) {
54
+ this.setDisabled("INTROSPECTION_TOKEN is required");
55
+ }
56
+ }
57
+ /**
58
+ * Called by Mastra after the instance is fully configured.
59
+ * We defer TracerProvider creation to here so we can use the service name.
60
+ */
61
+ init(options) {
62
+ if (this.isDisabled)
63
+ return;
64
+ const config = options.config;
65
+ const serviceName = config?.["serviceName"] || "mastra-app";
66
+ this._initProvider(serviceName);
67
+ }
68
+ _initProvider(serviceName) {
69
+ if (this._tracerProvider)
70
+ return; // Already initialized
71
+ const opts = this._options;
72
+ const advanced = opts.advanced;
73
+ const resource = resourceFromAttributes({
74
+ [ATTR_SERVICE_NAME]: serviceName,
75
+ });
76
+ if (advanced?.spanExporter) {
77
+ const sp = advanced.useSimpleSpanProcessor
78
+ ? new SimpleSpanProcessor(advanced.spanExporter)
79
+ : new BatchSpanProcessor(advanced.spanExporter, {
80
+ scheduledDelayMillis: 100,
81
+ });
82
+ this._tracerProvider = new BasicTracerProvider({
83
+ resource,
84
+ idGenerator: advanced.idGenerator,
85
+ spanProcessors: [sp],
86
+ });
87
+ logger.info("IntrospectionMastraExporter initialized in test mode");
88
+ }
89
+ else {
90
+ const token = opts.token || process.env.INTROSPECTION_TOKEN;
91
+ if (!token)
92
+ return;
93
+ const baseUrl = opts.baseUrl ||
94
+ process.env.INTROSPECTION_BASE_OTEL_URL ||
95
+ "https://otel.introspection.dev";
96
+ const endpoint = baseUrl.endsWith("/v1/traces")
97
+ ? baseUrl
98
+ : `${baseUrl.replace(/\/$/, "")}/v1/traces`;
99
+ const headers = {
100
+ "User-Agent": `introspection-sdk/${VERSION}`,
101
+ Authorization: `Bearer ${token}`,
102
+ ...opts.additionalHeaders,
103
+ };
104
+ const spanExporter = new OTLPTraceExporter(withOtlpHttpsProxy({ url: endpoint, headers }));
105
+ const effectiveBatchSize = token.startsWith("intro_dev") || token.startsWith("intro_staging")
106
+ ? 1
107
+ : undefined;
108
+ const useSimple = advanced?.useSimpleSpanProcessor || effectiveBatchSize === 1;
109
+ const sp = useSimple
110
+ ? new SimpleSpanProcessor(spanExporter)
111
+ : new BatchSpanProcessor(spanExporter, {
112
+ scheduledDelayMillis: 1000,
113
+ ...(effectiveBatchSize
114
+ ? { maxExportBatchSize: effectiveBatchSize }
115
+ : {}),
116
+ });
117
+ this._tracerProvider = new BasicTracerProvider({
118
+ resource,
119
+ idGenerator: advanced?.idGenerator,
120
+ spanProcessors: [sp],
121
+ });
122
+ logger.info(`IntrospectionMastraExporter initialized: endpoint=${endpoint}, serviceName=${serviceName}`);
123
+ }
124
+ this._tracer = this._tracerProvider.getTracer("introspection-mastra", VERSION);
125
+ }
126
+ async _exportTracingEvent(event) {
127
+ if (this.isDisabled)
128
+ return;
129
+ if (event.type !== "span_ended")
130
+ return;
131
+ // Lazy init if init() wasn't called
132
+ if (!this._tracerProvider) {
133
+ this._initProvider("mastra-app");
134
+ }
135
+ if (!this._tracer)
136
+ return;
137
+ this._exportSpan(event.exportedSpan);
138
+ }
139
+ async flush() {
140
+ await this._tracerProvider?.forceFlush();
141
+ }
142
+ async shutdown() {
143
+ // End any open root spans
144
+ for (const span of this._rootSpans.values())
145
+ span.end();
146
+ this._rootSpans.clear();
147
+ await this._tracerProvider?.shutdown();
148
+ }
149
+ // -------------------------------------------------------------------------
150
+ // Span routing
151
+ // -------------------------------------------------------------------------
152
+ _exportSpan(span) {
153
+ switch (span.type) {
154
+ case "agent_run":
155
+ this._exportAgentRun(span);
156
+ break;
157
+ case "model_step":
158
+ this._exportModelStep(span);
159
+ break;
160
+ case "tool_call":
161
+ case "mcp_tool_call":
162
+ this._exportToolCall(span);
163
+ break;
164
+ // model_generation — skipped; model_step has per-step tool calls
165
+ default:
166
+ break;
167
+ }
168
+ }
169
+ // -------------------------------------------------------------------------
170
+ // Span creation with shared trace context
171
+ // -------------------------------------------------------------------------
172
+ /** Ensure a root OTel span exists for this Mastra trace.
173
+ * Events arrive in end-order (children first, agent_run last),
174
+ * so we create a synthetic root on first encounter. */
175
+ _ensureRoot(span) {
176
+ if (this._rootSpans.has(span.traceId))
177
+ return;
178
+ const rootSpan = this._tracer.startSpan("trace", {
179
+ startTime: span.startTime,
180
+ });
181
+ this._rootSpans.set(span.traceId, rootSpan);
182
+ }
183
+ _createSpan(span, name) {
184
+ this._ensureRoot(span);
185
+ const parentCtx = otelTrace.setSpan(otelContext.active(), this._rootSpans.get(span.traceId));
186
+ return this._tracer.startSpan(name || span.name, { startTime: span.startTime }, parentCtx);
187
+ }
188
+ // -------------------------------------------------------------------------
189
+ // Span converters
190
+ // -------------------------------------------------------------------------
191
+ _exportAgentRun(span) {
192
+ const attrs = span.attributes;
193
+ const conversationId = this._getConversationId(span);
194
+ // agent_run arrives last — set attrs on the synthetic root and end it
195
+ this._ensureRoot(span);
196
+ const rootSpan = this._rootSpans.get(span.traceId);
197
+ rootSpan.setAttribute("gen_ai.conversation.id", conversationId);
198
+ rootSpan.setAttribute("gen_ai.agent.name", span.entityName || span.name || "agent");
199
+ // Prefer system messages from span.input (full prompt sent to LLM) over
200
+ // attrs.instructions (may be just the short placeholder string).
201
+ const inputMsgs = Array.isArray(span.input)
202
+ ? span.input
203
+ : undefined;
204
+ const systemMsgsFromInput = inputMsgs?.filter((m) => m.role === "system");
205
+ if (systemMsgsFromInput && systemMsgsFromInput.length > 0) {
206
+ rootSpan.setAttribute("gen_ai.system_instructions", JSON.stringify(systemMsgsFromInput.map((m) => ({
207
+ type: "text",
208
+ content: this._extractTextContent(m.content),
209
+ }))));
210
+ }
211
+ else if (attrs?.["instructions"] &&
212
+ typeof attrs["instructions"] === "string") {
213
+ rootSpan.setAttribute("gen_ai.system_instructions", JSON.stringify([{ type: "text", content: attrs["instructions"] }]));
214
+ }
215
+ // Metadata passthrough
216
+ if (span.metadata) {
217
+ for (const [key, value] of Object.entries(span.metadata)) {
218
+ if (value != null) {
219
+ rootSpan.setAttribute(`ai.telemetry.metadata.${key}`, typeof value === "string" ? value : JSON.stringify(value));
220
+ }
221
+ }
222
+ }
223
+ rootSpan.end(span.endTime || new Date());
224
+ this._rootSpans.delete(span.traceId);
225
+ }
226
+ _exportModelStep(span) {
227
+ const attrs = span.attributes;
228
+ const conversationId = this._getConversationId(span);
229
+ // Model info lives in metadata.modelMetadata (set by Mastra)
230
+ const modelMeta = span.metadata?.["modelMetadata"];
231
+ const model = modelMeta?.["modelId"] || "";
232
+ const provider = modelMeta?.["modelProvider"] || "";
233
+ // Response metadata from metadata.body (the API response)
234
+ const respBody = span.metadata?.["body"];
235
+ const responseModel = respBody?.["model"] || "";
236
+ const responseId = respBody?.["id"] || "";
237
+ const spanName = model ? `chat ${model}` : span.name;
238
+ const otelSpan = this._createSpan(span, spanName);
239
+ otelSpan.setAttribute("gen_ai.operation.name", "chat");
240
+ otelSpan.setAttribute("gen_ai.conversation.id", conversationId);
241
+ otelSpan.setAttribute("openinference.span.kind", "LLM");
242
+ if (model)
243
+ otelSpan.setAttribute("gen_ai.request.model", model);
244
+ if (provider)
245
+ otelSpan.setAttribute("gen_ai.system", provider);
246
+ if (responseModel)
247
+ otelSpan.setAttribute("gen_ai.response.model", responseModel);
248
+ if (responseId)
249
+ otelSpan.setAttribute("gen_ai.response.id", responseId);
250
+ // Input messages — span.input is either:
251
+ // (a) a flat normalized array { role, content }[] from Mastra's inputMessages path, or
252
+ // (b) an object { body: { input/messages, tools } } from the raw HTTP request path.
253
+ if (span.input != null) {
254
+ let apiMessages;
255
+ let tools;
256
+ if (Array.isArray(span.input)) {
257
+ // Path (a): flat array already normalized by Mastra's normalizeMessages()
258
+ apiMessages = span.input;
259
+ }
260
+ else {
261
+ // Path (b): nested request body
262
+ const rawInput = span.input;
263
+ const body = rawInput?.body;
264
+ const msgs = body?.input ?? body?.messages;
265
+ if (Array.isArray(msgs)) {
266
+ apiMessages = msgs;
267
+ }
268
+ if (Array.isArray(body?.tools)) {
269
+ tools = body.tools;
270
+ }
271
+ }
272
+ if (apiMessages && apiMessages.length > 0) {
273
+ const inputMessages = this._convertInput(apiMessages);
274
+ if (inputMessages.length > 0) {
275
+ otelSpan.setAttribute("gen_ai.input.messages", JSON.stringify(inputMessages));
276
+ }
277
+ // System instructions — combine all system messages into one attribute
278
+ const systemMsgs = apiMessages.filter((m) => m.role === "system");
279
+ if (systemMsgs.length > 0) {
280
+ otelSpan.setAttribute("gen_ai.system_instructions", JSON.stringify(systemMsgs.map((m) => ({
281
+ type: "text",
282
+ content: this._extractTextContent(m.content),
283
+ }))));
284
+ }
285
+ }
286
+ // Tool definitions (only present on path (b))
287
+ if (Array.isArray(tools) && tools.length > 0) {
288
+ otelSpan.setAttribute("gen_ai.tool.definitions", JSON.stringify(tools.map((t) => ({
289
+ type: t.type || "function",
290
+ name: t.name || "",
291
+ description: t.description || "",
292
+ parameters: t.parameters,
293
+ }))));
294
+ }
295
+ }
296
+ // Output messages — model_step output has {text, toolCalls} per step
297
+ if (span.output != null) {
298
+ const outputMessages = this._convertOutput(span.output, attrs?.["finishReason"]);
299
+ if (outputMessages.length > 0) {
300
+ otelSpan.setAttribute("gen_ai.output.messages", JSON.stringify(outputMessages));
301
+ }
302
+ }
303
+ // Token usage (per step)
304
+ const usage = attrs?.["usage"];
305
+ if (usage) {
306
+ if (typeof usage["inputTokens"] === "number")
307
+ otelSpan.setAttribute("gen_ai.usage.input_tokens", usage["inputTokens"]);
308
+ if (typeof usage["outputTokens"] === "number")
309
+ otelSpan.setAttribute("gen_ai.usage.output_tokens", usage["outputTokens"]);
310
+ const inputDetails = usage["inputDetails"];
311
+ if (typeof inputDetails?.["cacheRead"] === "number")
312
+ otelSpan.setAttribute("gen_ai.usage.cache_read.input_tokens", inputDetails["cacheRead"]);
313
+ if (typeof inputDetails?.["cacheWrite"] === "number")
314
+ otelSpan.setAttribute("gen_ai.usage.cache_creation.input_tokens", inputDetails["cacheWrite"]);
315
+ }
316
+ // Finish reason
317
+ const finishReason = attrs?.["finishReason"];
318
+ if (finishReason)
319
+ otelSpan.setAttribute("gen_ai.response.finish_reasons", [finishReason]);
320
+ otelSpan.end(span.endTime || new Date());
321
+ }
322
+ _exportToolCall(span) {
323
+ const conversationId = this._getConversationId(span);
324
+ const toolName = span.entityName || span.name || "tool";
325
+ const otelSpan = this._createSpan(span, toolName);
326
+ otelSpan.setAttribute("gen_ai.tool.name", toolName);
327
+ otelSpan.setAttribute("gen_ai.conversation.id", conversationId);
328
+ otelSpan.setAttribute("openinference.span.kind", "TOOL");
329
+ if (span.input != null) {
330
+ otelSpan.setAttribute("gen_ai.tool.input", typeof span.input === "string"
331
+ ? span.input
332
+ : JSON.stringify(span.input));
333
+ }
334
+ if (span.output != null) {
335
+ otelSpan.setAttribute("gen_ai.tool.output", typeof span.output === "string"
336
+ ? span.output
337
+ : JSON.stringify(span.output));
338
+ }
339
+ otelSpan.end(span.endTime || new Date());
340
+ }
341
+ // -------------------------------------------------------------------------
342
+ // Helpers
343
+ // -------------------------------------------------------------------------
344
+ _getConversationId(span) {
345
+ const metaConvId = span.metadata?.["gen_ai.conversation.id"];
346
+ if (metaConvId)
347
+ return metaConvId;
348
+ const attrs = span.attributes;
349
+ const attrConvId = attrs?.["conversationId"];
350
+ if (attrConvId)
351
+ return attrConvId;
352
+ const traceId = span.traceId;
353
+ if (!this._conversationIds.has(traceId)) {
354
+ this._conversationIds.set(traceId, `intro_conv_${randomUUID().replace(/-/g, "")}`);
355
+ }
356
+ return this._conversationIds.get(traceId);
357
+ }
358
+ _convertInput(input) {
359
+ if (!input)
360
+ return [];
361
+ if (Array.isArray(input)) {
362
+ const result = [];
363
+ for (const m of input) {
364
+ const msg = m;
365
+ if (!msg)
366
+ continue;
367
+ // Skip system messages (handled separately)
368
+ if (msg.role === "system")
369
+ continue;
370
+ // Standard role-based messages (AIv4 uses msg.content; AIv5 may use msg.parts)
371
+ if (msg.role) {
372
+ const parts = msg.content != null
373
+ ? this._extractParts(msg.content)
374
+ : Array.isArray(msg.parts)
375
+ ? this._extractParts(msg.parts)
376
+ : [];
377
+ result.push({
378
+ role: msg.role,
379
+ parts,
380
+ });
381
+ continue;
382
+ }
383
+ // OpenAI Responses API: function_call_output (no role, has type)
384
+ if (msg.type === "function_call_output") {
385
+ result.push({
386
+ role: "tool",
387
+ parts: [
388
+ {
389
+ type: "tool_call_response",
390
+ id: (msg.call_id || ""),
391
+ response: typeof msg.output === "string"
392
+ ? msg.output
393
+ : JSON.stringify(msg.output),
394
+ },
395
+ ],
396
+ });
397
+ continue;
398
+ }
399
+ // item_reference — skip (OpenAI internal reference)
400
+ if (msg.type === "item_reference")
401
+ continue;
402
+ }
403
+ return result;
404
+ }
405
+ if (typeof input === "string") {
406
+ return [{ role: "user", parts: [{ type: "text", content: input }] }];
407
+ }
408
+ return [];
409
+ }
410
+ _convertOutput(output, finishReason) {
411
+ if (!output)
412
+ return [];
413
+ const parts = [];
414
+ if (typeof output === "string") {
415
+ parts.push({ type: "text", content: output });
416
+ }
417
+ else if (typeof output === "object" && output !== null) {
418
+ const out = output;
419
+ // Reasoning
420
+ if (Array.isArray(out.reasoning)) {
421
+ for (const r of out.reasoning) {
422
+ const text = (r.text || r.content || "");
423
+ if (text)
424
+ parts.push({ type: "thinking", content: text });
425
+ }
426
+ }
427
+ // Text
428
+ if (typeof out.text === "string" && out.text) {
429
+ parts.push({ type: "text", content: out.text });
430
+ }
431
+ // Tool calls
432
+ if (Array.isArray(out.toolCalls)) {
433
+ for (const tc of out.toolCalls) {
434
+ parts.push({
435
+ type: "tool_call",
436
+ name: (tc.toolName || tc.name || ""),
437
+ id: (tc.toolCallId || tc.id || ""),
438
+ arguments: typeof tc.args === "string"
439
+ ? tc.args
440
+ : JSON.stringify(tc.args || tc.input),
441
+ });
442
+ }
443
+ }
444
+ }
445
+ if (parts.length === 0)
446
+ return [];
447
+ return [{ role: "assistant", parts, finish_reason: finishReason }];
448
+ }
449
+ /** Extract plain text from a message content field (string, array of parts, or AIv5 parts). */
450
+ _extractTextContent(content) {
451
+ if (typeof content === "string")
452
+ return content;
453
+ if (Array.isArray(content)) {
454
+ return content
455
+ .map((p) => {
456
+ const part = p;
457
+ return typeof part.text === "string"
458
+ ? part.text
459
+ : typeof part.content === "string"
460
+ ? part.content
461
+ : "";
462
+ })
463
+ .filter(Boolean)
464
+ .join("\n");
465
+ }
466
+ return typeof content === "undefined" ? "" : JSON.stringify(content);
467
+ }
468
+ _extractParts(content) {
469
+ if (typeof content === "string") {
470
+ return [{ type: "text", content }];
471
+ }
472
+ if (Array.isArray(content)) {
473
+ return content
474
+ .map((part) => {
475
+ const p = part;
476
+ // Standard text
477
+ if (p.type === "text")
478
+ return {
479
+ type: "text",
480
+ content: (p.text || p.content || ""),
481
+ };
482
+ // OpenAI Responses API input_text format
483
+ if (p.type === "input_text")
484
+ return {
485
+ type: "text",
486
+ content: (p.text || ""),
487
+ };
488
+ // Tool call
489
+ if (p.type === "tool-call" ||
490
+ p.type === "tool_call" ||
491
+ p.type === "function_call")
492
+ return {
493
+ type: "tool_call",
494
+ name: (p.toolName || p.name || ""),
495
+ id: (p.toolCallId || p.id || p.call_id || ""),
496
+ arguments: typeof p.args === "string"
497
+ ? p.args
498
+ : typeof p.arguments === "string"
499
+ ? p.arguments
500
+ : JSON.stringify(p.args || p.arguments || p.input),
501
+ };
502
+ // Tool result
503
+ if (p.type === "tool-result" ||
504
+ p.type === "tool_call_response" ||
505
+ p.type === "function_call_output")
506
+ return {
507
+ type: "tool_call_response",
508
+ id: (p.toolCallId || p.id || p.call_id || ""),
509
+ response: typeof p.result === "string"
510
+ ? p.result
511
+ : typeof p.output === "string"
512
+ ? p.output
513
+ : JSON.stringify(p.result || p.output),
514
+ };
515
+ // item_reference (OpenAI Responses API) — skip
516
+ if (p.type === "item_reference")
517
+ return null;
518
+ return { type: "text", content: JSON.stringify(p) };
519
+ })
520
+ .filter((p) => p !== null);
521
+ }
522
+ return [];
523
+ }
524
+ }
525
+ //# sourceMappingURL=mastra-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mastra-exporter.js","sourceRoot":"","sources":["../../src/otel/mastra-exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * High-level pi Agent SDK integration for Introspection.
3
+ *
4
+ * Wraps {@link @introspection-sdk/introspection-pi} behind a zero-config
5
+ * interface so users don't need to manage OpenTelemetry tracers directly.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { IntrospectionPiInstrumentor, setupTracing } from "@introspection-sdk/introspection-node";
10
+ * import { Agent } from "@mariozechner/pi-agent-core";
11
+ *
12
+ * setupTracing({ serviceName: "my-app" });
13
+ * const instrumentor = new IntrospectionPiInstrumentor();
14
+ *
15
+ * const agent = new Agent({ ... });
16
+ * instrumentor.instrument(agent, {
17
+ * conversationId: "conv-123",
18
+ * agentId: "weather-agent",
19
+ * agentName: "Weather",
20
+ * });
21
+ *
22
+ * await agent.prompt("What's the weather in Tokyo?");
23
+ * instrumentor.stop();
24
+ * ```
25
+ */
26
+ import type { Agent } from "@mariozechner/pi-agent-core";
27
+ import { type AgentMeta } from "@introspection-sdk/introspection-pi";
28
+ export type { AgentMeta } from "@introspection-sdk/introspection-pi";
29
+ export interface IntrospectionPiInstrumentorOptions {
30
+ /** Tracer name used for all spans produced by this instrumentor. */
31
+ tracerName?: string;
32
+ }
33
+ /**
34
+ * Zero-config pi Agent SDK integration for Introspection.
35
+ *
36
+ * Uses the global OTel tracer provider (registered by {@link setupTracing}).
37
+ * Call {@link instrument} once per {@link Agent} instance, then {@link stop}
38
+ * to unsubscribe all tool instrumentation and finalize open spans.
39
+ */
40
+ export declare class IntrospectionPiInstrumentor {
41
+ private _tracer;
42
+ private _instrumentations;
43
+ constructor(opts?: IntrospectionPiInstrumentorOptions);
44
+ /**
45
+ * Instrument a pi {@link Agent}:
46
+ * - Wraps `agent.streamFn` to emit a `chat ${provider}` span per LLM call.
47
+ * - Subscribes to the agent loop to emit an `execute_tool ${name}` span per
48
+ * tool execution.
49
+ *
50
+ * @param agent - The pi Agent instance to instrument.
51
+ * @param meta - Identity metadata stamped on every span produced by this agent.
52
+ */
53
+ instrument(agent: Agent, meta: AgentMeta): void;
54
+ /**
55
+ * Unsubscribe all active tool instrumentations and finalize any open spans.
56
+ */
57
+ stop(): void;
58
+ }
59
+ //# sourceMappingURL=pi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/otel/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAGL,KAAK,SAAS,EAEf,MAAM,qCAAqC,CAAC;AAG7C,YAAY,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAErE,MAAM,WAAW,kCAAkC;IACjD,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,iBAAiB,CAA8B;gBAE3C,IAAI,GAAE,kCAAuC;IAOzD;;;;;;;;OAQG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAU/C;;OAEG;IACH,IAAI,IAAI,IAAI;CAIb"}