bitfab 0.62.3 → 0.62.4

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/node.js CHANGED
@@ -35,7 +35,7 @@ import {
35
35
  getCurrentTrace,
36
36
  reseedFromRegistry,
37
37
  seedFromRegistry
38
- } from "./chunk-BPOAXWVS.js";
38
+ } from "./chunk-4KCUJ5WL.js";
39
39
  import "./chunk-K4XCWQBC.js";
40
40
  import {
41
41
  BITFAB_PROGRESS_PREFIX,
@@ -44,7 +44,7 @@ import {
44
44
  ReplayError,
45
45
  reportReplayProgress,
46
46
  serializeReplayResult
47
- } from "./chunk-T6O3MFM4.js";
47
+ } from "./chunk-CO2HRQEG.js";
48
48
  import {
49
49
  BitfabError,
50
50
  DEFAULT_SERVICE_URL,
@@ -52,7 +52,7 @@ import {
52
52
  MixedTracingError,
53
53
  __version__,
54
54
  flushTraces
55
- } from "./chunk-DRRJRCVG.js";
55
+ } from "./chunk-IHJDEWXY.js";
56
56
  import {
57
57
  assertAsyncStorageRegistered,
58
58
  registerAsyncLocalStorageClass
@@ -8,8 +8,8 @@ import {
8
8
  serializeReplayResult,
9
9
  sleepForReplayPersistence,
10
10
  waitForReplayPersistence
11
- } from "./chunk-T6O3MFM4.js";
12
- import "./chunk-DRRJRCVG.js";
11
+ } from "./chunk-CO2HRQEG.js";
12
+ import "./chunk-IHJDEWXY.js";
13
13
  import "./chunk-BAOIRE5T.js";
14
14
  export {
15
15
  BITFAB_PROGRESS_PREFIX,
@@ -22,4 +22,4 @@ export {
22
22
  sleepForReplayPersistence,
23
23
  waitForReplayPersistence
24
24
  };
25
- //# sourceMappingURL=replay-BN4FM6MX.js.map
25
+ //# sourceMappingURL=replay-I3ENLBXT.js.map
package/dist/replayCli.js CHANGED
@@ -7,44 +7,29 @@ import {
7
7
  runRegistryMain,
8
8
  runReplayCli,
9
9
  runSeedCli
10
- } from "./chunk-YKLSCOBE.js";
10
+ } from "./chunk-GXD74YMV.js";
11
11
  import {
12
12
  BitfabError
13
- } from "./chunk-E2QXILJI.js";
13
+ } from "./chunk-GWX7C2CB.js";
14
14
 
15
15
  // src/cloudReplayCli.ts
16
- var CLOUD_REPLAY_HELP = "Direct GitHub replay: --cloud <pipeline> --trace-ids <UUIDs> [--registry <path>] [--max-concurrency 1..32] [--cloud-include <file>] [--cloud-dry-run] [--cloud-detach] [--cloud-request-id <UUID>]. Lifecycle: --cloud-status|--cloud-watch|--cloud-cancel|--cloud-cleanup <UUID>. Requires git, gh auth login, Python 3.10+, and bitfab:setup cloud.";
16
+ var CLOUD_REPLAY_HELP = "Direct GitHub replay: --cloud <pipeline> --trace-ids <UUIDs> [--registry <path>] [--max-concurrency 1..32] [--cloud-include <file>] [--cloud-dry-run] [--cloud-detach] [--cloud-request-id <UUID>]. Lifecycle: --cloud-status|--cloud-watch|--cloud-cancel|--cloud-cleanup <UUID>. Setup: --cloud-init --config <file>, --cloud-secrets --env-file <file> [<NAME>...]. Requires git, gh auth login, Python 3.10+, and bitfab:setup cloud.";
17
17
  function isCloudReplayCommand(argv) {
18
18
  return argv.some((arg) => arg === "--cloud" || arg.startsWith("--cloud-"));
19
19
  }
20
- async function runCloudReplayCommand(argv, io = {}) {
20
+ async function runCloudReplayCommand(argv, io = {}, helper) {
21
21
  if (argv.includes("--help") || argv.includes("-h")) {
22
22
  ;
23
23
  (io.stdout ?? console.log)(CLOUD_REPLAY_HELP);
24
24
  return {};
25
25
  }
26
- const [{ execFileSync, spawn }, { realpath }, path] = await Promise.all([
26
+ const [{ spawn }, { fileURLToPath }] = await Promise.all([
27
27
  import("child_process"),
28
- import("fs/promises"),
29
- import("path")
28
+ import("url")
30
29
  ]);
31
- const root = execFileSync("git", ["rev-parse", "--show-toplevel"], {
32
- encoding: "utf8",
33
- timeout: 15e3,
34
- stdio: ["ignore", "pipe", "pipe"]
35
- }).trim();
36
- const helper = path.join(root, ".bitfab", "cloudReplay.py");
37
- try {
38
- if (await realpath(helper) !== path.join(await realpath(root), ".bitfab", "cloudReplay.py")) {
39
- throw new Error("Symlinked helper");
40
- }
41
- } catch {
42
- throw new BitfabError(
43
- "Run bitfab:setup cloud first. Expected .bitfab/cloudReplay.py inside this repository."
44
- );
45
- }
30
+ const script = helper ?? fileURLToPath(new URL("../cloudReplay.py", import.meta.url));
46
31
  const output = await new Promise((resolve, reject) => {
47
- const child = spawn("python3", [helper, ...argv], {
32
+ const child = spawn("python3", [script, ...argv], {
48
33
  stdio: ["ignore", "pipe", "pipe"]
49
34
  });
50
35
  let stdout = "";
@@ -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_HELP =\n \"Direct GitHub replay: --cloud <pipeline> --trace-ids <UUIDs> [--registry <path>] [--max-concurrency 1..32] [--cloud-include <file>] [--cloud-dry-run] [--cloud-detach] [--cloud-request-id <UUID>]. Lifecycle: --cloud-status|--cloud-watch|--cloud-cancel|--cloud-cleanup <UUID>. Requires git, gh auth login, Python 3.10+, and bitfab:setup cloud.\"\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): Promise<Record<string, unknown>> {\n if (argv.includes(\"--help\") || argv.includes(\"-h\")) {\n ;(io.stdout ?? console.log)(CLOUD_REPLAY_HELP)\n return {}\n }\n const [{ execFileSync, spawn }, { realpath }, path] = await Promise.all([\n import(\"node:child_process\"),\n import(\"node:fs/promises\"),\n import(\"node:path\"),\n ])\n const root = execFileSync(\"git\", [\"rev-parse\", \"--show-toplevel\"], {\n encoding: \"utf8\",\n timeout: 15_000,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n }).trim()\n const helper = path.join(root, \".bitfab\", \"cloudReplay.py\")\n try {\n if (\n (await realpath(helper)) !==\n path.join(await realpath(root), \".bitfab\", \"cloudReplay.py\")\n ) {\n throw new Error(\"Symlinked helper\")\n }\n } catch {\n throw new BitfabError(\n \"Run bitfab:setup cloud first. Expected .bitfab/cloudReplay.py inside this repository.\",\n )\n }\n const output = await new Promise<string>((resolve, reject) => {\n const child = spawn(\"python3\", [helper, ...argv], {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\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 const result = JSON.parse(output) as Record<string, unknown>\n ;(io.stdout ?? console.log)(JSON.stringify(result, null, 2))\n return result\n}\n","#!/usr/bin/env node\n\nimport {\n CLOUD_REPLAY_HELP,\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_HELP}`\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":";;;;;;;;;;;;;;;AAGO,IAAM,oBACX;AAEK,SAAS,qBAAqB,MAAkC;AACrE,SAAO,KAAK,KAAK,CAAC,QAAQ,QAAQ,aAAa,IAAI,WAAW,UAAU,CAAC;AAC3E;AAEA,eAAsB,sBACpB,MACA,KAAkB,CAAC,GACe;AAClC,MAAI,KAAK,SAAS,QAAQ,KAAK,KAAK,SAAS,IAAI,GAAG;AAClD;AAAC,KAAC,GAAG,UAAU,QAAQ,KAAK,iBAAiB;AAC7C,WAAO,CAAC;AAAA,EACV;AACA,QAAM,CAAC,EAAE,cAAc,MAAM,GAAG,EAAE,SAAS,GAAG,IAAI,IAAI,MAAM,QAAQ,IAAI;AAAA,IACtE,OAAO,eAAoB;AAAA,IAC3B,OAAO,aAAkB;AAAA,IACzB,OAAO,MAAW;AAAA,EACpB,CAAC;AACD,QAAM,OAAO,aAAa,OAAO,CAAC,aAAa,iBAAiB,GAAG;AAAA,IACjE,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,EAClC,CAAC,EAAE,KAAK;AACR,QAAM,SAAS,KAAK,KAAK,MAAM,WAAW,gBAAgB;AAC1D,MAAI;AACF,QACG,MAAM,SAAS,MAAM,MACtB,KAAK,KAAK,MAAM,SAAS,IAAI,GAAG,WAAW,gBAAgB,GAC3D;AACA,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACpC;AAAA,EACF,QAAQ;AACN,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,SAAS,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AAC5D,UAAM,QAAQ,MAAM,WAAW,CAAC,QAAQ,GAAG,IAAI,GAAG;AAAA,MAChD,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,IAClC,CAAC;AACD,QAAI,SAAS;AACb,UAAM,OAAO,YAAY,MAAM;AAC/B,UAAM,OAAO,YAAY,MAAM;AAC/B,UAAM,OAAO,GAAG,QAAQ,CAAC,UAAkB;AACzC,gBAAU;AAAA,IACZ,CAAC;AACD,UAAM,OAAO,GAAG,QAAQ,CAAC,UAAkB;AACzC;AAAC,OAAC,GAAG,WAAW,CAAC,SAAS,QAAQ,OAAO,MAAM,IAAI,IAAI,KAAK;AAAA,IAC9D,CAAC;AACD,UAAM;AAAA,MAAG;AAAA,MAAS,MAChB,OAAO,IAAI,YAAY,4CAA4C,CAAC;AAAA,IACtE;AACA,UAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,UAAI,SAAS,GAAG;AACd,YAAI,OAAO,KAAK,MAAM,IAAI;AACxB;AAAC,WAAC,GAAG,UAAU,QAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,QAC3C;AACA;AAAA,UACE,IAAI;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,OAAO;AACL,gBAAQ,MAAM;AAAA,MAChB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,QAAM,SAAS,KAAK,MAAM,MAAM;AAC/B,GAAC,GAAG,UAAU,QAAQ,KAAK,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC3D,SAAO;AACT;;;ACnDA,IAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,EAA+R,iBAAiB;AAE9T,eAAsB,iBACpB,MACA,KAAkB,CAAC,GACnB,WAA6B,gBAM7B;AACA,MAAI,qBAAqB,IAAI,GAAG;AAC9B,WAAO,sBAAsB,MAAM,EAAE;AAAA,EACvC;AACA,QAAM,EAAE,cAAc,YAAY,IAAI,MAAM;AAAA,IAC1C;AAAA,IACA;AAAA,EACF;AACA,QAAM,WAAW,gBAAgB,MAAM,SAAS,YAAY,GAAG,YAAY;AAC3E,MAAI,YAAY,SAAS,QAAQ,GAAG;AAClC,WAAO,WAAW,UAAU,aAAa,EAAE;AAAA,EAC7C;AACA,SAAO,aAAa,UAAU,aAAa,IAAI,YAAY;AAC7D;AAEA,eAAsB,cACpB,MACA,KAAkB,CAAC,GACF;AACjB,SAAO,gBAAgB,MAAM,iBAAiB,MAAM,EAAE,GAAG,EAAE;AAC7D;AAEA,gBAAgB,YAAY,KAAK,MAAM,cAAc,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC;","names":[]}
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_HELP =\n \"Direct GitHub replay: --cloud <pipeline> --trace-ids <UUIDs> [--registry <path>] [--max-concurrency 1..32] [--cloud-include <file>] [--cloud-dry-run] [--cloud-detach] [--cloud-request-id <UUID>]. Lifecycle: --cloud-status|--cloud-watch|--cloud-cancel|--cloud-cleanup <UUID>. Setup: --cloud-init --config <file>, --cloud-secrets --env-file <file> [<NAME>...]. Requires git, gh auth login, Python 3.10+, and bitfab:setup cloud.\"\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 if (argv.includes(\"--help\") || argv.includes(\"-h\")) {\n ;(io.stdout ?? console.log)(CLOUD_REPLAY_HELP)\n return {}\n }\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 output = await new Promise<string>((resolve, reject) => {\n const child = spawn(\"python3\", [script, ...argv], {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\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 const result = JSON.parse(output) as Record<string, unknown>\n ;(io.stdout ?? console.log)(JSON.stringify(result, null, 2))\n return result\n}\n","#!/usr/bin/env node\n\nimport {\n CLOUD_REPLAY_HELP,\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_HELP}`\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":";;;;;;;;;;;;;;;AAGO,IAAM,oBACX;AAEK,SAAS,qBAAqB,MAAkC;AACrE,SAAO,KAAK,KAAK,CAAC,QAAQ,QAAQ,aAAa,IAAI,WAAW,UAAU,CAAC;AAC3E;AAEA,eAAsB,sBACpB,MACA,KAAkB,CAAC,GACnB,QACkC;AAClC,MAAI,KAAK,SAAS,QAAQ,KAAK,KAAK,SAAS,IAAI,GAAG;AAClD;AAAC,KAAC,GAAG,UAAU,QAAQ,KAAK,iBAAiB;AAC7C,WAAO,CAAC;AAAA,EACV;AACA,QAAM,CAAC,EAAE,MAAM,GAAG,EAAE,cAAc,CAAC,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,OAAO,eAAoB;AAAA,IAC3B,OAAO,KAAU;AAAA,EACnB,CAAC;AACD,QAAM,SACJ,UAAU,cAAc,IAAI,IAAI,qBAAqB,YAAY,GAAG,CAAC;AACvE,QAAM,SAAS,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AAC5D,UAAM,QAAQ,MAAM,WAAW,CAAC,QAAQ,GAAG,IAAI,GAAG;AAAA,MAChD,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,IAClC,CAAC;AACD,QAAI,SAAS;AACb,UAAM,OAAO,YAAY,MAAM;AAC/B,UAAM,OAAO,YAAY,MAAM;AAC/B,UAAM,OAAO,GAAG,QAAQ,CAAC,UAAkB;AACzC,gBAAU;AAAA,IACZ,CAAC;AACD,UAAM,OAAO,GAAG,QAAQ,CAAC,UAAkB;AACzC;AAAC,OAAC,GAAG,WAAW,CAAC,SAAS,QAAQ,OAAO,MAAM,IAAI,IAAI,KAAK;AAAA,IAC9D,CAAC;AACD,UAAM;AAAA,MAAG;AAAA,MAAS,MAChB,OAAO,IAAI,YAAY,4CAA4C,CAAC;AAAA,IACtE;AACA,UAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,UAAI,SAAS,GAAG;AACd,YAAI,OAAO,KAAK,MAAM,IAAI;AACxB;AAAC,WAAC,GAAG,UAAU,QAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,QAC3C;AACA;AAAA,UACE,IAAI;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,OAAO;AACL,gBAAQ,MAAM;AAAA,MAChB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,QAAM,SAAS,KAAK,MAAM,MAAM;AAC/B,GAAC,GAAG,UAAU,QAAQ,KAAK,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC3D,SAAO;AACT;;;ACnCA,IAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,EAA+R,iBAAiB;AAE9T,eAAsB,iBACpB,MACA,KAAkB,CAAC,GACnB,WAA6B,gBAM7B;AACA,MAAI,qBAAqB,IAAI,GAAG;AAC9B,WAAO,sBAAsB,MAAM,EAAE;AAAA,EACvC;AACA,QAAM,EAAE,cAAc,YAAY,IAAI,MAAM;AAAA,IAC1C;AAAA,IACA;AAAA,EACF;AACA,QAAM,WAAW,gBAAgB,MAAM,SAAS,YAAY,GAAG,YAAY;AAC3E,MAAI,YAAY,SAAS,QAAQ,GAAG;AAClC,WAAO,WAAW,UAAU,aAAa,EAAE;AAAA,EAC7C;AACA,SAAO,aAAa,UAAU,aAAa,IAAI,YAAY;AAC7D;AAEA,eAAsB,cACpB,MACA,KAAkB,CAAC,GACF;AACjB,SAAO,gBAAgB,MAAM,iBAAiB,MAAM,EAAE,GAAG,EAAE;AAC7D;AAEA,gBAAgB,YAAY,KAAK,MAAM,cAAc,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC;","names":[]}
package/dist/seedCli.js CHANGED
@@ -6,8 +6,8 @@ import {
6
6
  runIfEntrypoint,
7
7
  runRegistryMain,
8
8
  runSeedCli
9
- } from "./chunk-YKLSCOBE.js";
10
- import "./chunk-E2QXILJI.js";
9
+ } from "./chunk-GXD74YMV.js";
10
+ import "./chunk-GWX7C2CB.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.62.3",
3
+ "version": "0.62.4",
4
4
  "description": "Bitfab client for provider-based API calls with local BAML execution",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -194,7 +194,8 @@
194
194
  "files": [
195
195
  "dist",
196
196
  "transform-loader.cjs",
197
- "transform-loader.d.cts"
197
+ "transform-loader.d.cts",
198
+ "cloudReplay.py"
198
199
  ],
199
200
  "scripts": {
200
201
  "prebuild": "pnpm clean && tsx scripts/generate-version.ts",