bitfab 0.63.2 → 0.63.3
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-3D67XMAO.js → chunk-2SHMY7VT.js} +2 -2
- package/dist/{chunk-3D67XMAO.js.map → chunk-2SHMY7VT.js.map} +1 -1
- package/dist/{chunk-NJQ5P6V7.js → chunk-2UXFKQAO.js} +3 -3
- package/dist/{chunk-5WYDAQAK.js → chunk-7J4PWCMT.js} +2 -2
- package/dist/{chunk-5WYDAQAK.js.map → chunk-7J4PWCMT.js.map} +1 -1
- package/dist/{chunk-ZRZDSP2R.js → chunk-DISN55EE.js} +6 -6
- package/dist/{chunk-NZCQ5TG4.js → chunk-ZVBOAKPF.js} +2 -2
- package/dist/{http-OJLI4LKV.js → http-T57OQRSM.js} +2 -2
- package/dist/{http-HXDG3XBJ.js → http-TNAMJGTM.js} +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/node.cjs +1 -1
- package/dist/node.cjs.map +1 -1
- package/dist/node.js +3 -3
- package/dist/{replay-MIBLRJKS.js → replay-GMHI5FIV.js} +3 -3
- package/dist/replayCli.js +34 -3
- package/dist/replayCli.js.map +1 -1
- package/dist/seedCli.js +2 -2
- package/package.json +2 -2
- /package/dist/{chunk-NJQ5P6V7.js.map → chunk-2UXFKQAO.js.map} +0 -0
- /package/dist/{chunk-ZRZDSP2R.js.map → chunk-DISN55EE.js.map} +0 -0
- /package/dist/{chunk-NZCQ5TG4.js.map → chunk-ZVBOAKPF.js.map} +0 -0
- /package/dist/{http-HXDG3XBJ.js.map → http-T57OQRSM.js.map} +0 -0
- /package/dist/{http-OJLI4LKV.js.map → http-TNAMJGTM.js.map} +0 -0
- /package/dist/{replay-MIBLRJKS.js.map → replay-GMHI5FIV.js.map} +0 -0
package/dist/node.js
CHANGED
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
getCurrentTrace,
|
|
37
37
|
reseedFromRegistry,
|
|
38
38
|
seedFromRegistry
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-DISN55EE.js";
|
|
40
40
|
import "./chunk-YWXQM6J3.js";
|
|
41
41
|
import {
|
|
42
42
|
BITFAB_PROGRESS_PREFIX,
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
ReplayError,
|
|
46
46
|
reportReplayProgress,
|
|
47
47
|
serializeReplayResult
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-ZVBOAKPF.js";
|
|
49
49
|
import {
|
|
50
50
|
BitfabError,
|
|
51
51
|
DEFAULT_SERVICE_URL,
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
MixedTracingError,
|
|
54
54
|
__version__,
|
|
55
55
|
flushTraces
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-2SHMY7VT.js";
|
|
57
57
|
import {
|
|
58
58
|
assertAsyncStorageRegistered,
|
|
59
59
|
registerAsyncLocalStorageClass
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
sleepForReplayPersistence,
|
|
11
11
|
waitForReplayPersistence,
|
|
12
12
|
warnJudgeAssertionsDeprecated
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-ZVBOAKPF.js";
|
|
14
|
+
import "./chunk-2SHMY7VT.js";
|
|
15
15
|
import "./chunk-MT36GJMW.js";
|
|
16
16
|
export {
|
|
17
17
|
BITFAB_PROGRESS_PREFIX,
|
|
@@ -26,4 +26,4 @@ export {
|
|
|
26
26
|
waitForReplayPersistence,
|
|
27
27
|
warnJudgeAssertionsDeprecated
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=replay-
|
|
29
|
+
//# sourceMappingURL=replay-GMHI5FIV.js.map
|
package/dist/replayCli.js
CHANGED
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
runRegistryMain,
|
|
8
8
|
runReplayCli,
|
|
9
9
|
runSeedCli
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-2UXFKQAO.js";
|
|
11
11
|
import {
|
|
12
12
|
BitfabError
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7J4PWCMT.js";
|
|
14
14
|
|
|
15
15
|
// src/cloudReplayCli.ts
|
|
16
16
|
var CLOUD_REPLAY_HINT = "Add --cloud to run the same replay on GitHub Actions; bitfab-replay --cloud --help explains it.";
|
|
@@ -73,10 +73,41 @@ async function runCloudReplayCommand(argv, io = {}, helper) {
|
|
|
73
73
|
(io.stdout ?? console.log)(output.trimEnd());
|
|
74
74
|
return {};
|
|
75
75
|
}
|
|
76
|
-
const result =
|
|
76
|
+
const result = parseCloudReplayResult(output, io);
|
|
77
77
|
(io.stdout ?? console.log)(JSON.stringify(result, null, 2));
|
|
78
78
|
return result;
|
|
79
79
|
}
|
|
80
|
+
function parseCloudReplayResult(output, io) {
|
|
81
|
+
const rest = [];
|
|
82
|
+
for (const line of output.split("\n")) {
|
|
83
|
+
if (line.startsWith("::")) {
|
|
84
|
+
;
|
|
85
|
+
(io.stdout ?? console.log)(line);
|
|
86
|
+
} else {
|
|
87
|
+
rest.push(line);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
for (let start = rest.length - 1; start >= 0; start -= 1) {
|
|
91
|
+
if (!rest[start].startsWith("{")) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
const value = JSON.parse(rest.slice(start).join("\n"));
|
|
96
|
+
if (value !== null && typeof value === "object" && !Array.isArray(value)) {
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
99
|
+
} catch {
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const text = rest.join("\n").trim();
|
|
103
|
+
if (text !== "") {
|
|
104
|
+
;
|
|
105
|
+
(io.stdout ?? console.log)(text);
|
|
106
|
+
}
|
|
107
|
+
throw new BitfabError(
|
|
108
|
+
"Cloud replay did not print a JSON result; its output is above"
|
|
109
|
+
);
|
|
110
|
+
}
|
|
80
111
|
|
|
81
112
|
// src/replayCli.ts
|
|
82
113
|
var USAGE = `Usage: bitfab-replay --registry <path> <pipeline> [options]
|
package/dist/replayCli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cloudReplayCli.ts","../src/replayCli.ts"],"sourcesContent":["import { BitfabError } from \"./errors.js\"\nimport type { ReplayCliIo } from \"./replayRegistry.js\"\n\nexport const CLOUD_REPLAY_HINT =\n \"Add --cloud to run the same replay on GitHub Actions; bitfab-replay --cloud --help explains it.\"\n\nexport function isCloudReplayCommand(argv: readonly string[]): boolean {\n return argv.some((arg) => arg === \"--cloud\" || arg.startsWith(\"--cloud-\"))\n}\n\nexport async function runCloudReplayCommand(\n argv: readonly string[],\n io: ReplayCliIo = {},\n helper?: string,\n): Promise<Record<string, unknown>> {\n const [{ spawn }, { fileURLToPath }] = await Promise.all([\n import(\"node:child_process\"),\n import(\"node:url\"),\n ])\n const script =\n helper ?? fileURLToPath(new URL(\"../cloudReplay.py\", import.meta.url))\n const replayCommand = [\n process.execPath,\n ...process.execArgv.filter((flag) => !/^--(inspect|debug)/.test(flag)),\n fileURLToPath(new URL(\"./replayCli.js\", import.meta.url)),\n ]\n const help = argv.includes(\"--help\") || argv.includes(\"-h\")\n const output = await new Promise<string>((resolve, reject) => {\n const child = spawn(\"python3\", [script, ...argv], {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n env: {\n ...process.env,\n BITFAB_REPLAY_COMMAND: JSON.stringify(replayCommand),\n BITFAB_SDK_LANGUAGE: \"typescript\",\n },\n })\n let stdout = \"\"\n child.stdout.setEncoding(\"utf8\")\n child.stderr.setEncoding(\"utf8\")\n child.stdout.on(\"data\", (chunk: string) => {\n stdout += chunk\n })\n child.stderr.on(\"data\", (chunk: string) => {\n ;(io.stderr ?? ((text) => process.stderr.write(text)))(chunk)\n })\n child.on(\"error\", () =>\n reject(new BitfabError(\"Cloud replay requires Python 3.10+ on PATH\")),\n )\n child.on(\"close\", (code) => {\n if (code !== 0) {\n if (stdout.trim() !== \"\") {\n ;(io.stdout ?? console.log)(stdout.trim())\n }\n reject(\n new BitfabError(\n \"Cloud replay failed. See diagnostics; use the execution UUID to recover a dispatched job.\",\n ),\n )\n } else {\n resolve(stdout)\n }\n })\n })\n if (help) {\n ;(io.stdout ?? console.log)(output.trimEnd())\n return {}\n }\n const result = JSON.
|
|
1
|
+
{"version":3,"sources":["../src/cloudReplayCli.ts","../src/replayCli.ts"],"sourcesContent":["import { BitfabError } from \"./errors.js\"\nimport type { ReplayCliIo } from \"./replayRegistry.js\"\n\nexport const CLOUD_REPLAY_HINT =\n \"Add --cloud to run the same replay on GitHub Actions; bitfab-replay --cloud --help explains it.\"\n\nexport function isCloudReplayCommand(argv: readonly string[]): boolean {\n return argv.some((arg) => arg === \"--cloud\" || arg.startsWith(\"--cloud-\"))\n}\n\nexport async function runCloudReplayCommand(\n argv: readonly string[],\n io: ReplayCliIo = {},\n helper?: string,\n): Promise<Record<string, unknown>> {\n const [{ spawn }, { fileURLToPath }] = await Promise.all([\n import(\"node:child_process\"),\n import(\"node:url\"),\n ])\n const script =\n helper ?? fileURLToPath(new URL(\"../cloudReplay.py\", import.meta.url))\n const replayCommand = [\n process.execPath,\n ...process.execArgv.filter((flag) => !/^--(inspect|debug)/.test(flag)),\n fileURLToPath(new URL(\"./replayCli.js\", import.meta.url)),\n ]\n const help = argv.includes(\"--help\") || argv.includes(\"-h\")\n const output = await new Promise<string>((resolve, reject) => {\n const child = spawn(\"python3\", [script, ...argv], {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n env: {\n ...process.env,\n BITFAB_REPLAY_COMMAND: JSON.stringify(replayCommand),\n BITFAB_SDK_LANGUAGE: \"typescript\",\n },\n })\n let stdout = \"\"\n child.stdout.setEncoding(\"utf8\")\n child.stderr.setEncoding(\"utf8\")\n child.stdout.on(\"data\", (chunk: string) => {\n stdout += chunk\n })\n child.stderr.on(\"data\", (chunk: string) => {\n ;(io.stderr ?? ((text) => process.stderr.write(text)))(chunk)\n })\n child.on(\"error\", () =>\n reject(new BitfabError(\"Cloud replay requires Python 3.10+ on PATH\")),\n )\n child.on(\"close\", (code) => {\n if (code !== 0) {\n if (stdout.trim() !== \"\") {\n ;(io.stdout ?? console.log)(stdout.trim())\n }\n reject(\n new BitfabError(\n \"Cloud replay failed. See diagnostics; use the execution UUID to recover a dispatched job.\",\n ),\n )\n } else {\n resolve(stdout)\n }\n })\n })\n if (help) {\n ;(io.stdout ?? console.log)(output.trimEnd())\n return {}\n }\n const result = parseCloudReplayResult(output, io)\n ;(io.stdout ?? console.log)(JSON.stringify(result, null, 2))\n return result\n}\n\nfunction parseCloudReplayResult(\n output: string,\n io: ReplayCliIo,\n): Record<string, unknown> {\n const rest: string[] = []\n for (const line of output.split(\"\\n\")) {\n if (line.startsWith(\"::\")) {\n ;(io.stdout ?? console.log)(line)\n } else {\n rest.push(line)\n }\n }\n for (let start = rest.length - 1; start >= 0; start -= 1) {\n if (!rest[start].startsWith(\"{\")) {\n continue\n }\n try {\n const value: unknown = JSON.parse(rest.slice(start).join(\"\\n\"))\n if (\n value !== null &&\n typeof value === \"object\" &&\n !Array.isArray(value)\n ) {\n return value as Record<string, unknown>\n }\n } catch {}\n }\n const text = rest.join(\"\\n\").trim()\n if (text !== \"\") {\n ;(io.stdout ?? console.log)(text)\n }\n throw new BitfabError(\n \"Cloud replay did not print a JSON result; its output is above\",\n )\n}\n","#!/usr/bin/env node\n\nimport {\n CLOUD_REPLAY_HINT,\n isCloudReplayCommand,\n runCloudReplayCommand,\n} from \"./cloudReplayCli.js\"\nimport {\n importRegistry,\n parseRegistryCommandArgs,\n type RegistryImporter,\n resolveRegistry,\n runIfEntrypoint,\n runRegistryMain,\n} from \"./registryCommand.js\"\nimport type { ReplayResult } from \"./replay.js\"\nimport {\n type ReplayCliIo,\n type ReseedRegistryResult,\n runReplayCli,\n runSeedCli,\n type SeedResult,\n} from \"./replayRegistry.js\"\n\nconst USAGE = `Usage: bitfab-replay --registry <path> <pipeline> [options]\\n bitfab-replay --registry <path> <pipeline> --resume <experimentId>\\n bitfab-replay --registry <path> <pipeline> --seed <cases.jsonl> [--run]\\nRun bitfab-replay --registry <path> --help to list replay options.\\n${CLOUD_REPLAY_HINT}`\n\nexport async function runReplayCommand(\n argv: readonly string[],\n io: ReplayCliIo = {},\n importer: RegistryImporter = importRegistry,\n): Promise<\n | ReplayResult<unknown>\n | SeedResult\n | ReseedRegistryResult\n | Record<string, unknown>\n> {\n if (isCloudReplayCommand(argv)) {\n return runCloudReplayCommand(argv, io)\n }\n const { registryPath, commandArgs } = await parseRegistryCommandArgs(\n argv,\n USAGE,\n )\n const registry = resolveRegistry(await importer(registryPath), registryPath)\n if (commandArgs.includes(\"--seed\")) {\n return runSeedCli(registry, commandArgs, io)\n }\n return runReplayCli(registry, commandArgs, io, registryPath)\n}\n\nexport async function runReplayMain(\n argv: readonly string[],\n io: ReplayCliIo = {},\n): Promise<number> {\n return runRegistryMain(() => runReplayCommand(argv, io), io)\n}\n\nrunIfEntrypoint(import.meta.url, () => runReplayMain(process.argv.slice(2)))\n"],"mappings":"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","names":[]}
|
package/dist/seedCli.js
CHANGED
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
runIfEntrypoint,
|
|
7
7
|
runRegistryMain,
|
|
8
8
|
runSeedCli
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-2UXFKQAO.js";
|
|
10
|
+
import "./chunk-7J4PWCMT.js";
|
|
11
11
|
|
|
12
12
|
// src/seedCli.ts
|
|
13
13
|
var USAGE = "Usage: bitfab-seed --registry <path> <pipeline> --from-trace <id>[,<id>...]\n bitfab-seed --registry <path> <pipeline> --cases <cases.jsonl> [--run]\nRun bitfab-seed --registry <path> <pipeline> --help for details.";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bitfab",
|
|
3
|
-
"version": "0.63.
|
|
3
|
+
"version": "0.63.3",
|
|
4
4
|
"description": "Bitfab client for provider-based API calls with local BAML execution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -276,7 +276,7 @@
|
|
|
276
276
|
}
|
|
277
277
|
},
|
|
278
278
|
"devDependencies": {
|
|
279
|
-
"@boundaryml/baml": "^0.
|
|
279
|
+
"@boundaryml/baml": "^0.226.2",
|
|
280
280
|
"@langchain/core": "1.2.3",
|
|
281
281
|
"@langchain/langgraph": "^1.4.8",
|
|
282
282
|
"@openai/agents": "^0.13.5",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|