@bitfab/sdk 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
@@ -14,7 +14,7 @@ import {
14
14
  flushTraces,
15
15
  getCurrentSpan,
16
16
  getCurrentTrace
17
- } from "./chunk-H5QQ54UI.js";
17
+ } from "./chunk-DW246LVL.js";
18
18
  import {
19
19
  BITFAB_PROGRESS_PREFIX,
20
20
  BitfabError,
package/dist/node.cjs CHANGED
@@ -650,7 +650,7 @@ registerAsyncLocalStorageClass(
650
650
  );
651
651
 
652
652
  // src/version.generated.ts
653
- var __version__ = "0.27.1";
653
+ var __version__ = "0.27.2";
654
654
 
655
655
  // src/constants.ts
656
656
  var DEFAULT_SERVICE_URL = "https://bitfab.ai";
@@ -2010,6 +2010,7 @@ function buildSnapshotRef(config, sdkWallClockBeforeFn) {
2010
2010
  init_randomUuid();
2011
2011
  init_serialize();
2012
2012
  var LANGSMITH_HIDDEN_TAG = "langsmith:hidden";
2013
+ var CHAIN_RUN_TYPES = /* @__PURE__ */ new Set(["chain", "parser", "prompt"]);
2013
2014
  var LANGGRAPH_METADATA_KEYS = [
2014
2015
  "langgraph_step",
2015
2016
  "langgraph_node",
@@ -2020,6 +2021,18 @@ var LANGGRAPH_METADATA_KEYS = [
2020
2021
  function nowIso2() {
2021
2022
  return (/* @__PURE__ */ new Date()).toISOString();
2022
2023
  }
2024
+ function normalizeChainStartArgs(parentRunIdOrRunType, runTypeOrRunName, runNameOrParentRunId) {
2025
+ if (parentRunIdOrRunType && CHAIN_RUN_TYPES.has(parentRunIdOrRunType)) {
2026
+ return {
2027
+ parentRunId: runNameOrParentRunId,
2028
+ runName: runTypeOrRunName
2029
+ };
2030
+ }
2031
+ return {
2032
+ parentRunId: parentRunIdOrRunType,
2033
+ runName: runNameOrParentRunId
2034
+ };
2035
+ }
2023
2036
  function convertMessage(message) {
2024
2037
  if (typeof message !== "object" || message === null) {
2025
2038
  return { role: "unknown", content: String(message) };
@@ -2231,6 +2244,7 @@ var BitfabLangGraphCallbackHandler = class {
2231
2244
  const willHide = tags?.includes(LANGSMITH_HIDDEN_TAG) === true;
2232
2245
  let invocation;
2233
2246
  let effectiveParentId;
2247
+ let isRootInvocation = false;
2234
2248
  if (parentSpan) {
2235
2249
  const existing = this.invocations.get(parentSpan.rootRunId);
2236
2250
  if (existing) {
@@ -2261,6 +2275,7 @@ var BitfabLangGraphCallbackHandler = class {
2261
2275
  };
2262
2276
  this.invocations.set(runId, invocation);
2263
2277
  effectiveParentId = activeContext?.spanId ?? null;
2278
+ isRootInvocation = true;
2264
2279
  }
2265
2280
  const lgMetadata = extractLangGraphMetadata(metadata);
2266
2281
  const contexts = Object.keys(lgMetadata).length > 0 ? [lgMetadata] : [];
@@ -2283,6 +2298,9 @@ var BitfabLangGraphCallbackHandler = class {
2283
2298
  spanInfo.hidden = true;
2284
2299
  }
2285
2300
  this.runToSpan.set(runId, spanInfo);
2301
+ if (isRootInvocation) {
2302
+ this.sendTraceStart(spanInfo);
2303
+ }
2286
2304
  return spanInfo;
2287
2305
  }
2288
2306
  completeSpan(runId, output, error, extraContexts) {
@@ -2373,11 +2391,35 @@ var BitfabLangGraphCallbackHandler = class {
2373
2391
  } catch {
2374
2392
  }
2375
2393
  }
2394
+ sendTraceStart(rootSpan) {
2395
+ const traceData = {
2396
+ type: "sdk-function",
2397
+ source: "typescript-sdk-langgraph",
2398
+ traceFunctionKey: this.traceFunctionKey,
2399
+ externalTrace: {
2400
+ id: rootSpan.traceId,
2401
+ started_at: rootSpan.startedAt,
2402
+ workflow_name: this.traceFunctionKey
2403
+ },
2404
+ completed: false
2405
+ };
2406
+ const finalized = finalizeTracePayload(traceData);
2407
+ try {
2408
+ this.httpClient.sendExternalTrace(finalized);
2409
+ } catch {
2410
+ }
2411
+ }
2376
2412
  // ── chain callbacks (graph nodes) ─────────────────────────────
2377
- async handleChainStart(chain, inputs, runId, parentRunId, tags, metadata) {
2413
+ async handleChainStart(chain, inputs, runId, parentRunIdOrRunType, tags, metadata, runTypeOrRunName, runNameOrParentRunId) {
2378
2414
  try {
2379
- const idArr = chain.id;
2380
- const name = chain.name ?? idArr?.[idArr.length - 1] ?? "chain";
2415
+ const { parentRunId, runName } = normalizeChainStartArgs(
2416
+ parentRunIdOrRunType,
2417
+ runTypeOrRunName,
2418
+ runNameOrParentRunId
2419
+ );
2420
+ const serialized = chain ?? {};
2421
+ const idArr = serialized.id;
2422
+ const name = runName ?? serialized.name ?? idArr?.[idArr.length - 1] ?? "chain";
2381
2423
  this.startSpan(
2382
2424
  runId,
2383
2425
  parentRunId,
@@ -2412,11 +2454,12 @@ var BitfabLangGraphCallbackHandler = class {
2412
2454
  }
2413
2455
  }
2414
2456
  // ── LLM callbacks ─────────────────────────────────────────────
2415
- async handleChatModelStart(llm, messages, runId, parentRunId, _extraParams, tags, metadata) {
2457
+ async handleChatModelStart(llm, messages, runId, parentRunId, _extraParams, tags, metadata, runName) {
2416
2458
  try {
2417
- const model = extractModelName(llm, metadata);
2418
- const idArr = llm.id;
2419
- const name = model ?? idArr?.[idArr.length - 1] ?? "llm";
2459
+ const serialized = llm ?? {};
2460
+ const model = extractModelName(serialized, metadata);
2461
+ const idArr = serialized.id;
2462
+ const name = runName ?? model ?? idArr?.[idArr.length - 1] ?? "llm";
2420
2463
  const converted = messages.map((batch) => batch.map(convertMessage));
2421
2464
  const spanInfo = this.startSpan(
2422
2465
  runId,
@@ -2431,11 +2474,12 @@ var BitfabLangGraphCallbackHandler = class {
2431
2474
  } catch {
2432
2475
  }
2433
2476
  }
2434
- async handleLLMStart(llm, prompts, runId, parentRunId, _extraParams, tags, metadata) {
2477
+ async handleLLMStart(llm, prompts, runId, parentRunId, _extraParams, tags, metadata, runName) {
2435
2478
  try {
2436
- const model = extractModelName(llm, metadata);
2437
- const idArr = llm.id;
2438
- const name = model ?? idArr?.[idArr.length - 1] ?? "llm";
2479
+ const serialized = llm ?? {};
2480
+ const model = extractModelName(serialized, metadata);
2481
+ const idArr = serialized.id;
2482
+ const name = runName ?? model ?? idArr?.[idArr.length - 1] ?? "llm";
2439
2483
  const spanInfo = this.startSpan(
2440
2484
  runId,
2441
2485
  parentRunId,
@@ -2488,9 +2532,10 @@ var BitfabLangGraphCallbackHandler = class {
2488
2532
  async handleLLMNewToken() {
2489
2533
  }
2490
2534
  // ── tool callbacks ────────────────────────────────────────────
2491
- async handleToolStart(tool, input, runId, parentRunId, tags, metadata) {
2535
+ async handleToolStart(tool, input, runId, parentRunId, tags, metadata, runName) {
2492
2536
  try {
2493
- const name = tool.name ?? "tool";
2537
+ const serialized = tool ?? {};
2538
+ const name = runName ?? serialized.name ?? "tool";
2494
2539
  this.startSpan(
2495
2540
  runId,
2496
2541
  parentRunId,
@@ -2520,9 +2565,10 @@ var BitfabLangGraphCallbackHandler = class {
2520
2565
  }
2521
2566
  }
2522
2567
  // ── retriever callbacks ───────────────────────────────────────
2523
- async handleRetrieverStart(retriever, query, runId, parentRunId, tags, metadata) {
2568
+ async handleRetrieverStart(retriever, query, runId, parentRunId, tags, metadata, runName) {
2524
2569
  try {
2525
- const name = retriever.name ?? "retriever";
2570
+ const serialized = retriever ?? {};
2571
+ const name = runName ?? serialized.name ?? "retriever";
2526
2572
  this.startSpan(
2527
2573
  runId,
2528
2574
  parentRunId,