bitfab 0.27.0 → 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/{chunk-PFV4MPNS.js → chunk-DW246LVL.js} +69 -20
- package/dist/chunk-DW246LVL.js.map +1 -0
- package/dist/{chunk-RNTDM6WM.js → chunk-MD4XQGAF.js} +2 -1
- package/dist/chunk-MD4XQGAF.js.map +1 -0
- package/dist/index.cjs +67 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -6
- package/dist/index.d.ts +9 -6
- package/dist/index.js +2 -2
- package/dist/node.cjs +67 -17
- package/dist/node.cjs.map +1 -1
- package/dist/node.js +2 -2
- package/dist/{replay-66KNEAMO.js → replay-J3YTYE7V.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-PFV4MPNS.js.map +0 -1
- package/dist/chunk-RNTDM6WM.js.map +0 -1
- /package/dist/{replay-66KNEAMO.js.map → replay-J3YTYE7V.js.map} +0 -0
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
toJsonSafe,
|
|
11
11
|
toJsonSafeReport,
|
|
12
12
|
warnOnce
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-MD4XQGAF.js";
|
|
14
14
|
|
|
15
15
|
// src/version.generated.ts
|
|
16
|
-
var __version__ = "0.27.
|
|
16
|
+
var __version__ = "0.27.2";
|
|
17
17
|
|
|
18
18
|
// src/constants.ts
|
|
19
19
|
var DEFAULT_SERVICE_URL = "https://bitfab.ai";
|
|
@@ -317,7 +317,7 @@ var HttpClient = class {
|
|
|
317
317
|
* Start a replay session by fetching historical traces.
|
|
318
318
|
* Blocking call — creates a test run and returns lightweight item references.
|
|
319
319
|
*/
|
|
320
|
-
async startReplay(traceFunctionKey, limit, traceIds, codeChangeDescription, codeChangeFiles, includeDbBranchLease, experimentGroupId, datasetId) {
|
|
320
|
+
async startReplay(traceFunctionKey, limit, traceIds, name, codeChangeDescription, codeChangeFiles, includeDbBranchLease, experimentGroupId, datasetId) {
|
|
321
321
|
const payload = { traceFunctionKey };
|
|
322
322
|
if (limit !== void 0) {
|
|
323
323
|
payload.limit = limit;
|
|
@@ -325,6 +325,9 @@ var HttpClient = class {
|
|
|
325
325
|
if (traceIds) {
|
|
326
326
|
payload.traceIds = traceIds;
|
|
327
327
|
}
|
|
328
|
+
if (name !== void 0) {
|
|
329
|
+
payload.name = name;
|
|
330
|
+
}
|
|
328
331
|
if (codeChangeDescription !== void 0) {
|
|
329
332
|
payload.codeChangeDescription = codeChangeDescription;
|
|
330
333
|
}
|
|
@@ -1356,6 +1359,7 @@ function buildSnapshotRef(config, sdkWallClockBeforeFn) {
|
|
|
1356
1359
|
|
|
1357
1360
|
// src/langgraph.ts
|
|
1358
1361
|
var LANGSMITH_HIDDEN_TAG = "langsmith:hidden";
|
|
1362
|
+
var CHAIN_RUN_TYPES = /* @__PURE__ */ new Set(["chain", "parser", "prompt"]);
|
|
1359
1363
|
var LANGGRAPH_METADATA_KEYS = [
|
|
1360
1364
|
"langgraph_step",
|
|
1361
1365
|
"langgraph_node",
|
|
@@ -1366,6 +1370,18 @@ var LANGGRAPH_METADATA_KEYS = [
|
|
|
1366
1370
|
function nowIso2() {
|
|
1367
1371
|
return (/* @__PURE__ */ new Date()).toISOString();
|
|
1368
1372
|
}
|
|
1373
|
+
function normalizeChainStartArgs(parentRunIdOrRunType, runTypeOrRunName, runNameOrParentRunId) {
|
|
1374
|
+
if (parentRunIdOrRunType && CHAIN_RUN_TYPES.has(parentRunIdOrRunType)) {
|
|
1375
|
+
return {
|
|
1376
|
+
parentRunId: runNameOrParentRunId,
|
|
1377
|
+
runName: runTypeOrRunName
|
|
1378
|
+
};
|
|
1379
|
+
}
|
|
1380
|
+
return {
|
|
1381
|
+
parentRunId: parentRunIdOrRunType,
|
|
1382
|
+
runName: runNameOrParentRunId
|
|
1383
|
+
};
|
|
1384
|
+
}
|
|
1369
1385
|
function convertMessage(message) {
|
|
1370
1386
|
if (typeof message !== "object" || message === null) {
|
|
1371
1387
|
return { role: "unknown", content: String(message) };
|
|
@@ -1577,6 +1593,7 @@ var BitfabLangGraphCallbackHandler = class {
|
|
|
1577
1593
|
const willHide = tags?.includes(LANGSMITH_HIDDEN_TAG) === true;
|
|
1578
1594
|
let invocation;
|
|
1579
1595
|
let effectiveParentId;
|
|
1596
|
+
let isRootInvocation = false;
|
|
1580
1597
|
if (parentSpan) {
|
|
1581
1598
|
const existing = this.invocations.get(parentSpan.rootRunId);
|
|
1582
1599
|
if (existing) {
|
|
@@ -1607,6 +1624,7 @@ var BitfabLangGraphCallbackHandler = class {
|
|
|
1607
1624
|
};
|
|
1608
1625
|
this.invocations.set(runId, invocation);
|
|
1609
1626
|
effectiveParentId = activeContext?.spanId ?? null;
|
|
1627
|
+
isRootInvocation = true;
|
|
1610
1628
|
}
|
|
1611
1629
|
const lgMetadata = extractLangGraphMetadata(metadata);
|
|
1612
1630
|
const contexts = Object.keys(lgMetadata).length > 0 ? [lgMetadata] : [];
|
|
@@ -1629,6 +1647,9 @@ var BitfabLangGraphCallbackHandler = class {
|
|
|
1629
1647
|
spanInfo.hidden = true;
|
|
1630
1648
|
}
|
|
1631
1649
|
this.runToSpan.set(runId, spanInfo);
|
|
1650
|
+
if (isRootInvocation) {
|
|
1651
|
+
this.sendTraceStart(spanInfo);
|
|
1652
|
+
}
|
|
1632
1653
|
return spanInfo;
|
|
1633
1654
|
}
|
|
1634
1655
|
completeSpan(runId, output, error, extraContexts) {
|
|
@@ -1719,11 +1740,35 @@ var BitfabLangGraphCallbackHandler = class {
|
|
|
1719
1740
|
} catch {
|
|
1720
1741
|
}
|
|
1721
1742
|
}
|
|
1743
|
+
sendTraceStart(rootSpan) {
|
|
1744
|
+
const traceData = {
|
|
1745
|
+
type: "sdk-function",
|
|
1746
|
+
source: "typescript-sdk-langgraph",
|
|
1747
|
+
traceFunctionKey: this.traceFunctionKey,
|
|
1748
|
+
externalTrace: {
|
|
1749
|
+
id: rootSpan.traceId,
|
|
1750
|
+
started_at: rootSpan.startedAt,
|
|
1751
|
+
workflow_name: this.traceFunctionKey
|
|
1752
|
+
},
|
|
1753
|
+
completed: false
|
|
1754
|
+
};
|
|
1755
|
+
const finalized = finalizeTracePayload(traceData);
|
|
1756
|
+
try {
|
|
1757
|
+
this.httpClient.sendExternalTrace(finalized);
|
|
1758
|
+
} catch {
|
|
1759
|
+
}
|
|
1760
|
+
}
|
|
1722
1761
|
// ── chain callbacks (graph nodes) ─────────────────────────────
|
|
1723
|
-
async handleChainStart(chain, inputs, runId,
|
|
1762
|
+
async handleChainStart(chain, inputs, runId, parentRunIdOrRunType, tags, metadata, runTypeOrRunName, runNameOrParentRunId) {
|
|
1724
1763
|
try {
|
|
1725
|
-
const
|
|
1726
|
-
|
|
1764
|
+
const { parentRunId, runName } = normalizeChainStartArgs(
|
|
1765
|
+
parentRunIdOrRunType,
|
|
1766
|
+
runTypeOrRunName,
|
|
1767
|
+
runNameOrParentRunId
|
|
1768
|
+
);
|
|
1769
|
+
const serialized = chain ?? {};
|
|
1770
|
+
const idArr = serialized.id;
|
|
1771
|
+
const name = runName ?? serialized.name ?? idArr?.[idArr.length - 1] ?? "chain";
|
|
1727
1772
|
this.startSpan(
|
|
1728
1773
|
runId,
|
|
1729
1774
|
parentRunId,
|
|
@@ -1758,11 +1803,12 @@ var BitfabLangGraphCallbackHandler = class {
|
|
|
1758
1803
|
}
|
|
1759
1804
|
}
|
|
1760
1805
|
// ── LLM callbacks ─────────────────────────────────────────────
|
|
1761
|
-
async handleChatModelStart(llm, messages, runId, parentRunId, _extraParams, tags, metadata) {
|
|
1806
|
+
async handleChatModelStart(llm, messages, runId, parentRunId, _extraParams, tags, metadata, runName) {
|
|
1762
1807
|
try {
|
|
1763
|
-
const
|
|
1764
|
-
const
|
|
1765
|
-
const
|
|
1808
|
+
const serialized = llm ?? {};
|
|
1809
|
+
const model = extractModelName(serialized, metadata);
|
|
1810
|
+
const idArr = serialized.id;
|
|
1811
|
+
const name = runName ?? model ?? idArr?.[idArr.length - 1] ?? "llm";
|
|
1766
1812
|
const converted = messages.map((batch) => batch.map(convertMessage));
|
|
1767
1813
|
const spanInfo = this.startSpan(
|
|
1768
1814
|
runId,
|
|
@@ -1777,11 +1823,12 @@ var BitfabLangGraphCallbackHandler = class {
|
|
|
1777
1823
|
} catch {
|
|
1778
1824
|
}
|
|
1779
1825
|
}
|
|
1780
|
-
async handleLLMStart(llm, prompts, runId, parentRunId, _extraParams, tags, metadata) {
|
|
1826
|
+
async handleLLMStart(llm, prompts, runId, parentRunId, _extraParams, tags, metadata, runName) {
|
|
1781
1827
|
try {
|
|
1782
|
-
const
|
|
1783
|
-
const
|
|
1784
|
-
const
|
|
1828
|
+
const serialized = llm ?? {};
|
|
1829
|
+
const model = extractModelName(serialized, metadata);
|
|
1830
|
+
const idArr = serialized.id;
|
|
1831
|
+
const name = runName ?? model ?? idArr?.[idArr.length - 1] ?? "llm";
|
|
1785
1832
|
const spanInfo = this.startSpan(
|
|
1786
1833
|
runId,
|
|
1787
1834
|
parentRunId,
|
|
@@ -1834,9 +1881,10 @@ var BitfabLangGraphCallbackHandler = class {
|
|
|
1834
1881
|
async handleLLMNewToken() {
|
|
1835
1882
|
}
|
|
1836
1883
|
// ── tool callbacks ────────────────────────────────────────────
|
|
1837
|
-
async handleToolStart(tool, input, runId, parentRunId, tags, metadata) {
|
|
1884
|
+
async handleToolStart(tool, input, runId, parentRunId, tags, metadata, runName) {
|
|
1838
1885
|
try {
|
|
1839
|
-
const
|
|
1886
|
+
const serialized = tool ?? {};
|
|
1887
|
+
const name = runName ?? serialized.name ?? "tool";
|
|
1840
1888
|
this.startSpan(
|
|
1841
1889
|
runId,
|
|
1842
1890
|
parentRunId,
|
|
@@ -1866,9 +1914,10 @@ var BitfabLangGraphCallbackHandler = class {
|
|
|
1866
1914
|
}
|
|
1867
1915
|
}
|
|
1868
1916
|
// ── retriever callbacks ───────────────────────────────────────
|
|
1869
|
-
async handleRetrieverStart(retriever, query, runId, parentRunId, tags, metadata) {
|
|
1917
|
+
async handleRetrieverStart(retriever, query, runId, parentRunId, tags, metadata, runName) {
|
|
1870
1918
|
try {
|
|
1871
|
-
const
|
|
1919
|
+
const serialized = retriever ?? {};
|
|
1920
|
+
const name = runName ?? serialized.name ?? "retriever";
|
|
1872
1921
|
this.startSpan(
|
|
1873
1922
|
runId,
|
|
1874
1923
|
parentRunId,
|
|
@@ -3524,7 +3573,7 @@ var Bitfab = class {
|
|
|
3524
3573
|
`Function is wrapped with trace function key '${wrappedKey}' but replay was called with '${traceFunctionKey}'. Pass matching keys, or pass the unwrapped function to replay it under the explicit key.`
|
|
3525
3574
|
);
|
|
3526
3575
|
}
|
|
3527
|
-
const { replay: doReplay } = await import("./replay-
|
|
3576
|
+
const { replay: doReplay } = await import("./replay-J3YTYE7V.js");
|
|
3528
3577
|
return doReplay(
|
|
3529
3578
|
this.httpClient,
|
|
3530
3579
|
this.serviceUrl,
|
|
@@ -3749,4 +3798,4 @@ export {
|
|
|
3749
3798
|
BitfabFunction,
|
|
3750
3799
|
finalizers
|
|
3751
3800
|
};
|
|
3752
|
-
//# sourceMappingURL=chunk-
|
|
3801
|
+
//# sourceMappingURL=chunk-DW246LVL.js.map
|