@morebeans/cli 2.3.5 → 2.4.0

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/index.ts +19 -6
  2. package/package.json +1 -1
package/index.ts CHANGED
@@ -15,7 +15,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
15
15
  import { join, resolve } from "path";
16
16
  import { homedir } from "os";
17
17
 
18
- const VERSION = "2.3.5";
18
+ const VERSION = "2.4.0";
19
19
  const BEANS_HOME = join(homedir(), ".beans");
20
20
  const BEANS_CONFIG = join(BEANS_HOME, "config.json");
21
21
 
@@ -221,8 +221,12 @@ async function cmdInit() {
221
221
  const commandsDir = join(cwd, ".claude/commands");
222
222
  mkdirSync(commandsDir, { recursive: true });
223
223
 
224
- // Register the BEANS commands
225
- const beansCommands = ["beans.md", "beans-status.md", "beans-land.md", "beans-agents.md"];
224
+ // Register ALL BEANS commands (core + phase commands)
225
+ const beansCommands = [
226
+ "beans.md", "beans-status.md", "beans-land.md", "beans-agents.md",
227
+ "beans-new.md", "beans-research.md", "beans-requirements.md",
228
+ "beans-design.md", "beans-tasks.md", "beans-implement.md"
229
+ ];
226
230
  for (const cmd of beansCommands) {
227
231
  const src = join(pluginSource, "commands", cmd);
228
232
  if (existsSync(src)) {
@@ -230,13 +234,22 @@ async function cmdInit() {
230
234
  }
231
235
  }
232
236
 
237
+ // Install beans-loop script to ~/.local/bin
238
+ const loopScript = join(beansHome, "scripts/beans-loop.sh");
239
+ const localBin = join(homedir(), ".local/bin");
240
+ if (existsSync(loopScript)) {
241
+ mkdirSync(localBin, { recursive: true });
242
+ await $`cp ${loopScript} ${join(localBin, "beans-loop")}`.nothrow();
243
+ await $`chmod +x ${join(localBin, "beans-loop")}`.nothrow();
244
+ }
245
+
233
246
  // Copy settings.json if not exists
234
247
  const settingsSrc = join(pluginSource, "settings.json");
235
248
  const settingsDest = join(cwd, ".claude/settings.json");
236
249
  if (existsSync(settingsSrc) && !existsSync(settingsDest)) {
237
250
  await $`cp ${settingsSrc} ${settingsDest}`.nothrow();
238
251
  }
239
- success("Commands registered (4 BEANS commands)");
252
+ success("Commands registered (10 BEANS commands + beans-loop)");
240
253
 
241
254
  // Initialize beads issue tracker (uses .beans directory now)
242
255
  info("Initializing issue tracker...");
@@ -270,9 +283,9 @@ async function cmdInit() {
270
283
  log(`\n${c.green}${c.bold}✅ BEANS initialized!${c.reset}\n`);
271
284
  log("Next steps:");
272
285
  log(` ${c.cyan}beans doctor${c.reset} # Verify setup`);
273
- log(` ${c.cyan}beans config${c.reset} # Configure API keys`);
274
- log(` ${c.cyan}/beans${c.reset} # In Claude Code: start building`);
286
+ log(` ${c.cyan}/beans:new${c.reset} # Create new spec with PRD flow`);
275
287
  log(` ${c.cyan}/beans:agents${c.reset} # Browse 127+ specialized subagents`);
288
+ log(` ${c.cyan}beans-loop${c.reset} # Autonomous execution (bash)`);
276
289
  log("");
277
290
  }
278
291
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morebeans/cli",
3
- "version": "2.3.5",
3
+ "version": "2.4.0",
4
4
  "description": "BEANS CLI - Setup and configure autonomous development for Claude Code",
5
5
  "type": "module",
6
6
  "main": "index.ts",