bitfab-cli 0.2.429 → 0.2.431

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.
Files changed (2) hide show
  1. package/dist/index.js +17 -6
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -28780,6 +28780,16 @@ var getSpanField = {
28780
28780
  offset: external_exports.preprocess(parseJsonString, external_exports.number().int().min(0)).optional().describe("Character position to start reading from (default 0). Pass the offset a previous response gave to read the next part of a long field.")
28781
28781
  }
28782
28782
  };
28783
+ var getSpan = {
28784
+ name: "get_span",
28785
+ title: "Get Span",
28786
+ description: `Read one span from its span ID alone, with no trace ID: the span's output, and the trace and traced function it belongs to, so you can follow up with get_traces, get_span_field, or get_trace_assertions. Accepts the Bitfab span ID (the \`[ID: ...]\` get_traces prints) or the span ID your code's SDK sent. The output is returned up to ${SPAN_READ_MAX_RESPONSE_CHARS} chars per call; when it is longer, the response says which offset reads the next part. A span that cannot be found names the organization that was searched, because a span from another organization reads as not found: switch organizations and try again.`,
28787
+ inputSchema: {
28788
+ spanId: external_exports.string().trim().min(1).max(256).describe("The span ID: Bitfab's span ID, or the span ID your code's SDK sent"),
28789
+ maxChars: external_exports.preprocess(parseJsonString, external_exports.number().int().positive()).optional().describe(`Maximum characters of the span's output to return (default and upper limit ${SPAN_READ_MAX_RESPONSE_CHARS}). Larger values are treated as ${SPAN_READ_MAX_RESPONSE_CHARS}.`),
28790
+ offset: external_exports.preprocess(parseJsonString, external_exports.number().int().min(0)).optional().describe("Character position in the span's output to start reading from (default 0). Pass the offset a previous response gave to read the next part of a long output.")
28791
+ }
28792
+ };
28783
28793
  var labelEvidenceShape = external_exports.preprocess(parseJsonString, external_exports.array(external_exports.object({
28784
28794
  spanId: external_exports.uuid(),
28785
28795
  text: external_exports.string().trim().min(1).max(1e4)
@@ -29239,6 +29249,7 @@ var ALL_TOOL_CONTRACTS = [
29239
29249
  getTraceLabels,
29240
29250
  generateLabelEvidence,
29241
29251
  getSpanField,
29252
+ getSpan,
29242
29253
  saveAgentLabels,
29243
29254
  saveHumanLabels,
29244
29255
  saveAssertionCategory,
@@ -29882,10 +29893,10 @@ var semver3 = __toESM(require_semver2(), 1);
29882
29893
 
29883
29894
  // ../bitfab-plugin-lib/dist/bakedSdkVersions.js
29884
29895
  var BAKED_SDK_VERSIONS = {
29885
- typescript: "0.64.13",
29886
- python: "0.64.13",
29887
- ruby: "0.64.11",
29888
- go: "0.64.12"
29896
+ typescript: "0.64.15",
29897
+ python: "0.64.15",
29898
+ ruby: "0.64.13",
29899
+ go: "0.64.14"
29889
29900
  };
29890
29901
 
29891
29902
  // ../bitfab-plugin-lib/dist/installedSdk.js
@@ -36630,7 +36641,7 @@ Never modify existing code on a refactor path without completing this three-step
36630
36641
  kind: "action",
36631
36642
  title: "Inspect the replay environment",
36632
36643
  toolCalls: ["bash", "read", "glob", "grep", "ask"],
36633
- body: `Cloud replay is the user's normal replay plus --cloud: every replay option works the same, the runner replays a snapshot of their working tree (changed files, plus new files git does not ignore) from the same directory, and the command prints the replay's progress and a short summary of its result (experiment ID and URL, replayed, same, changed, and errored counts, and each errored trace with its error), then exits with its exit code. Every trace's input and output are in the experiment in Bitfab, readable through the Bitfab MCP tools; --cloud-full-output prints the whole result instead. The code ships inside the SDK, and the repository keeps one file: .github/workflows/bitfab-replay.yml, which holds only settings.
36644
+ body: `Cloud replay is the user's normal replay plus --cloud: every replay option works the same, the runner replays a snapshot of their working tree (changed files, plus new files git does not ignore) from the same directory, and the command prints the replay's progress and a short summary of its result (experiment ID and URL, replayed, same, changed, and errored counts, and each errored trace with its error), then exits with its exit code. Every trace's input and output are in the experiment in Bitfab; read them through the Bitfab MCP tools, as after a local replay. --cloud-full-output prints the whole result instead, and is refused on a public repository. The code ships inside the SDK, and the repository keeps one file: .github/workflows/bitfab-replay.yml, which holds only settings.
36634
36645
 
36635
36646
  Run the installed SDK's bitfab-replay --cloud --help; if it does not list --cloud-preview, upgrade the SDK through bitfab:update first. Check that the git origin is github.com and that Python 3.10+ exists (macOS or Linux). GitHub access needs no GitHub CLI: the SDK uses gh when it is logged in, otherwise GH_TOKEN or GITHUB_TOKEN, otherwise the github.com credential git stores. When the repository still has .bitfab/cloud.json from an older SDK, the SDK says to delete it and the old workflow and run --cloud-init again; show the user the old file's settings first.
36636
36647
 
@@ -36664,7 +36675,7 @@ Each replay pushes a temporary bitfab-replay/<UUID> branch. For each push-trigge
36664
36675
 
36665
36676
  Verify with the replay command the user already runs. First add --cloud --cloud-preview, which pushes nothing and lists the changed and new files the snapshot would carry; review them for anything that should not leave the machine, since filename screening is not a secret scanner, and have the user gitignore it. Once the workflow is merged and secrets are set, and remote runs are authorized, run the same command with --cloud --dry-run: a real run that replays nothing but receives the secrets, stops on any empty secret, runs the --check command, and resolves the traces. Then, only when a replay is authorized, run with --cloud alone.
36666
36677
 
36667
- From an agent session always add --cloud-detach, since a replay can run for hours, and follow it with --cloud-watch <UUID> (prints the replay's progress and result summary and exits with its code), --cloud-status, --cloud-cancel, or --cloud-cleanup. --cloud-timeout <minutes> stops one replay early and keeps finished traces. --cloud-env NAME=VALUE (repeatable) sets a non-secret environment variable for one replay; secrets go in the workflow's env and --cloud-secrets. Report separately whether the workflow is written, secrets are set, the workflow is merged, the preview was reviewed, the dry run passed, and a real replay completed.`,
36678
+ From an agent session always add --cloud-detach, since a replay can run for hours, and follow it with --cloud-watch <UUID> (prints the replay's progress and result summary and exits with its code), --cloud-status, --cloud-cancel, or --cloud-cleanup. --cloud-timeout <minutes> stops one replay early and keeps finished traces. --cloud-env NAME=VALUE (repeatable) sets a non-secret environment variable for one replay; secrets go in the workflow's env and --cloud-secrets. When the snapshot refuses a credential-like file the user confirms is safe to upload, such as a test certificate, --cloud-allow-file <path> (repeatable, private repositories only) lets it in. Report separately whether the workflow is written, secrets are set, the workflow is merged, the preview was reviewed, the dry run passed, and a real replay completed.`,
36668
36679
  next: "cleanup/finish"
36669
36680
  }
36670
36681
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bitfab-cli",
3
- "version": "0.2.429",
3
+ "version": "0.2.431",
4
4
  "description": "Install and configure the Bitfab plugin in Claude Code, Codex, or Cursor, or the Bitfab skill pack in Amp (Alpha).",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",