@microsoft/opentelemetry 1.2.0 → 1.4.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 (256) hide show
  1. package/README.md +140 -39
  2. package/dist/commonjs/a365/configuration/A365Configuration.d.ts +3 -0
  3. package/dist/commonjs/a365/configuration/A365Configuration.d.ts.map +1 -1
  4. package/dist/commonjs/a365/configuration/A365Configuration.js +5 -1
  5. package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -1
  6. package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts +3 -0
  7. package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
  8. package/dist/commonjs/a365/constants.d.ts +1 -1
  9. package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts +29 -3
  10. package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  11. package/dist/commonjs/a365/exporter/Agent365Exporter.js +327 -73
  12. package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
  13. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +5 -0
  14. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  15. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js +3 -0
  16. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  17. package/dist/commonjs/a365/exporter/durable/DurableDeliveryManager.d.ts +70 -0
  18. package/dist/commonjs/a365/exporter/durable/DurableDeliveryManager.d.ts.map +1 -0
  19. package/dist/commonjs/a365/exporter/durable/DurableDeliveryManager.js +346 -0
  20. package/dist/commonjs/a365/exporter/durable/DurableDeliveryManager.js.map +1 -0
  21. package/dist/commonjs/a365/exporter/durable/DurableDeliveryOptions.d.ts +31 -0
  22. package/dist/commonjs/a365/exporter/durable/DurableDeliveryOptions.d.ts.map +1 -0
  23. package/dist/commonjs/a365/exporter/durable/DurableDeliveryOptions.js +48 -0
  24. package/dist/commonjs/a365/exporter/durable/DurableDeliveryOptions.js.map +1 -0
  25. package/dist/commonjs/a365/exporter/durable/DurableRecord.d.ts +20 -0
  26. package/dist/commonjs/a365/exporter/durable/DurableRecord.d.ts.map +1 -0
  27. package/dist/commonjs/a365/exporter/durable/DurableRecord.js +98 -0
  28. package/dist/commonjs/a365/exporter/durable/DurableRecord.js.map +1 -0
  29. package/dist/commonjs/a365/exporter/durable/PersistentStore.d.ts +48 -0
  30. package/dist/commonjs/a365/exporter/durable/PersistentStore.d.ts.map +1 -0
  31. package/dist/commonjs/a365/exporter/durable/PersistentStore.js +637 -0
  32. package/dist/commonjs/a365/exporter/durable/PersistentStore.js.map +1 -0
  33. package/dist/commonjs/a365/exporter/durable/TransmissionGate.d.ts +24 -0
  34. package/dist/commonjs/a365/exporter/durable/TransmissionGate.d.ts.map +1 -0
  35. package/dist/commonjs/a365/exporter/durable/TransmissionGate.js +85 -0
  36. package/dist/commonjs/a365/exporter/durable/TransmissionGate.js.map +1 -0
  37. package/dist/commonjs/a365/exporter/durable/WindowsFileAccessControl.d.ts +35 -0
  38. package/dist/commonjs/a365/exporter/durable/WindowsFileAccessControl.d.ts.map +1 -0
  39. package/dist/commonjs/a365/exporter/durable/WindowsFileAccessControl.js +169 -0
  40. package/dist/commonjs/a365/exporter/durable/WindowsFileAccessControl.js.map +1 -0
  41. package/dist/commonjs/a365/exporter/durable/index.d.ts +12 -0
  42. package/dist/commonjs/a365/exporter/durable/index.d.ts.map +1 -0
  43. package/dist/commonjs/a365/exporter/durable/index.js +27 -0
  44. package/dist/commonjs/a365/exporter/durable/index.js.map +1 -0
  45. package/dist/commonjs/a365/exporter/index.d.ts +1 -1
  46. package/dist/commonjs/a365/exporter/index.d.ts.map +1 -1
  47. package/dist/commonjs/a365/exporter/index.js.map +1 -1
  48. package/dist/commonjs/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -1
  49. package/dist/commonjs/a365/hosting/outputLoggingMiddleware.js.map +1 -1
  50. package/dist/commonjs/a365/index.d.ts +1 -1
  51. package/dist/commonjs/a365/index.d.ts.map +1 -1
  52. package/dist/commonjs/a365/index.js.map +1 -1
  53. package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
  54. package/dist/commonjs/a365/scopes/OpenTelemetryScope.js.map +1 -1
  55. package/dist/commonjs/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.d.ts.map +1 -1
  56. package/dist/commonjs/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js +1 -3
  57. package/dist/commonjs/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js.map +1 -1
  58. package/dist/commonjs/azureMonitor/generated/models/models.d.ts.map +1 -1
  59. package/dist/commonjs/azureMonitor/generated/models/models.js.map +1 -1
  60. package/dist/commonjs/azureMonitor/index.d.ts.map +1 -1
  61. package/dist/commonjs/azureMonitor/index.js +4 -10
  62. package/dist/commonjs/azureMonitor/index.js.map +1 -1
  63. package/dist/commonjs/azureMonitor/logs/batchLogRecordProcessor.js +1 -1
  64. package/dist/commonjs/azureMonitor/logs/batchLogRecordProcessor.js.map +1 -1
  65. package/dist/commonjs/azureMonitor/logs/handler.d.ts +0 -7
  66. package/dist/commonjs/azureMonitor/logs/handler.d.ts.map +1 -1
  67. package/dist/commonjs/azureMonitor/logs/handler.js +0 -27
  68. package/dist/commonjs/azureMonitor/logs/handler.js.map +1 -1
  69. package/dist/commonjs/azureMonitor/metrics/performanceCounters.d.ts +3 -0
  70. package/dist/commonjs/azureMonitor/metrics/performanceCounters.d.ts.map +1 -1
  71. package/dist/commonjs/azureMonitor/metrics/performanceCounters.js +27 -26
  72. package/dist/commonjs/azureMonitor/metrics/performanceCounters.js.map +1 -1
  73. package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.d.ts.map +1 -1
  74. package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
  75. package/dist/commonjs/azureMonitor/traces/handler.d.ts +2 -9
  76. package/dist/commonjs/azureMonitor/traces/handler.d.ts.map +1 -1
  77. package/dist/commonjs/azureMonitor/traces/handler.js +2 -54
  78. package/dist/commonjs/azureMonitor/traces/handler.js.map +1 -1
  79. package/dist/commonjs/azureMonitor/traces/sampler.js +1 -1
  80. package/dist/commonjs/azureMonitor/traces/sampler.js.map +1 -1
  81. package/dist/commonjs/azureMonitor/utils/common.d.ts +29 -0
  82. package/dist/commonjs/azureMonitor/utils/common.d.ts.map +1 -1
  83. package/dist/commonjs/azureMonitor/utils/common.js +55 -0
  84. package/dist/commonjs/azureMonitor/utils/common.js.map +1 -1
  85. package/dist/commonjs/distro/distro.d.ts.map +1 -1
  86. package/dist/commonjs/distro/distro.js +30 -12
  87. package/dist/commonjs/distro/distro.js.map +1 -1
  88. package/dist/commonjs/distro/instrumentations.d.ts.map +1 -1
  89. package/dist/commonjs/distro/instrumentations.js +12 -0
  90. package/dist/commonjs/distro/instrumentations.js.map +1 -1
  91. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +9 -3
  92. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
  93. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js +31 -10
  94. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
  95. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts +16 -3
  96. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  97. package/dist/commonjs/genai/instrumentations/langchain/tracer.js +32 -8
  98. package/dist/commonjs/genai/instrumentations/langchain/tracer.js.map +1 -1
  99. package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts +4 -1
  100. package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  101. package/dist/commonjs/genai/instrumentations/langchain/utils.js +246 -13
  102. package/dist/commonjs/genai/instrumentations/langchain/utils.js.map +1 -1
  103. package/dist/commonjs/genai/semconv.d.ts +11 -0
  104. package/dist/commonjs/genai/semconv.d.ts.map +1 -1
  105. package/dist/commonjs/genai/semconv.js +12 -1
  106. package/dist/commonjs/genai/semconv.js.map +1 -1
  107. package/dist/commonjs/index.d.ts +1 -1
  108. package/dist/commonjs/index.d.ts.map +1 -1
  109. package/dist/commonjs/index.js.map +1 -1
  110. package/dist/commonjs/otlp/handler.d.ts.map +1 -1
  111. package/dist/commonjs/otlp/handler.js +3 -1
  112. package/dist/commonjs/otlp/handler.js.map +1 -1
  113. package/dist/commonjs/shared/config.d.ts +7 -0
  114. package/dist/commonjs/shared/config.d.ts.map +1 -1
  115. package/dist/commonjs/shared/config.js +19 -3
  116. package/dist/commonjs/shared/config.js.map +1 -1
  117. package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts +1 -0
  118. package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
  119. package/dist/commonjs/shared/logging/diagFileConsoleLogger.js +14 -6
  120. package/dist/commonjs/shared/logging/diagFileConsoleLogger.js.map +1 -1
  121. package/dist/commonjs/types.d.ts +13 -2
  122. package/dist/commonjs/types.d.ts.map +1 -1
  123. package/dist/commonjs/types.js +2 -3
  124. package/dist/commonjs/types.js.map +1 -1
  125. package/dist/commonjs/utils/sdkStats.d.ts +7 -0
  126. package/dist/commonjs/utils/sdkStats.d.ts.map +1 -1
  127. package/dist/commonjs/utils/sdkStats.js +12 -2
  128. package/dist/commonjs/utils/sdkStats.js.map +1 -1
  129. package/dist/esm/a365/configuration/A365Configuration.d.ts +3 -0
  130. package/dist/esm/a365/configuration/A365Configuration.d.ts.map +1 -1
  131. package/dist/esm/a365/configuration/A365Configuration.js +5 -1
  132. package/dist/esm/a365/configuration/A365Configuration.js.map +1 -1
  133. package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts +3 -0
  134. package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
  135. package/dist/esm/a365/constants.d.ts +1 -1
  136. package/dist/esm/a365/exporter/Agent365Exporter.d.ts +29 -3
  137. package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  138. package/dist/esm/a365/exporter/Agent365Exporter.js +325 -71
  139. package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
  140. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +5 -0
  141. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  142. package/dist/esm/a365/exporter/Agent365ExporterOptions.js +3 -0
  143. package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  144. package/dist/esm/a365/exporter/durable/DurableDeliveryManager.d.ts +70 -0
  145. package/dist/esm/a365/exporter/durable/DurableDeliveryManager.d.ts.map +1 -0
  146. package/dist/esm/a365/exporter/durable/DurableDeliveryManager.js +342 -0
  147. package/dist/esm/a365/exporter/durable/DurableDeliveryManager.js.map +1 -0
  148. package/dist/esm/a365/exporter/durable/DurableDeliveryOptions.d.ts +31 -0
  149. package/dist/esm/a365/exporter/durable/DurableDeliveryOptions.d.ts.map +1 -0
  150. package/dist/esm/a365/exporter/durable/DurableDeliveryOptions.js +44 -0
  151. package/dist/esm/a365/exporter/durable/DurableDeliveryOptions.js.map +1 -0
  152. package/dist/esm/a365/exporter/durable/DurableRecord.d.ts +20 -0
  153. package/dist/esm/a365/exporter/durable/DurableRecord.d.ts.map +1 -0
  154. package/dist/esm/a365/exporter/durable/DurableRecord.js +93 -0
  155. package/dist/esm/a365/exporter/durable/DurableRecord.js.map +1 -0
  156. package/dist/esm/a365/exporter/durable/PersistentStore.d.ts +48 -0
  157. package/dist/esm/a365/exporter/durable/PersistentStore.d.ts.map +1 -0
  158. package/dist/esm/a365/exporter/durable/PersistentStore.js +599 -0
  159. package/dist/esm/a365/exporter/durable/PersistentStore.js.map +1 -0
  160. package/dist/esm/a365/exporter/durable/TransmissionGate.d.ts +24 -0
  161. package/dist/esm/a365/exporter/durable/TransmissionGate.d.ts.map +1 -0
  162. package/dist/esm/a365/exporter/durable/TransmissionGate.js +80 -0
  163. package/dist/esm/a365/exporter/durable/TransmissionGate.js.map +1 -0
  164. package/dist/esm/a365/exporter/durable/WindowsFileAccessControl.d.ts +35 -0
  165. package/dist/esm/a365/exporter/durable/WindowsFileAccessControl.d.ts.map +1 -0
  166. package/dist/esm/a365/exporter/durable/WindowsFileAccessControl.js +164 -0
  167. package/dist/esm/a365/exporter/durable/WindowsFileAccessControl.js.map +1 -0
  168. package/dist/esm/a365/exporter/durable/index.d.ts +12 -0
  169. package/dist/esm/a365/exporter/durable/index.d.ts.map +1 -0
  170. package/dist/esm/a365/exporter/durable/index.js +9 -0
  171. package/dist/esm/a365/exporter/durable/index.js.map +1 -0
  172. package/dist/esm/a365/exporter/index.d.ts +1 -1
  173. package/dist/esm/a365/exporter/index.d.ts.map +1 -1
  174. package/dist/esm/a365/exporter/index.js.map +1 -1
  175. package/dist/esm/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -1
  176. package/dist/esm/a365/hosting/outputLoggingMiddleware.js.map +1 -1
  177. package/dist/esm/a365/index.d.ts +1 -1
  178. package/dist/esm/a365/index.d.ts.map +1 -1
  179. package/dist/esm/a365/index.js.map +1 -1
  180. package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
  181. package/dist/esm/a365/scopes/OpenTelemetryScope.js.map +1 -1
  182. package/dist/esm/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.d.ts.map +1 -1
  183. package/dist/esm/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js +1 -3
  184. package/dist/esm/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js.map +1 -1
  185. package/dist/esm/azureMonitor/generated/models/models.d.ts.map +1 -1
  186. package/dist/esm/azureMonitor/generated/models/models.js.map +1 -1
  187. package/dist/esm/azureMonitor/index.d.ts.map +1 -1
  188. package/dist/esm/azureMonitor/index.js +4 -10
  189. package/dist/esm/azureMonitor/index.js.map +1 -1
  190. package/dist/esm/azureMonitor/logs/batchLogRecordProcessor.js +1 -1
  191. package/dist/esm/azureMonitor/logs/batchLogRecordProcessor.js.map +1 -1
  192. package/dist/esm/azureMonitor/logs/handler.d.ts +0 -7
  193. package/dist/esm/azureMonitor/logs/handler.d.ts.map +1 -1
  194. package/dist/esm/azureMonitor/logs/handler.js +0 -27
  195. package/dist/esm/azureMonitor/logs/handler.js.map +1 -1
  196. package/dist/esm/azureMonitor/metrics/performanceCounters.d.ts +3 -0
  197. package/dist/esm/azureMonitor/metrics/performanceCounters.d.ts.map +1 -1
  198. package/dist/esm/azureMonitor/metrics/performanceCounters.js +27 -26
  199. package/dist/esm/azureMonitor/metrics/performanceCounters.js.map +1 -1
  200. package/dist/esm/azureMonitor/metrics/quickpulse/utils.d.ts.map +1 -1
  201. package/dist/esm/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
  202. package/dist/esm/azureMonitor/traces/handler.d.ts +2 -9
  203. package/dist/esm/azureMonitor/traces/handler.d.ts.map +1 -1
  204. package/dist/esm/azureMonitor/traces/handler.js +2 -54
  205. package/dist/esm/azureMonitor/traces/handler.js.map +1 -1
  206. package/dist/esm/azureMonitor/traces/sampler.js +1 -1
  207. package/dist/esm/azureMonitor/traces/sampler.js.map +1 -1
  208. package/dist/esm/azureMonitor/utils/common.d.ts +29 -0
  209. package/dist/esm/azureMonitor/utils/common.d.ts.map +1 -1
  210. package/dist/esm/azureMonitor/utils/common.js +52 -0
  211. package/dist/esm/azureMonitor/utils/common.js.map +1 -1
  212. package/dist/esm/distro/distro.d.ts.map +1 -1
  213. package/dist/esm/distro/distro.js +26 -8
  214. package/dist/esm/distro/distro.js.map +1 -1
  215. package/dist/esm/distro/instrumentations.d.ts.map +1 -1
  216. package/dist/esm/distro/instrumentations.js +12 -0
  217. package/dist/esm/distro/instrumentations.js.map +1 -1
  218. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +9 -3
  219. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
  220. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js +31 -10
  221. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
  222. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts +16 -3
  223. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  224. package/dist/esm/genai/instrumentations/langchain/tracer.js +32 -8
  225. package/dist/esm/genai/instrumentations/langchain/tracer.js.map +1 -1
  226. package/dist/esm/genai/instrumentations/langchain/utils.d.ts +4 -1
  227. package/dist/esm/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  228. package/dist/esm/genai/instrumentations/langchain/utils.js +245 -15
  229. package/dist/esm/genai/instrumentations/langchain/utils.js.map +1 -1
  230. package/dist/esm/genai/semconv.d.ts +11 -0
  231. package/dist/esm/genai/semconv.d.ts.map +1 -1
  232. package/dist/esm/genai/semconv.js +11 -0
  233. package/dist/esm/genai/semconv.js.map +1 -1
  234. package/dist/esm/index.d.ts +1 -1
  235. package/dist/esm/index.d.ts.map +1 -1
  236. package/dist/esm/index.js.map +1 -1
  237. package/dist/esm/otlp/handler.d.ts.map +1 -1
  238. package/dist/esm/otlp/handler.js +3 -1
  239. package/dist/esm/otlp/handler.js.map +1 -1
  240. package/dist/esm/shared/config.d.ts +7 -0
  241. package/dist/esm/shared/config.d.ts.map +1 -1
  242. package/dist/esm/shared/config.js +19 -3
  243. package/dist/esm/shared/config.js.map +1 -1
  244. package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts +1 -0
  245. package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
  246. package/dist/esm/shared/logging/diagFileConsoleLogger.js +14 -6
  247. package/dist/esm/shared/logging/diagFileConsoleLogger.js.map +1 -1
  248. package/dist/esm/types.d.ts +13 -2
  249. package/dist/esm/types.d.ts.map +1 -1
  250. package/dist/esm/types.js +1 -2
  251. package/dist/esm/types.js.map +1 -1
  252. package/dist/esm/utils/sdkStats.d.ts +7 -0
  253. package/dist/esm/utils/sdkStats.d.ts.map +1 -1
  254. package/dist/esm/utils/sdkStats.js +12 -2
  255. package/dist/esm/utils/sdkStats.js.map +1 -1
  256. package/package.json +40 -37
@@ -18,6 +18,12 @@ class LangChainTraceInstrumentorImpl extends InstrumentationBase {
18
18
  // A static import is safe: by the time `patch()` runs, the callbacks
19
19
  // manager module is already loaded (it is the `module` argument).
20
20
  _tracerCtor = LangChainTracer;
21
+ /**
22
+ * When true, the attached {@link LangChainTracer} captures sensitive message
23
+ * content on spans regardless of the OTel GenAI content-capture environment
24
+ * variables.
25
+ */
26
+ _enableSensitiveData = false;
21
27
  constructor() {
22
28
  if (LangChainTraceInstrumentorImpl._instance !== null) {
23
29
  throw new Error("LangChainTraceInstrumentor can only be instantiated once.");
@@ -74,7 +80,7 @@ class LangChainTraceInstrumentorImpl extends InstrumentationBase {
74
80
  const instrumentor = this;
75
81
  this._wrap(CallbackManager, "_configureSync", (original) => {
76
82
  return function (...args) {
77
- args[0] = addTracerToHandlers(instrumentor.otelTracer, args[0], instrumentor._tracerCtor);
83
+ args[0] = addTracerToHandlers(instrumentor.otelTracer, args[0], instrumentor._tracerCtor, instrumentor._enableSensitiveData);
78
84
  diag.debug("[LangChainTraceInstrumentor] _configureSync wrapped to add LangChainTracer");
79
85
  return original.apply(this, args);
80
86
  };
@@ -83,7 +89,8 @@ class LangChainTraceInstrumentorImpl extends InstrumentationBase {
83
89
  this._isPatched = true;
84
90
  return module;
85
91
  }
86
- manuallyInstrumentImpl(module) {
92
+ manuallyInstrumentImpl(module, enableSensitiveData = false) {
93
+ this._enableSensitiveData = enableSensitiveData;
87
94
  diag.info("[LangChainTraceInstrumentor] Manually instrumenting CallbackManagerModule");
88
95
  this.patch(module);
89
96
  }
@@ -116,9 +123,13 @@ export class LangChainTraceInstrumentor {
116
123
  * Initialize and auto-instrument for LangChain
117
124
  * @param module The CallbackManager module to instrument
118
125
  * @param options Optional configuration options
126
+ * @param options.enableSensitiveData When true, sensitive message content
127
+ * (prompts, completions, tool arguments/results, system instructions) is
128
+ * captured on spans. Defaults to false. Only enable in trusted,
129
+ * non-production environments.
119
130
  */
120
- static instrument(module) {
121
- LangChainTraceInstrumentorImpl.getInstance().manuallyInstrumentImpl(module);
131
+ static instrument(module, options) {
132
+ LangChainTraceInstrumentorImpl.getInstance().manuallyInstrumentImpl(module, options?.enableSensitiveData ?? false);
122
133
  }
123
134
  /**
124
135
  * Enable LangChain instrumentation
@@ -145,18 +156,28 @@ export class LangChainTraceInstrumentor {
145
156
  LangChainTraceInstrumentorImpl.resetInstance();
146
157
  }
147
158
  }
148
- export function addTracerToHandlers(tracer, handlers, tracerCtor) {
159
+ export function addTracerToHandlers(tracer, handlers, tracerCtor, enableSensitiveData = false) {
149
160
  if (handlers == null) {
150
- return [new tracerCtor(tracer)];
161
+ return [new tracerCtor(tracer, enableSensitiveData)];
151
162
  }
152
163
  if (Array.isArray(handlers)) {
153
- if (!handlers.some((h) => h instanceof tracerCtor)) {
154
- handlers.push(new tracerCtor(tracer));
164
+ const existing = handlers.find((h) => h instanceof tracerCtor);
165
+ if (existing) {
166
+ // Reconcile an already-attached tracer with the latest config so the flag
167
+ // never goes stale across re-instrumentation.
168
+ existing.setEnableSensitiveData(enableSensitiveData);
169
+ }
170
+ else {
171
+ handlers.push(new tracerCtor(tracer, enableSensitiveData));
155
172
  }
156
173
  return handlers;
157
174
  }
158
- if (!handlers.inheritableHandlers.some((h) => h instanceof tracerCtor)) {
159
- handlers.addHandler(new tracerCtor(tracer), true);
175
+ const existing = handlers.inheritableHandlers.find((h) => h instanceof tracerCtor);
176
+ if (existing) {
177
+ existing.setEnableSensitiveData(enableSensitiveData);
178
+ }
179
+ else {
180
+ handlers.addHandler(new tracerCtor(tracer, enableSensitiveData), true);
160
181
  }
161
182
  return handlers;
162
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"langchainTraceInstrumentor.js","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/langchainTraceInstrumentor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"langchainTraceInstrumentor.js","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/langchainTraceInstrumentor.ts"],"names":[],"mappings":"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"}
@@ -15,18 +15,31 @@ import { BaseTracer, Run } from "@langchain/core/tracers/base";
15
15
  * - Skips LangChain-internal runs (tagged `langsmith:hidden`, `Branch*`, or
16
16
  * unmapped run types) to avoid noisy traces.
17
17
  * - Guards against unbounded memory with a hard cap of {@link MAX_RUNS}.
18
- * - Content attributes (messages, tool args) are always recorded
19
- * (aligned with Python/.NET SDKs).
18
+ * - Content attributes (messages, tool args/results, system instructions) are
19
+ * only recorded when {@link enableSensitiveData} is enabled. Sensitive data
20
+ * is hidden by default.
20
21
  */
21
22
  export declare class LangChainTracer extends BaseTracer {
22
23
  /** Hard cap on concurrent tracked runs to prevent memory leaks. */
23
24
  private static readonly MAX_RUNS;
24
25
  private tracer;
26
+ /**
27
+ * When true, sensitive message content (prompts, completions, tool
28
+ * arguments/results, system instructions) is captured on spans. Hidden by
29
+ * default.
30
+ */
31
+ private enableSensitiveData;
25
32
  /** Active runs keyed by LangChain run ID. */
26
33
  private runs;
27
34
  /** Maps each run ID → its parent run ID for parent-span-context lookup. */
28
35
  private parentByRunId;
29
- constructor(tracer: Tracer);
36
+ constructor(tracer: Tracer, enableSensitiveData?: boolean);
37
+ /**
38
+ * Update whether sensitive message content is captured on spans. Used to
39
+ * reconcile an already-attached tracer with the latest instrumentation
40
+ * configuration (e.g. on re-instrumentation) so the flag never goes stale.
41
+ */
42
+ setEnableSensitiveData(enableSensitiveData: boolean): void;
30
43
  name: string;
31
44
  protected persistRun(_run: Run): Promise<void>;
32
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/tracer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkD,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAa/D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,6CAA6C;IAC7C,OAAO,CAAC,IAAI,CAAkC;IAC9C,2EAA2E;IAC3E,OAAO,CAAC,aAAa,CAAyC;gBAElD,MAAM,EAAE,MAAM;IAK1B,IAAI,SAAkC;IAEtC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,GAAG;IAM1B;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG;IA6E/B;;;OAGG;cACa,SAAS,CAAC,GAAG,EAAE,GAAG;IAoFlC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAW5B"}
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/tracer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkD,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAa/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAAU;IACrC,6CAA6C;IAC7C,OAAO,CAAC,IAAI,CAAkC;IAC9C,2EAA2E;IAC3E,OAAO,CAAC,aAAa,CAAyC;gBAElD,MAAM,EAAE,MAAM,EAAE,mBAAmB,UAAQ;IAMvD;;;;OAIG;IACH,sBAAsB,CAAC,mBAAmB,EAAE,OAAO,GAAG,IAAI;IAI1D,IAAI,SAAkC;IAEtC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,GAAG;IAM1B;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG;IA6E/B;;;OAGG;cACa,SAAS,CAAC,GAAG,EAAE,GAAG;IA4FlC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAW5B"}
@@ -22,20 +22,36 @@ import * as Utils from "./utils.js";
22
22
  * - Skips LangChain-internal runs (tagged `langsmith:hidden`, `Branch*`, or
23
23
  * unmapped run types) to avoid noisy traces.
24
24
  * - Guards against unbounded memory with a hard cap of {@link MAX_RUNS}.
25
- * - Content attributes (messages, tool args) are always recorded
26
- * (aligned with Python/.NET SDKs).
25
+ * - Content attributes (messages, tool args/results, system instructions) are
26
+ * only recorded when {@link enableSensitiveData} is enabled. Sensitive data
27
+ * is hidden by default.
27
28
  */
28
29
  export class LangChainTracer extends BaseTracer {
29
30
  /** Hard cap on concurrent tracked runs to prevent memory leaks. */
30
31
  static MAX_RUNS = 10_000;
31
32
  tracer;
33
+ /**
34
+ * When true, sensitive message content (prompts, completions, tool
35
+ * arguments/results, system instructions) is captured on spans. Hidden by
36
+ * default.
37
+ */
38
+ enableSensitiveData;
32
39
  /** Active runs keyed by LangChain run ID. */
33
40
  runs = new Map();
34
41
  /** Maps each run ID → its parent run ID for parent-span-context lookup. */
35
42
  parentByRunId = new Map();
36
- constructor(tracer) {
43
+ constructor(tracer, enableSensitiveData = false) {
37
44
  super();
38
45
  this.tracer = tracer;
46
+ this.enableSensitiveData = enableSensitiveData;
47
+ }
48
+ /**
49
+ * Update whether sensitive message content is captured on spans. Used to
50
+ * reconcile an already-attached tracer with the latest instrumentation
51
+ * configuration (e.g. on re-instrumentation) so the flag never goes stale.
52
+ */
53
+ setEnableSensitiveData(enableSensitiveData) {
54
+ this.enableSensitiveData = enableSensitiveData;
39
55
  }
40
56
  name = "OpenTelemetryLangChainTracer";
41
57
  persistRun(_run) {
@@ -173,15 +189,23 @@ export class LangChainTracer extends BaseTracer {
173
189
  }
174
190
  Utils.setModelAttribute(run, span);
175
191
  Utils.setChoiceCountAttribute(run, span);
192
+ Utils.setRequestAttributes(run, span);
176
193
  Utils.setResponseIdAttribute(run, span);
194
+ Utils.setFinishReasonsAttribute(run, span);
177
195
  Utils.setProviderNameAttribute(run, span);
178
196
  Utils.setSessionIdAttribute(run, span);
179
197
  Utils.setTokenAttributes(run, span);
180
- // Content attributes — always recorded (aligned with Python/.NET SDKs)
181
- Utils.setToolAttributes(run, span);
182
- Utils.setInputMessagesAttribute(run, span);
183
- Utils.setOutputMessagesAttribute(run, span);
184
- Utils.setSystemInstructionsAttribute(run, span);
198
+ // Content attributes (messages, tool args/results, system instructions)
199
+ // are sensitive and only recorded when `enableSensitiveData` is set.
200
+ // Non-content tool attributes (name, type, call id) are always set by
201
+ // setToolAttributes.
202
+ const captureContent = this.enableSensitiveData;
203
+ Utils.setToolAttributes(run, span, captureContent);
204
+ if (captureContent) {
205
+ Utils.setInputMessagesAttribute(run, span);
206
+ Utils.setOutputMessagesAttribute(run, span);
207
+ Utils.setSystemInstructionsAttribute(run, span);
208
+ }
185
209
  }
186
210
  catch (error) {
187
211
  diag.error(`[LangChainTracer] Error setting span attributes for run ${run.name}: ${error instanceof Error ? error.message : String(error)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/tracer.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,kGAAkG;AAElG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAQ,QAAQ,EAAE,cAAc,EAAU,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAO,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAIpC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,mEAAmE;IAC3D,MAAM,CAAU,QAAQ,GAAG,MAAM,CAAC;IAClC,MAAM,CAAS;IACvB,6CAA6C;IACrC,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,2EAA2E;IACnE,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE9D,YAAY,MAAc;QACxB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,GAAG,8BAA8B,CAAC;IAE5B,UAAU,CAAC,IAAS;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,GAAQ;QACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,WAAW;YAAE,MAAM,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACO,YAAY,CAAC,GAAQ;QAC7B,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE9C,0EAA0E;QAC1E,IACE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC;YACtC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC9B,SAAS,KAAK,SAAS,EACvB,CAAC;YACD,IAAI,CAAC,KAAK,CACR,4CAA4C,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,aAAa,GAAG,CACtF,CAAC;YACF,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,yEAAyE;QACzE,wDAAwD;QACxD,mEAAmE;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,UAAU;YAC9B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC;YAC7C,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAErB,8CAA8C;QAC9C,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;QACxB,IAAI,IAAI,GAAa,QAAQ,CAAC,QAAQ,CAAC;QACvC,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,QAAQ,GAAG,GAAG,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;aAAM,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACxC,QAAQ,GAAG,GAAG,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;aAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAChC,QAAQ,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACpE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,+BAA+B,eAAe,CAAC,QAAQ,0BAA0B,CAAC,CAAC;YAC7F,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAChC,QAAQ,EACR;YACE,IAAI;YACJ,SAAS;YACT,UAAU,EAAE,EAAE,CAAC,yBAAyB,CAAC,EAAE,WAAW,EAAE;SACzD,EACD,aAAa,CACd,CAAC;QAEF,0EAA0E;QAC1E,sEAAsE;QACtE,yEAAyE;QACzE,uEAAuE;QACvE,0CAA0C;QAC1C,IAAI,CAAC;YACH,KAAK,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACjD,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpC,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CACR,iEAAiE,GAAG,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvI,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,SAAS,CAAC,GAAQ;QAChC,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC1C,mEAAmE;YACnE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9C,IACE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC;YACtC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC9B,SAAS,KAAK,SAAS,EACvB,CAAC;YACD,IAAI,CAAC,KAAK,CACR,4CAA4C,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,aAAa,GAAG,CACtF,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC;YACH,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAElC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzD,MAAM,SAAS,GACZ,GAAG,CAAC,KAA2B,EAAE,IAAI;oBACrC,GAAG,CAAC,KAA6C,EAAE,WAAW,EAAE,IAAI,CAAC;gBACxE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1D,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC;YAED,sFAAsF;YACtF,6DAA6D;YAC7D,wEAAwE;YACxE,oEAAoE;YACpE,kEAAkE;YAClE,KAAK,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACjD,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpC,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACjD,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YACD,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACnC,KAAK,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACzC,KAAK,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACxC,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1C,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEpC,uEAAuE;YACvE,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACnC,KAAK,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3C,KAAK,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5C,KAAK,CAAC,8BAA8B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CACR,2DAA2D,GAAG,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjI,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAAC,GAAQ;QACnC,IAAI,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC;QAE5B,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC;YAC7B,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,GAAQ;QAClC,IAAI,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC;QAC5B,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,cAAc,EAAE,CAAC;gBAClE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YACxB,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC"}
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/tracer.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare function isString(value: unknown): value is string;
4
4
  export declare function getOperationType(run: Run): string;
5
5
  export declare function setOperationTypeAttribute(operation: string, span: Span): void;
6
6
  export declare function setAgentAttributes(run: Run, span: Span): void;
7
- export declare function setToolAttributes(run: Run, span: Span): void;
7
+ export declare function setToolAttributes(run: Run, span: Span, captureContent?: boolean): void;
8
8
  export declare function setInputMessagesAttribute(run: Run, span: Span): void;
9
9
  export declare function setOutputMessagesAttribute(run: Run, span: Span): void;
10
10
  export declare function getRequestModel(run: Run): string | undefined;
@@ -13,8 +13,11 @@ export declare function getModel(run: Run): string | undefined;
13
13
  export declare function setModelAttribute(run: Run, span: Span): void;
14
14
  export declare function getChoiceCount(run: Run): number | undefined;
15
15
  export declare function setChoiceCountAttribute(run: Run, span: Span): void;
16
+ export declare function setRequestAttributes(run: Run, span: Span): void;
16
17
  export declare function getResponseId(run: Run): string | undefined;
17
18
  export declare function setResponseIdAttribute(run: Run, span: Span): void;
19
+ export declare function getFinishReasons(run: Run): string[] | undefined;
20
+ export declare function setFinishReasonsAttribute(run: Run, span: Span): void;
18
21
  export declare function setProviderNameAttribute(run: Run, span: Span): void;
19
22
  export declare function setSessionIdAttribute(run: Run, span: Span): void;
20
23
  export declare function setSystemInstructionsAttribute(run: Run, span: Span): Span | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAoC1C,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAWjD;AAGD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,QAEtE;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAOtD;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QA4CrD;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QA6B7D;AAmOD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QA0D9D;AAMD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAW5D;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAyB7D;AAKD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAErD;AAgCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAerD;AAOD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAW3D;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAK3D;AAcD,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CA4B1D;AAID,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAKjE;AAGD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAG5D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAahE;AAGD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,oBA+BlE;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAoCtD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/genai/instrumentations/langchain/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AA+C1C,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAWjD;AAGD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,QAEtE;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAOtD;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,UAAQ,QAmD7E;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QA6B7D;AAmOD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QA0D9D;AAMD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAW5D;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAuB7D;AAKD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAErD;AAgCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAerD;AAOD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAW3D;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAK3D;AAuED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CA+C/D;AAcD,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CA2B1D;AAID,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAKjE;AAKD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,SAAS,CAiD/D;AAmED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAKpE;AAGD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAG5D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAahE;AAGD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,oBA+BlE;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAoCtD"}
@@ -1,9 +1,9 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
  // Vendored from microsoft/Agent365-nodejs packages/agents-a365-observability-extensions-langchain
4
- import { ATTR_GEN_AI_AGENT_NAME, ATTR_GEN_AI_CONVERSATION_ID, ATTR_GEN_AI_INPUT_MESSAGES, ATTR_GEN_AI_OPERATION_NAME, ATTR_GEN_AI_OUTPUT_MESSAGES, ATTR_GEN_AI_PROVIDER_NAME, ATTR_GEN_AI_REQUEST_CHOICE_COUNT, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_RESPONSE_ID, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_SYSTEM_INSTRUCTIONS, ATTR_GEN_AI_TOOL_CALL_ARGUMENTS, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_CALL_RESULT, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_TOOL_TYPE, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, ATTR_MICROSOFT_SESSION_ID, GEN_AI_OPERATION_CHAT, GEN_AI_OPERATION_EXECUTE_TOOL, GEN_AI_OPERATION_INVOKE_AGENT, } from "../../index.js";
4
+ import { ATTR_GEN_AI_AGENT_NAME, ATTR_GEN_AI_CONVERSATION_ID, ATTR_GEN_AI_INPUT_MESSAGES, ATTR_GEN_AI_OPERATION_NAME, ATTR_GEN_AI_OUTPUT_TYPE, ATTR_GEN_AI_OUTPUT_MESSAGES, ATTR_GEN_AI_PROVIDER_NAME, ATTR_GEN_AI_REQUEST_CHOICE_COUNT, ATTR_GEN_AI_REQUEST_FREQUENCY_PENALTY, ATTR_GEN_AI_REQUEST_MAX_TOKENS, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_REQUEST_PRESENCE_PENALTY, ATTR_GEN_AI_REQUEST_SEED, ATTR_GEN_AI_REQUEST_STOP_SEQUENCES, ATTR_GEN_AI_REQUEST_STREAM, ATTR_GEN_AI_REQUEST_TEMPERATURE, ATTR_GEN_AI_REQUEST_TOP_K, ATTR_GEN_AI_REQUEST_TOP_P, ATTR_GEN_AI_RESPONSE_ID, ATTR_GEN_AI_RESPONSE_FINISH_REASONS, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_SYSTEM_INSTRUCTIONS, ATTR_GEN_AI_TOOL_CALL_ARGUMENTS, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_CALL_RESULT, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_TOOL_TYPE, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, ATTR_MICROSOFT_SESSION_ID, GEN_AI_OPERATION_CHAT, GEN_AI_OPERATION_EXECUTE_TOOL, GEN_AI_OPERATION_INVOKE_AGENT, } from "../../index.js";
5
5
  import { serializeMessages, safeSerializeToJson } from "../../../a365/message-utils.js";
6
- import { MessageRole } from "../../../a365/contracts.js";
6
+ import { MessageRole, FinishReason } from "../../../a365/contracts.js";
7
7
  // Type guards
8
8
  export function isString(value) {
9
9
  return typeof value === "string";
@@ -36,7 +36,7 @@ export function setAgentAttributes(run, span) {
36
36
  }
37
37
  }
38
38
  // Tool attributes
39
- export function setToolAttributes(run, span) {
39
+ export function setToolAttributes(run, span, captureContent = false) {
40
40
  if (run.run_type !== "tool") {
41
41
  return;
42
42
  }
@@ -46,18 +46,24 @@ export function setToolAttributes(run, span) {
46
46
  if (isString(run.name)) {
47
47
  span.setAttribute(ATTR_GEN_AI_TOOL_NAME, run.name);
48
48
  }
49
- if (run.inputs) {
50
- const argsValue = run.inputs?.input ?? run.inputs;
51
- span.setAttribute(ATTR_GEN_AI_TOOL_CALL_ARGUMENTS, safeSerializeToJson(typeof argsValue === "object" ? argsValue : String(argsValue), "arguments"));
52
- }
53
- // Tool result: v0 uses output.kwargs.content, v1 returns output as a plain string or has content directly
54
- const toolResult = run.outputs?.output?.kwargs?.content ??
55
- (isString(run.outputs?.output) ? run.outputs.output : null) ??
56
- run.outputs?.output?.content;
57
- if (toolResult != null) {
58
- span.setAttribute(ATTR_GEN_AI_TOOL_CALL_RESULT, safeSerializeToJson(typeof toolResult === "object"
59
- ? toolResult
60
- : String(toolResult), "result"));
49
+ // Tool arguments and result are sensitive message content — only recorded
50
+ // when content capture is enabled (`captureContent`, i.e. enableSensitiveData).
51
+ if (captureContent) {
52
+ if (run.inputs) {
53
+ const argsValue = run.inputs?.input ?? run.inputs;
54
+ span.setAttribute(ATTR_GEN_AI_TOOL_CALL_ARGUMENTS, safeSerializeToJson(typeof argsValue === "object"
55
+ ? argsValue
56
+ : String(argsValue), "arguments"));
57
+ }
58
+ // Tool result: v0 uses output.kwargs.content, v1 returns output as a plain string or has content directly
59
+ const toolResult = run.outputs?.output?.kwargs?.content ??
60
+ (isString(run.outputs?.output) ? run.outputs.output : null) ??
61
+ run.outputs?.output?.content;
62
+ if (toolResult != null) {
63
+ span.setAttribute(ATTR_GEN_AI_TOOL_CALL_RESULT, safeSerializeToJson(typeof toolResult === "object"
64
+ ? toolResult
65
+ : String(toolResult), "result"));
66
+ }
61
67
  }
62
68
  span.setAttribute(ATTR_GEN_AI_TOOL_TYPE, "extension");
63
69
  // Tool call ID: v0 uses output.tool_call_id, v1 may have it on inputs
@@ -474,6 +480,114 @@ export function setChoiceCountAttribute(run, span) {
474
480
  span.setAttribute(ATTR_GEN_AI_REQUEST_CHOICE_COUNT, n);
475
481
  }
476
482
  }
483
+ // LangChain exposes provider-specific invocation params as unknown values. Match the upstream
484
+ // OpenTelemetry GenAI instrumentations by accepting typed SDK values without coercing strings.
485
+ function firstDefined(params, keys) {
486
+ for (const key of keys) {
487
+ if (params[key] !== undefined && params[key] !== null) {
488
+ return params[key];
489
+ }
490
+ }
491
+ return undefined;
492
+ }
493
+ function integer(value) {
494
+ return typeof value === "number" && Number.isFinite(value) && Number.isInteger(value)
495
+ ? value
496
+ : undefined;
497
+ }
498
+ function stringArray(value) {
499
+ if (isString(value) && value.length > 0)
500
+ return [value];
501
+ if (!Array.isArray(value))
502
+ return undefined;
503
+ const strings = value.filter((item) => isString(item) && item.length > 0);
504
+ return strings.length === value.length && strings.length > 0 ? strings : undefined;
505
+ }
506
+ const OUTPUT_TYPES = ["text", "json", "image"];
507
+ const OUTPUT_TYPE_ALIASES = {
508
+ json_object: "json",
509
+ json_schema: "json",
510
+ b64_json: "image",
511
+ url: "image",
512
+ };
513
+ function normalizeOutputType(value) {
514
+ if (!isString(value))
515
+ return undefined;
516
+ const normalized = value.trim().toLowerCase();
517
+ return OUTPUT_TYPES.includes(normalized) ? normalized : OUTPUT_TYPE_ALIASES[normalized];
518
+ }
519
+ function isRecord(value) {
520
+ return typeof value === "object" && value !== null && !Array.isArray(value);
521
+ }
522
+ function getOutputType(params) {
523
+ const explicit = firstDefined(params, ["output_type", "outputType"]);
524
+ const explicitType = normalizeOutputType(explicit);
525
+ if (explicitType)
526
+ return explicitType;
527
+ const responseFormat = firstDefined(params, ["response_format", "responseFormat"]);
528
+ if (isRecord(responseFormat)) {
529
+ const formatType = normalizeOutputType(responseFormat.type);
530
+ if (formatType)
531
+ return formatType;
532
+ }
533
+ const responseFormatType = normalizeOutputType(responseFormat);
534
+ if (responseFormatType)
535
+ return responseFormatType;
536
+ const text = params.text;
537
+ if (isRecord(text)) {
538
+ const format = text.format;
539
+ if (isRecord(format)) {
540
+ return normalizeOutputType(format.type);
541
+ }
542
+ }
543
+ return undefined;
544
+ }
545
+ // Request attributes surfaced by LangChain under extra.invocation_params.
546
+ // Both OpenAI-style snake_case and LangChain/provider camelCase aliases are
547
+ // accepted because callback payloads vary by model integration and API path.
548
+ export function setRequestAttributes(run, span) {
549
+ const params = run.extra?.invocation_params;
550
+ if (!isRecord(params))
551
+ return;
552
+ const outputType = getOutputType(params);
553
+ if (outputType)
554
+ span.setAttribute(ATTR_GEN_AI_OUTPUT_TYPE, outputType);
555
+ const numberAttributes = [
556
+ [ATTR_GEN_AI_REQUEST_FREQUENCY_PENALTY, ["frequency_penalty", "frequencyPenalty"]],
557
+ [ATTR_GEN_AI_REQUEST_PRESENCE_PENALTY, ["presence_penalty", "presencePenalty"]],
558
+ [ATTR_GEN_AI_REQUEST_TEMPERATURE, ["temperature"]],
559
+ [ATTR_GEN_AI_REQUEST_TOP_P, ["top_p", "topP"]],
560
+ ];
561
+ for (const [attribute, keys] of numberAttributes) {
562
+ const value = firstDefined(params, keys);
563
+ if (typeof value === "number" && Number.isFinite(value)) {
564
+ span.setAttribute(attribute, value);
565
+ }
566
+ }
567
+ const maxTokens = integer(firstDefined(params, [
568
+ "max_tokens",
569
+ "maxTokens",
570
+ "max_completion_tokens",
571
+ "maxCompletionTokens",
572
+ "max_output_tokens",
573
+ "maxOutputTokens",
574
+ ]));
575
+ if (maxTokens !== undefined) {
576
+ span.setAttribute(ATTR_GEN_AI_REQUEST_MAX_TOKENS, maxTokens);
577
+ }
578
+ const seed = integer(firstDefined(params, ["seed"]));
579
+ if (seed !== undefined)
580
+ span.setAttribute(ATTR_GEN_AI_REQUEST_SEED, seed);
581
+ const topK = integer(firstDefined(params, ["top_k", "topK"]));
582
+ if (topK !== undefined)
583
+ span.setAttribute(ATTR_GEN_AI_REQUEST_TOP_K, topK);
584
+ const stopSequences = stringArray(firstDefined(params, ["stop", "stop_sequences", "stopSequences"]));
585
+ if (stopSequences)
586
+ span.setAttribute(ATTR_GEN_AI_REQUEST_STOP_SEQUENCES, stopSequences);
587
+ const stream = firstDefined(params, ["stream", "streaming"]);
588
+ if (typeof stream === "boolean")
589
+ span.setAttribute(ATTR_GEN_AI_REQUEST_STREAM, stream);
590
+ }
477
591
  // Response identifier - Helper to extract the unique response id returned by
478
592
  // the underlying provider (e.g. OpenAI chat completion id). LangChain.js
479
593
  // typically surfaces this as the AIMessage id (top-level for v1, nested
@@ -522,6 +636,122 @@ export function setResponseIdAttribute(run, span) {
522
636
  span.setAttribute(ATTR_GEN_AI_RESPONSE_ID, responseId);
523
637
  }
524
638
  }
639
+ // Finish reasons - one per generation, parallel to n. Chat Completions:
640
+ // generationInfo/response_metadata.finish_reason. Responses API: derived from
641
+ // status/incomplete_details (no finish_reason field).
642
+ export function getFinishReasons(run) {
643
+ const generations = run.outputs?.generations;
644
+ if (!Array.isArray(generations)) {
645
+ return undefined;
646
+ }
647
+ const reasons = [];
648
+ for (const choice of generations) {
649
+ if (!Array.isArray(choice))
650
+ continue;
651
+ for (const item of choice) {
652
+ if (!item || typeof item !== "object")
653
+ continue;
654
+ const message = item?.message;
655
+ const messageKwargs = message?.kwargs;
656
+ const responseMetadata = message?.response_metadata ??
657
+ messageKwargs?.response_metadata;
658
+ const generationInfo = item?.generationInfo;
659
+ // Native Chat Completions finish_reason (preferred). Pick the first
660
+ // non-blank string candidate; a blank/non-string value in an earlier
661
+ // source must not mask a valid later one (so `??` is not sufficient).
662
+ let reason;
663
+ for (const candidate of [
664
+ generationInfo?.finish_reason,
665
+ responseMetadata?.finish_reason,
666
+ message?.finish_reason,
667
+ messageKwargs?.finish_reason,
668
+ ]) {
669
+ if (isString(candidate) && candidate.trim().length > 0) {
670
+ reason = normalizeFinishReason(candidate);
671
+ break;
672
+ }
673
+ }
674
+ // Responses API derivation (no native finish_reason field).
675
+ if (!reason && message) {
676
+ reason = deriveResponsesFinishReason(message, responseMetadata);
677
+ }
678
+ // `gen_ai.response.finish_reasons` is positional and must correspond 1:1
679
+ // with the received generations. OTel string arrays cannot hold gaps, so
680
+ // if any generation lacks a valid reason, omit the attribute entirely
681
+ // rather than emit a compacted/misaligned array.
682
+ if (!reason)
683
+ return undefined;
684
+ reasons.push(reason);
685
+ }
686
+ }
687
+ return reasons.length > 0 ? reasons : undefined;
688
+ }
689
+ // Map a provider-reported finish_reason string to the repo's GenAI
690
+ // `FinishReason` contract value. OpenAI Chat Completions reports the plural
691
+ // `finish_reason: "tool_calls"` (and the legacy `"function_call"`), but the
692
+ // shared contract value is `"tool_call"` (see `FinishReason`, matched by the
693
+ // Python distro's `messages.py`). Unrecognized values are passed through
694
+ // trimmed so legitimate reasons are not dropped.
695
+ const FINISH_REASON_ALIASES = {
696
+ stop: FinishReason.STOP,
697
+ length: FinishReason.LENGTH,
698
+ content_filter: FinishReason.CONTENT_FILTER,
699
+ tool_call: FinishReason.TOOL_CALL,
700
+ tool_calls: FinishReason.TOOL_CALL,
701
+ function_call: FinishReason.TOOL_CALL,
702
+ error: FinishReason.ERROR,
703
+ };
704
+ function normalizeFinishReason(value) {
705
+ const trimmed = value.trim();
706
+ return FINISH_REASON_ALIASES[trimmed.toLowerCase()] ?? trimmed;
707
+ }
708
+ // Map a Responses status/incomplete_details to a Chat-Completions-style reason.
709
+ function deriveResponsesFinishReason(message, responseMetadata) {
710
+ const status = responseMetadata?.status;
711
+ if (!isString(status))
712
+ return undefined;
713
+ switch (status) {
714
+ case "completed":
715
+ return messageHasToolCalls(message) ? FinishReason.TOOL_CALL : FinishReason.STOP;
716
+ case "incomplete": {
717
+ const incompleteDetails = responseMetadata?.incomplete_details;
718
+ const detailReason = incompleteDetails?.reason;
719
+ if (detailReason === "max_output_tokens")
720
+ return FinishReason.LENGTH;
721
+ if (detailReason === "content_filter")
722
+ return FinishReason.CONTENT_FILTER;
723
+ // No conformant mapping for this status; omit rather than emit a
724
+ // non-standard finish-reason value.
725
+ return undefined;
726
+ }
727
+ case "failed":
728
+ case "cancelled":
729
+ return FinishReason.ERROR;
730
+ default:
731
+ return undefined;
732
+ }
733
+ }
734
+ // Any tool calls present, including malformed ones (invalid_tool_calls still
735
+ // count as a tool call, mapped to the "tool_call" contract value).
736
+ function messageHasToolCalls(message) {
737
+ for (const key of ["tool_calls", "invalid_tool_calls"]) {
738
+ const candidates = [
739
+ getNestedValue(message, key),
740
+ getNestedValue(message, "lc_kwargs", key),
741
+ getNestedValue(message, "kwargs", key),
742
+ ];
743
+ if (candidates.some((calls) => Array.isArray(calls) && calls.length > 0))
744
+ return true;
745
+ }
746
+ return false;
747
+ }
748
+ // Set gen_ai.response.finish_reasons when any reason is available.
749
+ export function setFinishReasonsAttribute(run, span) {
750
+ const finishReasons = getFinishReasons(run);
751
+ if (finishReasons) {
752
+ span.setAttribute(ATTR_GEN_AI_RESPONSE_FINISH_REASONS, finishReasons);
753
+ }
754
+ }
525
755
  // Provider
526
756
  export function setProviderNameAttribute(run, span) {
527
757
  const provider = run.extra?.metadata?.ls_provider;