bitfab-cli 0.2.483 → 0.2.484

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 +18 -11
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -31890,7 +31890,7 @@ async function runUpdate(currentVersion, platform2, mode = "all") {
31890
31890
  }
31891
31891
  }
31892
31892
 
31893
- // ../node_modules/.pnpm/@agent-flows+core@0.1.1_zod@4.6.7/node_modules/@agent-flows/core/dist/commands.js
31893
+ // ../node_modules/.pnpm/@agent-flows+core@0.1.2_zod@4.6.7/node_modules/@agent-flows/core/dist/commands.js
31894
31894
  function defineCommandCatalog(catalog) {
31895
31895
  return {
31896
31896
  defineCommands(defs) {
@@ -31912,7 +31912,7 @@ function defineCommandCatalog(catalog) {
31912
31912
  };
31913
31913
  }
31914
31914
 
31915
- // ../node_modules/.pnpm/@agent-flows+core@0.1.1_zod@4.6.7/node_modules/@agent-flows/core/dist/schema.js
31915
+ // ../node_modules/.pnpm/@agent-flows+core@0.1.2_zod@4.6.7/node_modules/@agent-flows/core/dist/schema.js
31916
31916
  var StepIdRef = external_exports.string().regex(/^[a-z0-9-]+\/[a-z0-9-]+$/, {
31917
31917
  message: "Step references must use the form 'phase-id/step-id'"
31918
31918
  });
@@ -32605,7 +32605,7 @@ function targetableFields(flow) {
32605
32605
  return out;
32606
32606
  }
32607
32607
 
32608
- // ../node_modules/.pnpm/@agent-flows+core@0.1.1_zod@4.6.7/node_modules/@agent-flows/core/dist/mermaid.js
32608
+ // ../node_modules/.pnpm/@agent-flows+core@0.1.2_zod@4.6.7/node_modules/@agent-flows/core/dist/mermaid.js
32609
32609
  function diagramValue(value, target) {
32610
32610
  const resolved = resolvePerTarget(value, target ?? "default");
32611
32611
  if (resolved !== void 0 || typeof value !== "object" || value === null) {
@@ -32815,7 +32815,7 @@ function describeFlow(flow, target) {
32815
32815
  return lines.join("\n");
32816
32816
  }
32817
32817
 
32818
- // ../node_modules/.pnpm/@agent-flows+core@0.1.1_zod@4.6.7/node_modules/@agent-flows/core/dist/render.js
32818
+ // ../node_modules/.pnpm/@agent-flows+core@0.1.2_zod@4.6.7/node_modules/@agent-flows/core/dist/render.js
32819
32819
  function s(value, target, label) {
32820
32820
  return resolveTargetableString(value, target, label);
32821
32821
  }
@@ -33875,7 +33875,7 @@ function ensureTrailingNewline(text2) {
33875
33875
  `;
33876
33876
  }
33877
33877
 
33878
- // ../node_modules/.pnpm/@agent-flows+core@0.1.1_zod@4.6.7/node_modules/@agent-flows/core/dist/kit.js
33878
+ // ../node_modules/.pnpm/@agent-flows+core@0.1.2_zod@4.6.7/node_modules/@agent-flows/core/dist/kit.js
33879
33879
  var NAME_RE = /^[a-z][a-z0-9-]*$/;
33880
33880
  function createFlowKit(config4) {
33881
33881
  const targetNames = Object.keys(config4.targets);
@@ -34007,7 +34007,7 @@ function resolveOutputPath(output2, file2) {
34007
34007
  return `${dirname(skillDir)}/${basename(skillDir)}-${file2.slug}/${basename(main2)}`;
34008
34008
  }
34009
34009
 
34010
- // ../node_modules/.pnpm/@agent-flows+core@0.1.1_zod@4.6.7/node_modules/@agent-flows/core/dist/targets.js
34010
+ // ../node_modules/.pnpm/@agent-flows+core@0.1.2_zod@4.6.7/node_modules/@agent-flows/core/dist/targets.js
34011
34011
  function formatAllowedTools(allowedTools) {
34012
34012
  return `[${allowedTools.map((t) => JSON.stringify(t)).join(", ")}]`;
34013
34013
  }
@@ -34058,6 +34058,13 @@ var ASK_USER_QUESTION_TOKENS = {
34058
34058
  askVerbCap: "Use `AskUserQuestion`",
34059
34059
  askNoun: "AskUserQuestion"
34060
34060
  };
34061
+ var ASK_QUESTION_FALLBACK = "in plain text with lettered options";
34062
+ var CURSOR_ASK_QUESTION_TOKENS = {
34063
+ askUser: `with \`AskQuestion\` (or ${ASK_QUESTION_FALLBACK} if it is not available) `,
34064
+ askVerb: `use \`AskQuestion\` (or, if it is not available, ask ${ASK_QUESTION_FALLBACK})`,
34065
+ askVerbCap: `Use \`AskQuestion\` (or, if it is not available, ask ${ASK_QUESTION_FALLBACK})`,
34066
+ askNoun: "AskQuestion"
34067
+ };
34061
34068
  var PLAIN_PROMPT_TOKENS = {
34062
34069
  askUser: "",
34063
34070
  askVerb: "ask the user",
@@ -34095,7 +34102,7 @@ function cursor(options) {
34095
34102
  // biome-ignore lint/suspicious/noTemplateCurlyInString: shell variable rendered into skill markdown
34096
34103
  pluginRoot: "${CURSOR_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}",
34097
34104
  pluginDirLookup: "",
34098
- ...ASK_USER_QUESTION_TOKENS,
34105
+ ...CURSOR_ASK_QUESTION_TOKENS,
34099
34106
  ...options.tokens
34100
34107
  },
34101
34108
  mcpPrefix: options.mcpPrefix ?? (options.mcpServer !== void 0 ? `mcp__${options.mcpServer}__` : ""),
@@ -34791,7 +34798,7 @@ var setupFlow = bitfabKit.defineFlow({
34791
34798
  getTemplate: { kind: "mcp", name: "get_template" },
34792
34799
  saveTemplate: { kind: "mcp", name: "save_template" }
34793
34800
  },
34794
- intro: `{{#ask-user-question}}**Always use \`AskUserQuestion\` when asking questions or presenting choices** (one exception: a step that explicitly says its answer is free-form, such as asking which file or function to instrument once the user has said they know, asks in plain chat and waits, because a menu there would stand between the user and the answer only they hold). Never print a question as text and wait.{{/ask-user-question}}{{^ask-user-question}}**When the flow branches, always present the options clearly and wait for the user's answer before proceeding.** Number or letter the options so the user can pick by reference.{{/ask-user-question}} Rules:
34801
+ intro: `{{#ask-user-question}}**Always {{askVerb}} when asking questions or presenting choices** (one exception: a step that explicitly says its answer is free-form, such as asking which file or function to instrument once the user has said they know, asks in plain chat and waits, because a menu there would stand between the user and the answer only they hold). Never print a question as text and wait.{{/ask-user-question}}{{^ask-user-question}}**When the flow branches, always present the options clearly and wait for the user's answer before proceeding.** Number or letter the options so the user can pick by reference.{{/ask-user-question}} Rules:
34795
34802
  - Recommend an option first, explain why in one line
34796
34803
  - Present 2-5 concrete options
34797
34804
  - One decision per question, never batch
@@ -34894,7 +34901,7 @@ If the block prints \`ERROR: Bitfab plugin not installed\`, the user hasn't inst
34894
34901
 
34895
34902
  2. **Present the plan verbatim** to the user, in the same format above.
34896
34903
 
34897
- 3. **{{#ask-user-question}}AskUserQuestion{{/ask-user-question}}{{^ask-user-question}}Ask the user{{/ask-user-question}}** with exactly two options:
34904
+ 3. **{{askVerbCap}}** with exactly two options:
34898
34905
  - **"Apply refactor"**: proceed to write the changes
34899
34906
  - **"Cancel"**: return to the previous {{askNoun}} (Instrument's workflow-selection (a)/(b)/(c), or Replay's non-replayable-root three-option prompt) so the user can pick a different resolution
34900
34907
 
@@ -35072,7 +35079,7 @@ Save the answer (replace \`CONSENT\` with \`true\` or \`false\`):
35072
35079
  id: "overview",
35073
35080
  kind: "action",
35074
35081
  title: "Explain the primitives, and in `explain` mode the modes too",
35075
- body: `Render the block below **verbatim** as a single message, as formatted markdown (do **not** wrap it in a code fence, do **not** reword it, and do **not** add a summary or an ASCII diagram). This is the education the rest of setup depends on: a user who does not understand \`withTrace\`, \`withNode\`, and \`replay\` cannot make the capture and replay decisions instrumentation asks of them. Do **not** authenticate, scan the codebase, {{#ask-user-question}}use AskUserQuestion{{/ask-user-question}}{{^ask-user-question}}ask any questions{{/ask-user-question}}, or edit anything here, in either mode.
35082
+ body: `Render the block below **verbatim** as a single message, as formatted markdown (do **not** wrap it in a code fence, do **not** reword it, and do **not** add a summary or an ASCII diagram). This is the education the rest of setup depends on: a user who does not understand \`withTrace\`, \`withNode\`, and \`replay\` cannot make the capture and replay decisions instrumentation asks of them. Do **not** authenticate, scan the codebase, {{#ask-user-question}}use {{askNoun}}{{/ask-user-question}}{{^ask-user-question}}ask any questions{{/ask-user-question}}, or edit anything here, in either mode.
35076
35083
 
35077
35084
  \`\`\`markdown
35078
35085
  **Purpose**
@@ -36958,7 +36965,7 @@ var setupV2Flow = bitfabKit.defineFlow({
36958
36965
  },
36959
36966
  intro: `Run the selected setup mode entirely in this terminal.
36960
36967
 
36961
- - Use AskUserQuestion for every user choice or clarification; never print a question and wait.
36968
+ - {{askVerbCap}} for every user choice or clarification; never print a question and wait.
36962
36969
  - Recommend one option first and ask one decision at a time.
36963
36970
  - Take agent-decision branches only from directly observed repository or Bitfab state.
36964
36971
  - Render diffs, diagnostics, and templates inline. Product UI review is not part of this flow.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bitfab-cli",
3
- "version": "0.2.483",
3
+ "version": "0.2.484",
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",