bitfab-cli 0.2.256 → 0.2.257

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 +16 -0
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -28439,6 +28439,21 @@ var confirmTracePlan = {
28439
28439
  mockOnReplayByNodeId: external_exports.preprocess(parseJsonString, external_exports.record(external_exports.string(), external_exports.boolean())).optional().describe("Optional per-node overrides of the replay/mock decision (the equivalent of a Studio toggle). Omit to accept the server's analysis-derived defaults. The replay entry point (the top-most captured span) always re-runs live and cannot be mocked.")
28440
28440
  }
28441
28441
  };
28442
+ var updateTracePlan = {
28443
+ name: "update_trace_plan",
28444
+ title: "Update Trace Plan",
28445
+ description: "Change an EXISTING trace plan in place. Use this instead of create_trace_plan whenever a plan already exists for the work in hand (a Modify cycle bootstrapped via get_trace_plan, or an adjustment to a plan you just created): re-uploading produces a second plan competing for the same traceFunctionKey. Two mutually exclusive modes. TARGETED: pass `capture` / `uncapture` (node ids to add to or remove from the captured set) and/or `mockOnReplayByNodeId` (per-node replay/mock overrides) to adjust dispositions without restating the tree; deltas apply to the plan's current state, so they do not clobber a capture the user just saved in Studio. STRUCTURAL: pass `tree` plus `capturedNodeIds` together to replace the plan's whole node tree, for when the code changed and nodes must be added or removed. Sending both modes at once is an error. A structural update on a CONFIRMED plan reopens it to `awaiting`, because replacing the tree invalidates the user's acceptance, so you must confirm_trace_plan again afterwards or `setup view`/`setup modify` will not find a confirmed plan for that key; a targeted update leaves the status alone. Any update refreshes the plan's expiry, so it also revives an expired plan. The captured set must stay one connected sub-tree with exactly one entry point, and that entry point always re-runs live and can never be mocked. Returns the resulting plan exactly as get_trace_plan does, including the final captured set and per-node replay/mock decisions.",
28446
+ inputSchema: {
28447
+ planId: external_exports.string().describe("The trace plan id returned by create_trace_plan."),
28448
+ capture: external_exports.preprocess(parseJsonString, external_exports.array(external_exports.string())).optional().describe("TARGETED mode. Node ids to add to the captured set. Must reference ids present in the plan's tree. Cannot be combined with `tree` / `capturedNodeIds`."),
28449
+ uncapture: external_exports.preprocess(parseJsonString, external_exports.array(external_exports.string())).optional().describe("TARGETED mode. Node ids to remove from the captured set. Must reference ids present in the plan's tree. Removing a node that joins two captured branches leaves a disconnected capture set and is rejected. Cannot be combined with `tree` / `capturedNodeIds`."),
28450
+ mockOnReplayByNodeId: external_exports.preprocess(parseJsonString, external_exports.record(external_exports.string(), external_exports.boolean())).optional().describe("Per-node overrides of the replay/mock decision (the equivalent of a Studio toggle): true serves the span's recorded output on replay, false re-runs it live. Only the listed nodes change. Valid in either mode. The replay entry point cannot be mocked, and neither can a framework-observed (`kind: 'auto'`) span, since replay cannot short-circuit one."),
28451
+ tree: external_exports.preprocess(parseJsonString, tracePlanTreeShape).optional().describe("STRUCTURAL mode. The full replacement TracePlanTree, same shape and the same per-node `analysis` requirements as create_trace_plan. Send this only when the plan's nodes themselves change (code moved, a call was added or removed); to merely capture or mock differently use `capture` / `uncapture` / `mockOnReplayByNodeId`. Must be sent together with `capturedNodeIds`. `rootId` cannot be changed; to move the replay entry point, change which nodes are captured instead, an uncaptured tree root is honored and the top-most captured span becomes the entry."),
28452
+ capturedNodeIds: external_exports.preprocess(parseJsonString, external_exports.array(external_exports.string())).optional().describe("STRUCTURAL mode. The absolute captured set for the replacement `tree`, restated in full. Must reference ids present in that tree and form a single connected sub-tree with one entry point. Required with `tree`, and invalid without it."),
28453
+ traceFunctionKey: external_exports.string().min(1).optional().describe("Optional replacement trace function key, for when the key the plan was created with was wrong or is being renamed."),
28454
+ stats: external_exports.preprocess(parseJsonString, external_exports.unknown()).optional().describe("Optional sample-run stats: { durationMs?, tokens?, cost? }")
28455
+ }
28456
+ };
28442
28457
  var getTracePlan = {
28443
28458
  name: "get_trace_plan",
28444
28459
  title: "Get Trace Plan",
@@ -28523,6 +28538,7 @@ var ALL_TOOL_CONTRACTS = [
28523
28538
  saveTemplate,
28524
28539
  createTracePlan,
28525
28540
  confirmTracePlan,
28541
+ updateTracePlan,
28526
28542
  getTracePlan,
28527
28543
  listTracePlans
28528
28544
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bitfab-cli",
3
- "version": "0.2.256",
3
+ "version": "0.2.257",
4
4
  "description": "Install and configure the Bitfab plugin in Claude Code, Codex, or Cursor.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",