@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
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
- import type { Output } from "../output.js";
2
- import { type ProgressState } from "../progress.js";
3
- export declare function verifyCommand(cwd: string, output?: Output, options?: {
4
- force?: boolean | undefined;
5
- verbose?: boolean | undefined;
6
- onProgress?: ((state: ProgressState) => void) | undefined;
7
- }): Promise<number>;
1
+ export interface VerifyOptions {
2
+ cwd?: string;
3
+ skipBuild?: boolean;
4
+ withProbe?: boolean;
5
+ }
6
+ export interface VerificationStage {
7
+ name: string;
8
+ success: boolean;
9
+ message?: string;
10
+ evidence?: string;
11
+ }
12
+ export declare function verifyCommand(options?: VerifyOptions): Promise<boolean>;
8
13
  //# sourceMappingURL=verify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,gBAAgB,CAAC;AAIlE,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAgB,EACxB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACtD,GACL,OAAO,CAAC,MAAM,CAAC,CA2EjB"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkMjF"}
@@ -1,75 +1,190 @@
1
- import { findProjectRoot, readConfig } from "../config/project.js";
2
- import { projectFingerprint } from "../governor/fingerprint.js";
3
- import { readGovernorState, writeGovernorState } from "../governor/state.js";
4
- import { TaskProgress } from "../progress.js";
5
- import { updateTelemetry } from "../telemetry/store.js";
6
- import { runVerification } from "../verify/runner.js";
7
- export async function verifyCommand(cwd, output = console, options = {}) {
8
- const progress = new TaskProgress({
9
- total: 5,
10
- title: "Verify",
11
- verbose: options.verbose,
12
- output,
13
- onUpdate: options.onProgress,
14
- });
15
- const controller = new AbortController();
16
- const abort = () => controller.abort();
17
- process.once("SIGINT", abort);
18
- process.once("SIGTERM", abort);
1
+ import { readFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import pc from "picocolors";
4
+ import { scanProjectForAiTraces } from "../utils/ai-trace.js";
5
+ import { exists, findNodeModulesFile, findProjectRoot } from "../utils/fs.js";
6
+ import { run } from "../utils/process.js";
7
+ import { testCommand } from "./test.js";
8
+ export async function verifyCommand(options = {}) {
9
+ const cwd = options.cwd ?? process.cwd();
10
+ const projectRoot = (await findProjectRoot(cwd)) ?? cwd;
11
+ console.log(pc.cyan(`\n🛡️ Running Mozole Deterministic Verification in ${pc.bold(projectRoot)}`));
12
+ console.log(pc.gray("═".repeat(65)));
13
+ const stages = [];
14
+ // Stage 1: Synthetic Trace Scanner
15
+ console.log(pc.bold("\n1. Scanning for synthetic attribution markers and bot trailers..."));
19
16
  try {
20
- progress.step("Preparing verification");
21
- const root = await findProjectRoot(cwd);
22
- const config = await readConfig(root);
23
- const fingerprint = config.governor?.enabled
24
- ? await projectFingerprint(root, config, "verification")
25
- : "";
26
- const state = config.governor?.enabled
27
- ? await readGovernorState(root)
28
- : undefined;
29
- if (config.governor?.enabled &&
30
- !options.force &&
31
- state?.verification?.fingerprint === fingerprint) {
32
- progress.done();
33
- const message = "VERIFY CURRENT\n\nNo relevant changes since the last successful verification." +
34
- (config.mode === "scaffold"
35
- ? "\n\nSCAFFOLD MODE\nCCE, governor, telemetry, and agent instructions are intentionally absent."
36
- : "");
37
- output.log(message);
38
- if (config.telemetry?.enabled)
39
- await updateTelemetry(root, (telemetry) => {
40
- telemetry.verification.avoidedRuns++;
41
- telemetry.governor.modelFacingDiagnosticChars += message.length;
42
- });
43
- return 0;
17
+ const traces = await scanProjectForAiTraces(projectRoot);
18
+ if (traces.length > 0) {
19
+ stages.push({
20
+ name: "Synthetic Trace Scanner",
21
+ success: false,
22
+ message: `Detected ${traces.length} synthetic attribution marker(s).`,
23
+ evidence: traces.map((t) => ` ${t.file}:${t.line} -> "${t.match}"`).join("\n"),
24
+ });
25
+ console.log(pc.red(" ✗ Prohibited synthetic markers found:"));
26
+ for (const t of traces) {
27
+ console.log(pc.red(` - ${t.file}:${t.line} (${t.match})`));
28
+ }
44
29
  }
45
- const result = await runVerification(root, config, controller.signal, (checkName, idx, total) => {
46
- progress.update(idx, `Running check: ${checkName}`);
47
- progress.logVerbose(`Running ${checkName} (${idx}/${total})`);
30
+ else {
31
+ stages.push({ name: "Synthetic Trace Scanner", success: true });
32
+ console.log(pc.green(" ✓ Zero synthetic traces or bot trailers detected."));
33
+ }
34
+ }
35
+ catch (err) {
36
+ stages.push({
37
+ name: "Synthetic Trace Scanner",
38
+ success: false,
39
+ message: err instanceof Error ? err.message : String(err),
40
+ });
41
+ }
42
+ // Compute hoisted node_modules/.bin paths for monorepo workspaces
43
+ const binDirs = [];
44
+ let cur = path.resolve(projectRoot);
45
+ while (true) {
46
+ const binCandidate = path.join(cur, "node_modules", ".bin");
47
+ if (await exists(binCandidate)) {
48
+ binDirs.push(binCandidate);
49
+ }
50
+ const par = path.dirname(cur);
51
+ if (par === cur)
52
+ break;
53
+ cur = par;
54
+ }
55
+ const pathSep = process.platform === "win32" ? ";" : ":";
56
+ const augmentedEnv = {
57
+ ...process.env,
58
+ PATH: binDirs.length > 0
59
+ ? `${binDirs.join(pathSep)}${pathSep}${process.env.PATH ?? ""}`
60
+ : process.env.PATH,
61
+ };
62
+ // Stage 2: Biome Lint & Format Check
63
+ console.log(pc.bold("\n2. Running Biome linter and formatter..."));
64
+ try {
65
+ const biomeBin = (await findNodeModulesFile(projectRoot, "@biomejs/biome/bin/biome")) ??
66
+ path.join(projectRoot, "node_modules/@biomejs/biome/bin/biome");
67
+ const targetDir = (await exists(path.join(projectRoot, "src")))
68
+ ? "src"
69
+ : (await exists(path.join(projectRoot, "app")))
70
+ ? "app"
71
+ : ".";
72
+ const biomeRes = await run(process.execPath, [biomeBin, "check", targetDir], {
73
+ cwd: projectRoot,
74
+ env: augmentedEnv,
75
+ });
76
+ if (biomeRes.exitCode === 0) {
77
+ stages.push({ name: "Biome Code Standards", success: true });
78
+ console.log(pc.green(" ✓ Biome lint and formatting clean."));
79
+ }
80
+ else {
81
+ stages.push({
82
+ name: "Biome Code Standards",
83
+ success: false,
84
+ evidence: biomeRes.stderr + biomeRes.stdout,
85
+ });
86
+ console.log(pc.red(" ✗ Biome reported lint or formatting violations."));
87
+ }
88
+ }
89
+ catch (err) {
90
+ // Environmental check
91
+ stages.push({
92
+ name: "Biome Code Standards",
93
+ success: false,
94
+ message: `Biome execution failed: ${err instanceof Error ? err.message : String(err)}`,
95
+ });
96
+ }
97
+ // Stage 3: TypeScript Compilation & Typecheck
98
+ console.log(pc.bold("\n3. Running TypeScript typecheck..."));
99
+ try {
100
+ const pkg = JSON.parse(await readFile(path.join(projectRoot, "package.json"), "utf8"));
101
+ const tscBin = (await findNodeModulesFile(projectRoot, "typescript/bin/tsc")) ??
102
+ path.join(projectRoot, "node_modules/typescript/bin/tsc");
103
+ const tscRes = pkg.scripts?.typecheck
104
+ ? await run("npm", ["run", "typecheck"], { cwd: projectRoot, env: augmentedEnv })
105
+ : await run(process.execPath, [tscBin, "--noEmit"], { cwd: projectRoot, env: augmentedEnv });
106
+ if (tscRes.exitCode === 0) {
107
+ stages.push({ name: "TypeScript Typecheck", success: true });
108
+ console.log(pc.green(" ✓ TypeScript compiled with zero type errors."));
109
+ }
110
+ else {
111
+ stages.push({
112
+ name: "TypeScript Typecheck",
113
+ success: false,
114
+ evidence: tscRes.stderr + tscRes.stdout,
115
+ });
116
+ console.log(pc.red(" ✗ TypeScript compilation reported type errors."));
117
+ }
118
+ }
119
+ catch (err) {
120
+ stages.push({
121
+ name: "TypeScript Typecheck",
122
+ success: false,
123
+ message: `TypeScript execution failed: ${err instanceof Error ? err.message : String(err)}`,
48
124
  });
49
- progress.done();
50
- (result.passed ? output.log : output.error)(result.output);
51
- if (state && result.passed) {
52
- state.verification = {
53
- fingerprint: await projectFingerprint(root, config, "verification"),
54
- passedAt: new Date().toISOString(),
55
- checks: result.results.map((check) => check.name),
56
- };
57
- await writeGovernorState(root, state);
125
+ }
126
+ if (!options.skipBuild) {
127
+ console.log(pc.bold("\n4. Building production output..."));
128
+ try {
129
+ const build = await run("npm", ["run", "build"], { cwd: projectRoot, env: augmentedEnv });
130
+ stages.push({
131
+ name: "Production Build",
132
+ success: build.exitCode === 0,
133
+ evidence: build.stdout + build.stderr,
134
+ });
58
135
  }
59
- else if (state && state.verification?.fingerprint === fingerprint) {
60
- delete state.verification;
61
- await writeGovernorState(root, state);
136
+ catch (error) {
137
+ stages.push({ name: "Production Build", success: false, message: String(error) });
62
138
  }
63
- return result.passed ? 0 : 1;
64
139
  }
65
- catch (error) {
66
- progress.done();
67
- output.error(`VERIFY FAIL\n\n${error instanceof Error ? error.message : String(error)}`);
68
- return controller.signal.aborted ? 130 : 2;
140
+ console.log(pc.bold("\n5. Running Mozole Design Contract & A11y Audit..."));
141
+ try {
142
+ await testCommand({ cwd: projectRoot, type: "all" });
143
+ stages.push({ name: "Design Contract & A11y Audit", success: true });
69
144
  }
70
- finally {
71
- process.removeListener("SIGINT", abort);
72
- process.removeListener("SIGTERM", abort);
145
+ catch (err) {
146
+ stages.push({
147
+ name: "Design Contract & A11y Audit",
148
+ success: false,
149
+ message: err instanceof Error ? err.message : String(err),
150
+ });
151
+ }
152
+ // Stage 6: Live Headless DOM Geometry & Trace Probe (if requested)
153
+ if (options.withProbe) {
154
+ console.log(pc.bold("\n6. Running Live Headless DOM Geometry & Trace Probe..."));
155
+ try {
156
+ await testCommand({ cwd: projectRoot, type: "probe" });
157
+ stages.push({ name: "Live DOM Geometry Probe", success: true });
158
+ }
159
+ catch (err) {
160
+ stages.push({
161
+ name: "Live DOM Geometry Probe",
162
+ success: false,
163
+ message: err instanceof Error ? err.message : String(err),
164
+ });
165
+ }
166
+ }
167
+ // Summary Report
168
+ console.log(pc.gray(`\n${"═".repeat(65)}`));
169
+ const failedStages = stages.filter((s) => !s.success);
170
+ const allPassed = failedStages.length === 0;
171
+ if (allPassed) {
172
+ console.log(pc.green(pc.bold("\n🎉 All Mozole verification checks PASSED! Ready for deployment/commit.\n")));
173
+ }
174
+ else {
175
+ console.log(pc.red(pc.bold(`\n❌ Verification FAILED (${failedStages.length}/${stages.length} stages failed):\n`)));
176
+ for (const f of failedStages) {
177
+ console.log(pc.red(` ✗ Stage: ${f.name}`));
178
+ if (f.message)
179
+ console.log(pc.red(` Message: ${f.message}`));
180
+ if (f.evidence) {
181
+ console.log(pc.dim(" Evidence:"));
182
+ const sample = f.evidence.split("\n").slice(0, 10).join("\n");
183
+ console.log(pc.dim(sample));
184
+ }
185
+ }
186
+ console.log();
73
187
  }
188
+ return allPassed;
74
189
  }
75
190
  //# sourceMappingURL=verify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export type A11ySeverity = "error" | "warn";
2
+ export interface A11yFinding {
3
+ file: string;
4
+ line: number;
5
+ rule: string;
6
+ severity: A11ySeverity;
7
+ element: string;
8
+ message: string;
9
+ }
10
+ export interface A11yAuditResult {
11
+ errors: A11yFinding[];
12
+ warnings: A11yFinding[];
13
+ totalIssues: number;
14
+ }
15
+ export interface HtmlSource {
16
+ file: string;
17
+ html: string;
18
+ }
19
+ /**
20
+ * Static accessibility and semantic landmark audit.
21
+ * Enforces WCAG 2.1 AA landmark hierarchy, keyboard landmarks, and accessible forms.
22
+ */
23
+ export declare function auditHtmlA11y(sources: HtmlSource[]): A11yAuditResult;
24
+ //# sourceMappingURL=a11y.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../../src/qa/a11y.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAUD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,eAAe,CA+KpE"}
@@ -0,0 +1,124 @@
1
+ function lineOf(source, index) {
2
+ return source.slice(0, index).split("\n").length;
3
+ }
4
+ function isDecorativeImage(tag) {
5
+ return /\balt\s*=\s*["']\s*["']/i.test(tag) || /\baria-hidden\s*=\s*["']true["']/i.test(tag);
6
+ }
7
+ /**
8
+ * Static accessibility and semantic landmark audit.
9
+ * Enforces WCAG 2.1 AA landmark hierarchy, keyboard landmarks, and accessible forms.
10
+ */
11
+ export function auditHtmlA11y(sources) {
12
+ const errors = [];
13
+ const warnings = [];
14
+ for (const { file, html: source } of sources) {
15
+ // Ignore inert markup in comments and raw-text elements while preserving line numbers.
16
+ const html = source.replace(/<!--[\s\S]*?-->|<(script|style)\b[^>]*>[\s\S]*?<\/\1\s*>/gi, (match) => match.replace(/[^\n]/g, " "));
17
+ const addError = (rule, element, message, line = 1) => {
18
+ errors.push({ file, line, rule, severity: "error", element, message });
19
+ };
20
+ const addWarn = (rule, element, message, line = 1) => {
21
+ warnings.push({ file, line, rule, severity: "warn", element, message });
22
+ };
23
+ // 1. html lang attribute (for full pages)
24
+ if (/<html\b/i.test(html)) {
25
+ if (!/<html\s[^>]*\blang\s*=\s*["'][a-z]{2}(?:-[A-Za-z]{2,4})?["']/i.test(html)) {
26
+ addError("html-lang", "<html>", "Missing or invalid lang attribute on <html> element.");
27
+ }
28
+ }
29
+ // 2. Headings & Landmarks (exempt empty SPA root shells)
30
+ const isSpaShell = /<div\s+id=["']root["']\s*>\s*<\/div>/i.test(html);
31
+ const h1s = Array.from(html.matchAll(/<h1\b[^>]*>/gi));
32
+ if (/<body\b|<main\b/i.test(html) && !isSpaShell) {
33
+ if (h1s.length === 0) {
34
+ addError("single-h1", "<h1>", "Page missing top-level <h1> landmark heading.");
35
+ }
36
+ else if (h1s.length > 1) {
37
+ addError("single-h1", "<h1>", `Page contains ${h1s.length} <h1> headings; exactly one landmark heading expected.`, lineOf(html, h1s[1].index ?? 0));
38
+ }
39
+ }
40
+ // 3. Main landmark
41
+ const mains = Array.from(html.matchAll(/<main\b[^>]*>/gi));
42
+ if (/<body\b/i.test(html) && !isSpaShell) {
43
+ if (mains.length === 0) {
44
+ addError("main-landmark", "<main>", "Page missing <main> primary content landmark.");
45
+ }
46
+ else if (mains.length > 1) {
47
+ addError("main-landmark", "<main>", `Page contains ${mains.length} <main> landmarks; exactly one expected.`, lineOf(html, mains[1].index ?? 0));
48
+ }
49
+ // 4. Skip-to-content link
50
+ const mainMatch = mains[0]?.[0];
51
+ const mainId = mainMatch?.match(/\bid\s*=\s*["']([^"']+)["']/i)?.[1];
52
+ const skipLinkMatch = Array.from(html.matchAll(/<a\b[^>]*>/gi)).find((match) => /\sclass\s*=\s*["'][^"']*\bskip-link\b[^"']*["']/i.test(match[0]));
53
+ if (mains.length === 1 && !skipLinkMatch) {
54
+ addWarn("skip-link", "<a class='skip-link'>", "Page lacks an accessible skip-to-content keyboard link before primary navigation.");
55
+ }
56
+ else if (skipLinkMatch && mainId) {
57
+ const skipHref = skipLinkMatch[0].match(/\shref\s*=\s*["']#([^"']+)["']/i)?.[1];
58
+ if (skipHref !== mainId) {
59
+ addError("skip-link-target", "<a class='skip-link'>", `Skip link target '#${skipHref}' does not match <main> ID '#${mainId}'.`);
60
+ }
61
+ }
62
+ }
63
+ // 5. Unique IDs
64
+ const idMatches = Array.from(html.matchAll(/<[^>]+>/g)).flatMap((tag) => Array.from(tag[0].matchAll(/\sid\s*=\s*["']([^"']+)["']/gi)));
65
+ const seenIds = new Set();
66
+ const dupIds = new Set();
67
+ for (const match of idMatches) {
68
+ const id = match[1];
69
+ if (seenIds.has(id)) {
70
+ dupIds.add(id);
71
+ }
72
+ seenIds.add(id);
73
+ }
74
+ for (const dup of dupIds) {
75
+ addError("unique-id", `#${dup}`, `Duplicate element ID '#${dup}' violates DOM uniqueness and a11y label associations.`);
76
+ }
77
+ // 6. Image alt text
78
+ const imgMatches = Array.from(html.matchAll(/<img\b[^>]*>/gi));
79
+ for (const match of imgMatches) {
80
+ const tag = match[0];
81
+ const line = lineOf(html, match.index ?? 0);
82
+ if (!/\balt\s*=/i.test(tag)) {
83
+ addError("img-alt", tag.slice(0, 60), "Image missing alt attribute. Provide descriptive alt text or empty alt='' for decorative graphics.", line);
84
+ }
85
+ else if (!isDecorativeImage(tag)) {
86
+ const altText = tag.match(/\balt\s*=\s*["']([^"']*)["']/i)?.[1] ?? "";
87
+ if (/^(?:image|photo|picture|görsel|resim|fotoğraf)$/i.test(altText.trim())) {
88
+ addWarn("img-alt-quality", tag.slice(0, 60), `Uninformative alt text '${altText}'. Describe the image content or set alt='' if decorative.`, line);
89
+ }
90
+ }
91
+ }
92
+ // 7. Button type attribute
93
+ const buttonMatches = Array.from(html.matchAll(/<button\b[^>]*>/gi));
94
+ for (const match of buttonMatches) {
95
+ const tag = match[0];
96
+ const line = lineOf(html, match.index ?? 0);
97
+ if (!/\btype\s*=\s*["'](?:button|submit|reset)["']/i.test(tag)) {
98
+ addWarn("button-type", tag.slice(0, 60), "Button missing explicit type attribute ('button', 'submit', or 'reset'). Default is submit.", line);
99
+ }
100
+ }
101
+ // 8. New tab links target='_blank' rel='noopener'
102
+ const blankLinks = Array.from(html.matchAll(/<a\b[^>]*\btarget\s*=\s*["']_blank["'][^>]*>/gi));
103
+ for (const match of blankLinks) {
104
+ const tag = match[0];
105
+ const line = lineOf(html, match.index ?? 0);
106
+ if (!/\brel\s*=\s*["'][^"']*\b(?:noopener|noreferrer)\b[^"']*["']/i.test(tag)) {
107
+ addError("link-rel-noopener", tag.slice(0, 60), "Target='_blank' link missing rel='noopener' or rel='noreferrer'.", line);
108
+ }
109
+ }
110
+ // 9. Inline styles ban (enforcing atomic primitives)
111
+ const inlineStyles = Array.from(html.matchAll(/\bstyle\s*=\s*["'][^"']*["']/gi));
112
+ for (const match of inlineStyles) {
113
+ const tag = match[0];
114
+ const line = lineOf(html, match.index ?? 0);
115
+ addError("no-inline-style", tag.slice(0, 60), "Inline style attribute bypasses design token system and atomic primitives.", line);
116
+ }
117
+ }
118
+ return {
119
+ errors,
120
+ warnings,
121
+ totalIssues: errors.length + warnings.length,
122
+ };
123
+ }
124
+ //# sourceMappingURL=a11y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11y.js","sourceRoot":"","sources":["../../src/qa/a11y.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface ViewportDefinition {
2
+ name: string;
3
+ width: number;
4
+ height: number;
5
+ }
6
+ export declare const STANDARD_VIEWPORTS: ViewportDefinition[];
7
+ /**
8
+ * Extracts breakpoint boundary widths from CSS sources.
9
+ * For every detected min-width or max-width query, generates width - 1, width, and width + 1,
10
+ * ensuring boundary conditions never cause accidental horizontal overflow or control collisions.
11
+ */
12
+ export declare function extractBreakpointBoundaries(cssSources: string[], options?: {
13
+ minWidth?: number;
14
+ maxWidth?: number;
15
+ }): number[];
16
+ //# sourceMappingURL=breakpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../src/qa/breakpoints.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,EASlD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,MAAM,EAAE,CAmCV"}
@@ -0,0 +1,45 @@
1
+ import postcss from "postcss";
2
+ export const STANDARD_VIEWPORTS = [
3
+ { name: "mobile-min", width: 320, height: 800 },
4
+ { name: "mobile-small", width: 375, height: 812 },
5
+ { name: "mobile-standard", width: 390, height: 844 },
6
+ { name: "tablet-portrait", width: 768, height: 1024 },
7
+ { name: "tablet-landscape", width: 1024, height: 768 },
8
+ { name: "desktop-compact", width: 1280, height: 800 },
9
+ { name: "desktop-standard", width: 1440, height: 900 },
10
+ { name: "desktop-wide", width: 1920, height: 1080 },
11
+ ];
12
+ /**
13
+ * Extracts breakpoint boundary widths from CSS sources.
14
+ * For every detected min-width or max-width query, generates width - 1, width, and width + 1,
15
+ * ensuring boundary conditions never cause accidental horizontal overflow or control collisions.
16
+ */
17
+ export function extractBreakpointBoundaries(cssSources, options) {
18
+ const min = options?.minWidth ?? 320;
19
+ const max = options?.maxWidth ?? 2560;
20
+ const boundaries = new Set(STANDARD_VIEWPORTS.map((viewport) => viewport.width).filter((width) => width >= min && width <= max));
21
+ for (const css of cssSources) {
22
+ try {
23
+ const root = postcss.parse(css);
24
+ root.walkAtRules("media", (rule) => {
25
+ const matches = rule.params.matchAll(/(?:(?:min|max)-width\s*:|\bwidth\s*(?:<=?|>=?|=))\s*(\d+(?:\.\d+)?)(px|rem|em)\b|(\d+(?:\.\d+)?)(px|rem|em)\s*(?:<=?|>=?)\s*(?=width\b)/gi);
26
+ for (const match of matches) {
27
+ const rawVal = Number.parseFloat(match[1] ?? match[3]);
28
+ const unit = (match[2] ?? match[4]).toLowerCase();
29
+ const point = Math.round(rawVal * (unit === "px" ? 1 : 16));
30
+ for (const delta of [-1, 0, 1]) {
31
+ const candidate = point + delta;
32
+ if (candidate >= min && candidate <= max) {
33
+ boundaries.add(candidate);
34
+ }
35
+ }
36
+ }
37
+ });
38
+ }
39
+ catch {
40
+ // Ignore unparseable CSS chunks
41
+ }
42
+ }
43
+ return Array.from(boundaries).sort((a, b) => a - b);
44
+ }
45
+ //# sourceMappingURL=breakpoints.js.map