@boopkit/cli 0.6.15 → 0.6.17

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "@boopkit/cap-api": "0.4.5",
3
3
  "@boopkit/cap-background-jobs": "0.4.3",
4
- "@boopkit/cap-cloud-storage": "0.4.1",
4
+ "@boopkit/cap-cloud-storage": "0.5.0",
5
5
  "@boopkit/cap-coding": "0.4.6",
6
6
  "@boopkit/cap-database": "0.4.4",
7
7
  "@boopkit/cap-email": "0.4.3",
@@ -9,7 +9,7 @@
9
9
  "@boopkit/cap-noticeboard": "0.4.1",
10
10
  "@boopkit/cap-oauth-client": "0.1.1",
11
11
  "@boopkit/cap-oauth-server": "0.1.4",
12
- "@boopkit/cap-product-design": "0.6.9",
12
+ "@boopkit/cap-product-design": "0.6.10",
13
13
  "@boopkit/cap-project-mgmt": "0.4.11",
14
14
  "@boopkit/cap-services": "0.4.3",
15
15
  "@boopkit/cap-skills": "0.5.6",
package/dist/cli.js CHANGED
@@ -128,7 +128,7 @@ program
128
128
  .option('--run', 'actually execute (dry-run by default)')
129
129
  .option('--max <n>', 'stop after N issues')
130
130
  .option('--budget <amount>', `budget cap per issue in USD (default: ${loop_1.DEFAULT_BUDGET_USD})`)
131
- .option('--model <model>', 'Claude model to use, applied to every spawned session and nested loop (falls back to $ANTHROPIC_MODEL, then claude-opus-5). Sub-agents keep their own declared model unless they opt into model: inherit.')
131
+ .option('--model <model>', 'Claude model to use, applied to every spawned session and nested loop (falls back to $ANTHROPIC_MODEL, then claude-opus-5-5). Sub-agents keep their own declared model unless they opt into model: inherit.')
132
132
  .option('--poll', 'keep polling when no ready issues found')
133
133
  .option('--poll-interval <seconds>', 'seconds between polls (default: 60)')
134
134
  .option('--resume-limit <n>', 'max resume attempts per issue (default: 3)')
@@ -161,10 +161,19 @@ export declare function isStandaloneUsageLimitMessage(text: string): boolean;
161
161
  * the `ANTHROPIC_MODEL` environment variable, then the built-in default. The env
162
162
  * fallback is what lets a nested `boop loop` (spawned by a Claude session that
163
163
  * the parent loop launched with ANTHROPIC_MODEL set) inherit the same model
164
- * instead of silently dropping to the default. Keep the default (claude-opus-5)
164
+ * instead of silently dropping to the default. Keep the default (claude-opus-5-5)
165
165
  * in sync with the `--model` help text in cli.ts.
166
166
  */
167
+ export declare const DEFAULT_MODEL = "claude-opus-5-5";
167
168
  export declare function resolveModel(optionModel: string | undefined, env?: NodeJS.ProcessEnv): string;
169
+ /**
170
+ * A notice for when ANTHROPIC_MODEL, not the flag or the default, decided the
171
+ * model — so an operator who forgot the variable in their shell sees why the
172
+ * run is not on the default. Silent when --model is given (the variable is
173
+ * ignored) and when the variable matches the default, which is what a nested
174
+ * loop under a default-model parent inherits.
175
+ */
176
+ export declare function modelEnvNotice(optionModel: string | undefined, env?: NodeJS.ProcessEnv): string | undefined;
168
177
  /**
169
178
  * Whether the loop should resume an issue that a session left open. A `blocked`
170
179
  * issue was deliberately halted by the prior session because it judged it could
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.RESUME_PROMPT = exports.DEFAULT_BUDGET_USD = exports.BD_READ_MAX_BUFFER = void 0;
36
+ exports.RESUME_PROMPT = exports.DEFAULT_BUDGET_USD = exports.DEFAULT_MODEL = exports.BD_READ_MAX_BUFFER = void 0;
37
37
  exports.assertDoltServerMode = assertDoltServerMode;
38
38
  exports.discoverDoltServer = discoverDoltServer;
39
39
  exports.resolveDefaultBranch = resolveDefaultBranch;
@@ -46,6 +46,7 @@ exports.extractFeatureId = extractFeatureId;
46
46
  exports.isUsageLimitText = isUsageLimitText;
47
47
  exports.isStandaloneUsageLimitMessage = isStandaloneUsageLimitMessage;
48
48
  exports.resolveModel = resolveModel;
49
+ exports.modelEnvNotice = modelEnvNotice;
49
50
  exports.shouldResumeUnclosedIssue = shouldResumeUnclosedIssue;
50
51
  exports.isIssueInScope = isIssueInScope;
51
52
  exports.isClaimableReadyIssue = isClaimableReadyIssue;
@@ -658,11 +659,25 @@ function findClaudeBinary() {
658
659
  * the `ANTHROPIC_MODEL` environment variable, then the built-in default. The env
659
660
  * fallback is what lets a nested `boop loop` (spawned by a Claude session that
660
661
  * the parent loop launched with ANTHROPIC_MODEL set) inherit the same model
661
- * instead of silently dropping to the default. Keep the default (claude-opus-5)
662
+ * instead of silently dropping to the default. Keep the default (claude-opus-5-5)
662
663
  * in sync with the `--model` help text in cli.ts.
663
664
  */
665
+ exports.DEFAULT_MODEL = 'claude-opus-5-5';
664
666
  function resolveModel(optionModel, env = process.env) {
665
- return optionModel || env.ANTHROPIC_MODEL || 'claude-opus-5';
667
+ return optionModel || env.ANTHROPIC_MODEL || exports.DEFAULT_MODEL;
668
+ }
669
+ /**
670
+ * A notice for when ANTHROPIC_MODEL, not the flag or the default, decided the
671
+ * model — so an operator who forgot the variable in their shell sees why the
672
+ * run is not on the default. Silent when --model is given (the variable is
673
+ * ignored) and when the variable matches the default, which is what a nested
674
+ * loop under a default-model parent inherits.
675
+ */
676
+ function modelEnvNotice(optionModel, env = process.env) {
677
+ const envModel = env.ANTHROPIC_MODEL;
678
+ if (optionModel || !envModel || envModel === exports.DEFAULT_MODEL)
679
+ return undefined;
680
+ return `Using model ${envModel} from $ANTHROPIC_MODEL (default is ${exports.DEFAULT_MODEL}; pass --model to override)`;
666
681
  }
667
682
  /**
668
683
  * Whether the loop should resume an issue that a session left open. A `blocked`
@@ -1232,6 +1247,9 @@ async function runLoop(options) {
1232
1247
  const resumeLimit = parseInt(options.resumeLimit || '3', 10);
1233
1248
  const pollInterval = parseInt(options.pollInterval || '60', 10);
1234
1249
  const model = resolveModel(options.model);
1250
+ const envNotice = modelEnvNotice(options.model);
1251
+ if (envNotice)
1252
+ console.log(`\x1b[33m[bd-loop]\x1b[0m ${envNotice}`);
1235
1253
  const perIssueBranch = options.perIssueBranch || false;
1236
1254
  const noBranch = options.branch === false;
1237
1255
  let includeFeatures = options.features || false;
package/docs/loop.md CHANGED
@@ -52,7 +52,7 @@ If `--prefix` is also provided, it is passed to the planning session as a naming
52
52
  | `--resume-limit <n>` | `3` | Maximum resume attempts if issue isn't closed |
53
53
  | `--poll` | off | Keep polling when no ready issues found |
54
54
  | `--poll-interval <s>` | `60` | Seconds between polls |
55
- | `--model <model>` | `claude-opus-5` | Claude model to use (falls back to `$ANTHROPIC_MODEL`, then this default) |
55
+ | `--model <model>` | `claude-opus-5-5` | Claude model to use (falls back to `$ANTHROPIC_MODEL`, then this default) |
56
56
  | `--per-issue-branch` | off | Create a `fix/<issue-id>` branch per issue (nested inside the worktree) |
57
57
  | `--reuse-session` | off | (`--prefix` only) Reuse one Claude session across a coherent run of issues, rotating to a fresh session when its context fills. Mutually exclusive with `--per-issue-branch` |
58
58
  | `--no-branch` | off | Opt out of worktree isolation; run in-place on the current branch |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boopkit/cli",
3
- "version": "0.6.15",
3
+ "version": "0.6.17",
4
4
  "description": "boop: the opinionated bootstrap for founder friendly, AI-first web apps - code plus agent skills, composable from day one.",
5
5
  "main": "dist/cli.js",
6
6
  "workspaces": [