@mozole/cli 1.1.0 → 1.1.1

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.
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  - npm
9
9
  - Windows or Linux (WSL is optional, not required)
10
10
  - Git is recommended
11
- - For CCE: Python 3.11+, a C/C++ build toolchain, CMake, and either `uvx` or an installed `cce`; `mozole cce install` can install the official `uv` package system-wide
11
+ - For CCE: Python 3.11+, a C/C++ build toolchain, and CMake; `mozole cce install` installs the required `uv` runtime and persistent `cce` tool
12
12
 
13
13
  ```sh
14
14
  npm install --global @mozole/cli
@@ -80,7 +80,7 @@ Doctor reports platform/runtime, Git, Codex, Claude Code, Antigravity, CCE, Chro
80
80
  mozole cce install
81
81
  ```
82
82
 
83
- CCE uses the pinned `uvx` fallback when a direct `cce` executable is not available. This explicit command installs the official `uv` package system-wide through the native package manager (WinGet on Windows; pacman, apt, dnf, or zypper on Linux), then verifies that `uvx` can run the pinned CCE release. Mozole does not install privileged tools during `npm install`.
83
+ This command installs the official `uv` package through the native system package manager (WinGet on Windows; pacman, apt, dnf, or zypper on Linux), then uses `uv tool install` to persist the pinned `cce` executable for the current user. It does not create a project Python virtual environment. The CCE tool and its compatible MCP runtime are pinned together; Mozole resolves the resulting executable directly for agent MCP configuration, even before a newly opened shell has refreshed `PATH`.
84
84
 
85
85
  ### Deterministic verification
86
86
 
@@ -120,7 +120,7 @@ cce init --agent all
120
120
 
121
121
  If only `uvx` exists, it runs the equivalent pinned `uvx --from code-context-engine[local]==0.4.25 --with mcp==1.29.1 ...` invocation. The explicit MCP pin keeps CCE's documented server API compatible even when newer MCP releases are available. CCE builds incremental vector, lexical, and code-graph indexes, registers MCP for supported agents, and exposes `cce status`, `cce search`, and `cce savings`. Source remains local under CCE's default configuration. If setup cannot finish, the project still works and `mozole doctor` reports the gap.
122
122
 
123
- When adopting a project with CCE enabled, Mozole requires a runnable CCE runtime before it writes the managed MCP entry or reports success. If neither `cce` nor `uvx` is available, run `mozole cce install` once and repeat adoption. The adopted MCP entry uses the resolved executable, including an absolute path when the OS package manager has installed `uvx` but the current process PATH has not refreshed yet.
123
+ When adopting a project with CCE enabled, Mozole requires a runnable CCE runtime before it writes the managed MCP entry or reports success. If neither `cce` nor `uvx` is available, run `mozole cce install` once and repeat adoption. The adopted MCP entry uses the resolved executable, including the persistent `cce` path when a newly opened shell has not refreshed `PATH` yet; a pinned `uvx` fallback remains supported for existing installations.
124
124
 
125
125
  CCE normally writes its own instruction blocks during initialization. Mozole snapshots and restores `AGENTS.md` and `CLAUDE.md` around that operation: the index, hooks, and MCP registrations remain, while the compact shared project guidance stays the sole instruction source.
126
126
 
@@ -132,7 +132,7 @@ Generated `AGENTS.md` is intentionally short: commands, architecture, verificati
132
132
  mozole ui
133
133
  ```
134
134
 
135
- The terminal UI is a small interactive menu for Doctor, Verify, screenshot-free QA, and Stats. It uses Node's native readline API and is intentionally unavailable in non-interactive CI; use the individual commands there.
135
+ The terminal UI is a full-screen ANSI command deck: color panels, keyboard navigation, current operation status, and a bounded activity feed. It can run Doctor, Verify, screenshot-free QA, Stats, CCE installation, project creation, and adoption. `q` restores the original terminal buffer; it is intentionally unavailable in non-interactive CI, where individual commands remain the right interface.
136
136
 
137
137
  ## Google Antigravity
138
138
 
@@ -7,7 +7,7 @@ export async function cceInstallCommand(cwd, output = console) {
7
7
  try {
8
8
  const runtime = await installCceRuntime(cwd, controller.signal);
9
9
  await requireCceRuntime(cwd, controller.signal);
10
- output.log(`CCE READY\n\nRuntime ${runtime.prefix.length ? "pinned uvx fallback" : "cce executable"}\nCommand ${runtime.command}`);
10
+ output.log(`CCE READY\n\nRuntime persistent CCE tool\nCommand ${runtime.command}`);
11
11
  return 0;
12
12
  }
13
13
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"cce.js","sourceRoot":"","sources":["../../src/commands/cce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,MAAM,GAAW,OAAO;IAExB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CACR,yBAAyB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,cAAc,OAAO,CAAC,OAAO,EAAE,CACzH,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChF,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cce.js","sourceRoot":"","sources":["../../src/commands/cce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,MAAM,GAAW,OAAO;IAExB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CACR,uDAAuD,OAAO,CAAC,OAAO,EAAE,CACzE,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChF,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -1,8 +1,31 @@
1
1
  import type { Output } from "../output.js";
2
+ type TerminalInput = NodeJS.ReadableStream & {
3
+ isTTY?: boolean;
4
+ setRawMode?: (enabled: boolean) => void;
5
+ pause?: () => void;
6
+ resume?: () => void;
7
+ };
8
+ type TerminalOutput = NodeJS.WritableStream & {
9
+ columns?: number;
10
+ rows?: number;
11
+ isTTY?: boolean;
12
+ };
13
+ export interface UiFrameState {
14
+ cwd: string;
15
+ selected: number;
16
+ busy?: string;
17
+ lastResult?: string;
18
+ log: string[];
19
+ }
2
20
  export declare function uiMenuText(): string;
21
+ export declare function uiDashboardFrame(state: UiFrameState, dimensions: {
22
+ columns: number;
23
+ rows: number;
24
+ }, color?: boolean): string;
3
25
  export declare function uiCommand(cwd: string, output?: Output, streams?: {
4
- input?: NodeJS.ReadableStream;
5
- output?: NodeJS.WritableStream;
26
+ input?: TerminalInput;
27
+ output?: TerminalOutput;
6
28
  interactive?: boolean;
7
29
  }): Promise<number>;
30
+ export {};
8
31
  //# sourceMappingURL=ui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAM3C,wBAAgB,UAAU,IAAI,MAAM,CAWnC;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAgB,EACxB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;CAClB,GACL,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAS3C,KAAK,aAAa,GAAG,MAAM,CAAC,cAAc,GAAG;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AA0GD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC7C,KAAK,UAAO,GACX,MAAM,CA2CR;AAqCD,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAgB,EACxB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CAClB,GACL,OAAO,CAAC,MAAM,CAAC,CA+HjB"}
@@ -1,60 +1,281 @@
1
+ import path from "node:path";
1
2
  import { stdin, stdout } from "node:process";
2
3
  import { createInterface } from "node:readline/promises";
4
+ import { adoptCommand } from "./adopt.js";
5
+ import { cceInstallCommand } from "./cce.js";
3
6
  import { doctorCommand } from "./doctor.js";
7
+ import { newCommand } from "./new.js";
4
8
  import { qaCommand } from "./qa.js";
5
9
  import { statsCommand } from "./stats.js";
6
10
  import { verifyCommand } from "./verify.js";
7
- export function uiMenuText() {
11
+ const actions = [
12
+ {
13
+ label: "Doctor",
14
+ detail: "Inspect project and runtime health",
15
+ key: "1",
16
+ kind: "command",
17
+ run: doctorCommand,
18
+ },
19
+ {
20
+ label: "Verify",
21
+ detail: "Run lint, types, tests and build",
22
+ key: "2",
23
+ kind: "command",
24
+ run: verifyCommand,
25
+ },
26
+ {
27
+ label: "QA",
28
+ detail: "Run screenshot-free browser probes",
29
+ key: "3",
30
+ kind: "command",
31
+ run: (cwd, output) => qaCommand(cwd, { interactive: false, visual: false }, output),
32
+ },
33
+ {
34
+ label: "Stats",
35
+ detail: "Read local efficiency telemetry",
36
+ key: "4",
37
+ kind: "command",
38
+ run: statsCommand,
39
+ },
40
+ {
41
+ label: "Install CCE",
42
+ detail: "Persist uv + CCE for this user",
43
+ key: "5",
44
+ kind: "install",
45
+ },
46
+ {
47
+ label: "New project",
48
+ detail: "Create a static-first application",
49
+ key: "6",
50
+ kind: "create",
51
+ },
52
+ {
53
+ label: "Adopt project",
54
+ detail: "Add Mozole to an existing app",
55
+ key: "7",
56
+ kind: "adopt",
57
+ },
58
+ {
59
+ label: "Exit",
60
+ detail: "Return to your shell",
61
+ key: "8",
62
+ kind: "exit",
63
+ },
64
+ ];
65
+ const ansi = {
66
+ alternateEnter: "\u001B[?1049h",
67
+ alternateExit: "\u001B[?1049l",
68
+ clear: "\u001B[2J\u001B[H",
69
+ cursorHide: "\u001B[?25l",
70
+ cursorShow: "\u001B[?25h",
71
+ reset: "\u001B[0m",
72
+ };
73
+ const ansiSequence = new RegExp(`${String.fromCharCode(27)}\\[[0-?]*[ -/]*[@-~]`, "g");
74
+ function paint(value, code, color) {
75
+ return color ? `\u001B[${code}m${value}${ansi.reset}` : value;
76
+ }
77
+ function clamp(value, width) {
78
+ if (width < 2)
79
+ return "";
80
+ const plain = value.replace(ansiSequence, "");
81
+ return plain.length <= width
82
+ ? `${value}${" ".repeat(width - plain.length)}`
83
+ : `${plain.slice(0, Math.max(0, width - 1))}…`;
84
+ }
85
+ function box(lines, width, color) {
86
+ const inner = Math.max(10, width - 2);
87
+ const border = paint("─".repeat(inner), 38, color);
8
88
  return [
9
- "Mozole",
89
+ `${paint("", 38, color)}${border}${paint("╮", 38, color)}`,
90
+ ...lines.map((line) => `${paint("│", 38, color)}${clamp(line, inner)}${paint("│", 38, color)}`),
91
+ `${paint("╰", 38, color)}${border}${paint("╯", 38, color)}`,
92
+ ];
93
+ }
94
+ export function uiMenuText() {
95
+ return actions.map((action) => `${action.key} ${action.label}`).join("\n");
96
+ }
97
+ export function uiDashboardFrame(state, dimensions, color = true) {
98
+ const width = Math.max(48, dimensions.columns - 2);
99
+ const height = Math.max(20, dimensions.rows);
100
+ const title = paint("M O Z O L E", 96, color);
101
+ const subtitle = paint("COMMAND DECK", 95, color);
102
+ const header = [
103
+ `${title} ${subtitle}`,
104
+ paint("Static-first engineering console", 90, color),
105
+ paint(`PROJECT ${path.basename(state.cwd) || state.cwd}`, 37, color),
106
+ ];
107
+ const actionLines = actions.map((action, index) => {
108
+ const active = state.selected === index;
109
+ const marker = active ? paint("❯", 96, color) : paint("·", 90, color);
110
+ const key = paint(`[${action.key}]`, active ? 97 : 36, color);
111
+ const label = paint(action.label, active ? 97 : 37, color);
112
+ return `${marker} ${key} ${label} ${paint(action.detail, 90, color)}`;
113
+ });
114
+ const status = state.busy
115
+ ? paint(`RUNNING ${state.busy}`, 93, color)
116
+ : paint(state.lastResult ?? "READY Select an operation", 92, color);
117
+ const activity = state.log.length
118
+ ? state.log.slice(-5)
119
+ : ["No operation has run in this session."];
120
+ const frame = [
121
+ ...header,
10
122
  "",
11
- " 1 Doctor",
12
- " 2 Verify",
13
- " 3 QA",
14
- " 4 Stats",
15
- " 5 Exit",
123
+ ...box(actionLines, width, color),
16
124
  "",
17
- ].join("\n");
125
+ ...box([status, "", ...activity], width, color),
126
+ "",
127
+ paint("↑↓ / j k navigate enter run 1–8 jump r redraw q exit", 90, color),
128
+ paint("Normal QA is deterministic and screenshot-free. Visual QA remains explicit.", 90, color),
129
+ ];
130
+ const padding = Math.max(0, height - frame.length - 1);
131
+ return `${ansi.clear}${frame.join("\n")}${"\n".repeat(padding)}`;
132
+ }
133
+ function hasColor(output) {
134
+ return (Boolean(output.isTTY) &&
135
+ !process.env.NO_COLOR &&
136
+ process.env.TERM !== "dumb");
137
+ }
138
+ function prompt(input, output, question) {
139
+ const readline = createInterface({ input, output });
140
+ return readline
141
+ .question(question)
142
+ .then((answer) => answer.trim())
143
+ .catch(() => undefined)
144
+ .finally(() => readline.close());
145
+ }
146
+ function waitForKey(input) {
147
+ return new Promise((resolve) => {
148
+ input.once("data", (chunk) => resolve(String(chunk)));
149
+ });
150
+ }
151
+ function statusLine(message) {
152
+ return String(message)
153
+ .split(/\r?\n/)
154
+ .map((line) => line.trim())
155
+ .filter(Boolean)
156
+ .slice(-5);
18
157
  }
19
158
  export async function uiCommand(cwd, output = console, streams = {}) {
20
159
  const input = streams.input ?? stdin;
21
160
  const terminalOutput = streams.output ?? stdout;
22
- const interactive = streams.interactive ??
23
- (Boolean("isTTY" in input && input.isTTY) &&
24
- Boolean("isTTY" in terminalOutput && terminalOutput.isTTY));
25
- if (!interactive) {
26
- output.error("UI requires an interactive terminal. Use `mozole doctor`, `mozole verify`, `mozole qa`, or `mozole stats` in CI.");
161
+ const interactive = streams.interactive ?? Boolean(input.isTTY && terminalOutput.isTTY);
162
+ if (!interactive || !input.setRawMode) {
163
+ output.error("UI requires an interactive terminal with ANSI support. Use `mozole doctor`, `mozole verify`, `mozole qa`, or `mozole stats` in CI.");
27
164
  return 2;
28
165
  }
29
- const readline = createInterface({ input, output: terminalOutput });
30
- readline.on("SIGINT", () => readline.close());
31
- try {
32
- while (readline) {
33
- terminalOutput.write(`\n${uiMenuText()}`);
34
- let answer;
35
- try {
36
- answer = (await readline.question("Select [1-5]: ")).trim();
166
+ const state = { cwd, selected: 0, log: [] };
167
+ const color = hasColor(terminalOutput);
168
+ let entered = false;
169
+ const render = () => terminalOutput.write(uiDashboardFrame(state, {
170
+ columns: terminalOutput.columns ?? 100,
171
+ rows: terminalOutput.rows ?? 32,
172
+ }, color));
173
+ const enter = () => {
174
+ if (entered)
175
+ return;
176
+ terminalOutput.write(`${ansi.alternateEnter}${ansi.cursorHide}`);
177
+ input.setRawMode?.(true);
178
+ input.resume?.();
179
+ entered = true;
180
+ render();
181
+ };
182
+ const leave = () => {
183
+ if (!entered)
184
+ return;
185
+ input.setRawMode?.(false);
186
+ input.pause?.();
187
+ terminalOutput.write(`${ansi.cursorShow}${ansi.alternateExit}`);
188
+ entered = false;
189
+ };
190
+ const resize = () => render();
191
+ terminalOutput.on("resize", resize);
192
+ const abort = () => leave();
193
+ process.once("SIGINT", abort);
194
+ process.once("SIGTERM", abort);
195
+ const dashboardOutput = {
196
+ log: (message) => {
197
+ state.log = statusLine(message);
198
+ },
199
+ error: (message) => {
200
+ state.log = statusLine(message);
201
+ },
202
+ };
203
+ async function runExternal(action) {
204
+ leave();
205
+ try {
206
+ if (action.kind === "install") {
207
+ const code = await cceInstallCommand(cwd, console);
208
+ state.lastResult = `${action.label} ${code === 0 ? "COMPLETE" : "FAILED"}`;
209
+ }
210
+ else {
211
+ const question = action.kind === "create"
212
+ ? "New project name: "
213
+ : "Project path to adopt: ";
214
+ const value = await prompt(input, terminalOutput, question);
215
+ if (!value) {
216
+ state.lastResult = `${action.label} CANCELLED`;
217
+ return;
218
+ }
219
+ const code = action.kind === "create"
220
+ ? await newCommand(value, cwd, console)
221
+ : await adoptCommand(value, cwd, console);
222
+ state.lastResult = `${action.label} ${code === 0 ? "COMPLETE" : "FAILED"}`;
37
223
  }
38
- catch {
224
+ await prompt(input, terminalOutput, "\nPress Enter to return to Mozole…");
225
+ }
226
+ finally {
227
+ enter();
228
+ }
229
+ }
230
+ try {
231
+ enter();
232
+ while (true) {
233
+ const key = await waitForKey(input);
234
+ if (key === "\u0003")
39
235
  return 130;
236
+ if (key === "q" || key === "Q" || key === "\u001B")
237
+ return 0;
238
+ if (key === "\u001B[A" || key === "k") {
239
+ state.selected = (state.selected + actions.length - 1) % actions.length;
240
+ render();
241
+ continue;
242
+ }
243
+ if (key === "\u001B[B" || key === "j") {
244
+ state.selected = (state.selected + 1) % actions.length;
245
+ render();
246
+ continue;
40
247
  }
41
- if (answer === "5" || answer.toLowerCase() === "q")
248
+ if (key === "r") {
249
+ render();
250
+ continue;
251
+ }
252
+ const direct = actions.findIndex((action) => action.key === key);
253
+ if (direct >= 0)
254
+ state.selected = direct;
255
+ if (key !== "\r" && key !== "\n" && direct < 0)
256
+ continue;
257
+ const action = actions[state.selected];
258
+ if (!action)
259
+ continue;
260
+ if (action.kind === "exit")
42
261
  return 0;
43
- if (answer === "1")
44
- await doctorCommand(cwd, output);
45
- else if (answer === "2")
46
- await verifyCommand(cwd, output);
47
- else if (answer === "3")
48
- await qaCommand(cwd, { interactive: false, visual: false }, output);
49
- else if (answer === "4")
50
- await statsCommand(cwd, output);
51
- else
52
- terminalOutput.write("Unknown selection. Choose 1-5.\n");
262
+ if (action.kind !== "command") {
263
+ await runExternal(action);
264
+ continue;
265
+ }
266
+ state.busy = action.label;
267
+ render();
268
+ const code = await action.run?.(cwd, dashboardOutput);
269
+ delete state.busy;
270
+ state.lastResult = `${action.label} ${code === 0 ? "COMPLETE" : "FAILED"}`;
271
+ render();
53
272
  }
54
273
  }
55
274
  finally {
56
- readline.close();
275
+ leave();
276
+ terminalOutput.off("resize", resize);
277
+ process.removeListener("SIGINT", abort);
278
+ process.removeListener("SIGTERM", abort);
57
279
  }
58
- return 0;
59
280
  }
60
281
  //# sourceMappingURL=ui.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,QAAQ;QACR,EAAE;QACF,aAAa;QACb,aAAa;QACb,SAAS;QACT,YAAY;QACZ,WAAW;QACX,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,MAAM,GAAW,OAAO,EACxB,OAAO,GAIH,EAAE;IAEN,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACrC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;IAChD,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;QACnB,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;YACvC,OAAO,CAAC,OAAO,IAAI,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,CACV,kHAAkH,CACnH,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,QAAQ,EAAE,CAAC;YAChB,cAAc,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,MAAc,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,CAAC;YACb,CAAC;YACD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG;gBAAE,OAAO,CAAC,CAAC;YAC7D,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;iBAChD,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;iBACrD,IAAI,MAAM,KAAK,GAAG;gBACrB,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;iBACjE,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;;gBACpD,cAAc,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export interface CceInstallPlan {
9
9
  label: string;
10
10
  }
11
11
  export declare function cceUvxPrefix(): string[];
12
+ export declare function cceToolInstallArgs(): string[];
12
13
  export declare function cceCommand(resolve?: (command: string) => Promise<string | undefined>): Promise<CceRuntime | undefined>;
13
14
  export declare function cceInstallPlan(resolve?: (command: string) => Promise<string | undefined>, platform?: NodeJS.Platform, isRoot?: boolean): Promise<CceInstallPlan | undefined>;
14
15
  export declare function installCceRuntime(cwd: string, signal?: AbortSignal): Promise<CceRuntime>;
@@ -1 +1 @@
1
- {"version":3,"file":"cce.d.ts","sourceRoot":"","sources":["../../src/context/cce.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,wBAAwB,CAAC;AAG7E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AA4CD,wBAAsB,UAAU,CAC9B,OAAO,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAqB,GAC5E,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAkBjC;AAED,wBAAsB,cAAc,CAClC,OAAO,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAqB,EAC7E,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,MAAM,UAAiE,GACtE,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA2CrC;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAuBrB;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAqB,GAC5E,OAAO,CAAC,UAAU,CAAC,CA6BrB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA+ChC;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAQhC"}
1
+ {"version":3,"file":"cce.d.ts","sourceRoot":"","sources":["../../src/context/cce.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,wBAAwB,CAAC;AAG7E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAQ7C;AAkFD,wBAAsB,UAAU,CAC9B,OAAO,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAqB,GAC5E,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAcjC;AAED,wBAAsB,cAAc,CAClC,OAAO,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAqB,EAC7E,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,MAAM,UAAiE,GACtE,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA2CrC;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAuDrB;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAqB,GAC5E,OAAO,CAAC,UAAU,CAAC,CA6BrB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA+ChC;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAQhC"}
@@ -3,10 +3,19 @@ import os from "node:os";
3
3
  import path from "node:path";
4
4
  import { resolveExecutable } from "../platform/executable.js";
5
5
  import { run, runInteractive } from "../platform/process.js";
6
- import { cceUvxPrefix as pinnedCceUvxPrefix } from "../version.js";
6
+ import { cceUvxPrefix as pinnedCceUvxPrefix, TOOLCHAIN } from "../version.js";
7
7
  export function cceUvxPrefix() {
8
8
  return pinnedCceUvxPrefix();
9
9
  }
10
+ export function cceToolInstallArgs() {
11
+ return [
12
+ "tool",
13
+ "install",
14
+ `${TOOLCHAIN.cce.package}==${TOOLCHAIN.cce.version}`,
15
+ "--with",
16
+ `mcp==${TOOLCHAIN.cce.mcpVersion}`,
17
+ ];
18
+ }
10
19
  async function firstExisting(paths) {
11
20
  for (const candidate of paths) {
12
21
  try {
@@ -39,24 +48,54 @@ async function knownUvxPath() {
39
48
  ];
40
49
  return firstExisting(candidates.filter((candidate) => Boolean(candidate)));
41
50
  }
51
+ async function knownCcePath() {
52
+ const home = os.homedir();
53
+ const executable = process.platform === "win32" ? "cce.exe" : "cce";
54
+ const candidates = process.platform === "win32"
55
+ ? [
56
+ process.env.UV_TOOL_BIN_DIR
57
+ ? path.join(process.env.UV_TOOL_BIN_DIR, executable)
58
+ : undefined,
59
+ path.join(home, ".local", "bin", executable),
60
+ ]
61
+ : [
62
+ process.env.UV_TOOL_BIN_DIR
63
+ ? path.join(process.env.UV_TOOL_BIN_DIR, executable)
64
+ : undefined,
65
+ path.join(home, ".local", "bin", executable),
66
+ path.join("/usr/local/bin", executable),
67
+ path.join("/usr/bin", executable),
68
+ ];
69
+ return firstExisting(candidates.filter((candidate) => Boolean(candidate)));
70
+ }
71
+ async function knownUvPath() {
72
+ const executable = process.platform === "win32" ? "uv.exe" : "uv";
73
+ const uvx = await knownUvxPath();
74
+ return uvx
75
+ ? firstExisting([path.join(path.dirname(uvx), executable)])
76
+ : undefined;
77
+ }
78
+ async function uvCommand() {
79
+ const direct = await resolveExecutable("uv");
80
+ if (direct)
81
+ return direct;
82
+ return knownUvPath();
83
+ }
42
84
  export async function cceCommand(resolve = resolveExecutable) {
43
85
  const cce = await resolve("cce");
44
86
  if (cce)
45
87
  return { command: cce, prefix: [] };
88
+ if (resolve === resolveExecutable) {
89
+ const known = await knownCcePath();
90
+ if (known)
91
+ return { command: known, prefix: [] };
92
+ }
46
93
  const uvx = await resolve("uvx");
47
94
  if (uvx)
48
95
  return {
49
96
  command: uvx,
50
97
  prefix: cceUvxPrefix(),
51
98
  };
52
- if (resolve === resolveExecutable) {
53
- const known = await knownUvxPath();
54
- if (known)
55
- return {
56
- command: known,
57
- prefix: cceUvxPrefix(),
58
- };
59
- }
60
99
  return undefined;
61
100
  }
62
101
  export async function cceInstallPlan(resolve = resolveExecutable, platform = process.platform, isRoot = typeof process.getuid === "function" && process.getuid() === 0) {
@@ -106,21 +145,47 @@ export async function cceInstallPlan(resolve = resolveExecutable, platform = pro
106
145
  }
107
146
  export async function installCceRuntime(cwd, signal) {
108
147
  const existing = await cceCommand();
109
- if (existing)
110
- return existing;
111
- const plan = await cceInstallPlan();
112
- if (!plan)
113
- throw new Error("No supported system package manager was found. Install uv/uvx with your OS package manager, then rerun this command.");
114
- const result = await runInteractive(plan.command, plan.args, {
148
+ let uv = await uvCommand();
149
+ if (!uv) {
150
+ if (existing?.prefix.length === 0)
151
+ return existing;
152
+ const plan = await cceInstallPlan();
153
+ if (!plan)
154
+ throw new Error("No supported system package manager was found. Install uv with your OS package manager, then rerun this command.");
155
+ const result = await runInteractive(plan.command, plan.args, {
156
+ cwd,
157
+ timeoutMs: 600_000,
158
+ signal,
159
+ });
160
+ if (result.exitCode !== 0)
161
+ throw new Error(`${plan.label} could not install uv (exit ${result.exitCode}). Re-run it with administrator privileges, then retry.`);
162
+ uv = await uvCommand();
163
+ }
164
+ if (!uv)
165
+ throw new Error("uv was installed, but its executable is not visible. Open a new terminal and rerun `mozole cce install`.");
166
+ const installed = await run(uv, cceToolInstallArgs(), {
115
167
  cwd,
116
168
  timeoutMs: 600_000,
117
169
  signal,
170
+ logFile: path.join(cwd, ".mozole", "logs", "cce-install.log"),
118
171
  });
119
- if (result.exitCode !== 0)
120
- throw new Error(`${plan.label} could not install uv (exit ${result.exitCode}). Re-run it with administrator privileges, then retry.`);
121
- const runtime = await cceCommand();
122
- if (!runtime)
123
- throw new Error("uv was installed, but uvx is not visible in the current PATH. Open a new terminal and rerun `mozole cce install`.");
172
+ if (installed.exitCode !== 0)
173
+ throw new Error(`uv could not persistently install CCE (exit ${installed.exitCode}). See .mozole/logs/cce-install.log.`);
174
+ const toolBin = await run(uv, ["tool", "dir", "--bin"], {
175
+ cwd,
176
+ timeoutMs: 30_000,
177
+ signal,
178
+ });
179
+ const bin = toolBin.stdout.trim().split(/\r?\n/)[0];
180
+ const executable = process.platform === "win32" ? "cce.exe" : "cce";
181
+ const installedCce = bin
182
+ ? await firstExisting([path.join(bin, executable)])
183
+ : undefined;
184
+ const runtime = installedCce
185
+ ? { command: installedCce, prefix: [] }
186
+ : await cceCommand();
187
+ if (!runtime || runtime.prefix.length)
188
+ throw new Error("CCE was installed but its `cce` executable could not be located. Run `uv tool update-shell`, open a new terminal, then rerun `mozole cce install`.");
124
189
  return runtime;
125
190
  }
126
191
  export async function requireCceRuntime(root, signal, resolve = resolveExecutable) {
@@ -1 +1 @@
1
- {"version":3,"file":"cce.js","sourceRoot":"","sources":["../../src/context/cce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cce.js","sourceRoot":"","sources":["../../src/context/cce.ts"],"names":[],"mappings":"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"}
@@ -177,7 +177,7 @@ export function projectTemplates(name) {
177
177
  "app/styles/global.css": ":root {\n color-scheme: light;\n font-family: Inter, ui-sans-serif, system-ui, sans-serif;\n color: #171717;\n background: #fafafa;\n}\n* {\n box-sizing: border-box;\n}\nbody {\n margin: 0;\n min-width: 320px;\n}\na {\n color: inherit;\n text-underline-offset: 0.2em;\n}\nheader {\n border-bottom: 1px solid #ddd;\n}\nnav {\n max-width: 70rem;\n margin: auto;\n padding: 1rem 1.5rem;\n display: flex;\n gap: 1.25rem;\n}\nnav a.active {\n font-weight: 700;\n}\nmain {\n width: min(70rem, 100%);\n margin: 0 auto;\n padding: clamp(3rem, 8vw, 8rem) 1.5rem;\n}\nh1 {\n max-width: 18ch;\n font-size: clamp(2.25rem, 7vw, 5rem);\n line-height: 1.02;\n letter-spacing: -0.04em;\n margin: 0.15em 0 0.4em;\n}\np {\n max-width: 65ch;\n line-height: 1.65;\n}\n.eyebrow {\n text-transform: uppercase;\n letter-spacing: 0.12em;\n font-size: 0.75rem;\n font-weight: 700;\n}\n",
178
178
  "tests/setup.ts": 'import "@testing-library/jest-dom/vitest";\n',
179
179
  "tests/smoke.test.tsx": 'import { render, screen } from "@testing-library/react";\nimport { describe, expect, it } from "vitest";\nimport Home from "../app/routes/home";\n\ndescribe("Home", () => {\n it("renders the starting point", () => {\n render(<Home />);\n expect(\n screen.getByRole("heading", { name: /build the site/i }),\n ).toBeVisible();\n });\n});\n',
180
- "AGENTS.md": "# Project guide\n\n## Commands\n\n- `npm run dev` — local app\n- `npm run verify` — lint, typecheck, tests, production build\n- `npm run qa` — deterministic browser QA (no screenshots)\n- `npm run qa:interactive` — adds safe interaction probes\n- `npm run qa:visual` — explicit screenshot review\n- `mozole cce install` — install the system-wide CCE/uvx runtime\n- `mozole ui` — interactive terminal dashboard\n\n## Architecture\n\nReact Router Framework Mode lives in `app/`; routes are in `app/routes.ts`; static output is `build/client/`. Mozole settings are in `.mozole/`; Antigravity integration is in `.agents/`; deeper decisions belong in `docs/`.\n\n## Efficient agent workflow\n\nRetrieve exact CCE symbols/chunks before broad reads; request more context when needed. Prefer a localized patch, inspect `git diff`, then verify. Do not reread unchanged files or repeat current verification/QA without a concrete reason (`--force` requests fresh evidence). Prefer action over routine narration: do not restate the request, obvious tool calls, existing code, or successful logs. Once requested changes are complete, verification and relevant QA pass, and no known issue remains, stop exploring. Keep completion concise: changed, verified, unresolved. Normal QA never takes screenshots; visual QA is explicit only.\n",
180
+ "AGENTS.md": "# Project guide\n\n## Commands\n\n- `npm run dev` — local app\n- `npm run verify` — lint, typecheck, tests, production build\n- `npm run qa` — deterministic browser QA (no screenshots)\n- `npm run qa:interactive` — adds safe interaction probes\n- `npm run qa:visual` — explicit screenshot review\n- `mozole cce install` — install persistent CCE and required uv runtime\n- `mozole ui` — full-screen terminal dashboard\n\n## Architecture\n\nReact Router Framework Mode lives in `app/`; routes are in `app/routes.ts`; static output is `build/client/`. Mozole settings are in `.mozole/`; Antigravity integration is in `.agents/`; deeper decisions belong in `docs/`.\n\n## Efficient agent workflow\n\nRetrieve exact CCE symbols/chunks before broad reads; request more context when needed. Prefer a localized patch, inspect `git diff`, then verify. Do not reread unchanged files or repeat current verification/QA without a concrete reason (`--force` requests fresh evidence). Prefer action over routine narration: do not restate the request, obvious tool calls, existing code, or successful logs. Once requested changes are complete, verification and relevant QA pass, and no known issue remains, stop exploring. Keep completion concise: changed, verified, unresolved. Normal QA never takes screenshots; visual QA is explicit only.\n",
181
181
  "CLAUDE.md": "@AGENTS.md\n",
182
182
  "docs/architecture.md": "# Architecture\n\nThe app uses React Router Framework Mode with Vite. `ssr: false` and `prerender: true` emit real HTML for every statically declared route. Static files in `build/client/` can be served beside a future PHP backend without a production Node process. Mozole fingerprints relevant inputs under `.mozole/state/`; unchanged successful verification and QA are reused, while `--force` requests fresh evidence. Codex and Claude Code use the shared root instructions; Antigravity workspace MCP, rules, and workflows live under `.agents/` and share the same CCE index.\n",
183
183
  "README.md": `# ${name}\n\nStatic-first React Router Framework Mode project generated by Mozole for Codex, Claude Code, and Google Antigravity.\n\n## Start\n\n\`\`\`sh\nnpm install\nnpm run dev\n\`\`\`\n\nRun \`npm run verify\` before handoff and \`npm run qa\` for screenshot-free browser checks. Unchanged successful checks are reused; use \`--force\` for intentionally fresh evidence. Visual QA is explicit only. Antigravity workspace integration is under \`.agents/\`. Production files are emitted to \`build/client/\`.\n`,
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export declare const CLI_VERSION = "1.1.0";
1
+ export declare const CLI_VERSION = "1.1.1";
2
2
  export declare const TOOLCHAIN: Readonly<{
3
3
  schemaVersion: 1;
4
- mozoleCli: "1.1.0";
4
+ mozoleCli: "1.1.1";
5
5
  node: ">=22";
6
6
  react: "19.2.8";
7
7
  reactDom: "19.2.8";
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
- export const CLI_VERSION = "1.1.0";
1
+ export const CLI_VERSION = "1.1.1";
2
2
  export const TOOLCHAIN = Object.freeze({
3
3
  schemaVersion: 1,
4
4
  mozoleCli: CLI_VERSION,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mozole/cli",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Static-first React Router bootstrap and agent harness",
5
5
  "type": "module",
6
6
  "bin": {