@mozole/cli 1.4.3 → 2.0.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 (253) hide show
  1. package/LICENSE +16 -4
  2. package/README.md +85 -112
  3. package/dist/cli.d.ts +3 -2
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +231 -181
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/adopt.d.ts +5 -10
  8. package/dist/commands/adopt.d.ts.map +1 -1
  9. package/dist/commands/adopt.js +49 -849
  10. package/dist/commands/adopt.js.map +1 -1
  11. package/dist/commands/doctor.d.ts +1 -7
  12. package/dist/commands/doctor.d.ts.map +1 -1
  13. package/dist/commands/doctor.js +69 -377
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/new.d.ts +8 -10
  16. package/dist/commands/new.d.ts.map +1 -1
  17. package/dist/commands/new.js +32 -197
  18. package/dist/commands/new.js.map +1 -1
  19. package/dist/commands/phase.d.ts +11 -0
  20. package/dist/commands/phase.d.ts.map +1 -0
  21. package/dist/commands/phase.js +106 -0
  22. package/dist/commands/phase.js.map +1 -0
  23. package/dist/commands/prototype.d.ts +6 -0
  24. package/dist/commands/prototype.d.ts.map +1 -0
  25. package/dist/commands/prototype.js +28 -0
  26. package/dist/commands/prototype.js.map +1 -0
  27. package/dist/commands/repomap.d.ts +6 -0
  28. package/dist/commands/repomap.d.ts.map +1 -0
  29. package/dist/commands/repomap.js +71 -0
  30. package/dist/commands/repomap.js.map +1 -0
  31. package/dist/commands/test.d.ts +6 -0
  32. package/dist/commands/test.d.ts.map +1 -0
  33. package/dist/commands/test.js +115 -0
  34. package/dist/commands/test.js.map +1 -0
  35. package/dist/commands/ui.d.ts +6 -41
  36. package/dist/commands/ui.d.ts.map +1 -1
  37. package/dist/commands/ui.js +132 -459
  38. package/dist/commands/ui.js.map +1 -1
  39. package/dist/commands/verify.d.ts +12 -7
  40. package/dist/commands/verify.d.ts.map +1 -1
  41. package/dist/commands/verify.js +180 -65
  42. package/dist/commands/verify.js.map +1 -1
  43. package/dist/qa/a11y.d.ts +24 -0
  44. package/dist/qa/a11y.d.ts.map +1 -0
  45. package/dist/qa/a11y.js +124 -0
  46. package/dist/qa/a11y.js.map +1 -0
  47. package/dist/qa/breakpoints.d.ts +16 -0
  48. package/dist/qa/breakpoints.d.ts.map +1 -0
  49. package/dist/qa/breakpoints.js +45 -0
  50. package/dist/qa/breakpoints.js.map +1 -0
  51. package/dist/qa/contract.d.ts +21 -0
  52. package/dist/qa/contract.d.ts.map +1 -0
  53. package/dist/qa/contract.js +116 -0
  54. package/dist/qa/contract.js.map +1 -0
  55. package/dist/qa/index.d.ts +6 -0
  56. package/dist/qa/index.d.ts.map +1 -0
  57. package/dist/qa/index.js +6 -0
  58. package/dist/qa/index.js.map +1 -0
  59. package/dist/qa/probe.d.ts +48 -0
  60. package/dist/qa/probe.d.ts.map +1 -0
  61. package/dist/qa/probe.js +206 -0
  62. package/dist/qa/probe.js.map +1 -0
  63. package/dist/qa/runner.d.ts +27 -33
  64. package/dist/qa/runner.d.ts.map +1 -1
  65. package/dist/qa/runner.js +286 -332
  66. package/dist/qa/runner.js.map +1 -1
  67. package/dist/scaffold/agents.d.ts +5 -0
  68. package/dist/scaffold/agents.d.ts.map +1 -0
  69. package/dist/scaffold/agents.js +84 -0
  70. package/dist/scaffold/agents.js.map +1 -0
  71. package/dist/scaffold/backend.d.ts +6 -8
  72. package/dist/scaffold/backend.d.ts.map +1 -1
  73. package/dist/scaffold/backend.js +318 -199
  74. package/dist/scaffold/backend.js.map +1 -1
  75. package/dist/scaffold/design.d.ts +4 -3
  76. package/dist/scaffold/design.d.ts.map +1 -1
  77. package/dist/scaffold/design.js +38 -47
  78. package/dist/scaffold/design.js.map +1 -1
  79. package/dist/scaffold/flagship.d.ts +8 -0
  80. package/dist/scaffold/flagship.d.ts.map +1 -0
  81. package/dist/scaffold/flagship.js +337 -0
  82. package/dist/scaffold/flagship.js.map +1 -0
  83. package/dist/scaffold/index.d.ts +9 -0
  84. package/dist/scaffold/index.d.ts.map +1 -0
  85. package/dist/scaffold/index.js +48 -0
  86. package/dist/scaffold/index.js.map +1 -0
  87. package/dist/scaffold/phases.d.ts +10 -0
  88. package/dist/scaffold/phases.d.ts.map +1 -0
  89. package/dist/scaffold/phases.js +165 -0
  90. package/dist/scaffold/phases.js.map +1 -0
  91. package/dist/scaffold/repomap.d.ts +6 -0
  92. package/dist/scaffold/repomap.d.ts.map +1 -0
  93. package/dist/scaffold/repomap.js +89 -0
  94. package/dist/scaffold/repomap.js.map +1 -0
  95. package/dist/scaffold/standard.d.ts +13 -0
  96. package/dist/scaffold/standard.d.ts.map +1 -0
  97. package/dist/scaffold/standard.js +371 -0
  98. package/dist/scaffold/standard.js.map +1 -0
  99. package/dist/scaffold/tokens.d.ts +3 -0
  100. package/dist/scaffold/tokens.d.ts.map +1 -0
  101. package/dist/scaffold/tokens.js +126 -0
  102. package/dist/scaffold/tokens.js.map +1 -0
  103. package/dist/server/manager.d.ts +23 -0
  104. package/dist/server/manager.d.ts.map +1 -0
  105. package/dist/server/manager.js +96 -0
  106. package/dist/server/manager.js.map +1 -0
  107. package/dist/ui/CockpitApp.d.ts +13 -0
  108. package/dist/ui/CockpitApp.d.ts.map +1 -0
  109. package/dist/ui/CockpitApp.js +292 -0
  110. package/dist/ui/CockpitApp.js.map +1 -0
  111. package/dist/utils/ai-trace.d.ts +8 -0
  112. package/dist/utils/ai-trace.d.ts.map +1 -0
  113. package/dist/utils/ai-trace.js +69 -0
  114. package/dist/utils/ai-trace.js.map +1 -0
  115. package/dist/utils/browser.d.ts +10 -0
  116. package/dist/utils/browser.d.ts.map +1 -0
  117. package/dist/utils/browser.js +127 -0
  118. package/dist/utils/browser.js.map +1 -0
  119. package/dist/utils/fs.d.ts +18 -0
  120. package/dist/utils/fs.d.ts.map +1 -0
  121. package/dist/utils/fs.js +296 -0
  122. package/dist/utils/fs.js.map +1 -0
  123. package/dist/utils/git.d.ts +9 -0
  124. package/dist/utils/git.d.ts.map +1 -0
  125. package/dist/utils/git.js +69 -0
  126. package/dist/utils/git.js.map +1 -0
  127. package/dist/utils/process.d.ts +21 -0
  128. package/dist/utils/process.d.ts.map +1 -0
  129. package/dist/utils/process.js +120 -0
  130. package/dist/utils/process.js.map +1 -0
  131. package/dist/version.d.ts +21 -36
  132. package/dist/version.d.ts.map +1 -1
  133. package/dist/version.js +21 -44
  134. package/dist/version.js.map +1 -1
  135. package/package.json +22 -38
  136. package/CHANGELOG.md +0 -38
  137. package/dist/commands/cce.d.ts +0 -7
  138. package/dist/commands/cce.d.ts.map +0 -1
  139. package/dist/commands/cce.js +0 -37
  140. package/dist/commands/cce.js.map +0 -1
  141. package/dist/commands/logs.d.ts +0 -3
  142. package/dist/commands/logs.d.ts.map +0 -1
  143. package/dist/commands/logs.js +0 -40
  144. package/dist/commands/logs.js.map +0 -1
  145. package/dist/commands/qa.d.ts +0 -12
  146. package/dist/commands/qa.d.ts.map +0 -1
  147. package/dist/commands/qa.js +0 -143
  148. package/dist/commands/qa.js.map +0 -1
  149. package/dist/commands/stats.d.ts +0 -37
  150. package/dist/commands/stats.d.ts.map +0 -1
  151. package/dist/commands/stats.js +0 -169
  152. package/dist/commands/stats.js.map +0 -1
  153. package/dist/commands/template.d.ts +0 -8
  154. package/dist/commands/template.d.ts.map +0 -1
  155. package/dist/commands/template.js +0 -392
  156. package/dist/commands/template.js.map +0 -1
  157. package/dist/config/project.d.ts +0 -54
  158. package/dist/config/project.d.ts.map +0 -1
  159. package/dist/config/project.js +0 -100
  160. package/dist/config/project.js.map +0 -1
  161. package/dist/context/cce.d.ts +0 -39
  162. package/dist/context/cce.d.ts.map +0 -1
  163. package/dist/context/cce.js +0 -455
  164. package/dist/context/cce.js.map +0 -1
  165. package/dist/governor/fingerprint.d.ts +0 -7
  166. package/dist/governor/fingerprint.d.ts.map +0 -1
  167. package/dist/governor/fingerprint.js +0 -120
  168. package/dist/governor/fingerprint.js.map +0 -1
  169. package/dist/governor/hook.d.ts +0 -13
  170. package/dist/governor/hook.d.ts.map +0 -1
  171. package/dist/governor/hook.js +0 -389
  172. package/dist/governor/hook.js.map +0 -1
  173. package/dist/governor/state.d.ts +0 -45
  174. package/dist/governor/state.d.ts.map +0 -1
  175. package/dist/governor/state.js +0 -60
  176. package/dist/governor/state.js.map +0 -1
  177. package/dist/integrations/antigravity.d.ts +0 -20
  178. package/dist/integrations/antigravity.d.ts.map +0 -1
  179. package/dist/integrations/antigravity.js +0 -153
  180. package/dist/integrations/antigravity.js.map +0 -1
  181. package/dist/output-safety.d.ts +0 -3
  182. package/dist/output-safety.d.ts.map +0 -1
  183. package/dist/output-safety.js +0 -44
  184. package/dist/output-safety.js.map +0 -1
  185. package/dist/output.d.ts +0 -5
  186. package/dist/output.d.ts.map +0 -1
  187. package/dist/output.js +0 -2
  188. package/dist/output.js.map +0 -1
  189. package/dist/platform/executable.d.ts +0 -11
  190. package/dist/platform/executable.d.ts.map +0 -1
  191. package/dist/platform/executable.js +0 -69
  192. package/dist/platform/executable.js.map +0 -1
  193. package/dist/platform/process.d.ts +0 -27
  194. package/dist/platform/process.d.ts.map +0 -1
  195. package/dist/platform/process.js +0 -189
  196. package/dist/platform/process.js.map +0 -1
  197. package/dist/progress.d.ts +0 -44
  198. package/dist/progress.d.ts.map +0 -1
  199. package/dist/progress.js +0 -123
  200. package/dist/progress.js.map +0 -1
  201. package/dist/qa/artifacts.d.ts +0 -3
  202. package/dist/qa/artifacts.d.ts.map +0 -1
  203. package/dist/qa/artifacts.js +0 -15
  204. package/dist/qa/artifacts.js.map +0 -1
  205. package/dist/qa/diff.d.ts +0 -10
  206. package/dist/qa/diff.d.ts.map +0 -1
  207. package/dist/qa/diff.js +0 -90
  208. package/dist/qa/diff.js.map +0 -1
  209. package/dist/qa/server.d.ts +0 -10
  210. package/dist/qa/server.d.ts.map +0 -1
  211. package/dist/qa/server.js +0 -127
  212. package/dist/qa/server.js.map +0 -1
  213. package/dist/scaffold/adoption.d.ts +0 -17
  214. package/dist/scaffold/adoption.d.ts.map +0 -1
  215. package/dist/scaffold/adoption.js +0 -279
  216. package/dist/scaffold/adoption.js.map +0 -1
  217. package/dist/scaffold/legacy.d.ts +0 -4
  218. package/dist/scaffold/legacy.d.ts.map +0 -1
  219. package/dist/scaffold/legacy.js +0 -139
  220. package/dist/scaffold/legacy.js.map +0 -1
  221. package/dist/scaffold/routes.d.ts +0 -3
  222. package/dist/scaffold/routes.d.ts.map +0 -1
  223. package/dist/scaffold/routes.js +0 -37
  224. package/dist/scaffold/routes.js.map +0 -1
  225. package/dist/scaffold/standalone.d.ts +0 -7
  226. package/dist/scaffold/standalone.d.ts.map +0 -1
  227. package/dist/scaffold/standalone.js +0 -374
  228. package/dist/scaffold/standalone.js.map +0 -1
  229. package/dist/scaffold/templates.d.ts +0 -9
  230. package/dist/scaffold/templates.d.ts.map +0 -1
  231. package/dist/scaffold/templates.js +0 -317
  232. package/dist/scaffold/templates.js.map +0 -1
  233. package/dist/scaffold/write.d.ts +0 -2
  234. package/dist/scaffold/write.d.ts.map +0 -1
  235. package/dist/scaffold/write.js +0 -38
  236. package/dist/scaffold/write.js.map +0 -1
  237. package/dist/telemetry/store.d.ts +0 -33
  238. package/dist/telemetry/store.d.ts.map +0 -1
  239. package/dist/telemetry/store.js +0 -75
  240. package/dist/telemetry/store.js.map +0 -1
  241. package/dist/template/servers.d.ts +0 -21
  242. package/dist/template/servers.d.ts.map +0 -1
  243. package/dist/template/servers.js +0 -193
  244. package/dist/template/servers.js.map +0 -1
  245. package/dist/template/workspace.d.ts +0 -23
  246. package/dist/template/workspace.d.ts.map +0 -1
  247. package/dist/template/workspace.js +0 -152
  248. package/dist/template/workspace.js.map +0 -1
  249. package/dist/verify/runner.d.ts +0 -16
  250. package/dist/verify/runner.d.ts.map +0 -1
  251. package/dist/verify/runner.js +0 -112
  252. package/dist/verify/runner.js.map +0 -1
  253. package/docs/agent-audit.md +0 -24
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CockpitApp.js","sourceRoot":"","sources":["../../src/ui/CockpitApp.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface AiTraceMatch {
2
+ file: string;
3
+ line: number;
4
+ match: string;
5
+ }
6
+ export declare function findAiTracesInContent(content: string, filePath: string): AiTraceMatch[];
7
+ export declare function scanProjectForAiTraces(rootDir: string): Promise<AiTraceMatch[]>;
8
+ //# sourceMappingURL=ai-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-trace.d.ts","sourceRoot":"","sources":["../../src/utils/ai-trace.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAyBD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAoBvF;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA0BrF"}
@@ -0,0 +1,69 @@
1
+ import { readFile, readdir } from "node:fs/promises";
2
+ import path from "node:path";
3
+ const AI_PATTERNS = [
4
+ /\b(?:generated|authored|written|created|scaffolded)\s+(?:by|with|using)\s+(?:an?\s+)?(?:ai|claude|chatgpt|openai|cursor|copilot|gemini|antigravity|v0|bolt|lovable)\b/i,
5
+ /\bco-authored-by:\s*(?:claude|cursor|copilot|assistant|gpt|chatgpt|bot|ai)\b/i,
6
+ /\bauto-generated\s+(?:by|with)\s+(?:claude|cursor|ai|copilot)\b/i,
7
+ /\b\/\*\s*ai-(?:prompt|trace|instruction)\b/i,
8
+ ];
9
+ const IGNORED_SEGMENTS = new Set(["node_modules", ".git", "dist", "archive", "coverage", "build"]);
10
+ const ALLOWED_EXTENSIONS = new Set([
11
+ ".ts",
12
+ ".tsx",
13
+ ".js",
14
+ ".jsx",
15
+ ".mjs",
16
+ ".cjs",
17
+ ".css",
18
+ ".html",
19
+ ".php",
20
+ ".json",
21
+ ".md",
22
+ ]);
23
+ export function findAiTracesInContent(content, filePath) {
24
+ const matches = [];
25
+ const lines = content.split(/\r?\n/);
26
+ for (let i = 0; i < lines.length; i++) {
27
+ const line = lines[i];
28
+ for (const pattern of AI_PATTERNS) {
29
+ const match = pattern.exec(line);
30
+ if (match) {
31
+ matches.push({
32
+ file: filePath,
33
+ line: i + 1,
34
+ match: match[0],
35
+ });
36
+ break;
37
+ }
38
+ }
39
+ }
40
+ return matches;
41
+ }
42
+ export async function scanProjectForAiTraces(rootDir) {
43
+ const matches = [];
44
+ async function walk(currentDir) {
45
+ const entries = await readdir(currentDir, { withFileTypes: true });
46
+ for (const entry of entries) {
47
+ if (IGNORED_SEGMENTS.has(entry.name))
48
+ continue;
49
+ const fullPath = path.join(currentDir, entry.name);
50
+ if (entry.isDirectory()) {
51
+ await walk(fullPath);
52
+ }
53
+ else if (entry.isFile()) {
54
+ const ext = path.extname(entry.name).toLowerCase();
55
+ if (ALLOWED_EXTENSIONS.has(ext)) {
56
+ try {
57
+ const content = await readFile(fullPath, "utf8");
58
+ const relPath = path.relative(rootDir, fullPath);
59
+ matches.push(...findAiTracesInContent(content, relPath));
60
+ }
61
+ catch { }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ await walk(rootDir);
67
+ return matches;
68
+ }
69
+ //# sourceMappingURL=ai-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-trace.js","sourceRoot":"","sources":["../../src/utils/ai-trace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface BrowserInfo {
2
+ executablePath?: string;
3
+ name: string;
4
+ type: "system" | "playwright";
5
+ version?: string;
6
+ }
7
+ export declare function findLocalChromium(): Promise<BrowserInfo | null>;
8
+ export declare function ensureChromiumBrowser(): Promise<BrowserInfo>;
9
+ export declare function getBrowserLaunchArgs(): string[];
10
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6CD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAiDrE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAC,CAmClE;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAa/C"}
@@ -0,0 +1,127 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import pc from "picocolors";
4
+ import { exists } from "./fs.js";
5
+ import { run } from "./process.js";
6
+ const LINUX_CANDIDATES = [
7
+ "/usr/bin/brave",
8
+ "/usr/bin/brave-browser",
9
+ "/usr/bin/google-chrome",
10
+ "/usr/bin/google-chrome-stable",
11
+ "/usr/bin/chromium",
12
+ "/usr/bin/chromium-browser",
13
+ "/snap/bin/brave",
14
+ "/snap/bin/chromium",
15
+ ];
16
+ const DARWIN_CANDIDATES = [
17
+ "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",
18
+ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
19
+ "/Applications/Chromium.app/Contents/MacOS/Chromium",
20
+ "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge",
21
+ ];
22
+ function getWin32Candidates() {
23
+ const localAppData = process.env.LOCALAPPDATA;
24
+ const programFiles = process.env.ProgramFiles ?? "C:\\Program Files";
25
+ const programFilesX86 = process.env["ProgramFiles(x86)"] ?? "C:\\Program Files (x86)";
26
+ const list = [
27
+ path.join(programFiles, "BraveSoftware", "Brave-Browser", "Application", "brave.exe"),
28
+ path.join(programFilesX86, "BraveSoftware", "Brave-Browser", "Application", "brave.exe"),
29
+ path.join(programFiles, "Google", "Chrome", "Application", "chrome.exe"),
30
+ path.join(programFilesX86, "Google", "Chrome", "Application", "chrome.exe"),
31
+ path.join(programFiles, "Microsoft", "Edge", "Application", "msedge.exe"),
32
+ path.join(programFilesX86, "Microsoft", "Edge", "Application", "msedge.exe"),
33
+ ];
34
+ if (localAppData) {
35
+ list.push(path.join(localAppData, "BraveSoftware", "Brave-Browser", "Application", "brave.exe"), path.join(localAppData, "Google", "Chrome", "Application", "chrome.exe"), path.join(localAppData, "Microsoft", "Edge", "Application", "msedge.exe"));
36
+ }
37
+ return list;
38
+ }
39
+ export async function findLocalChromium() {
40
+ const envCandidates = [
41
+ process.env.BRAVE_PATH,
42
+ process.env.CHROME_PATH,
43
+ process.env.CHROMIUM_PATH,
44
+ ].filter(Boolean);
45
+ const platformCandidates = process.platform === "darwin"
46
+ ? DARWIN_CANDIDATES
47
+ : process.platform === "win32"
48
+ ? getWin32Candidates()
49
+ : LINUX_CANDIDATES;
50
+ const candidates = [...envCandidates, ...platformCandidates];
51
+ for (const bin of candidates) {
52
+ if (await exists(bin)) {
53
+ try {
54
+ await fs.access(bin, fs.constants.X_OK);
55
+ }
56
+ catch {
57
+ // Not executable, skip
58
+ continue;
59
+ }
60
+ let version;
61
+ try {
62
+ const res = await run(bin, ["--version"], { timeoutMs: 3000 });
63
+ if (res.exitCode === 0 && res.stdout) {
64
+ version = res.stdout.trim();
65
+ }
66
+ }
67
+ catch { }
68
+ const base = path.basename(bin).toLowerCase();
69
+ let name = "Chromium";
70
+ if (base.includes("brave"))
71
+ name = "Brave Browser";
72
+ else if (base.includes("chrome"))
73
+ name = "Google Chrome";
74
+ else if (base.includes("edge"))
75
+ name = "Microsoft Edge";
76
+ return {
77
+ executablePath: bin,
78
+ name,
79
+ type: "system",
80
+ version,
81
+ };
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ export async function ensureChromiumBrowser() {
87
+ const local = await findLocalChromium();
88
+ if (local) {
89
+ return local;
90
+ }
91
+ console.log(pc.yellow(" ! No system Brave or Chromium found. Auto-provisioning Playwright Chromium..."));
92
+ // Per policy: test coverage takes precedence over disk space. Install playwright chromium
93
+ const playwrightCli = path.resolve("node_modules/playwright-core/cli.js");
94
+ let installRes = await run(process.execPath, [playwrightCli, "install", "chromium"], {
95
+ timeoutMs: 120000,
96
+ });
97
+ if (installRes.exitCode !== 0) {
98
+ // Fallback: try npx
99
+ installRes = await run("npx", ["playwright-core", "install", "chromium"], {
100
+ timeoutMs: 120000,
101
+ });
102
+ }
103
+ if (installRes.exitCode !== 0) {
104
+ throw new Error(`Failed to auto-provision Playwright Chromium.\n${installRes.stderr || installRes.stdout}`);
105
+ }
106
+ console.log(pc.green(" ✓ Playwright Chromium successfully provisioned."));
107
+ return {
108
+ executablePath: undefined,
109
+ name: "Playwright Chromium",
110
+ type: "playwright",
111
+ };
112
+ }
113
+ export function getBrowserLaunchArgs() {
114
+ return [
115
+ "--no-sandbox",
116
+ "--disable-setuid-sandbox",
117
+ "--disable-dev-shm-usage",
118
+ "--disable-brave-extension",
119
+ "--disable-background-networking",
120
+ "--disable-default-apps",
121
+ "--disable-extensions",
122
+ "--disable-sync",
123
+ "--disable-gpu",
124
+ "--mute-audio",
125
+ ];
126
+ }
127
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare function exists(targetPath: string): Promise<boolean>;
2
+ export declare function isDirectory(targetPath: string): Promise<boolean>;
3
+ export declare function ensureDir(dirPath: string): Promise<void>;
4
+ export declare function atomicWrite(targetPath: string, content: string | Buffer, options?: {
5
+ mode?: number;
6
+ }): Promise<void>;
7
+ export declare function writeFiles(rootDir: string, files: Record<string, string | Buffer>, overwrite?: boolean): Promise<string[]>;
8
+ export declare function isSafeProjectName(name: string): boolean;
9
+ export declare function findPrototypeRoot(startDir?: string): Promise<string | null>;
10
+ export interface DiscoveredProject {
11
+ name: string;
12
+ path: string;
13
+ relative: string;
14
+ }
15
+ export declare function discoverWorkspaceProjects(workspaceRoot: string): Promise<DiscoveredProject[]>;
16
+ export declare function findProjectRoot(startDir?: string): Promise<string | null>;
17
+ export declare function findNodeModulesFile(startDir: string, relativeSubpath: string): Promise<string | null>;
18
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAcA,wBAAsB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOjE;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOtE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACtC,SAAS,UAAQ,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAqCnB;AAmCD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAiBvD;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,SAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgCxF;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,yBAAyB,CAC7C,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmG9B;AAED,wBAAsB,eAAe,CAAC,QAAQ,SAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAetF;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxB"}
@@ -0,0 +1,296 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { access, mkdir, readFile, readdir, realpath, rename, rm, stat, writeFile, } from "node:fs/promises";
3
+ import path from "node:path";
4
+ export async function exists(targetPath) {
5
+ try {
6
+ await access(targetPath);
7
+ return true;
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ }
13
+ export async function isDirectory(targetPath) {
14
+ try {
15
+ const s = await stat(targetPath);
16
+ return s.isDirectory();
17
+ }
18
+ catch {
19
+ return false;
20
+ }
21
+ }
22
+ export async function ensureDir(dirPath) {
23
+ await mkdir(dirPath, { recursive: true });
24
+ }
25
+ export async function atomicWrite(targetPath, content, options = {}) {
26
+ const dir = path.dirname(targetPath);
27
+ await ensureDir(dir);
28
+ const tempFile = `${targetPath}.${process.pid}.${randomUUID()}.tmp`;
29
+ try {
30
+ await writeFile(tempFile, content, {
31
+ encoding: typeof content === "string" ? "utf8" : undefined,
32
+ mode: options.mode,
33
+ });
34
+ try {
35
+ await rename(tempFile, targetPath);
36
+ }
37
+ catch (renameErr) {
38
+ const code = renameErr.code;
39
+ if (process.platform === "win32" &&
40
+ (code === "EPERM" || code === "EBUSY" || code === "EEXIST")) {
41
+ await rm(targetPath, { force: true }).catch(() => { });
42
+ await rename(tempFile, targetPath);
43
+ }
44
+ else {
45
+ throw renameErr;
46
+ }
47
+ }
48
+ }
49
+ catch (error) {
50
+ await rm(tempFile, { force: true }).catch(() => { });
51
+ throw error;
52
+ }
53
+ }
54
+ export async function writeFiles(rootDir, files, overwrite = false) {
55
+ const resolvedRootDir = await realpath(rootDir).catch(() => path.resolve(rootDir));
56
+ const resolvedRootPrefix = resolvedRootDir.endsWith(path.sep)
57
+ ? resolvedRootDir
58
+ : resolvedRootDir + path.sep;
59
+ const written = [];
60
+ for (const [relativePath, content] of Object.entries(files)) {
61
+ if (path.isAbsolute(relativePath) || relativePath.split(/[\\/]/).includes("..")) {
62
+ throw new Error(`Unsafe relative path specified: ${relativePath}`);
63
+ }
64
+ const segments = relativePath.split(/[\\/]/);
65
+ let current = path.resolve(rootDir);
66
+ for (let i = 0; i < segments.length - 1; i++) {
67
+ current = path.join(current, segments[i]);
68
+ try {
69
+ const real = await realpath(current);
70
+ if (real !== resolvedRootDir && !real.startsWith(resolvedRootPrefix)) {
71
+ throw new Error(`Unsafe relative path specified (symlink escape): ${relativePath}`);
72
+ }
73
+ }
74
+ catch (error) {
75
+ if (error.code === "ENOENT") {
76
+ break;
77
+ }
78
+ throw error;
79
+ }
80
+ }
81
+ const fullPath = path.join(rootDir, ...segments);
82
+ if (!overwrite && (await exists(fullPath))) {
83
+ continue;
84
+ }
85
+ await atomicWrite(fullPath, content);
86
+ written.push(relativePath);
87
+ }
88
+ return written;
89
+ }
90
+ const RESERVED_NAMES = new Set([
91
+ "node_modules",
92
+ "dist",
93
+ "build",
94
+ "public",
95
+ "src",
96
+ "package.json",
97
+ "package-lock.json",
98
+ "favicon.ico",
99
+ "con",
100
+ "prn",
101
+ "aux",
102
+ "nul",
103
+ "com1",
104
+ "com2",
105
+ "com3",
106
+ "com4",
107
+ "com5",
108
+ "com6",
109
+ "com7",
110
+ "com8",
111
+ "com9",
112
+ "lpt1",
113
+ "lpt2",
114
+ "lpt3",
115
+ "lpt4",
116
+ "lpt5",
117
+ "lpt6",
118
+ "lpt7",
119
+ "lpt8",
120
+ "lpt9",
121
+ ]);
122
+ export function isSafeProjectName(name) {
123
+ if (!name ||
124
+ name === "." ||
125
+ name === ".." ||
126
+ name.includes("/") ||
127
+ name.includes("\\") ||
128
+ name.includes("\0")) {
129
+ return false;
130
+ }
131
+ const normalized = name.toLowerCase().trim();
132
+ const baseWithoutExt = normalized.split(".")[0];
133
+ if (RESERVED_NAMES.has(normalized) || RESERVED_NAMES.has(baseWithoutExt)) {
134
+ return false;
135
+ }
136
+ return /^[a-z0-9][a-z0-9._-]*$/i.test(name);
137
+ }
138
+ export async function findPrototypeRoot(startDir = process.cwd()) {
139
+ let current = path.resolve(startDir);
140
+ while (true) {
141
+ const configPath = path.join(current, "mozole.config.json");
142
+ if (await exists(configPath)) {
143
+ return current;
144
+ }
145
+ const manifestPath = path.join(current, "package.json");
146
+ if (await exists(manifestPath)) {
147
+ try {
148
+ const pkg = JSON.parse(await readFile(manifestPath, "utf8"));
149
+ if (pkg.mozolePrototype === true ||
150
+ pkg["mozole-prototype"] === true ||
151
+ Array.isArray(pkg.workspaces) ||
152
+ Boolean(pkg.workspaces?.packages)) {
153
+ return current;
154
+ }
155
+ }
156
+ catch { }
157
+ }
158
+ const projectsPath = path.join(current, "projects");
159
+ if (await exists(projectsPath)) {
160
+ return current;
161
+ }
162
+ const parent = path.dirname(current);
163
+ if (parent === current) {
164
+ break;
165
+ }
166
+ current = parent;
167
+ }
168
+ return null;
169
+ }
170
+ export async function discoverWorkspaceProjects(workspaceRoot) {
171
+ const root = path.resolve(workspaceRoot);
172
+ const projects = new Map();
173
+ // 1. Check package.json workspaces if present
174
+ const manifestPath = path.join(root, "package.json");
175
+ if (await exists(manifestPath)) {
176
+ try {
177
+ const pkg = JSON.parse(await readFile(manifestPath, "utf8"));
178
+ const ws = Array.isArray(pkg.workspaces)
179
+ ? pkg.workspaces
180
+ : Array.isArray(pkg.workspaces?.packages)
181
+ ? pkg.workspaces.packages
182
+ : [];
183
+ for (const pattern of ws) {
184
+ if (typeof pattern !== "string")
185
+ continue;
186
+ if (pattern.includes("*")) {
187
+ const base = pattern.replace(/\/\*.*$/, "");
188
+ const baseDir = path.join(root, base);
189
+ if (await exists(baseDir)) {
190
+ const entries = await readdir(baseDir, { withFileTypes: true }).catch(() => []);
191
+ for (const entry of entries) {
192
+ if (entry.isDirectory()) {
193
+ const sub = path.join(baseDir, entry.name);
194
+ const rel = path.relative(root, sub);
195
+ projects.set(rel, { name: rel, path: sub, relative: rel });
196
+ }
197
+ }
198
+ }
199
+ }
200
+ else {
201
+ const target = path.join(root, pattern);
202
+ if ((await exists(target)) && (await isDirectory(target))) {
203
+ const rel = path.relative(root, target);
204
+ projects.set(rel, { name: rel, path: target, relative: rel });
205
+ }
206
+ }
207
+ }
208
+ }
209
+ catch { }
210
+ }
211
+ // 2. Check projects/ directory
212
+ const projectsDir = path.join(root, "projects");
213
+ if (await exists(projectsDir)) {
214
+ const entries = await readdir(projectsDir, { withFileTypes: true }).catch(() => []);
215
+ for (const entry of entries) {
216
+ if (entry.isDirectory()) {
217
+ const sub = path.join(projectsDir, entry.name);
218
+ const rel = path.relative(root, sub);
219
+ projects.set(entry.name, { name: entry.name, path: sub, relative: rel });
220
+ }
221
+ }
222
+ }
223
+ // 3. Fallback: scan 1-2 levels deep for folders with package.json or AGENTS.md
224
+ if (projects.size === 0) {
225
+ const ignored = new Set([
226
+ "node_modules",
227
+ ".git",
228
+ "dist",
229
+ "build",
230
+ "coverage",
231
+ "archive",
232
+ "reports",
233
+ "screenshots",
234
+ "tests",
235
+ "scripts",
236
+ "docs",
237
+ "elements",
238
+ ]);
239
+ const topEntries = await readdir(root, { withFileTypes: true }).catch(() => []);
240
+ for (const top of topEntries) {
241
+ if (!top.isDirectory() || ignored.has(top.name) || top.name.startsWith("."))
242
+ continue;
243
+ const topPath = path.join(root, top.name);
244
+ if ((await exists(path.join(topPath, "package.json"))) ||
245
+ (await exists(path.join(topPath, "AGENTS.md")))) {
246
+ const rel = top.name;
247
+ projects.set(rel, { name: rel, path: topPath, relative: rel });
248
+ continue;
249
+ }
250
+ const subEntries = await readdir(topPath, { withFileTypes: true }).catch(() => []);
251
+ for (const sub of subEntries) {
252
+ if (!sub.isDirectory() || ignored.has(sub.name) || sub.name.startsWith("."))
253
+ continue;
254
+ const subPath = path.join(topPath, sub.name);
255
+ if ((await exists(path.join(subPath, "package.json"))) ||
256
+ (await exists(path.join(subPath, "AGENTS.md")))) {
257
+ const rel = `${top.name}/${sub.name}`;
258
+ projects.set(rel, { name: rel, path: subPath, relative: rel });
259
+ }
260
+ }
261
+ }
262
+ }
263
+ return Array.from(projects.values()).sort((a, b) => a.name.localeCompare(b.name));
264
+ }
265
+ export async function findProjectRoot(startDir = process.cwd()) {
266
+ let current = path.resolve(startDir);
267
+ while (true) {
268
+ const configPath = path.join(current, ".mozole", "project.json");
269
+ const agentsPath = path.join(current, "AGENTS.md");
270
+ if ((await exists(configPath)) || (await exists(agentsPath))) {
271
+ return current;
272
+ }
273
+ const parent = path.dirname(current);
274
+ if (parent === current) {
275
+ break;
276
+ }
277
+ current = parent;
278
+ }
279
+ return null;
280
+ }
281
+ export async function findNodeModulesFile(startDir, relativeSubpath) {
282
+ let current = path.resolve(startDir);
283
+ while (true) {
284
+ const candidate = path.join(current, "node_modules", relativeSubpath);
285
+ if (await exists(candidate)) {
286
+ return candidate;
287
+ }
288
+ const parent = path.dirname(current);
289
+ if (parent === current) {
290
+ break;
291
+ }
292
+ current = parent;
293
+ }
294
+ return null;
295
+ }
296
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare function isGitInstalled(): Promise<boolean>;
2
+ export declare function isGitRepo(cwd: string): Promise<boolean>;
3
+ export declare function initGit(cwd: string, initialCommitMessage?: string): Promise<boolean>;
4
+ export declare function stageAndCommit(cwd: string, message: string): Promise<{
5
+ success: boolean;
6
+ output: string;
7
+ }>;
8
+ export declare function formatPhaseCommitMessage(phaseNumber: number | string, phaseTitle: string): string;
9
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAOvD;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7D;AAED,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,oBAAoB,SAAsC,GACzD,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B/C;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAQjG"}