@vibecheckai/cli 2.8.2 → 3.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 (454) hide show
  1. package/README.md +8 -8
  2. package/bin/_deprecations.js +35 -0
  3. package/bin/_router.js +46 -0
  4. package/bin/cli-hygiene.js +241 -0
  5. package/bin/guardrail.js +834 -0
  6. package/bin/runners/cli-utils.js +1070 -0
  7. package/bin/runners/context/ai-task-decomposer.js +337 -0
  8. package/bin/runners/context/analyzer.js +462 -0
  9. package/bin/runners/context/api-contracts.js +427 -0
  10. package/bin/runners/context/context-diff.js +342 -0
  11. package/bin/runners/context/context-pruner.js +291 -0
  12. package/bin/runners/context/dependency-graph.js +414 -0
  13. package/bin/runners/context/generators/claude.js +107 -0
  14. package/bin/runners/context/generators/codex.js +108 -0
  15. package/bin/runners/context/generators/copilot.js +119 -0
  16. package/bin/runners/context/generators/cursor.js +514 -0
  17. package/bin/runners/context/generators/mcp.js +151 -0
  18. package/bin/runners/context/generators/windsurf.js +180 -0
  19. package/bin/runners/context/git-context.js +302 -0
  20. package/bin/runners/context/index.js +1042 -0
  21. package/bin/runners/context/insights.js +173 -0
  22. package/bin/runners/context/mcp-server/generate-rules.js +337 -0
  23. package/bin/runners/context/mcp-server/index.js +1176 -0
  24. package/bin/runners/context/mcp-server/package.json +24 -0
  25. package/bin/runners/context/memory.js +200 -0
  26. package/bin/runners/context/monorepo.js +215 -0
  27. package/bin/runners/context/multi-repo-federation.js +404 -0
  28. package/bin/runners/context/patterns.js +253 -0
  29. package/bin/runners/context/proof-context.js +972 -0
  30. package/bin/runners/context/security-scanner.js +303 -0
  31. package/bin/runners/context/semantic-search.js +350 -0
  32. package/bin/runners/context/shared.js +264 -0
  33. package/bin/runners/context/team-conventions.js +310 -0
  34. package/bin/runners/lib/ai-bridge.js +416 -0
  35. package/bin/runners/lib/analysis-core.js +271 -0
  36. package/bin/runners/lib/analyzers.js +541 -0
  37. package/bin/runners/lib/audit-bridge.js +391 -0
  38. package/bin/runners/lib/auth-truth.js +193 -0
  39. package/bin/runners/lib/auth.js +215 -0
  40. package/bin/runners/lib/backup.js +62 -0
  41. package/bin/runners/lib/billing.js +107 -0
  42. package/bin/runners/lib/claims.js +118 -0
  43. package/bin/runners/lib/cli-ui.js +540 -0
  44. package/bin/runners/lib/compliance-bridge-new.js +0 -0
  45. package/bin/runners/lib/compliance-bridge.js +165 -0
  46. package/bin/runners/lib/contracts/auth-contract.js +194 -0
  47. package/bin/runners/lib/contracts/env-contract.js +178 -0
  48. package/bin/runners/lib/contracts/external-contract.js +198 -0
  49. package/bin/runners/lib/contracts/guard.js +168 -0
  50. package/bin/runners/lib/contracts/index.js +89 -0
  51. package/bin/runners/lib/contracts/plan-validator.js +311 -0
  52. package/bin/runners/lib/contracts/route-contract.js +192 -0
  53. package/bin/runners/lib/detect.js +89 -0
  54. package/bin/runners/lib/doctor/autofix.js +254 -0
  55. package/bin/runners/lib/doctor/index.js +37 -0
  56. package/bin/runners/lib/doctor/modules/dependencies.js +325 -0
  57. package/bin/runners/lib/doctor/modules/index.js +46 -0
  58. package/bin/runners/lib/doctor/modules/network.js +250 -0
  59. package/bin/runners/lib/doctor/modules/project.js +312 -0
  60. package/bin/runners/lib/doctor/modules/runtime.js +224 -0
  61. package/bin/runners/lib/doctor/modules/security.js +348 -0
  62. package/bin/runners/lib/doctor/modules/system.js +213 -0
  63. package/bin/runners/lib/doctor/modules/vibecheck.js +394 -0
  64. package/bin/runners/lib/doctor/reporter.js +262 -0
  65. package/bin/runners/lib/doctor/service.js +262 -0
  66. package/bin/runners/lib/doctor/types.js +113 -0
  67. package/bin/runners/lib/doctor/ui.js +263 -0
  68. package/bin/runners/lib/doctor-enhanced.js +233 -0
  69. package/bin/runners/lib/doctor-v2.js +608 -0
  70. package/bin/runners/lib/enforcement.js +72 -0
  71. package/bin/runners/lib/enterprise-detect.js +603 -0
  72. package/bin/runners/lib/enterprise-init.js +942 -0
  73. package/bin/runners/lib/entitlements-v2.js +381 -0
  74. package/bin/runners/lib/entitlements.generated.js +0 -0
  75. package/bin/runners/lib/entitlements.js +332 -0
  76. package/bin/runners/lib/env-template.js +66 -0
  77. package/bin/runners/lib/env.js +189 -0
  78. package/bin/runners/lib/error-handler.js +320 -0
  79. package/bin/runners/lib/firewall-prompt.js +50 -0
  80. package/bin/runners/lib/graph/graph-builder.js +265 -0
  81. package/bin/runners/lib/graph/html-renderer.js +413 -0
  82. package/bin/runners/lib/graph/index.js +32 -0
  83. package/bin/runners/lib/graph/runtime-collector.js +215 -0
  84. package/bin/runners/lib/graph/static-extractor.js +518 -0
  85. package/bin/runners/lib/init-wizard.js +308 -0
  86. package/bin/runners/lib/json-output.js +76 -0
  87. package/bin/runners/lib/llm.js +75 -0
  88. package/bin/runners/lib/meter.js +61 -0
  89. package/bin/runners/lib/missions/evidence.js +126 -0
  90. package/bin/runners/lib/missions/plan.js +69 -0
  91. package/bin/runners/lib/missions/templates.js +147 -0
  92. package/bin/runners/lib/patch.js +40 -0
  93. package/bin/runners/lib/permissions/auth-model.js +213 -0
  94. package/bin/runners/lib/permissions/idor-prover.js +205 -0
  95. package/bin/runners/lib/permissions/index.js +45 -0
  96. package/bin/runners/lib/permissions/matrix-builder.js +198 -0
  97. package/bin/runners/lib/pkgjson.js +28 -0
  98. package/bin/runners/lib/preflight.js +142 -0
  99. package/bin/runners/lib/reality-findings.js +84 -0
  100. package/bin/runners/lib/redact.js +29 -0
  101. package/bin/runners/lib/replay/capsule-manager.js +154 -0
  102. package/bin/runners/lib/replay/index.js +263 -0
  103. package/bin/runners/lib/replay/player.js +348 -0
  104. package/bin/runners/lib/replay/recorder.js +331 -0
  105. package/bin/runners/lib/report-engine.js +447 -0
  106. package/bin/runners/lib/report-html.js +1117 -0
  107. package/bin/runners/lib/report-templates.js +964 -0
  108. package/bin/runners/lib/route-detection.js +1140 -0
  109. package/bin/runners/lib/route-truth.js +477 -0
  110. package/bin/runners/lib/sandbox/index.js +59 -0
  111. package/bin/runners/lib/sandbox/proof-chain.js +399 -0
  112. package/bin/runners/lib/sandbox/sandbox-runner.js +205 -0
  113. package/bin/runners/lib/sandbox/worktree.js +174 -0
  114. package/bin/runners/lib/scan-cache.js +330 -0
  115. package/bin/runners/lib/scan-output-schema.js +344 -0
  116. package/bin/runners/lib/score-history.js +282 -0
  117. package/bin/runners/lib/security-bridge.js +249 -0
  118. package/bin/runners/lib/server-usage.js +513 -0
  119. package/bin/runners/lib/share-pack.js +239 -0
  120. package/bin/runners/lib/snippets.js +67 -0
  121. package/bin/runners/lib/truth.js +667 -0
  122. package/bin/runners/lib/unified-output.js +189 -0
  123. package/bin/runners/lib/validate-patch.js +156 -0
  124. package/bin/runners/lib/verification.js +345 -0
  125. package/bin/runners/reality/engine.js +917 -0
  126. package/bin/runners/reality/flows.js +122 -0
  127. package/bin/runners/reality/report.js +378 -0
  128. package/bin/runners/reality/session.js +193 -0
  129. package/bin/runners/runAIAgent.js +2 -0
  130. package/bin/runners/runAudit.js +2 -0
  131. package/bin/runners/runAuth.js +106 -0
  132. package/bin/runners/runAutopilot.js +2 -0
  133. package/bin/runners/runBadge.js +2 -0
  134. package/bin/runners/runCertify.js +2 -0
  135. package/bin/runners/runClaimVerifier.js +483 -0
  136. package/bin/runners/runContext.js +56 -0
  137. package/bin/runners/runContextCompiler.js +385 -0
  138. package/bin/runners/runCtx.js +187 -0
  139. package/bin/runners/runCtxGuard.js +176 -0
  140. package/bin/runners/runCtxSync.js +116 -0
  141. package/bin/runners/runDashboard.js +10 -0
  142. package/bin/runners/runDoctor.js +245 -0
  143. package/bin/runners/runEnhancedShip.js +2 -0
  144. package/bin/runners/runFix.js +735 -0
  145. package/bin/runners/runFixPacks.js +2 -0
  146. package/bin/runners/runGate.js +17 -0
  147. package/bin/runners/runGraph.js +283 -0
  148. package/bin/runners/runInit.js +260 -0
  149. package/bin/runners/runInitGha.js +101 -0
  150. package/bin/runners/runInstall.js +76 -0
  151. package/bin/runners/runInteractive.js +388 -0
  152. package/bin/runners/runLaunch.js +2 -0
  153. package/bin/runners/runMcp.js +19 -0
  154. package/bin/runners/runMdc.js +2 -0
  155. package/bin/runners/runMissionGenerator.js +282 -0
  156. package/bin/runners/runNaturalLanguage.js +3 -0
  157. package/bin/runners/runPR.js +96 -0
  158. package/bin/runners/runPermissions.js +290 -0
  159. package/bin/runners/runPromptFirewall.js +211 -0
  160. package/bin/runners/runProof.js +2 -0
  161. package/bin/runners/runProve.js +392 -0
  162. package/bin/runners/runReality.js +489 -0
  163. package/bin/runners/runRealitySniff.js +2 -0
  164. package/bin/runners/runReplay.js +469 -0
  165. package/bin/runners/runReport.js +478 -0
  166. package/bin/runners/runScan.js +835 -0
  167. package/bin/runners/runShare.js +34 -0
  168. package/bin/runners/runShip.js +1062 -0
  169. package/bin/runners/runStatus.js +136 -0
  170. package/bin/runners/runTruthpack.js +634 -0
  171. package/bin/runners/runUpgrade.js +2 -0
  172. package/bin/runners/runValidate.js +2 -0
  173. package/bin/runners/runVerifyAgentOutput.js +2 -0
  174. package/bin/runners/runWatch.js +230 -0
  175. package/bin/runners/utils.js +360 -0
  176. package/bin/scan.js +612 -0
  177. package/bin/vibecheck.js +834 -0
  178. package/package.json +11 -11
  179. package/dist/autopatch/verified-autopatch.d.ts +0 -111
  180. package/dist/autopatch/verified-autopatch.d.ts.map +0 -1
  181. package/dist/autopatch/verified-autopatch.js +0 -503
  182. package/dist/autopatch/verified-autopatch.js.map +0 -1
  183. package/dist/bundles/index.js +0 -8
  184. package/dist/bundles/vibecheck-core.js +0 -25799
  185. package/dist/bundles/vibecheck-security.js +0 -208693
  186. package/dist/bundles/vibecheck-ship.js +0 -2318
  187. package/dist/commands/baseline.d.ts +0 -7
  188. package/dist/commands/baseline.d.ts.map +0 -1
  189. package/dist/commands/baseline.js +0 -79
  190. package/dist/commands/baseline.js.map +0 -1
  191. package/dist/commands/cache.d.ts +0 -13
  192. package/dist/commands/cache.d.ts.map +0 -1
  193. package/dist/commands/cache.js +0 -165
  194. package/dist/commands/cache.js.map +0 -1
  195. package/dist/commands/checkpoint.d.ts +0 -8
  196. package/dist/commands/checkpoint.d.ts.map +0 -1
  197. package/dist/commands/checkpoint.js +0 -35
  198. package/dist/commands/checkpoint.js.map +0 -1
  199. package/dist/commands/doctor.d.ts +0 -17
  200. package/dist/commands/doctor.d.ts.map +0 -1
  201. package/dist/commands/doctor.js +0 -226
  202. package/dist/commands/doctor.js.map +0 -1
  203. package/dist/commands/evidence.d.ts +0 -45
  204. package/dist/commands/evidence.d.ts.map +0 -1
  205. package/dist/commands/evidence.js +0 -197
  206. package/dist/commands/evidence.js.map +0 -1
  207. package/dist/commands/explain.d.ts +0 -8
  208. package/dist/commands/explain.d.ts.map +0 -1
  209. package/dist/commands/explain.js +0 -52
  210. package/dist/commands/explain.js.map +0 -1
  211. package/dist/commands/fix-consolidated.d.ts +0 -19
  212. package/dist/commands/fix-consolidated.d.ts.map +0 -1
  213. package/dist/commands/fix-consolidated.js +0 -165
  214. package/dist/commands/fix-consolidated.js.map +0 -1
  215. package/dist/commands/index.d.ts +0 -8
  216. package/dist/commands/index.d.ts.map +0 -1
  217. package/dist/commands/index.js +0 -15
  218. package/dist/commands/index.js.map +0 -1
  219. package/dist/commands/init.d.ts +0 -8
  220. package/dist/commands/init.d.ts.map +0 -1
  221. package/dist/commands/init.js +0 -125
  222. package/dist/commands/init.js.map +0 -1
  223. package/dist/commands/launcher.d.ts +0 -10
  224. package/dist/commands/launcher.d.ts.map +0 -1
  225. package/dist/commands/launcher.js +0 -174
  226. package/dist/commands/launcher.js.map +0 -1
  227. package/dist/commands/on.d.ts +0 -8
  228. package/dist/commands/on.d.ts.map +0 -1
  229. package/dist/commands/on.js +0 -123
  230. package/dist/commands/on.js.map +0 -1
  231. package/dist/commands/replay.d.ts +0 -8
  232. package/dist/commands/replay.d.ts.map +0 -1
  233. package/dist/commands/replay.js +0 -52
  234. package/dist/commands/replay.js.map +0 -1
  235. package/dist/commands/scan-consolidated.d.ts +0 -61
  236. package/dist/commands/scan-consolidated.d.ts.map +0 -1
  237. package/dist/commands/scan-consolidated.js +0 -243
  238. package/dist/commands/scan-consolidated.js.map +0 -1
  239. package/dist/commands/scan-secrets.d.ts +0 -47
  240. package/dist/commands/scan-secrets.d.ts.map +0 -1
  241. package/dist/commands/scan-secrets.js +0 -225
  242. package/dist/commands/scan-secrets.js.map +0 -1
  243. package/dist/commands/scan-vulnerabilities-enhanced.d.ts +0 -41
  244. package/dist/commands/scan-vulnerabilities-enhanced.d.ts.map +0 -1
  245. package/dist/commands/scan-vulnerabilities-enhanced.js +0 -368
  246. package/dist/commands/scan-vulnerabilities-enhanced.js.map +0 -1
  247. package/dist/commands/scan-vulnerabilities-osv.d.ts +0 -58
  248. package/dist/commands/scan-vulnerabilities-osv.d.ts.map +0 -1
  249. package/dist/commands/scan-vulnerabilities-osv.js +0 -722
  250. package/dist/commands/scan-vulnerabilities-osv.js.map +0 -1
  251. package/dist/commands/scan-vulnerabilities.d.ts +0 -32
  252. package/dist/commands/scan-vulnerabilities.d.ts.map +0 -1
  253. package/dist/commands/scan-vulnerabilities.js +0 -283
  254. package/dist/commands/scan-vulnerabilities.js.map +0 -1
  255. package/dist/commands/secrets-allowlist.d.ts +0 -7
  256. package/dist/commands/secrets-allowlist.d.ts.map +0 -1
  257. package/dist/commands/secrets-allowlist.js +0 -85
  258. package/dist/commands/secrets-allowlist.js.map +0 -1
  259. package/dist/commands/ship-consolidated.d.ts +0 -58
  260. package/dist/commands/ship-consolidated.d.ts.map +0 -1
  261. package/dist/commands/ship-consolidated.js +0 -515
  262. package/dist/commands/ship-consolidated.js.map +0 -1
  263. package/dist/commands/stats.d.ts +0 -8
  264. package/dist/commands/stats.d.ts.map +0 -1
  265. package/dist/commands/stats.js +0 -134
  266. package/dist/commands/stats.js.map +0 -1
  267. package/dist/commands/upgrade.d.ts +0 -8
  268. package/dist/commands/upgrade.d.ts.map +0 -1
  269. package/dist/commands/upgrade.js +0 -30
  270. package/dist/commands/upgrade.js.map +0 -1
  271. package/dist/fix/applicator.d.ts +0 -44
  272. package/dist/fix/applicator.d.ts.map +0 -1
  273. package/dist/fix/applicator.js +0 -144
  274. package/dist/fix/applicator.js.map +0 -1
  275. package/dist/fix/backup.d.ts +0 -38
  276. package/dist/fix/backup.d.ts.map +0 -1
  277. package/dist/fix/backup.js +0 -154
  278. package/dist/fix/backup.js.map +0 -1
  279. package/dist/fix/engine.d.ts +0 -55
  280. package/dist/fix/engine.d.ts.map +0 -1
  281. package/dist/fix/engine.js +0 -285
  282. package/dist/fix/engine.js.map +0 -1
  283. package/dist/fix/index.d.ts +0 -5
  284. package/dist/fix/index.d.ts.map +0 -1
  285. package/dist/fix/index.js +0 -12
  286. package/dist/fix/index.js.map +0 -1
  287. package/dist/fix/interactive.d.ts +0 -22
  288. package/dist/fix/interactive.d.ts.map +0 -1
  289. package/dist/fix/interactive.js +0 -172
  290. package/dist/fix/interactive.js.map +0 -1
  291. package/dist/formatters/index.d.ts +0 -6
  292. package/dist/formatters/index.d.ts.map +0 -1
  293. package/dist/formatters/index.js +0 -11
  294. package/dist/formatters/index.js.map +0 -1
  295. package/dist/formatters/sarif-enhanced.d.ts +0 -78
  296. package/dist/formatters/sarif-enhanced.d.ts.map +0 -1
  297. package/dist/formatters/sarif-enhanced.js +0 -144
  298. package/dist/formatters/sarif-enhanced.js.map +0 -1
  299. package/dist/formatters/sarif-v2.d.ts +0 -121
  300. package/dist/formatters/sarif-v2.d.ts.map +0 -1
  301. package/dist/formatters/sarif-v2.js +0 -356
  302. package/dist/formatters/sarif-v2.js.map +0 -1
  303. package/dist/formatters/sarif.d.ts +0 -72
  304. package/dist/formatters/sarif.d.ts.map +0 -1
  305. package/dist/formatters/sarif.js +0 -146
  306. package/dist/formatters/sarif.js.map +0 -1
  307. package/dist/index.d.ts +0 -61
  308. package/dist/index.d.ts.map +0 -1
  309. package/dist/index.js +0 -4388
  310. package/dist/index.js.map +0 -1
  311. package/dist/init/ci-generator.d.ts +0 -18
  312. package/dist/init/ci-generator.d.ts.map +0 -1
  313. package/dist/init/ci-generator.js +0 -317
  314. package/dist/init/ci-generator.js.map +0 -1
  315. package/dist/init/detect-framework.d.ts +0 -15
  316. package/dist/init/detect-framework.d.ts.map +0 -1
  317. package/dist/init/detect-framework.js +0 -301
  318. package/dist/init/detect-framework.js.map +0 -1
  319. package/dist/init/hooks-installer.d.ts +0 -22
  320. package/dist/init/hooks-installer.d.ts.map +0 -1
  321. package/dist/init/hooks-installer.js +0 -310
  322. package/dist/init/hooks-installer.js.map +0 -1
  323. package/dist/init/index.d.ts +0 -8
  324. package/dist/init/index.d.ts.map +0 -1
  325. package/dist/init/index.js +0 -22
  326. package/dist/init/index.js.map +0 -1
  327. package/dist/init/templates.d.ts +0 -402
  328. package/dist/init/templates.d.ts.map +0 -1
  329. package/dist/init/templates.js +0 -240
  330. package/dist/init/templates.js.map +0 -1
  331. package/dist/mcp/server.d.ts +0 -12
  332. package/dist/mcp/server.d.ts.map +0 -1
  333. package/dist/mcp/server.js +0 -42
  334. package/dist/mcp/server.js.map +0 -1
  335. package/dist/mcp/telemetry.d.ts +0 -40
  336. package/dist/mcp/telemetry.d.ts.map +0 -1
  337. package/dist/mcp/telemetry.js +0 -98
  338. package/dist/mcp/telemetry.js.map +0 -1
  339. package/dist/reality/no-dead-buttons/button-sweep-generator.d.ts +0 -32
  340. package/dist/reality/no-dead-buttons/button-sweep-generator.d.ts.map +0 -1
  341. package/dist/reality/no-dead-buttons/button-sweep-generator.js +0 -236
  342. package/dist/reality/no-dead-buttons/button-sweep-generator.js.map +0 -1
  343. package/dist/reality/no-dead-buttons/index.d.ts +0 -11
  344. package/dist/reality/no-dead-buttons/index.d.ts.map +0 -1
  345. package/dist/reality/no-dead-buttons/index.js +0 -18
  346. package/dist/reality/no-dead-buttons/index.js.map +0 -1
  347. package/dist/reality/no-dead-buttons/static-scanner.d.ts +0 -34
  348. package/dist/reality/no-dead-buttons/static-scanner.d.ts.map +0 -1
  349. package/dist/reality/no-dead-buttons/static-scanner.js +0 -230
  350. package/dist/reality/no-dead-buttons/static-scanner.js.map +0 -1
  351. package/dist/reality/reality-graph.d.ts +0 -192
  352. package/dist/reality/reality-graph.d.ts.map +0 -1
  353. package/dist/reality/reality-graph.js +0 -600
  354. package/dist/reality/reality-graph.js.map +0 -1
  355. package/dist/reality/reality-runner.d.ts +0 -89
  356. package/dist/reality/reality-runner.d.ts.map +0 -1
  357. package/dist/reality/reality-runner.js +0 -540
  358. package/dist/reality/reality-runner.js.map +0 -1
  359. package/dist/reality/receipt-generator.d.ts +0 -152
  360. package/dist/reality/receipt-generator.d.ts.map +0 -1
  361. package/dist/reality/receipt-generator.js +0 -495
  362. package/dist/reality/receipt-generator.js.map +0 -1
  363. package/dist/reality/runtime-tracer.d.ts +0 -75
  364. package/dist/reality/runtime-tracer.d.ts.map +0 -1
  365. package/dist/reality/runtime-tracer.js +0 -109
  366. package/dist/reality/runtime-tracer.js.map +0 -1
  367. package/dist/runtime/auth-utils.d.ts +0 -43
  368. package/dist/runtime/auth-utils.d.ts.map +0 -1
  369. package/dist/runtime/auth-utils.js +0 -130
  370. package/dist/runtime/auth-utils.js.map +0 -1
  371. package/dist/runtime/client.d.ts +0 -74
  372. package/dist/runtime/client.d.ts.map +0 -1
  373. package/dist/runtime/client.js +0 -222
  374. package/dist/runtime/client.js.map +0 -1
  375. package/dist/runtime/creds.d.ts +0 -48
  376. package/dist/runtime/creds.d.ts.map +0 -1
  377. package/dist/runtime/creds.js +0 -245
  378. package/dist/runtime/creds.js.map +0 -1
  379. package/dist/runtime/exit-codes.d.ts +0 -49
  380. package/dist/runtime/exit-codes.d.ts.map +0 -1
  381. package/dist/runtime/exit-codes.js +0 -93
  382. package/dist/runtime/exit-codes.js.map +0 -1
  383. package/dist/runtime/index.d.ts +0 -9
  384. package/dist/runtime/index.d.ts.map +0 -1
  385. package/dist/runtime/index.js +0 -25
  386. package/dist/runtime/index.js.map +0 -1
  387. package/dist/runtime/json-output.d.ts +0 -42
  388. package/dist/runtime/json-output.d.ts.map +0 -1
  389. package/dist/runtime/json-output.js +0 -59
  390. package/dist/runtime/json-output.js.map +0 -1
  391. package/dist/runtime/semver.d.ts +0 -37
  392. package/dist/runtime/semver.d.ts.map +0 -1
  393. package/dist/runtime/semver.js +0 -110
  394. package/dist/runtime/semver.js.map +0 -1
  395. package/dist/scan/dead-ui-detector.d.ts +0 -48
  396. package/dist/scan/dead-ui-detector.d.ts.map +0 -1
  397. package/dist/scan/dead-ui-detector.js +0 -170
  398. package/dist/scan/dead-ui-detector.js.map +0 -1
  399. package/dist/scan/playwright-sweep.d.ts +0 -40
  400. package/dist/scan/playwright-sweep.d.ts.map +0 -1
  401. package/dist/scan/playwright-sweep.js +0 -216
  402. package/dist/scan/playwright-sweep.js.map +0 -1
  403. package/dist/scan/proof-bundle.d.ts +0 -25
  404. package/dist/scan/proof-bundle.d.ts.map +0 -1
  405. package/dist/scan/proof-bundle.js +0 -203
  406. package/dist/scan/proof-bundle.js.map +0 -1
  407. package/dist/scan/proof-graph.d.ts +0 -59
  408. package/dist/scan/proof-graph.d.ts.map +0 -1
  409. package/dist/scan/proof-graph.js +0 -64
  410. package/dist/scan/proof-graph.js.map +0 -1
  411. package/dist/scan/reality-sniff.d.ts +0 -56
  412. package/dist/scan/reality-sniff.d.ts.map +0 -1
  413. package/dist/scan/reality-sniff.js +0 -200
  414. package/dist/scan/reality-sniff.js.map +0 -1
  415. package/dist/scan/structural-verifier.d.ts +0 -20
  416. package/dist/scan/structural-verifier.d.ts.map +0 -1
  417. package/dist/scan/structural-verifier.js +0 -112
  418. package/dist/scan/structural-verifier.js.map +0 -1
  419. package/dist/scan/verification-engine.d.ts +0 -47
  420. package/dist/scan/verification-engine.d.ts.map +0 -1
  421. package/dist/scan/verification-engine.js +0 -141
  422. package/dist/scan/verification-engine.js.map +0 -1
  423. package/dist/scanner/baseline.d.ts +0 -52
  424. package/dist/scanner/baseline.d.ts.map +0 -1
  425. package/dist/scanner/baseline.js +0 -85
  426. package/dist/scanner/baseline.js.map +0 -1
  427. package/dist/scanner/incremental.d.ts +0 -30
  428. package/dist/scanner/incremental.d.ts.map +0 -1
  429. package/dist/scanner/incremental.js +0 -82
  430. package/dist/scanner/incremental.js.map +0 -1
  431. package/dist/scanner/parallel.d.ts +0 -43
  432. package/dist/scanner/parallel.d.ts.map +0 -1
  433. package/dist/scanner/parallel.js +0 -99
  434. package/dist/scanner/parallel.js.map +0 -1
  435. package/dist/standalone.d.ts +0 -1
  436. package/dist/standalone.d.ts.map +0 -1
  437. package/dist/standalone.js +0 -1
  438. package/dist/standalone.js.map +0 -1
  439. package/dist/truth-pack/index.d.ts +0 -102
  440. package/dist/truth-pack/index.d.ts.map +0 -1
  441. package/dist/truth-pack/index.js +0 -694
  442. package/dist/truth-pack/index.js.map +0 -1
  443. package/dist/ui/frame.d.ts +0 -68
  444. package/dist/ui/frame.d.ts.map +0 -1
  445. package/dist/ui/frame.js +0 -165
  446. package/dist/ui/frame.js.map +0 -1
  447. package/dist/ui/index.d.ts +0 -5
  448. package/dist/ui/index.d.ts.map +0 -1
  449. package/dist/ui/index.js +0 -16
  450. package/dist/ui/index.js.map +0 -1
  451. package/dist/ui.d.ts +0 -36
  452. package/dist/ui.d.ts.map +0 -1
  453. package/dist/ui.js +0 -45
  454. package/dist/ui.js.map +0 -1
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
- # vibecheck CLI v2.8.0 šŸŽ‰
1
+ # vibecheck CLI v3.0.0 šŸš€
2
2
 
3
- The official command-line interface for vibecheck - AI-native code security and vibecheck platform.
3
+ Ship with confidence. One verdict: **SHIP | WARN | BLOCK**
4
4
 
5
- ## ✨ What's New in v2.8.0
5
+ ## ✨ What's New in v3.0.0
6
6
 
7
- - 🌐 **Multi-Framework Route Detection** - Express, Flask, FastAPI, Django, Hono, Koa, Go (Gin/Echo/Fiber/Chi/Gorilla)
8
- - šŸ“„ **OpenAPI/Swagger Support** - Automatic route extraction from spec files
9
- - šŸ”® **GraphQL Detection** - Apollo, Yoga, Express-GraphQL, Strawberry
10
- - šŸ›”ļø **Improved Vuln Scanner** - Better OSV query failure handling with clear warnings
11
- - 🧹 **Clean JSON Output** - `--format json` now outputs pure JSON without banners
7
+ - šŸŽÆ **Unified CLI** - All spec commands now available: `install`, `ship`, `reality`, `fix`, `pr`, `share`, `ctx`
8
+ - šŸ“œ **Context Contracts** - `ctx sync` writes routes.json, env.json, auth.json, external.json
9
+ - šŸ¤– **MCP Server v1** - AI agent integration with `validate_plan` hallucination stopper
10
+ - šŸ”’ **Signed Entitlements** - Server-side metering with 24h offline grace
11
+ - šŸƒ **Reality → Ship Integration** - Runtime findings (DeadUI, AuthCoverage) affect verdict
12
12
 
13
13
  ## Installation
14
14
 
@@ -0,0 +1,35 @@
1
+ const fs = require("fs");
2
+ const os = require("os");
3
+ const path = require("path");
4
+
5
+ function cachePath() {
6
+ return path.join(os.homedir(), ".vibecheck", "deprecations.json");
7
+ }
8
+
9
+ function warnDeprecationOnce(legacyFrom, suggestion, version = "dev") {
10
+ if (!legacyFrom) return;
11
+ if (process.env.VIBECHECK_SILENCE_DEPRECATIONS === "1") return;
12
+
13
+ const file = cachePath();
14
+ let cache = {};
15
+ try {
16
+ cache = JSON.parse(fs.readFileSync(file, "utf8"));
17
+ } catch {}
18
+
19
+ const key = `${legacyFrom}@${version}`;
20
+ if (cache[key]) return;
21
+
22
+ process.stderr.write(
23
+ `Deprecation: 'vibecheck ${legacyFrom}' → use 'vibecheck ${suggestion}'\n`,
24
+ );
25
+
26
+ cache[key] = new Date().toISOString();
27
+ try {
28
+ fs.mkdirSync(path.dirname(file), { recursive: true });
29
+ fs.writeFileSync(file, JSON.stringify(cache, null, 2));
30
+ } catch (err) {
31
+ // Ignore cache write errors (e.g. permission issues)
32
+ }
33
+ }
34
+
35
+ module.exports = { warnDeprecationOnce };
package/bin/_router.js ADDED
@@ -0,0 +1,46 @@
1
+ const LEGACY_MAP = {
2
+ // ship is now first-class command, not legacy
3
+ // reality is now its own command - no longer routes to proof
4
+ mockproof: { to: ["proof", "mocks"] },
5
+ hygiene: { to: ["scan", "--only=hygiene"] },
6
+ security: { to: ["scan", "--only=security"] },
7
+ auth: { to: ["scan", "--only=auth"] },
8
+ routes: { to: ["scan", "--only=routes"] },
9
+ api: { to: ["scan", "--only=contracts"] }, // rename internal concept to contracts
10
+ mock: { to: ["scan", "--only=mocks"] },
11
+ };
12
+
13
+ function routeArgv(argv) {
14
+ const args = argv.slice(2);
15
+ const first = args[0];
16
+
17
+ // Handle top-level flags that act as commands
18
+ if (first === "--version" || first === "-v") {
19
+ return { legacyFrom: null, routed: ["version"] };
20
+ }
21
+ if (first === "--help" || first === "-h") {
22
+ return { legacyFrom: null, routed: ["help"] };
23
+ }
24
+
25
+ // Default command if none
26
+ if (!first || first.startsWith("-")) {
27
+ return { legacyFrom: null, routed: ["scan", ...args] };
28
+ }
29
+
30
+ // Legacy alias handling
31
+ if (LEGACY_MAP[first]) {
32
+ const mapped = LEGACY_MAP[first].to;
33
+ const rest = args.slice(1);
34
+ return { legacyFrom: first, routed: [...mapped, ...rest] };
35
+ }
36
+
37
+ // validate logic
38
+ if (first === "validate") {
39
+ return { legacyFrom: null, routed: args };
40
+ }
41
+
42
+ // Already new-style
43
+ return { legacyFrom: null, routed: args };
44
+ }
45
+
46
+ module.exports = { routeArgv };
@@ -0,0 +1,241 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * vibecheck Repo Hygiene CLI
5
+ *
6
+ * Enhanced false-positive detection for framework-managed files.
7
+ *
8
+ * Usage:
9
+ * node bin/cli-hygiene.js [command] [options]
10
+ *
11
+ * Commands:
12
+ * scan Full hygiene scan (default)
13
+ * duplicates Scan for duplicate files only
14
+ * unused Scan for unused files only
15
+ * errors Scan for lint/type errors only
16
+ *
17
+ * Options:
18
+ * --path, -p Project path (default: current directory)
19
+ * --json Output JSON instead of markdown
20
+ * --no-interactive Skip prompts
21
+ */
22
+
23
+ const path = require("path");
24
+ const fs = require("fs");
25
+
26
+ // Import hygiene modules
27
+ const {
28
+ findDuplicates,
29
+ findUnusedFiles,
30
+ collectAllErrors,
31
+ analyzeRootDirectory,
32
+ generateHygieneReport,
33
+ calculateHygieneScore,
34
+ } = require("../scripts/hygiene");
35
+
36
+ // Parse arguments
37
+ const args = process.argv.slice(2);
38
+ const command = args.find((a) => !a.startsWith("-")) || "scan";
39
+ const projectPath = getArg("--path", "-p") || ".";
40
+ const jsonOutput = args.includes("--json");
41
+
42
+ function getArg(long, short) {
43
+ const longIdx = args.findIndex((a) => a.startsWith(long + "=") || a === long);
44
+ if (longIdx !== -1) {
45
+ if (args[longIdx].includes("=")) return args[longIdx].split("=")[1];
46
+ return args[longIdx + 1];
47
+ }
48
+ if (short) {
49
+ const shortIdx = args.findIndex((a) => a === short);
50
+ if (shortIdx !== -1) return args[shortIdx + 1];
51
+ }
52
+ return null;
53
+ }
54
+
55
+ async function runFullScan(resolvedPath) {
56
+ console.log("šŸ” Scanning for duplicates...");
57
+ const duplicates = findDuplicates(resolvedPath);
58
+
59
+ console.log("šŸ“¦ Building import graph...");
60
+ const unused = findUnusedFiles(resolvedPath);
61
+
62
+ console.log("šŸ”“ Collecting errors...");
63
+ const errors = collectAllErrors(resolvedPath);
64
+
65
+ console.log("šŸ  Analyzing root directory...");
66
+ const rootCleanup = analyzeRootDirectory(resolvedPath);
67
+
68
+ return { projectPath: resolvedPath, duplicates, unused, errors, rootCleanup };
69
+ }
70
+
71
+ async function main() {
72
+ const resolvedPath = path.resolve(projectPath);
73
+
74
+ console.log(`\n🧹 vibecheck Repo Hygiene\n`);
75
+ console.log(`šŸ“ Project: ${resolvedPath}\n`);
76
+
77
+ switch (command) {
78
+ case "scan":
79
+ await handleScan(resolvedPath);
80
+ break;
81
+ case "duplicates":
82
+ await handleDuplicates(resolvedPath);
83
+ break;
84
+ case "unused":
85
+ await handleUnused(resolvedPath);
86
+ break;
87
+ case "errors":
88
+ await handleErrors(resolvedPath);
89
+ break;
90
+ default:
91
+ console.error(`Unknown command: ${command}`);
92
+ console.error("Available: scan, duplicates, unused, errors");
93
+ process.exit(1);
94
+ }
95
+ }
96
+
97
+ async function handleScan(resolvedPath) {
98
+ const results = await runFullScan(resolvedPath);
99
+ const score = calculateHygieneScore(results);
100
+
101
+ if (jsonOutput) {
102
+ console.log(JSON.stringify({ ...results, score }, null, 2));
103
+ return;
104
+ }
105
+
106
+ // Print report
107
+ const report = generateHygieneReport(results);
108
+ console.log("\n" + report);
109
+
110
+ // Print false-positive summary
111
+ printFalsePositiveSummary(results.unused);
112
+
113
+ // Save artifacts
114
+ const reportDir = path.join(resolvedPath, ".vibecheck");
115
+ if (!fs.existsSync(reportDir)) fs.mkdirSync(reportDir, { recursive: true });
116
+
117
+ fs.writeFileSync(path.join(reportDir, "hygiene-report.md"), report);
118
+ fs.writeFileSync(
119
+ path.join(reportDir, "hygiene-results.json"),
120
+ JSON.stringify(results, null, 2),
121
+ );
122
+ fs.writeFileSync(
123
+ path.join(reportDir, "hygiene-score.json"),
124
+ JSON.stringify(score, null, 2),
125
+ );
126
+ fs.writeFileSync(
127
+ path.join(reportDir, "unused-files.json"),
128
+ JSON.stringify(results.unused, null, 2),
129
+ );
130
+ fs.writeFileSync(
131
+ path.join(reportDir, "duplicates.json"),
132
+ JSON.stringify(results.duplicates, null, 2),
133
+ );
134
+
135
+ console.log(`\nšŸ“„ Reports saved to: ${reportDir}/\n`);
136
+
137
+ // Exit code based on score
138
+ if (score.score < 60) {
139
+ process.exit(1);
140
+ }
141
+ }
142
+
143
+ function printFalsePositiveSummary(unused) {
144
+ if (!unused?.stats) return;
145
+
146
+ const { falsePositives, trueUnused } = unused.stats;
147
+
148
+ console.log("\n" + "─".repeat(60));
149
+ console.log("\nšŸ“Š **False-Positive Detection Summary**\n");
150
+ console.log(` āœ… Framework-managed files detected: ${falsePositives || 0}`);
151
+ console.log(` šŸ—‘ļø Truly unused files: ${trueUnused || 0}`);
152
+
153
+ if (unused.unused?.definitelyUnused?.length > 0) {
154
+ console.log("\n **Safe to delete:**");
155
+ for (const file of unused.unused.definitelyUnused.slice(0, 10)) {
156
+ console.log(` - ${file.file}`);
157
+ }
158
+ if (unused.unused.definitelyUnused.length > 10) {
159
+ console.log(
160
+ ` ... and ${unused.unused.definitelyUnused.length - 10} more`,
161
+ );
162
+ }
163
+ }
164
+
165
+ console.log("");
166
+ }
167
+
168
+ async function handleDuplicates(resolvedPath) {
169
+ console.log("šŸ” Scanning for duplicates...");
170
+ const duplicates = findDuplicates(resolvedPath);
171
+
172
+ if (jsonOutput) {
173
+ console.log(JSON.stringify(duplicates, null, 2));
174
+ return;
175
+ }
176
+
177
+ console.log("\n## Duplicate Analysis\n");
178
+ console.log(`| Type | Count |`);
179
+ console.log(`|------|-------|`);
180
+ console.log(`| Exact duplicates | ${duplicates.exact?.length || 0} |`);
181
+ console.log(`| Near-duplicates | ${duplicates.near?.length || 0} |`);
182
+ console.log(`| Copy-paste blocks | ${duplicates.copyPaste?.length || 0} |`);
183
+
184
+ if (duplicates.exact?.length > 0) {
185
+ console.log("\n### Exact Duplicates\n");
186
+ for (const dup of duplicates.exact.slice(0, 10)) {
187
+ console.log(
188
+ `- ${dup.files?.map((f) => f.path).join(" = ") || JSON.stringify(dup)}`,
189
+ );
190
+ }
191
+ }
192
+ }
193
+
194
+ async function handleUnused(resolvedPath) {
195
+ console.log("šŸ“¦ Building import graph...");
196
+ const unused = findUnusedFiles(resolvedPath);
197
+
198
+ if (jsonOutput) {
199
+ console.log(JSON.stringify(unused, null, 2));
200
+ return;
201
+ }
202
+
203
+ console.log("\n## Unused File Analysis\n");
204
+ console.log(`| Category | Count |`);
205
+ console.log(`|----------|-------|`);
206
+ console.log(
207
+ `| Framework-managed (false positives) | ${unused.unused?.falsePositives?.length || 0} |`,
208
+ );
209
+ console.log(
210
+ `| Definitely unused | ${unused.unused?.definitelyUnused?.length || 0} |`,
211
+ );
212
+ console.log(
213
+ `| Probably unused | ${unused.unused?.probablyUnused?.length || 0} |`,
214
+ );
215
+ console.log(`| Test files | ${unused.unused?.testOnly?.length || 0} |`);
216
+
217
+ printFalsePositiveSummary(unused);
218
+ }
219
+
220
+ async function handleErrors(resolvedPath) {
221
+ console.log("šŸ”“ Collecting errors...");
222
+ const errors = collectAllErrors(resolvedPath);
223
+
224
+ if (jsonOutput) {
225
+ console.log(JSON.stringify(errors, null, 2));
226
+ return;
227
+ }
228
+
229
+ console.log("\n## Error Analysis\n");
230
+ console.log(`| Type | Count |`);
231
+ console.log(`|------|-------|`);
232
+ console.log(`| TypeScript errors | ${errors.typescript?.length || 0} |`);
233
+ console.log(`| ESLint errors | ${errors.eslint?.length || 0} |`);
234
+ console.log(`| Syntax errors | ${errors.syntax?.length || 0} |`);
235
+ console.log(`| Import errors | ${errors.imports?.length || 0} |`);
236
+ }
237
+
238
+ main().catch((err) => {
239
+ console.error("Error:", err.message);
240
+ process.exit(1);
241
+ });