langsmith 0.3.54 → 0.3.55

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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AI_SDK_TOOL_OPERATIONS = exports.AI_SDK_LLM_OPERATIONS = exports.GEN_AI_CHOICE = exports.GEN_AI_ASSISTANT_MESSAGE = exports.GEN_AI_USER_MESSAGE = exports.GEN_AI_SYSTEM_MESSAGE = exports.LANGSMITH_IS_ROOT = exports.LANGSMITH_TRACEABLE = exports.LANGSMITH_REFERENCE_EXAMPLE_ID = exports.LANGSMITH_USAGE_METADATA = exports.LANGSMITH_PARENT_RUN_ID = exports.LANGSMITH_DOTTED_ORDER = exports.LANGSMITH_TRACE_ID = exports.LANGSMITH_RUN_ID = exports.LANGSMITH_REQUEST_HEADERS = exports.LANGSMITH_REQUEST_STREAMING = exports.LANGSMITH_RUNTIME = exports.LANGSMITH_TAGS = exports.LANGSMITH_METADATA = exports.LANGSMITH_NAME = exports.LANGSMITH_RUN_TYPE = exports.LANGSMITH_SESSION_NAME = exports.LANGSMITH_SESSION_ID = exports.GEN_AI_USAGE_OUTPUT_TOKEN_DETAILS = exports.GEN_AI_USAGE_INPUT_TOKEN_DETAILS = exports.GEN_AI_RESPONSE_SYSTEM_FINGERPRINT = exports.GEN_AI_RESPONSE_SERVICE_TIER = exports.GEN_AI_RESPONSE_ID = exports.GEN_AI_SERIALIZED_DOC = exports.GEN_AI_SERIALIZED_SIGNATURE = exports.GEN_AI_SERIALIZED_NAME = exports.GEN_AI_REQUEST_EXTRA_BODY = exports.GEN_AI_REQUEST_EXTRA_QUERY = exports.GENAI_COMPLETION = exports.GENAI_PROMPT = exports.GEN_AI_RESPONSE_FINISH_REASONS = exports.GEN_AI_REQUEST_PRESENCE_PENALTY = exports.GEN_AI_REQUEST_FREQUENCY_PENALTY = exports.GEN_AI_REQUEST_TOP_P = exports.GEN_AI_REQUEST_TEMPERATURE = exports.GEN_AI_REQUEST_MAX_TOKENS = exports.GEN_AI_USAGE_TOTAL_TOKENS = exports.GEN_AI_USAGE_OUTPUT_TOKENS = exports.GEN_AI_USAGE_INPUT_TOKENS = exports.GEN_AI_RESPONSE_MODEL = exports.GEN_AI_REQUEST_MODEL = exports.GEN_AI_SYSTEM = exports.GEN_AI_OPERATION_NAME = void 0;
3
+ exports.AI_SDK_TOOL_OPERATIONS = exports.AI_SDK_LLM_OPERATIONS = exports.GEN_AI_CHOICE = exports.GEN_AI_ASSISTANT_MESSAGE = exports.GEN_AI_USER_MESSAGE = exports.GEN_AI_SYSTEM_MESSAGE = exports.LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID = exports.LANGSMITH_IS_ROOT = exports.LANGSMITH_TRACEABLE = exports.LANGSMITH_REFERENCE_EXAMPLE_ID = exports.LANGSMITH_USAGE_METADATA = exports.LANGSMITH_PARENT_RUN_ID = exports.LANGSMITH_DOTTED_ORDER = exports.LANGSMITH_TRACE_ID = exports.LANGSMITH_RUN_ID = exports.LANGSMITH_REQUEST_HEADERS = exports.LANGSMITH_REQUEST_STREAMING = exports.LANGSMITH_RUNTIME = exports.LANGSMITH_TAGS = exports.LANGSMITH_METADATA = exports.LANGSMITH_NAME = exports.LANGSMITH_RUN_TYPE = exports.LANGSMITH_SESSION_NAME = exports.LANGSMITH_SESSION_ID = exports.GEN_AI_USAGE_OUTPUT_TOKEN_DETAILS = exports.GEN_AI_USAGE_INPUT_TOKEN_DETAILS = exports.GEN_AI_RESPONSE_SYSTEM_FINGERPRINT = exports.GEN_AI_RESPONSE_SERVICE_TIER = exports.GEN_AI_RESPONSE_ID = exports.GEN_AI_SERIALIZED_DOC = exports.GEN_AI_SERIALIZED_SIGNATURE = exports.GEN_AI_SERIALIZED_NAME = exports.GEN_AI_REQUEST_EXTRA_BODY = exports.GEN_AI_REQUEST_EXTRA_QUERY = exports.GENAI_COMPLETION = exports.GENAI_PROMPT = exports.GEN_AI_RESPONSE_FINISH_REASONS = exports.GEN_AI_REQUEST_PRESENCE_PENALTY = exports.GEN_AI_REQUEST_FREQUENCY_PENALTY = exports.GEN_AI_REQUEST_TOP_P = exports.GEN_AI_REQUEST_TEMPERATURE = exports.GEN_AI_REQUEST_MAX_TOKENS = exports.GEN_AI_USAGE_TOTAL_TOKENS = exports.GEN_AI_USAGE_OUTPUT_TOKENS = exports.GEN_AI_USAGE_INPUT_TOKENS = exports.GEN_AI_RESPONSE_MODEL = exports.GEN_AI_REQUEST_MODEL = exports.GEN_AI_SYSTEM = exports.GEN_AI_OPERATION_NAME = void 0;
4
4
  // OpenTelemetry GenAI semantic convention attribute names
5
5
  exports.GEN_AI_OPERATION_NAME = "gen_ai.operation.name";
6
6
  exports.GEN_AI_SYSTEM = "gen_ai.system";
@@ -45,6 +45,7 @@ exports.LANGSMITH_USAGE_METADATA = "langsmith.usage_metadata";
45
45
  exports.LANGSMITH_REFERENCE_EXAMPLE_ID = "langsmith.reference_example_id";
46
46
  exports.LANGSMITH_TRACEABLE = "langsmith.traceable";
47
47
  exports.LANGSMITH_IS_ROOT = "langsmith.is_root";
48
+ exports.LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID = "langsmith.traceable_parent_otel_span_id";
48
49
  // GenAI event names
49
50
  exports.GEN_AI_SYSTEM_MESSAGE = "gen_ai.system.message";
50
51
  exports.GEN_AI_USER_MESSAGE = "gen_ai.user.message";
@@ -40,6 +40,7 @@ export declare const LANGSMITH_USAGE_METADATA = "langsmith.usage_metadata";
40
40
  export declare const LANGSMITH_REFERENCE_EXAMPLE_ID = "langsmith.reference_example_id";
41
41
  export declare const LANGSMITH_TRACEABLE = "langsmith.traceable";
42
42
  export declare const LANGSMITH_IS_ROOT = "langsmith.is_root";
43
+ export declare const LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID = "langsmith.traceable_parent_otel_span_id";
43
44
  export declare const GEN_AI_SYSTEM_MESSAGE = "gen_ai.system.message";
44
45
  export declare const GEN_AI_USER_MESSAGE = "gen_ai.user.message";
45
46
  export declare const GEN_AI_ASSISTANT_MESSAGE = "gen_ai.assistant.message";
@@ -42,6 +42,7 @@ export const LANGSMITH_USAGE_METADATA = "langsmith.usage_metadata";
42
42
  export const LANGSMITH_REFERENCE_EXAMPLE_ID = "langsmith.reference_example_id";
43
43
  export const LANGSMITH_TRACEABLE = "langsmith.traceable";
44
44
  export const LANGSMITH_IS_ROOT = "langsmith.is_root";
45
+ export const LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID = "langsmith.traceable_parent_otel_span_id";
45
46
  // GenAI event names
46
47
  export const GEN_AI_SYSTEM_MESSAGE = "gen_ai.system.message";
47
48
  export const GEN_AI_USER_MESSAGE = "gen_ai.user.message";
@@ -59,6 +59,8 @@ class LangSmithOTLPSpanProcessor extends sdk_trace_base_1.BatchSpanProcessor {
59
59
  else {
60
60
  span.attributes[constants_js_1.LANGSMITH_PARENT_RUN_ID] =
61
61
  (0, utils_js_1.getUuidFromOtelSpanId)(traceableParentId);
62
+ span.attributes[constants_js_1.LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID] =
63
+ traceableParentId;
62
64
  }
63
65
  if (isTraceable) {
64
66
  super.onStart(span, parentContext);
@@ -1,5 +1,5 @@
1
1
  import { BatchSpanProcessor, } from "@opentelemetry/sdk-trace-base";
2
- import { LANGSMITH_IS_ROOT, LANGSMITH_PARENT_RUN_ID, LANGSMITH_TRACEABLE, } from "./constants.js";
2
+ import { LANGSMITH_IS_ROOT, LANGSMITH_PARENT_RUN_ID, LANGSMITH_TRACEABLE, LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID, } from "./constants.js";
3
3
  import { getUuidFromOtelSpanId } from "./utils.js";
4
4
  import { RunTree } from "../../run_trees.js";
5
5
  export function isTraceableSpan(span) {
@@ -55,6 +55,8 @@ export class LangSmithOTLPSpanProcessor extends BatchSpanProcessor {
55
55
  else {
56
56
  span.attributes[LANGSMITH_PARENT_RUN_ID] =
57
57
  getUuidFromOtelSpanId(traceableParentId);
58
+ span.attributes[LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID] =
59
+ traceableParentId;
58
60
  }
59
61
  if (isTraceable) {
60
62
  super.onStart(span, parentContext);
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.54";
13
+ exports.__version__ = "0.3.55";
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.54";
6
+ export declare const __version__ = "0.3.55";
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.54";
6
+ export const __version__ = "0.3.55";
package/dist/vercel.cjs CHANGED
@@ -7,6 +7,7 @@ const uuid_1 = require("uuid");
7
7
  const traceable_js_1 = require("./singletons/traceable.cjs");
8
8
  const env_js_1 = require("./utils/env.cjs");
9
9
  const env_js_2 = require("./env.cjs");
10
+ const constants_js_1 = require("./experimental/otel/constants.cjs");
10
11
  // Attempt to convert CoreMessage to a LangChain-compatible format
11
12
  // which allows us to render messages more nicely in LangSmith
12
13
  function convertCoreToSmith(message) {
@@ -692,6 +693,14 @@ class AISDKExporter {
692
693
  const { traceId, spanId } = span.spanContext();
693
694
  const runId = (0, uuid_1.v5)(spanId, RUN_ID_NAMESPACE);
694
695
  let parentId = getParentSpanId(span);
696
+ if (constants_js_1.LANGSMITH_IS_ROOT in span.attributes) {
697
+ parentId = undefined;
698
+ }
699
+ else if (constants_js_1.LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID in span.attributes &&
700
+ typeof span.attributes[constants_js_1.LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID] ===
701
+ "string") {
702
+ parentId = span.attributes[constants_js_1.LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID];
703
+ }
695
704
  let parentRunId = parentId
696
705
  ? (0, uuid_1.v5)(parentId, RUN_ID_NAMESPACE)
697
706
  : undefined;
package/dist/vercel.js CHANGED
@@ -4,6 +4,7 @@ import { v5 as uuid5 } from "uuid";
4
4
  import { getCurrentRunTree } from "./singletons/traceable.js";
5
5
  import { getLangSmithEnvironmentVariable, getEnvironmentVariable, } from "./utils/env.js";
6
6
  import { isTracingEnabled } from "./env.js";
7
+ import { LANGSMITH_IS_ROOT, LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID, } from "./experimental/otel/constants.js";
7
8
  // Attempt to convert CoreMessage to a LangChain-compatible format
8
9
  // which allows us to render messages more nicely in LangSmith
9
10
  function convertCoreToSmith(message) {
@@ -688,6 +689,14 @@ export class AISDKExporter {
688
689
  const { traceId, spanId } = span.spanContext();
689
690
  const runId = uuid5(spanId, RUN_ID_NAMESPACE);
690
691
  let parentId = getParentSpanId(span);
692
+ if (LANGSMITH_IS_ROOT in span.attributes) {
693
+ parentId = undefined;
694
+ }
695
+ else if (LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID in span.attributes &&
696
+ typeof span.attributes[LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID] ===
697
+ "string") {
698
+ parentId = span.attributes[LANGSMITH_TRACEABLE_PARENT_OTEL_SPAN_ID];
699
+ }
691
700
  let parentRunId = parentId
692
701
  ? uuid5(parentId, RUN_ID_NAMESPACE)
693
702
  : undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "langsmith",
3
- "version": "0.3.54",
3
+ "version": "0.3.55",
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": [