langsmith 0.3.35-rc.6 → 0.3.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.cjs CHANGED
@@ -3499,7 +3499,9 @@ class Client {
3499
3499
  ...this.autoBatchQueue.items.map(({ itemPromise }) => itemPromise),
3500
3500
  this.batchIngestCaller.queue.onIdle(),
3501
3501
  ]);
3502
- await (0, otel_js_1.getDefaultOTLPTracerComponents)()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush();
3502
+ if (this.langSmithToOTELTranslator !== undefined) {
3503
+ await (0, otel_js_1.getDefaultOTLPTracerComponents)()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush();
3504
+ }
3503
3505
  }
3504
3506
  }
3505
3507
  exports.Client = Client;
package/dist/client.js CHANGED
@@ -3461,7 +3461,9 @@ export class Client {
3461
3461
  ...this.autoBatchQueue.items.map(({ itemPromise }) => itemPromise),
3462
3462
  this.batchIngestCaller.queue.onIdle(),
3463
3463
  ]);
3464
- await getDefaultOTLPTracerComponents()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush();
3464
+ if (this.langSmithToOTELTranslator !== undefined) {
3465
+ await getDefaultOTLPTracerComponents()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush();
3466
+ }
3465
3467
  }
3466
3468
  }
3467
3469
  function isExampleCreate(input) {
@@ -40,15 +40,17 @@ const otel_js_1 = require("../../singletons/otel.cjs");
40
40
  * initializeOTEL({ globalTracerProvider: customProvider });
41
41
  * ```
42
42
  */
43
- const initializeOTEL = ({ globalTracerProvider, } = {}) => {
43
+ const initializeOTEL = ({ globalTracerProvider, globalContextManager, } = {}) => {
44
44
  const otel = {
45
45
  trace: api_1.trace,
46
46
  context: api_1.context,
47
47
  };
48
48
  (0, otel_js_1.setOTELInstances)(otel);
49
- const contextManager = new context_async_hooks_1.AsyncHooksContextManager();
50
- contextManager.enable();
51
- api_1.context.setGlobalContextManager(contextManager);
49
+ if (!globalContextManager) {
50
+ const contextManager = new context_async_hooks_1.AsyncHooksContextManager();
51
+ contextManager.enable();
52
+ api_1.context.setGlobalContextManager(contextManager);
53
+ }
52
54
  const DEFAULT_LANGSMITH_SPAN_EXPORTER = new exporter_js_1.LangSmithOTLPTraceExporter({});
53
55
  const DEFAULT_LANGSMITH_SPAN_PROCESSOR = new sdk_trace_base_1.BatchSpanProcessor(DEFAULT_LANGSMITH_SPAN_EXPORTER);
54
56
  if (!globalTracerProvider) {
@@ -1,4 +1,4 @@
1
- import { TracerProvider } from "@opentelemetry/api";
1
+ import { type TracerProvider, type ContextManager } from "@opentelemetry/api";
2
2
  import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
3
3
  import { LangSmithOTLPTraceExporter } from "./exporter.js";
4
4
  /**
@@ -32,8 +32,9 @@ import { LangSmithOTLPTraceExporter } from "./exporter.js";
32
32
  * initializeOTEL({ globalTracerProvider: customProvider });
33
33
  * ```
34
34
  */
35
- export declare const initializeOTEL: ({ globalTracerProvider, }?: {
35
+ export declare const initializeOTEL: ({ globalTracerProvider, globalContextManager, }?: {
36
36
  globalTracerProvider?: TracerProvider;
37
+ globalContextManager?: ContextManager;
37
38
  }) => {
38
39
  DEFAULT_LANGSMITH_TRACER_PROVIDER: TracerProvider;
39
40
  DEFAULT_LANGSMITH_SPAN_PROCESSOR: BatchSpanProcessor;
@@ -37,15 +37,17 @@ import { setDefaultOTLPTracerComponents, setOTELInstances, } from "../../singlet
37
37
  * initializeOTEL({ globalTracerProvider: customProvider });
38
38
  * ```
39
39
  */
40
- export const initializeOTEL = ({ globalTracerProvider, } = {}) => {
40
+ export const initializeOTEL = ({ globalTracerProvider, globalContextManager, } = {}) => {
41
41
  const otel = {
42
42
  trace: otel_trace,
43
43
  context: otel_context,
44
44
  };
45
45
  setOTELInstances(otel);
46
- const contextManager = new AsyncHooksContextManager();
47
- contextManager.enable();
48
- otel_context.setGlobalContextManager(contextManager);
46
+ if (!globalContextManager) {
47
+ const contextManager = new AsyncHooksContextManager();
48
+ contextManager.enable();
49
+ otel_context.setGlobalContextManager(contextManager);
50
+ }
49
51
  const DEFAULT_LANGSMITH_SPAN_EXPORTER = new LangSmithOTLPTraceExporter({});
50
52
  const DEFAULT_LANGSMITH_SPAN_PROCESSOR = new BatchSpanProcessor(DEFAULT_LANGSMITH_SPAN_EXPORTER);
51
53
  if (!globalTracerProvider) {
@@ -347,7 +347,9 @@ class LangSmithToOTELTranslator {
347
347
  }
348
348
  if (outputs.choices && Array.isArray(outputs.choices)) {
349
349
  const finishReasons = outputs.choices
350
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
350
351
  .map((choice) => choice.finish_reason)
352
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
351
353
  .filter((reason) => reason)
352
354
  .map(String);
353
355
  if (finishReasons.length > 0) {
@@ -378,6 +380,7 @@ class LangSmithToOTELTranslator {
378
380
  }
379
381
  }
380
382
  }
383
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
381
384
  getUnifiedRunTokens(outputs) {
382
385
  if (!outputs) {
383
386
  return null;
@@ -429,6 +432,7 @@ class LangSmithToOTELTranslator {
429
432
  }
430
433
  return null;
431
434
  }
435
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
432
436
  extractUnifiedRunTokens(outputs) {
433
437
  if (!outputs || typeof outputs !== "object") {
434
438
  return null;
@@ -311,7 +311,9 @@ export class LangSmithToOTELTranslator {
311
311
  }
312
312
  if (outputs.choices && Array.isArray(outputs.choices)) {
313
313
  const finishReasons = outputs.choices
314
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
314
315
  .map((choice) => choice.finish_reason)
316
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
315
317
  .filter((reason) => reason)
316
318
  .map(String);
317
319
  if (finishReasons.length > 0) {
@@ -342,6 +344,7 @@ export class LangSmithToOTELTranslator {
342
344
  }
343
345
  }
344
346
  }
347
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
345
348
  getUnifiedRunTokens(outputs) {
346
349
  if (!outputs) {
347
350
  return null;
@@ -393,6 +396,7 @@ export class LangSmithToOTELTranslator {
393
396
  }
394
397
  return null;
395
398
  }
399
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
396
400
  extractUnifiedRunTokens(outputs) {
397
401
  if (!outputs || typeof outputs !== "object") {
398
402
  return null;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  // Local type definitions to avoid importing @opentelemetry/api
3
4
  // These match the OpenTelemetry API interfaces but don't require the package to be installed
4
5
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
2
  // Local type definitions to avoid importing @opentelemetry/api
2
3
  // These match the OpenTelemetry API interfaces but don't require the package to be installed
3
4
  export {};
@@ -1,43 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.getOtelTraceIdFromUuid = getOtelTraceIdFromUuid;
37
4
  exports.getOtelSpanIdFromUuid = getOtelSpanIdFromUuid;
38
- exports.validateAndNormalizeUuid = validateAndNormalizeUuid;
39
5
  exports.createOtelSpanContextFromRun = createOtelSpanContextFromRun;
40
- const uuid = __importStar(require("uuid"));
41
6
  /**
42
7
  * Get OpenTelemetry trace ID as hex string from UUID.
43
8
  * @param uuidStr - The UUID string to convert
@@ -58,18 +23,6 @@ function getOtelSpanIdFromUuid(uuidStr) {
58
23
  const cleanUuid = uuidStr.replace(/-/g, "");
59
24
  return cleanUuid.substring(0, 16); // First 8 bytes (16 hex chars)
60
25
  }
61
- /**
62
- * Validate and normalize a UUID string.
63
- * @param uuidStr - The UUID string to validate
64
- * @returns The normalized UUID string
65
- * @throws Error if the UUID is invalid
66
- */
67
- function validateAndNormalizeUuid(uuidStr) {
68
- if (!uuid.validate(uuidStr)) {
69
- throw new Error(`Invalid UUID: ${uuidStr}`);
70
- }
71
- return uuidStr;
72
- }
73
26
  function createOtelSpanContextFromRun(run) {
74
27
  const traceId = getOtelTraceIdFromUuid(run.trace_id ?? run.id);
75
28
  const spanId = getOtelSpanIdFromUuid(run.id);
@@ -11,13 +11,6 @@ export declare function getOtelTraceIdFromUuid(uuidStr: string): string;
11
11
  * @returns Hex string representation of the span ID
12
12
  */
13
13
  export declare function getOtelSpanIdFromUuid(uuidStr: string): string;
14
- /**
15
- * Validate and normalize a UUID string.
16
- * @param uuidStr - The UUID string to validate
17
- * @returns The normalized UUID string
18
- * @throws Error if the UUID is invalid
19
- */
20
- export declare function validateAndNormalizeUuid(uuidStr: string): string;
21
14
  export declare function createOtelSpanContextFromRun(run: {
22
15
  trace_id?: string;
23
16
  id: string;
@@ -1,4 +1,3 @@
1
- import * as uuid from "uuid";
2
1
  /**
3
2
  * Get OpenTelemetry trace ID as hex string from UUID.
4
3
  * @param uuidStr - The UUID string to convert
@@ -19,18 +18,6 @@ export function getOtelSpanIdFromUuid(uuidStr) {
19
18
  const cleanUuid = uuidStr.replace(/-/g, "");
20
19
  return cleanUuid.substring(0, 16); // First 8 bytes (16 hex chars)
21
20
  }
22
- /**
23
- * Validate and normalize a UUID string.
24
- * @param uuidStr - The UUID string to validate
25
- * @returns The normalized UUID string
26
- * @throws Error if the UUID is invalid
27
- */
28
- export function validateAndNormalizeUuid(uuidStr) {
29
- if (!uuid.validate(uuidStr)) {
30
- throw new Error(`Invalid UUID: ${uuidStr}`);
31
- }
32
- return uuidStr;
33
- }
34
21
  export function createOtelSpanContextFromRun(run) {
35
22
  const traceId = getOtelTraceIdFromUuid(run.trace_id ?? run.id);
36
23
  const spanId = getOtelSpanIdFromUuid(run.id);
package/dist/index.cjs CHANGED
@@ -10,4 +10,4 @@ Object.defineProperty(exports, "overrideFetchImplementation", { enumerable: true
10
10
  var project_js_1 = require("./utils/project.cjs");
11
11
  Object.defineProperty(exports, "getDefaultProjectName", { enumerable: true, get: function () { return project_js_1.getDefaultProjectName; } });
12
12
  // Update using yarn bump-version
13
- exports.__version__ = "0.3.35-rc.6";
13
+ exports.__version__ = "0.3.35";
package/dist/index.d.ts CHANGED
@@ -3,4 +3,4 @@ export type { Dataset, Example, TracerSession, Run, Feedback, RetrieverOutput, }
3
3
  export { RunTree, type RunTreeConfig } from "./run_trees.js";
4
4
  export { overrideFetchImplementation } from "./singletons/fetch.js";
5
5
  export { getDefaultProjectName } from "./utils/project.js";
6
- export declare const __version__ = "0.3.35-rc.6";
6
+ export declare const __version__ = "0.3.35";
package/dist/index.js CHANGED
@@ -3,4 +3,4 @@ export { RunTree } from "./run_trees.js";
3
3
  export { overrideFetchImplementation } from "./singletons/fetch.js";
4
4
  export { getDefaultProjectName } from "./utils/project.js";
5
5
  // Update using yarn bump-version
6
- export const __version__ = "0.3.35-rc.6";
6
+ export const __version__ = "0.3.35";
@@ -16,7 +16,9 @@ traceable_js_1.AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new n
16
16
  /**
17
17
  * Create OpenTelemetry context manager from RunTree if OTEL is enabled.
18
18
  */
19
- function maybeCreateOtelContext(runTree, tracer) {
19
+ function maybeCreateOtelContext(runTree, tracer
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
+ ) {
20
22
  if (!runTree || (0, env_js_2.getEnvironmentVariable)("OTEL_ENABLED") !== "true") {
21
23
  return;
22
24
  }
@@ -24,6 +26,7 @@ function maybeCreateOtelContext(runTree, tracer) {
24
26
  const otel_context = (0, otel_js_1.getOTELContext)();
25
27
  try {
26
28
  const spanContext = (0, utils_js_1.createOtelSpanContextFromRun)(runTree);
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
30
  return (fn) => {
28
31
  const resolvedTracer = tracer ?? otel_trace.getTracer("langsmith", index_js_1.__version__);
29
32
  return resolvedTracer.startActiveSpan(runTree.name, {
@@ -36,7 +39,7 @@ function maybeCreateOtelContext(runTree, tracer) {
36
39
  });
37
40
  };
38
41
  }
39
- catch (error) {
42
+ catch {
40
43
  // Silent failure if OTEL setup is incomplete
41
44
  return;
42
45
  }
package/dist/traceable.js CHANGED
@@ -12,7 +12,9 @@ AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new AsyncLocalStorag
12
12
  /**
13
13
  * Create OpenTelemetry context manager from RunTree if OTEL is enabled.
14
14
  */
15
- function maybeCreateOtelContext(runTree, tracer) {
15
+ function maybeCreateOtelContext(runTree, tracer
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ ) {
16
18
  if (!runTree || getEnvironmentVariable("OTEL_ENABLED") !== "true") {
17
19
  return;
18
20
  }
@@ -20,6 +22,7 @@ function maybeCreateOtelContext(runTree, tracer) {
20
22
  const otel_context = getOTELContext();
21
23
  try {
22
24
  const spanContext = createOtelSpanContextFromRun(runTree);
25
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
26
  return (fn) => {
24
27
  const resolvedTracer = tracer ?? otel_trace.getTracer("langsmith", __version__);
25
28
  return resolvedTracer.startActiveSpan(runTree.name, {
@@ -32,7 +35,7 @@ function maybeCreateOtelContext(runTree, tracer) {
32
35
  });
33
36
  };
34
37
  }
35
- catch (error) {
38
+ catch {
36
39
  // Silent failure if OTEL setup is incomplete
37
40
  return;
38
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "langsmith",
3
- "version": "0.3.35-rc.6",
3
+ "version": "0.3.35",
4
4
  "description": "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform.",
5
5
  "packageManager": "yarn@1.22.19",
6
6
  "files": [