bitfab 0.27.1 → 0.27.2

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/index.d.cts CHANGED
@@ -411,18 +411,19 @@ declare class BitfabLangGraphCallbackHandler {
411
411
  private completeSpan;
412
412
  private sendSpan;
413
413
  private sendTraceCompletion;
414
- handleChainStart(chain: Record<string, unknown>, inputs: Record<string, unknown>, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
414
+ private sendTraceStart;
415
+ handleChainStart(chain: Record<string, unknown> | null | undefined, inputs: Record<string, unknown>, runId: string, parentRunIdOrRunType?: string, tags?: string[], metadata?: Record<string, unknown>, runTypeOrRunName?: string, runNameOrParentRunId?: string): Promise<void>;
415
416
  handleChainEnd(outputs: Record<string, unknown>, runId: string): Promise<void>;
416
417
  handleChainError(error: unknown, runId: string): Promise<void>;
417
- handleChatModelStart(llm: Record<string, unknown>, messages: unknown[][], runId: string, parentRunId?: string, _extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
418
- handleLLMStart(llm: Record<string, unknown>, prompts: string[], runId: string, parentRunId?: string, _extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
418
+ handleChatModelStart(llm: Record<string, unknown> | null | undefined, messages: unknown[][], runId: string, parentRunId?: string, _extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
419
+ handleLLMStart(llm: Record<string, unknown> | null | undefined, prompts: string[], runId: string, parentRunId?: string, _extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
419
420
  handleLLMEnd(output: Record<string, unknown>, runId: string): Promise<void>;
420
421
  handleLLMError(error: unknown, runId: string): Promise<void>;
421
422
  handleLLMNewToken(): Promise<void>;
422
- handleToolStart(tool: Record<string, unknown>, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
423
+ handleToolStart(tool: Record<string, unknown> | null | undefined, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
423
424
  handleToolEnd(output: unknown, runId: string): Promise<void>;
424
425
  handleToolError(error: unknown, runId: string): Promise<void>;
425
- handleRetrieverStart(retriever: Record<string, unknown>, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
426
+ handleRetrieverStart(retriever: Record<string, unknown> | null | undefined, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
426
427
  handleRetrieverEnd(documents: unknown, runId: string): Promise<void>;
427
428
  handleRetrieverError(error: unknown, runId: string): Promise<void>;
428
429
  }
@@ -1530,7 +1531,7 @@ declare class BitfabFunction {
1530
1531
  /**
1531
1532
  * SDK version from package.json (injected at build time)
1532
1533
  */
1533
- declare const __version__ = "0.27.1";
1534
+ declare const __version__ = "0.27.2";
1534
1535
 
1535
1536
  /**
1536
1537
  * Constants for the Bitfab SDK.
package/dist/index.d.ts CHANGED
@@ -411,18 +411,19 @@ declare class BitfabLangGraphCallbackHandler {
411
411
  private completeSpan;
412
412
  private sendSpan;
413
413
  private sendTraceCompletion;
414
- handleChainStart(chain: Record<string, unknown>, inputs: Record<string, unknown>, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
414
+ private sendTraceStart;
415
+ handleChainStart(chain: Record<string, unknown> | null | undefined, inputs: Record<string, unknown>, runId: string, parentRunIdOrRunType?: string, tags?: string[], metadata?: Record<string, unknown>, runTypeOrRunName?: string, runNameOrParentRunId?: string): Promise<void>;
415
416
  handleChainEnd(outputs: Record<string, unknown>, runId: string): Promise<void>;
416
417
  handleChainError(error: unknown, runId: string): Promise<void>;
417
- handleChatModelStart(llm: Record<string, unknown>, messages: unknown[][], runId: string, parentRunId?: string, _extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
418
- handleLLMStart(llm: Record<string, unknown>, prompts: string[], runId: string, parentRunId?: string, _extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
418
+ handleChatModelStart(llm: Record<string, unknown> | null | undefined, messages: unknown[][], runId: string, parentRunId?: string, _extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
419
+ handleLLMStart(llm: Record<string, unknown> | null | undefined, prompts: string[], runId: string, parentRunId?: string, _extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
419
420
  handleLLMEnd(output: Record<string, unknown>, runId: string): Promise<void>;
420
421
  handleLLMError(error: unknown, runId: string): Promise<void>;
421
422
  handleLLMNewToken(): Promise<void>;
422
- handleToolStart(tool: Record<string, unknown>, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
423
+ handleToolStart(tool: Record<string, unknown> | null | undefined, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
423
424
  handleToolEnd(output: unknown, runId: string): Promise<void>;
424
425
  handleToolError(error: unknown, runId: string): Promise<void>;
425
- handleRetrieverStart(retriever: Record<string, unknown>, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>): Promise<void>;
426
+ handleRetrieverStart(retriever: Record<string, unknown> | null | undefined, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
426
427
  handleRetrieverEnd(documents: unknown, runId: string): Promise<void>;
427
428
  handleRetrieverError(error: unknown, runId: string): Promise<void>;
428
429
  }
@@ -1530,7 +1531,7 @@ declare class BitfabFunction {
1530
1531
  /**
1531
1532
  * SDK version from package.json (injected at build time)
1532
1533
  */
1533
- declare const __version__ = "0.27.1";
1534
+ declare const __version__ = "0.27.2";
1534
1535
 
1535
1536
  /**
1536
1537
  * Constants for the Bitfab SDK.
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ import {
23
23
  flushTraces,
24
24
  getCurrentSpan,
25
25
  getCurrentTrace
26
- } from "./chunk-H5QQ54UI.js";
26
+ } from "./chunk-DW246LVL.js";
27
27
  import {
28
28
  BITFAB_PROGRESS_PREFIX,
29
29
  BitfabError,
package/dist/node.cjs CHANGED
@@ -659,7 +659,7 @@ registerAsyncLocalStorageClass(
659
659
  );
660
660
 
661
661
  // src/version.generated.ts
662
- var __version__ = "0.27.1";
662
+ var __version__ = "0.27.2";
663
663
 
664
664
  // src/constants.ts
665
665
  var DEFAULT_SERVICE_URL = "https://bitfab.ai";
@@ -2019,6 +2019,7 @@ function buildSnapshotRef(config, sdkWallClockBeforeFn) {
2019
2019
  init_randomUuid();
2020
2020
  init_serialize();
2021
2021
  var LANGSMITH_HIDDEN_TAG = "langsmith:hidden";
2022
+ var CHAIN_RUN_TYPES = /* @__PURE__ */ new Set(["chain", "parser", "prompt"]);
2022
2023
  var LANGGRAPH_METADATA_KEYS = [
2023
2024
  "langgraph_step",
2024
2025
  "langgraph_node",
@@ -2029,6 +2030,18 @@ var LANGGRAPH_METADATA_KEYS = [
2029
2030
  function nowIso2() {
2030
2031
  return (/* @__PURE__ */ new Date()).toISOString();
2031
2032
  }
2033
+ function normalizeChainStartArgs(parentRunIdOrRunType, runTypeOrRunName, runNameOrParentRunId) {
2034
+ if (parentRunIdOrRunType && CHAIN_RUN_TYPES.has(parentRunIdOrRunType)) {
2035
+ return {
2036
+ parentRunId: runNameOrParentRunId,
2037
+ runName: runTypeOrRunName
2038
+ };
2039
+ }
2040
+ return {
2041
+ parentRunId: parentRunIdOrRunType,
2042
+ runName: runNameOrParentRunId
2043
+ };
2044
+ }
2032
2045
  function convertMessage(message) {
2033
2046
  if (typeof message !== "object" || message === null) {
2034
2047
  return { role: "unknown", content: String(message) };
@@ -2240,6 +2253,7 @@ var BitfabLangGraphCallbackHandler = class {
2240
2253
  const willHide = tags?.includes(LANGSMITH_HIDDEN_TAG) === true;
2241
2254
  let invocation;
2242
2255
  let effectiveParentId;
2256
+ let isRootInvocation = false;
2243
2257
  if (parentSpan) {
2244
2258
  const existing = this.invocations.get(parentSpan.rootRunId);
2245
2259
  if (existing) {
@@ -2270,6 +2284,7 @@ var BitfabLangGraphCallbackHandler = class {
2270
2284
  };
2271
2285
  this.invocations.set(runId, invocation);
2272
2286
  effectiveParentId = activeContext?.spanId ?? null;
2287
+ isRootInvocation = true;
2273
2288
  }
2274
2289
  const lgMetadata = extractLangGraphMetadata(metadata);
2275
2290
  const contexts = Object.keys(lgMetadata).length > 0 ? [lgMetadata] : [];
@@ -2292,6 +2307,9 @@ var BitfabLangGraphCallbackHandler = class {
2292
2307
  spanInfo.hidden = true;
2293
2308
  }
2294
2309
  this.runToSpan.set(runId, spanInfo);
2310
+ if (isRootInvocation) {
2311
+ this.sendTraceStart(spanInfo);
2312
+ }
2295
2313
  return spanInfo;
2296
2314
  }
2297
2315
  completeSpan(runId, output, error, extraContexts) {
@@ -2382,11 +2400,35 @@ var BitfabLangGraphCallbackHandler = class {
2382
2400
  } catch {
2383
2401
  }
2384
2402
  }
2403
+ sendTraceStart(rootSpan) {
2404
+ const traceData = {
2405
+ type: "sdk-function",
2406
+ source: "typescript-sdk-langgraph",
2407
+ traceFunctionKey: this.traceFunctionKey,
2408
+ externalTrace: {
2409
+ id: rootSpan.traceId,
2410
+ started_at: rootSpan.startedAt,
2411
+ workflow_name: this.traceFunctionKey
2412
+ },
2413
+ completed: false
2414
+ };
2415
+ const finalized = finalizeTracePayload(traceData);
2416
+ try {
2417
+ this.httpClient.sendExternalTrace(finalized);
2418
+ } catch {
2419
+ }
2420
+ }
2385
2421
  // ── chain callbacks (graph nodes) ─────────────────────────────
2386
- async handleChainStart(chain, inputs, runId, parentRunId, tags, metadata) {
2422
+ async handleChainStart(chain, inputs, runId, parentRunIdOrRunType, tags, metadata, runTypeOrRunName, runNameOrParentRunId) {
2387
2423
  try {
2388
- const idArr = chain.id;
2389
- const name = chain.name ?? idArr?.[idArr.length - 1] ?? "chain";
2424
+ const { parentRunId, runName } = normalizeChainStartArgs(
2425
+ parentRunIdOrRunType,
2426
+ runTypeOrRunName,
2427
+ runNameOrParentRunId
2428
+ );
2429
+ const serialized = chain ?? {};
2430
+ const idArr = serialized.id;
2431
+ const name = runName ?? serialized.name ?? idArr?.[idArr.length - 1] ?? "chain";
2390
2432
  this.startSpan(
2391
2433
  runId,
2392
2434
  parentRunId,
@@ -2421,11 +2463,12 @@ var BitfabLangGraphCallbackHandler = class {
2421
2463
  }
2422
2464
  }
2423
2465
  // ── LLM callbacks ─────────────────────────────────────────────
2424
- async handleChatModelStart(llm, messages, runId, parentRunId, _extraParams, tags, metadata) {
2466
+ async handleChatModelStart(llm, messages, runId, parentRunId, _extraParams, tags, metadata, runName) {
2425
2467
  try {
2426
- const model = extractModelName(llm, metadata);
2427
- const idArr = llm.id;
2428
- const name = model ?? idArr?.[idArr.length - 1] ?? "llm";
2468
+ const serialized = llm ?? {};
2469
+ const model = extractModelName(serialized, metadata);
2470
+ const idArr = serialized.id;
2471
+ const name = runName ?? model ?? idArr?.[idArr.length - 1] ?? "llm";
2429
2472
  const converted = messages.map((batch) => batch.map(convertMessage));
2430
2473
  const spanInfo = this.startSpan(
2431
2474
  runId,
@@ -2440,11 +2483,12 @@ var BitfabLangGraphCallbackHandler = class {
2440
2483
  } catch {
2441
2484
  }
2442
2485
  }
2443
- async handleLLMStart(llm, prompts, runId, parentRunId, _extraParams, tags, metadata) {
2486
+ async handleLLMStart(llm, prompts, runId, parentRunId, _extraParams, tags, metadata, runName) {
2444
2487
  try {
2445
- const model = extractModelName(llm, metadata);
2446
- const idArr = llm.id;
2447
- const name = model ?? idArr?.[idArr.length - 1] ?? "llm";
2488
+ const serialized = llm ?? {};
2489
+ const model = extractModelName(serialized, metadata);
2490
+ const idArr = serialized.id;
2491
+ const name = runName ?? model ?? idArr?.[idArr.length - 1] ?? "llm";
2448
2492
  const spanInfo = this.startSpan(
2449
2493
  runId,
2450
2494
  parentRunId,
@@ -2497,9 +2541,10 @@ var BitfabLangGraphCallbackHandler = class {
2497
2541
  async handleLLMNewToken() {
2498
2542
  }
2499
2543
  // ── tool callbacks ────────────────────────────────────────────
2500
- async handleToolStart(tool, input, runId, parentRunId, tags, metadata) {
2544
+ async handleToolStart(tool, input, runId, parentRunId, tags, metadata, runName) {
2501
2545
  try {
2502
- const name = tool.name ?? "tool";
2546
+ const serialized = tool ?? {};
2547
+ const name = runName ?? serialized.name ?? "tool";
2503
2548
  this.startSpan(
2504
2549
  runId,
2505
2550
  parentRunId,
@@ -2529,9 +2574,10 @@ var BitfabLangGraphCallbackHandler = class {
2529
2574
  }
2530
2575
  }
2531
2576
  // ── retriever callbacks ───────────────────────────────────────
2532
- async handleRetrieverStart(retriever, query, runId, parentRunId, tags, metadata) {
2577
+ async handleRetrieverStart(retriever, query, runId, parentRunId, tags, metadata, runName) {
2533
2578
  try {
2534
- const name = retriever.name ?? "retriever";
2579
+ const serialized = retriever ?? {};
2580
+ const name = runName ?? serialized.name ?? "retriever";
2535
2581
  this.startSpan(
2536
2582
  runId,
2537
2583
  parentRunId,