@axiomatic-labs/claudeflow 2.34.2 → 2.34.4

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/bin/cli.js +35 -2
  2. package/package.json +1 -1
package/bin/cli.js CHANGED
@@ -24,6 +24,8 @@ const SUBCOMMANDS = new Set([
24
24
  "version",
25
25
  "--version",
26
26
  "-v",
27
+ "panel",
28
+ "prototype",
27
29
  "help",
28
30
  "--help",
29
31
  "-h",
@@ -41,7 +43,26 @@ function inClaudeflowProject(startDir) {
41
43
  }
42
44
  }
43
45
 
44
- async function runSubcommand(command) {
46
+ // Terminal shortcut for a project-local server (run-control panel / prototype studio) — runs the SAME
47
+ // server the matching skill runs (scripts/claudeflow/<server>, installed in the project). Passes extra
48
+ // args through (--stop / --stop-all / --restart); defaults to --open. Exits with the server's status.
49
+ function launchServer(serverFile, args) {
50
+ const cwd = process.cwd();
51
+ const server = path.join(cwd, "scripts", "claudeflow", serverFile);
52
+ if (!fs.existsSync(server)) {
53
+ console.error(
54
+ `Not a claudeflow project here (no scripts/claudeflow/${serverFile}). Run \`claudeflow install\` first.`,
55
+ );
56
+ process.exit(1);
57
+ }
58
+ const { spawnSync } = require("child_process");
59
+ const extra = args.slice(1); // args after the subcommand
60
+ const py = extra.length ? extra : ["--open"];
61
+ const r = spawnSync("python3", [server, "--root", cwd, ...py], { stdio: "inherit" });
62
+ process.exit(r.status == null ? 1 : r.status);
63
+ }
64
+
65
+ async function runSubcommand(command, args = []) {
45
66
  switch (command) {
46
67
  case "install": {
47
68
  const install = require("../lib/install.js");
@@ -55,6 +76,12 @@ async function runSubcommand(command) {
55
76
  await version();
56
77
  return;
57
78
  }
79
+ case "panel":
80
+ // Run-control panel — same server as the /claudeflow-panel skill.
81
+ return launchServer("panel_server.py", args);
82
+ case "prototype":
83
+ // Prototype studio — same server as the /claudeflow-prototype skill's view.
84
+ return launchServer("prototype_server.py", args);
58
85
  case "help":
59
86
  case "--help":
60
87
  case "-h":
@@ -68,6 +95,12 @@ async function runSubcommand(command) {
68
95
  ` ${ui.CYAN}install${ui.RESET} Install or update Claudeflow in the current project`,
69
96
  );
70
97
  console.log(` ${ui.CYAN}version${ui.RESET} Show version info`);
98
+ console.log(
99
+ ` ${ui.CYAN}panel${ui.RESET} Open this project's run-control panel (same server as /claudeflow-panel; --stop/--restart pass through)`,
100
+ );
101
+ console.log(
102
+ ` ${ui.CYAN}prototype${ui.RESET} Open this project's prototype studio (same server as /claudeflow-prototype; --stop/--restart pass through)`,
103
+ );
71
104
  console.log(` ${ui.CYAN}help${ui.RESET} Show this message`);
72
105
  console.log("");
73
106
  console.log(" Any other arguments are passed through to `claude`, with");
@@ -100,7 +133,7 @@ async function main() {
100
133
  const first = args[0];
101
134
 
102
135
  if (first && SUBCOMMANDS.has(first)) {
103
- await runSubcommand(first);
136
+ await runSubcommand(first, args);
104
137
  return;
105
138
  }
106
139
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiomatic-labs/claudeflow",
3
- "version": "2.34.2",
3
+ "version": "2.34.4",
4
4
  "description": "Claudeflow — AI-powered development toolkit for Claude Code. Skills, agents, hooks, and quality gates that ship production apps.",
5
5
  "bin": {
6
6
  "claudeflow": "./bin/cli.js"