@introspection-sdk/introspection-node 0.19.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/README.md +28 -8
  2. package/dist/auth.d.ts +1 -1
  3. package/dist/client.d.ts +4 -3
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +16 -7
  6. package/dist/client.js.map +1 -1
  7. package/dist/dev-target.js +1 -1
  8. package/dist/index.d.ts +4 -7
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -6
  11. package/dist/index.js.map +1 -1
  12. package/dist/otel/index.d.ts +1 -14
  13. package/dist/otel/index.d.ts.map +1 -1
  14. package/dist/otel/index.js +10 -18
  15. package/dist/otel/index.js.map +1 -1
  16. package/dist/otel/init.d.ts +19 -21
  17. package/dist/otel/init.d.ts.map +1 -1
  18. package/dist/otel/init.js +62 -48
  19. package/dist/otel/init.js.map +1 -1
  20. package/dist/otel/integrations/base.d.ts +17 -37
  21. package/dist/otel/integrations/base.d.ts.map +1 -1
  22. package/dist/otel/integrations/base.js +6 -13
  23. package/dist/otel/integrations/base.js.map +1 -1
  24. package/dist/otel/integrations/index.d.ts +3 -4
  25. package/dist/otel/integrations/index.d.ts.map +1 -1
  26. package/dist/otel/integrations/index.js +6 -25
  27. package/dist/otel/integrations/index.js.map +1 -1
  28. package/dist/otel/integrations/pi.d.ts.map +1 -1
  29. package/dist/otel/integrations/pi.js +9 -1
  30. package/dist/otel/integrations/pi.js.map +1 -1
  31. package/dist/otel/logs.d.ts +41 -8
  32. package/dist/otel/logs.d.ts.map +1 -1
  33. package/dist/otel/logs.js +95 -66
  34. package/dist/otel/logs.js.map +1 -1
  35. package/dist/otel/pi.d.ts +18 -5
  36. package/dist/otel/pi.d.ts.map +1 -1
  37. package/dist/otel/pi.js +38 -9
  38. package/dist/otel/pi.js.map +1 -1
  39. package/dist/otel/register.d.ts +2 -2
  40. package/dist/otel/register.d.ts.map +1 -1
  41. package/dist/otel/register.js +7 -9
  42. package/dist/otel/register.js.map +1 -1
  43. package/dist/otel/setup.d.ts +2 -2
  44. package/dist/otel/setup.d.ts.map +1 -1
  45. package/dist/otel/setup.js +16 -6
  46. package/dist/otel/setup.js.map +1 -1
  47. package/dist/otel/span-processor.d.ts +18 -5
  48. package/dist/otel/span-processor.d.ts.map +1 -1
  49. package/dist/otel/span-processor.js +50 -65
  50. package/dist/otel/span-processor.js.map +1 -1
  51. package/dist/resources/experiments.d.ts +10 -5
  52. package/dist/resources/experiments.d.ts.map +1 -1
  53. package/dist/resources/experiments.js +9 -25
  54. package/dist/resources/experiments.js.map +1 -1
  55. package/dist/resources/recipes.d.ts +6 -6
  56. package/dist/resources/recipes.d.ts.map +1 -1
  57. package/dist/resources/recipes.js +5 -23
  58. package/dist/resources/recipes.js.map +1 -1
  59. package/dist/resources/runtimes.d.ts +2 -2
  60. package/dist/resources/runtimes.d.ts.map +1 -1
  61. package/dist/resources/runtimes.js +2 -2
  62. package/dist/resources/runtimes.js.map +1 -1
  63. package/dist/runner.d.ts +8 -4
  64. package/dist/runner.d.ts.map +1 -1
  65. package/dist/runner.js +26 -18
  66. package/dist/runner.js.map +1 -1
  67. package/dist/types.d.ts +1 -1
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/types.js +1 -1
  70. package/dist/types.js.map +1 -1
  71. package/dist/utils.d.ts +45 -0
  72. package/dist/utils.d.ts.map +1 -1
  73. package/dist/utils.js +61 -2
  74. package/dist/utils.js.map +1 -1
  75. package/dist/version.d.ts +1 -1
  76. package/dist/version.d.ts.map +1 -1
  77. package/dist/version.js +1 -1
  78. package/dist/version.js.map +1 -1
  79. package/package.json +18 -60
  80. package/.turbo/turbo-build.log +0 -4
  81. package/dist/converters/claude.d.ts +0 -150
  82. package/dist/converters/claude.d.ts.map +0 -1
  83. package/dist/converters/claude.js +0 -211
  84. package/dist/converters/claude.js.map +0 -1
  85. package/dist/converters/gemini.d.ts +0 -90
  86. package/dist/converters/gemini.d.ts.map +0 -1
  87. package/dist/converters/gemini.js +0 -171
  88. package/dist/converters/gemini.js.map +0 -1
  89. package/dist/converters/index.d.ts +0 -9
  90. package/dist/converters/index.d.ts.map +0 -1
  91. package/dist/converters/index.js +0 -9
  92. package/dist/converters/index.js.map +0 -1
  93. package/dist/converters/openai.d.ts +0 -51
  94. package/dist/converters/openai.d.ts.map +0 -1
  95. package/dist/converters/openai.js +0 -269
  96. package/dist/converters/openai.js.map +0 -1
  97. package/dist/converters/openinference.d.ts +0 -107
  98. package/dist/converters/openinference.d.ts.map +0 -1
  99. package/dist/converters/openinference.js +0 -553
  100. package/dist/converters/openinference.js.map +0 -1
  101. package/dist/converters/vercel.d.ts +0 -21
  102. package/dist/converters/vercel.d.ts.map +0 -1
  103. package/dist/converters/vercel.js +0 -236
  104. package/dist/converters/vercel.js.map +0 -1
  105. package/dist/otel/anthropic.d.ts +0 -63
  106. package/dist/otel/anthropic.d.ts.map +0 -1
  107. package/dist/otel/anthropic.js +0 -475
  108. package/dist/otel/anthropic.js.map +0 -1
  109. package/dist/otel/claude-hooks.d.ts +0 -346
  110. package/dist/otel/claude-hooks.d.ts.map +0 -1
  111. package/dist/otel/claude-hooks.js +0 -647
  112. package/dist/otel/claude-hooks.js.map +0 -1
  113. package/dist/otel/claude-wrapper.d.ts +0 -93
  114. package/dist/otel/claude-wrapper.d.ts.map +0 -1
  115. package/dist/otel/claude-wrapper.js +0 -155
  116. package/dist/otel/claude-wrapper.js.map +0 -1
  117. package/dist/otel/gemini.d.ts +0 -56
  118. package/dist/otel/gemini.d.ts.map +0 -1
  119. package/dist/otel/gemini.js +0 -350
  120. package/dist/otel/gemini.js.map +0 -1
  121. package/dist/otel/integrations/anthropic.d.ts +0 -10
  122. package/dist/otel/integrations/anthropic.d.ts.map +0 -1
  123. package/dist/otel/integrations/anthropic.js +0 -26
  124. package/dist/otel/integrations/anthropic.js.map +0 -1
  125. package/dist/otel/integrations/claude-agent.d.ts +0 -12
  126. package/dist/otel/integrations/claude-agent.d.ts.map +0 -1
  127. package/dist/otel/integrations/claude-agent.js +0 -28
  128. package/dist/otel/integrations/claude-agent.js.map +0 -1
  129. package/dist/otel/integrations/gemini.d.ts +0 -11
  130. package/dist/otel/integrations/gemini.d.ts.map +0 -1
  131. package/dist/otel/integrations/gemini.js +0 -23
  132. package/dist/otel/integrations/gemini.js.map +0 -1
  133. package/dist/otel/integrations/langchain.d.ts +0 -15
  134. package/dist/otel/integrations/langchain.d.ts.map +0 -1
  135. package/dist/otel/integrations/langchain.js +0 -43
  136. package/dist/otel/integrations/langchain.js.map +0 -1
  137. package/dist/otel/integrations/mastra.d.ts +0 -14
  138. package/dist/otel/integrations/mastra.d.ts.map +0 -1
  139. package/dist/otel/integrations/mastra.js +0 -31
  140. package/dist/otel/integrations/mastra.js.map +0 -1
  141. package/dist/otel/integrations/openai-agents.d.ts +0 -11
  142. package/dist/otel/integrations/openai-agents.d.ts.map +0 -1
  143. package/dist/otel/integrations/openai-agents.js +0 -30
  144. package/dist/otel/integrations/openai-agents.js.map +0 -1
  145. package/dist/otel/integrations/vercel.d.ts +0 -14
  146. package/dist/otel/integrations/vercel.d.ts.map +0 -1
  147. package/dist/otel/integrations/vercel.js +0 -20
  148. package/dist/otel/integrations/vercel.js.map +0 -1
  149. package/dist/otel/langchain-handler.d.ts +0 -112
  150. package/dist/otel/langchain-handler.d.ts.map +0 -1
  151. package/dist/otel/langchain-handler.js +0 -561
  152. package/dist/otel/langchain-handler.js.map +0 -1
  153. package/dist/otel/mastra-exporter.d.ts +0 -87
  154. package/dist/otel/mastra-exporter.d.ts.map +0 -1
  155. package/dist/otel/mastra-exporter.js +0 -530
  156. package/dist/otel/mastra-exporter.js.map +0 -1
  157. package/dist/otel/openai.d.ts +0 -20
  158. package/dist/otel/openai.d.ts.map +0 -1
  159. package/dist/otel/openai.js +0 -55
  160. package/dist/otel/openai.js.map +0 -1
  161. package/dist/otel/tracing-processor.d.ts +0 -139
  162. package/dist/otel/tracing-processor.d.ts.map +0 -1
  163. package/dist/otel/tracing-processor.js +0 -434
  164. package/dist/otel/tracing-processor.js.map +0 -1
  165. package/eslint.config.mjs +0 -4
  166. package/src/auth.ts +0 -236
  167. package/src/client.ts +0 -163
  168. package/src/converters/claude.ts +0 -343
  169. package/src/converters/gemini.ts +0 -243
  170. package/src/converters/index.ts +0 -50
  171. package/src/converters/openai.ts +0 -300
  172. package/src/converters/openinference.ts +0 -665
  173. package/src/converters/vercel.ts +0 -302
  174. package/src/dev-target.ts +0 -79
  175. package/src/http.ts +0 -43
  176. package/src/index.ts +0 -266
  177. package/src/otel/anthropic.ts +0 -619
  178. package/src/otel/claude-hooks.ts +0 -1116
  179. package/src/otel/claude-wrapper.ts +0 -239
  180. package/src/otel/gemini.ts +0 -483
  181. package/src/otel/index.ts +0 -128
  182. package/src/otel/init.ts +0 -411
  183. package/src/otel/integrations/anthropic.ts +0 -36
  184. package/src/otel/integrations/base.ts +0 -158
  185. package/src/otel/integrations/claude-agent.ts +0 -36
  186. package/src/otel/integrations/gemini.ts +0 -30
  187. package/src/otel/integrations/index.ts +0 -152
  188. package/src/otel/integrations/langchain.ts +0 -60
  189. package/src/otel/integrations/mastra.ts +0 -48
  190. package/src/otel/integrations/openai-agents.ts +0 -47
  191. package/src/otel/integrations/pi.ts +0 -28
  192. package/src/otel/integrations/vercel.ts +0 -26
  193. package/src/otel/langchain-handler.ts +0 -804
  194. package/src/otel/logs.ts +0 -395
  195. package/src/otel/mastra-exporter.ts +0 -714
  196. package/src/otel/openai.ts +0 -93
  197. package/src/otel/pi.ts +0 -94
  198. package/src/otel/register.ts +0 -50
  199. package/src/otel/setup.ts +0 -215
  200. package/src/otel/span-processor.ts +0 -512
  201. package/src/otel/tracing-processor.ts +0 -637
  202. package/src/pagination.ts +0 -10
  203. package/src/proxy-from-env.d.ts +0 -7
  204. package/src/resources/experiments.ts +0 -176
  205. package/src/resources/recipes.ts +0 -74
  206. package/src/resources/runtimes.ts +0 -31
  207. package/src/runner.ts +0 -213
  208. package/src/types.ts +0 -13
  209. package/src/utils.ts +0 -95
  210. package/src/version.ts +0 -2
  211. package/tsconfig.json +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/otel/logs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/otel/logs.ts"],"names":[],"mappings":"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"}
package/dist/otel/logs.js CHANGED
@@ -33,20 +33,17 @@ import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-proto";
33
33
  import { resourceFromAttributes, defaultResource, } from "@opentelemetry/resources";
34
34
  import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
35
35
  import { propagation, context } from "@opentelemetry/api";
36
- import { logger as sdkLogger, withOtlpHttpsProxy } from "../utils.js";
36
+ import { DEFAULT_SERVICE_NAME, exporterHeaders, logger as sdkLogger, otlpUserAgent, withOtlpHttpsProxy, } from "../utils.js";
37
37
  import { VERSION } from "../version.js";
38
- import { generateEventId, } from "../types.js";
38
+ import { generateEventId, toAttributeValue, } from "../types.js";
39
39
  export class IntrospectionLogs {
40
40
  loggerProvider;
41
41
  otelLogger;
42
- userId;
43
- anonymousId;
44
- traits = {};
45
42
  constructor(options = {}) {
46
43
  const token = options.token || process.env.INTROSPECTION_TOKEN || "";
47
44
  const serviceName = options.serviceName ||
48
45
  process.env.INTROSPECTION_SERVICE_NAME ||
49
- "introspection-client";
46
+ DEFAULT_SERVICE_NAME;
50
47
  const baseOtelUrl = options.baseOtelUrl ||
51
48
  process.env.INTROSPECTION_BASE_OTEL_URL ||
52
49
  "https://otel.introspection.dev";
@@ -57,18 +54,29 @@ export class IntrospectionLogs {
57
54
  const endpoint = baseOtelUrl.endsWith("/v1/logs")
58
55
  ? baseOtelUrl
59
56
  : `${baseOtelUrl.replace(/\/$/, "")}/v1/logs`;
60
- const headers = {
61
- Authorization: `Bearer ${token}`,
62
- ...(options.additionalHeaders || {}),
63
- };
64
- const exporter = new OTLPLogExporter(withOtlpHttpsProxy({
65
- url: endpoint,
66
- headers,
67
- }));
57
+ const headers = exporterHeaders(token, options.additionalHeaders);
58
+ const exporter = options.logExporter ??
59
+ new OTLPLogExporter(withOtlpHttpsProxy({
60
+ url: endpoint,
61
+ headers,
62
+ ...otlpUserAgent,
63
+ }));
68
64
  const processor = new BatchLogRecordProcessor({
69
65
  exporter,
70
- maxQueueSize: options.maxBatchSize ?? 100,
66
+ // maxBatchSize is the export batch size, not the queue bound. Wiring it
67
+ // to maxQueueSize left the queue at 100 while the batch size kept its
68
+ // default of 512, which the OTel processor warns about and clamps on
69
+ // every construction.
70
+ maxExportBatchSize: options.maxBatchSize ?? 100,
71
71
  scheduledDelayMillis: options.flushInterval ?? 5000,
72
+ // Passed only when set, so an unset option leaves the OTel SDK's own
73
+ // default (and its env-var override) in charge.
74
+ ...(options.maxQueueSize != null
75
+ ? { maxQueueSize: options.maxQueueSize }
76
+ : {}),
77
+ ...(options.exportTimeoutMillis != null
78
+ ? { exportTimeoutMillis: options.exportTimeoutMillis }
79
+ : {}),
72
80
  });
73
81
  const baseResource = defaultResource();
74
82
  const introspectionResource = resourceFromAttributes({
@@ -79,7 +87,11 @@ export class IntrospectionLogs {
79
87
  resource,
80
88
  processors: [processor],
81
89
  });
82
- this.otelLogger = this.loggerProvider.getLogger("@introspection-sdk/introspection-node", VERSION);
90
+ // The dist name, per the OTel convention that the scope names the
91
+ // instrumentation library. Deliberately not platform-tagged: the SDK
92
+ // language already rides the resource as `telemetry.sdk.language`, which
93
+ // is the semconv-designated place for it.
94
+ this.otelLogger = this.loggerProvider.getLogger("introspection-sdk", VERSION);
83
95
  sdkLogger.info(`IntrospectionLogs initialized: service=${serviceName}, otlp=${endpoint}`);
84
96
  }
85
97
  /** Get gen_ai context from baggage */
@@ -92,20 +104,30 @@ export class IntrospectionLogs {
92
104
  agentId: baggage?.getEntry("gen_ai.agent.id")?.value,
93
105
  };
94
106
  }
95
- /** Get identity from baggage or instance state */
107
+ /**
108
+ * Get identity from baggage.
109
+ *
110
+ * Baggage only, deliberately. This used to fall back to `userId` /
111
+ * `anonymousId` held on the instance, but `init()` builds one instance per
112
+ * process: under any concurrency, the identity of whichever request called
113
+ * `identify()` last attached itself to every other request's events. Scope
114
+ * identity with {@link withUserId} / {@link withAnonymousId} instead, which
115
+ * carry it on the async context where it belongs.
116
+ */
96
117
  getIdentityFromContext() {
97
118
  const baggage = propagation.getBaggage(context.active());
98
119
  return {
99
- userId: baggage?.getEntry("identity.user_id")?.value || this.userId,
100
- anonymousId: baggage?.getEntry("identity.anonymous_id")?.value || this.anonymousId,
120
+ userId: baggage?.getEntry("identity.user_id")?.value,
121
+ anonymousId: baggage?.getEntry("identity.anonymous_id")?.value,
101
122
  };
102
123
  }
103
124
  getTimestamp() {
104
- const hrTimeNs = process.hrtime.bigint();
125
+ // Wall-clock only. An earlier version subtracted one `process.hrtime`
126
+ // reading from another taken microseconds later, which looked like an
127
+ // hrtime/epoch correlation but only ever removed the elapsed call time.
105
128
  const epochNs = BigInt(Date.now()) * BigInt(1_000_000);
106
- const offsetNs = hrTimeNs - process.hrtime.bigint() + epochNs;
107
- const seconds = Number(offsetNs / BigInt(1_000_000_000));
108
- const nanos = Number(offsetNs % BigInt(1_000_000_000));
129
+ const seconds = Number(epochNs / BigInt(1_000_000_000));
130
+ const nanos = Number(epochNs % BigInt(1_000_000_000));
109
131
  return [seconds, nanos];
110
132
  }
111
133
  buildAttributes(eventName, options = {}) {
@@ -114,7 +136,7 @@ export class IntrospectionLogs {
114
136
  "event.name": eventName,
115
137
  "event.id": eventId || generateEventId(),
116
138
  };
117
- const identity = this.getIdentityFromContext();
139
+ const identity = options.identity ?? this.getIdentityFromContext();
118
140
  if (identity.userId)
119
141
  attributes["identity.user.id"] = identity.userId;
120
142
  if (identity.anonymousId)
@@ -135,14 +157,7 @@ export class IntrospectionLogs {
135
157
  for (const [key, value] of Object.entries(properties)) {
136
158
  if (value != null) {
137
159
  const attrKey = `properties.${key}`;
138
- if (typeof value === "object") {
139
- attributes[attrKey] = JSON.stringify(value);
140
- }
141
- else if (typeof value === "string" ||
142
- typeof value === "number" ||
143
- typeof value === "boolean") {
144
- attributes[attrKey] = value;
145
- }
160
+ attributes[attrKey] = toAttributeValue(value);
146
161
  }
147
162
  }
148
163
  }
@@ -150,14 +165,7 @@ export class IntrospectionLogs {
150
165
  for (const [key, value] of Object.entries(traits)) {
151
166
  if (value != null) {
152
167
  const attrKey = `context.traits.${key}`;
153
- if (typeof value === "object") {
154
- attributes[attrKey] = JSON.stringify(value);
155
- }
156
- else if (typeof value === "string" ||
157
- typeof value === "number" ||
158
- typeof value === "boolean") {
159
- attributes[attrKey] = value;
160
- }
168
+ attributes[attrKey] = toAttributeValue(value);
161
169
  }
162
170
  }
163
171
  }
@@ -179,8 +187,14 @@ export class IntrospectionLogs {
179
187
  }
180
188
  feedback(name, options = {}) {
181
189
  const { comments, conversationId, previousResponseId, eventId, ...extra } = options;
182
- const properties = { name, ...extra };
183
- if (comments)
190
+ // `name` last: it is the positional argument, so an `extra` key that
191
+ // happens to be called `name` must not silently replace the feedback
192
+ // name the caller passed.
193
+ const properties = { ...extra, name };
194
+ // `!= null`, not truthiness: `comments: ""` is a comment the caller
195
+ // supplied. Dropping it here
196
+ // made the same call produce a different event shape per SDK.
197
+ if (comments != null)
184
198
  properties.comments = comments;
185
199
  const attributes = this.buildAttributes("introspection.feedback", {
186
200
  properties,
@@ -197,19 +211,41 @@ export class IntrospectionLogs {
197
211
  });
198
212
  sdkLogger.debug(`Feedback: ${name}`);
199
213
  }
214
+ /**
215
+ * Emit an `identify` event associating `userId` with `traits`.
216
+ *
217
+ * The identity lands on this event only. It does not persist onto later
218
+ * `track` / `feedback` calls — wrap those in {@link withUserId} (or set the
219
+ * baggage yourself) to scope identity across several events.
220
+ */
200
221
  identify(userId, traits, anonymousId, eventId) {
201
- this.userId = userId;
222
+ const identity = { "identity.user_id": userId };
202
223
  if (anonymousId)
203
- this.anonymousId = anonymousId;
204
- if (traits)
205
- this.traits = { ...this.traits, ...traits };
206
- const attributes = this.buildAttributes("identify", { traits, eventId });
207
- this.otelLogger.emit({
208
- timestamp: this.getTimestamp(),
209
- context: context.active(),
210
- severityNumber: SeverityNumber.INFO,
211
- severityText: "INFO",
212
- attributes,
224
+ identity["identity.anonymous_id"] = anonymousId;
225
+ // The ids are passed straight through rather than round-tripped via
226
+ // baggage. Reading them back off the context made the identify event
227
+ // depend on a globally registered context manager: `init()` registers
228
+ // one, but a standalone `new IntrospectionLogs()` -- the form the README
229
+ // shows -- gets the API's no-op manager, where `context.with()` runs the
230
+ // callback and `context.active()` still returns ROOT. The event then went
231
+ // out with no identity on it at all, silently.
232
+ //
233
+ // The scope is still entered, so anything the emit touches (a span, a
234
+ // downstream propagator) sees the same identity when a real manager is
235
+ // installed.
236
+ context.with(this.createBaggageContext(identity), () => {
237
+ const attributes = this.buildAttributes("identify", {
238
+ traits,
239
+ eventId,
240
+ identity: { userId, anonymousId },
241
+ });
242
+ this.otelLogger.emit({
243
+ timestamp: this.getTimestamp(),
244
+ context: context.active(),
245
+ severityNumber: SeverityNumber.INFO,
246
+ severityText: "INFO",
247
+ attributes,
248
+ });
213
249
  });
214
250
  sdkLogger.debug(`Identified: ${userId}`);
215
251
  }
@@ -239,26 +275,19 @@ export class IntrospectionLogs {
239
275
  values["gen_ai.request.previous_response_id"] = previousResponseId;
240
276
  return await context.with(this.createBaggageContext(values), callback);
241
277
  }
242
- setUserId(userId) {
243
- this.userId = userId;
244
- }
245
- setAnonymousId(anonymousId) {
246
- this.anonymousId = anonymousId;
247
- }
248
278
  async withUserId(userId, callback) {
249
279
  return await context.with(this.createBaggageContext({ "identity.user_id": userId }), callback);
250
280
  }
251
281
  async withAnonymousId(anonymousId, callback) {
252
282
  return await context.with(this.createBaggageContext({ "identity.anonymous_id": anonymousId }), callback);
253
283
  }
254
- getAnonymousId() {
255
- return this.anonymousId;
284
+ /** The user id on the current async context, if one is scoped. */
285
+ getUserId() {
286
+ return this.getIdentityFromContext().userId;
256
287
  }
257
- reset() {
258
- this.userId = undefined;
259
- this.anonymousId = undefined;
260
- this.traits = {};
261
- sdkLogger.debug("IntrospectionLogs state reset");
288
+ /** The anonymous id on the current async context, if one is scoped. */
289
+ getAnonymousId() {
290
+ return this.getIdentityFromContext().anonymousId;
262
291
  }
263
292
  async flush() {
264
293
  await this.loggerProvider.forceFlush();
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/otel/logs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/otel/logs.ts"],"names":[],"mappings":"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"}
package/dist/otel/pi.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @example
8
8
  * ```ts
9
- * import { IntrospectionPiInstrumentor, setupTracing } from "@introspection-sdk/introspection-node";
9
+ * import { IntrospectionPiInstrumentor, setupTracing } from "@introspection-sdk/introspection-node/otel";
10
10
  * import { Agent } from "@earendil-works/pi-agent-core";
11
11
  *
12
12
  * setupTracing({ serviceName: "my-app" });
@@ -25,7 +25,7 @@
25
25
  */
26
26
  import type { Agent } from "@earendil-works/pi-agent-core";
27
27
  import { type AgentMeta } from "@introspection-sdk/introspection-pi";
28
- export type { AgentMeta } from "@introspection-sdk/introspection-pi";
28
+ export type { AgentMeta, AgentMeta as PiAgentMeta, } from "@introspection-sdk/introspection-pi";
29
29
  export interface IntrospectionPiInstrumentorOptions {
30
30
  /** Tracer name used for all spans produced by this instrumentor. */
31
31
  tracerName?: string;
@@ -39,22 +39,35 @@ export interface IntrospectionPiInstrumentorOptions {
39
39
  */
40
40
  export declare class IntrospectionPiInstrumentor {
41
41
  private _tracer;
42
- private _instrumentations;
42
+ /** Per instrumented agent: its loop subscription and how to unwrap it. */
43
+ private _active;
43
44
  constructor(opts?: IntrospectionPiInstrumentorOptions);
44
45
  /**
45
46
  * Instrument a pi {@link Agent}:
46
- * - Wraps the agent stream function to emit a `chat ${provider}` span per
47
+ * - Wraps the agent stream function to emit a `chat ${model}` span per
47
48
  * LLM call.
48
49
  * - Subscribes to the agent loop to emit an `execute_tool ${name}` span per
49
50
  * tool execution.
50
51
  *
52
+ * Re-instrumenting an agent replaces its previous instrumentation rather
53
+ * than stacking on top. `AgentMeta` carries the conversation id, so a host
54
+ * reusing one `Agent` across conversations calls this again by design;
55
+ * without the replace, the stream was wrapped twice and `subscribe` fired
56
+ * twice, so every call produced two `chat` spans and two `execute_tool`
57
+ * spans, the inner pair stamped with the previous conversation.
58
+ *
51
59
  * @param agent - The pi Agent instance to instrument.
52
60
  * @param meta - Identity metadata stamped on every span produced by this agent.
53
61
  */
54
62
  instrument(agent: Agent, meta: AgentMeta): void;
55
63
  /**
56
- * Unsubscribe all active tool instrumentations and finalize any open spans.
64
+ * Unsubscribe all active tool instrumentations, finalize any open spans, and
65
+ * put each agent's original stream function back.
66
+ *
67
+ * Restoring matters: without it a stopped instrumentor's agents kept
68
+ * emitting `chat` spans onto a provider that had already been shut down.
57
69
  */
58
70
  stop(): void;
71
+ private _detach;
59
72
  }
60
73
  //# sourceMappingURL=pi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/otel/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,+BAA+B,CAAC;AACrE,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;;;;;;;;;OASG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAe/C;;OAEG;IACH,IAAI,IAAI,IAAI;CAIb"}
1
+ {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/otel/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAGL,KAAK,SAAS,EAEf,MAAM,qCAAqC,CAAC;AAG7C,YAAY,EACV,SAAS,EAET,SAAS,IAAI,WAAW,GACzB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,WAAW,kCAAkC;IACjD,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,OAAO,CAAqC;IACpD,0EAA0E;IAC1E,OAAO,CAAC,OAAO,CAGX;gBAEQ,IAAI,GAAE,kCAAuC;IAOzD;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAwB/C;;;;;;OAMG;IACH,IAAI,IAAI,IAAI;IAIZ,OAAO,CAAC,OAAO;CAOhB"}
package/dist/otel/pi.js CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @example
8
8
  * ```ts
9
- * import { IntrospectionPiInstrumentor, setupTracing } from "@introspection-sdk/introspection-node";
9
+ * import { IntrospectionPiInstrumentor, setupTracing } from "@introspection-sdk/introspection-node/otel";
10
10
  * import { Agent } from "@earendil-works/pi-agent-core";
11
11
  *
12
12
  * setupTracing({ serviceName: "my-app" });
@@ -35,36 +35,65 @@ import { VERSION } from "../version.js";
35
35
  */
36
36
  export class IntrospectionPiInstrumentor {
37
37
  _tracer;
38
- _instrumentations = [];
38
+ /** Per instrumented agent: its loop subscription and how to unwrap it. */
39
+ _active = new Map();
39
40
  constructor(opts = {}) {
40
41
  this._tracer = trace.getTracer(opts.tracerName ?? "introspection-pi", VERSION);
41
42
  }
42
43
  /**
43
44
  * Instrument a pi {@link Agent}:
44
- * - Wraps the agent stream function to emit a `chat ${provider}` span per
45
+ * - Wraps the agent stream function to emit a `chat ${model}` span per
45
46
  * LLM call.
46
47
  * - Subscribes to the agent loop to emit an `execute_tool ${name}` span per
47
48
  * tool execution.
48
49
  *
50
+ * Re-instrumenting an agent replaces its previous instrumentation rather
51
+ * than stacking on top. `AgentMeta` carries the conversation id, so a host
52
+ * reusing one `Agent` across conversations calls this again by design;
53
+ * without the replace, the stream was wrapped twice and `subscribe` fired
54
+ * twice, so every call produced two `chat` spans and two `execute_tool`
55
+ * spans, the inner pair stamped with the previous conversation.
56
+ *
49
57
  * @param agent - The pi Agent instance to instrument.
50
58
  * @param meta - Identity metadata stamped on every span produced by this agent.
51
59
  */
52
60
  instrument(agent, meta) {
61
+ this._detach(agent);
53
62
  const key = "streamFunction" in agent ? "streamFunction" : "streamFn";
54
63
  const instrumentable = agent;
55
- instrumentable[key] = instrumentStream(instrumentable[key], {
64
+ const original = instrumentable[key];
65
+ instrumentable[key] = instrumentStream(original, {
56
66
  tracer: this._tracer,
57
67
  meta,
58
68
  });
59
- this._instrumentations.push(instrumentAgent(agent, { tracer: this._tracer, meta }));
69
+ this._active.set(agent, {
70
+ instrumentation: instrumentAgent(agent, {
71
+ tracer: this._tracer,
72
+ meta,
73
+ }),
74
+ restore: () => {
75
+ instrumentable[key] = original;
76
+ },
77
+ });
60
78
  }
61
79
  /**
62
- * Unsubscribe all active tool instrumentations and finalize any open spans.
80
+ * Unsubscribe all active tool instrumentations, finalize any open spans, and
81
+ * put each agent's original stream function back.
82
+ *
83
+ * Restoring matters: without it a stopped instrumentor's agents kept
84
+ * emitting `chat` spans onto a provider that had already been shut down.
63
85
  */
64
86
  stop() {
65
- for (const inst of this._instrumentations)
66
- inst.stop();
67
- this._instrumentations = [];
87
+ for (const agent of [...this._active.keys()])
88
+ this._detach(agent);
89
+ }
90
+ _detach(agent) {
91
+ const active = this._active.get(agent);
92
+ if (!active)
93
+ return;
94
+ active.instrumentation.stop();
95
+ active.restore();
96
+ this._active.delete(agent);
68
97
  }
69
98
  }
70
99
  //# sourceMappingURL=pi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/otel/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EACL,gBAAgB,EAChB,eAAe,GAGhB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AASxC;;;;;;GAMG;AACH,MAAM,OAAO,2BAA2B;IAC9B,OAAO,CAAqC;IAC5C,iBAAiB,GAA2B,EAAE,CAAC;IAEvD,YAAY,OAA2C,EAAE;QACvD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAC5B,IAAI,CAAC,UAAU,IAAI,kBAAkB,EACrC,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU,CAAC,KAAY,EAAE,IAAe;QACtC,MAAM,GAAG,GAAG,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC;QACtE,MAAM,cAAc,GAAG,KAGtB,CAAC;QACF,cAAc,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC1D,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,IAAI;SACL,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,eAAe,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CACvD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI;QACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/otel/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EACL,gBAAgB,EAChB,eAAe,GAGhB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAaxC;;;;;;GAMG;AACH,MAAM,OAAO,2BAA2B;IAC9B,OAAO,CAAqC;IACpD,0EAA0E;IAClE,OAAO,GAAG,IAAI,GAAG,EAGtB,CAAC;IAEJ,YAAY,OAA2C,EAAE;QACvD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAC5B,IAAI,CAAC,UAAU,IAAI,kBAAkB,EACrC,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,KAAY,EAAE,IAAe;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEpB,MAAM,GAAG,GAAG,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC;QACtE,MAAM,cAAc,GAAG,KAGtB,CAAC;QACF,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACrC,cAAc,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE;YAC/C,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,IAAI;SACL,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;YACtB,eAAe,EAAE,eAAe,CAAC,KAAK,EAAE;gBACtC,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,IAAI;aACL,CAAC;YACF,OAAO,EAAE,GAAG,EAAE;gBACZ,cAAc,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YACjC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,IAAI;QACF,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAEO,OAAO,CAAC,KAAY;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Run `init()` if a token is configured. Exported (and awaited at module load)
3
3
  * so tests can invoke it deterministically; the module-level `await` below
4
- * guarantees the preload finishes — including framework auto-discovery and the
5
- * prototype patch — before Node evaluates the application entry point.
4
+ * guarantees the preload finishes — including framework auto-discovery —
5
+ * before Node evaluates the application entry point.
6
6
  */
7
7
  export declare function registerFromEnv(): Promise<void>;
8
8
  //# sourceMappingURL=register.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/otel/register.ts"],"names":[],"mappings":"AA2BA;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAcrD"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/otel/register.ts"],"names":[],"mappings":"AAyBA;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAcrD"}
@@ -8,27 +8,25 @@
8
8
  * ```
9
9
  *
10
10
  * Runs `introspection.init()` from the environment **before** the app's module
11
- * graph executes, so no `init()` call is needed in application source. Because
12
- * the Anthropic / Gemini one-liner works by prototype-patching the SDK classes
13
- * (see `AnthropicInstrumentor.instrumentClass`), every client constructed after
14
- * this preload is traced with zero code changes.
11
+ * graph executes, so no `init()` call is needed in application source —
12
+ * framework auto-discovery (Pi) runs before
13
+ * the application entry point evaluates.
15
14
  *
16
15
  * Configuration is read from the usual environment variables
17
16
  * (`INTROSPECTION_TOKEN`, `INTROSPECTION_SERVICE_NAME`,
18
17
  * `INTROSPECTION_BASE_OTEL_URL`). If no token is configured the preload logs a
19
18
  * warning and does nothing, so it never crashes the host application.
20
19
  *
21
- * This is the counterpart to the private SDK's `register.ts`, adapted to the
22
- * `src/otel` surface: it drives the existing `init()` rather than registering an
23
- * import-in-the-middle loader hook (the prototype-patch path does not need one).
20
+ * It drives the existing `init()` rather than registering an
21
+ * import-in-the-middle loader hook.
24
22
  */
25
23
  import { logger } from "../utils.js";
26
24
  import { init } from "./init.js";
27
25
  /**
28
26
  * Run `init()` if a token is configured. Exported (and awaited at module load)
29
27
  * so tests can invoke it deterministically; the module-level `await` below
30
- * guarantees the preload finishes — including framework auto-discovery and the
31
- * prototype patch — before Node evaluates the application entry point.
28
+ * guarantees the preload finishes — including framework auto-discovery —
29
+ * before Node evaluates the application entry point.
32
30
  */
33
31
  export async function registerFromEnv() {
34
32
  if (!process.env.INTROSPECTION_TOKEN) {
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/otel/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CACT,iFAAiF,CAClF,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8DAA8D;QAC9D,MAAM,CAAC,IAAI,CAAC,0CAA0C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/otel/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CACT,iFAAiF,CAClF,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8DAA8D;QAC9D,MAAM,CAAC,IAAI,CAAC,0CAA0C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,eAAe,EAAE,CAAC"}
@@ -18,13 +18,13 @@ export interface SetupTracingOptions extends IntrospectionSpanProcessorOptions {
18
18
  onConflict?: ConflictBehavior;
19
19
  /**
20
20
  * Extra span processors attached to the same `NodeTracerProvider`, so a
21
- * single set of spans fans out to other backends (Langfuse, Arize, …).
21
+ * single set of spans fans out to any other OTLP-compatible backend.
22
22
  * This is the low-level dual-export hook:
23
23
  *
24
24
  * ```ts
25
25
  * setupTracing({
26
26
  * serviceName: "my-app",
27
- * additionalSpanProcessors: [new BatchSpanProcessor(langfuseExporter)],
27
+ * additionalSpanProcessors: [new BatchSpanProcessor(otherBackendExporter)],
28
28
  * });
29
29
  * ```
30
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/otel/setup.ts"],"names":[],"mappings":"AA8DA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,qBAAqB,CAAC;AAI7B,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5D,MAAM,WAAW,mBAAoB,SAAQ,iCAAiC;IAC5E;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;;;;;;;;;;;;;;OAiBG;IACH,wBAAwB,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5C;AA8DD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAIrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,kBAAkB,CAwBpB"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/otel/setup.ts"],"names":[],"mappings":"AA8DA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,qBAAqB,CAAC;AAI7B,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5D,MAAM,WAAW,mBAAoB,SAAQ,iCAAiC;IAC5E;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;;;;;;;;;;;;;;OAiBG;IACH,wBAAwB,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5C;AA8DD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAIrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,kBAAkB,CAmCpB"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * 1. `AsyncLocalStorageContextManager` — without this, `context.with()` is a
8
8
  * no-op (the default `NOOP_CONTEXT_MANAGER` silently drops the context),
9
- * which makes `IntrospectionClient.withAgent()`, `.withConversation()`,
9
+ * which makes `IntrospectionLogs.withAgent()`, `.withConversation()`,
10
10
  * etc. dead code.
11
11
  * 2. `W3CBaggagePropagator` — so baggage is carried across HTTP boundaries
12
12
  * via the `baggage` header (alongside W3C trace-context).
@@ -40,15 +40,15 @@
40
40
  *
41
41
  * @example
42
42
  * ```ts
43
- * import { setupTracing, IntrospectionClient } from "@introspection-sdk/introspection-node";
43
+ * import { setupTracing, IntrospectionLogs } from "@introspection-sdk/introspection-node/otel";
44
44
  *
45
45
  * setupTracing();
46
46
  *
47
- * const introspect = new IntrospectionClient();
47
+ * const logs = new IntrospectionLogs();
48
48
  *
49
- * await introspect.withAgent("researcher", "researcher-1", () =>
50
- * introspect.withConversation(conversationId, undefined, () =>
51
- * client.messages.create({ ... }),
49
+ * await logs.withAgent("researcher", "researcher-1", () =>
50
+ * logs.withConversation(conversationId, undefined, () =>
51
+ * runTheAgentTurn(),
52
52
  * ),
53
53
  * );
54
54
  * ```
@@ -140,6 +140,16 @@ export function setupTracing(options) {
140
140
  ],
141
141
  });
142
142
  provider.register();
143
+ // Release the cache when the caller tears the provider down. Without this,
144
+ // `setupTracing()` after a `provider.shutdown()` returns the dead provider
145
+ // and every subsequent span is silently dropped.
146
+ const shutdown = provider.shutdown.bind(provider);
147
+ provider.shutdown = async () => {
148
+ if (registeredProvider === provider) {
149
+ registeredProvider = undefined;
150
+ }
151
+ return shutdown();
152
+ };
143
153
  registeredProvider = provider;
144
154
  return provider;
145
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/otel/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/otel/setup.ts"],"names":[],"mappings":"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"}