@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
@@ -1,152 +0,0 @@
1
- /**
2
- * Proof-of-Execution Receipt Generator
3
- *
4
- * Generates tamper-evident receipt bundles for every PASS/SHIP verdict.
5
- * Includes cryptographic attestation and machine-verifiable evidence.
6
- */
7
- export interface ReceiptBundle {
8
- schemaVersion: string;
9
- receiptId: string;
10
- verdict: 'PASS' | 'SHIP' | 'FAIL';
11
- timestamp: string;
12
- build: {
13
- buildHash: string;
14
- dependencyLockHash: string;
15
- packageManager: string;
16
- nodeVersion: string;
17
- platform: string;
18
- };
19
- execution: {
20
- commands: Array<{
21
- command: string;
22
- args: string[];
23
- exitCode: number;
24
- stdout?: string;
25
- stderr?: string;
26
- duration: number;
27
- timestamp: string;
28
- }>;
29
- runtimeTraces: {
30
- requests: Array<{
31
- method: string;
32
- url: string;
33
- statusCode: number;
34
- timestamp: string;
35
- duration: number;
36
- headers?: Record<string, string>;
37
- }>;
38
- routes: Array<{
39
- path: string;
40
- method: string;
41
- hit: boolean;
42
- timestamp: string;
43
- responseTime?: number;
44
- }>;
45
- dbQueries?: Array<{
46
- query: string;
47
- duration: number;
48
- timestamp: string;
49
- table?: string;
50
- }>;
51
- };
52
- };
53
- coverage: {
54
- criticalPaths: Array<{
55
- path: string;
56
- description: string;
57
- covered: boolean;
58
- evidence: string[];
59
- timestamp: string;
60
- }>;
61
- coverageReport?: {
62
- totalPaths: number;
63
- coveredPaths: number;
64
- percentage: number;
65
- };
66
- };
67
- artifacts: {
68
- screenshots: string[];
69
- videos: string[];
70
- traces: string[];
71
- logs: string[];
72
- };
73
- attestation: {
74
- algorithm: 'RS256' | 'ES256' | 'HMAC-SHA256';
75
- keyId: string;
76
- signature: string;
77
- publicKey?: string;
78
- signedAt: string;
79
- };
80
- metadata: {
81
- projectPath: string;
82
- gitSha?: string;
83
- gitBranch?: string;
84
- runId: string;
85
- toolVersion: string;
86
- realityGraph?: {
87
- nodeCount: number;
88
- edgeCount: number;
89
- graphPath: string;
90
- };
91
- };
92
- }
93
- export interface ReceiptOptions {
94
- projectPath: string;
95
- runId: string;
96
- verdict: 'PASS' | 'SHIP' | 'FAIL';
97
- artifactDir: string;
98
- commands?: Array<{
99
- command: string;
100
- args: string[];
101
- exitCode: number;
102
- stdout?: string;
103
- stderr?: string;
104
- duration: number;
105
- timestamp: string;
106
- }>;
107
- runtimeTraces?: {
108
- requests?: Array<{
109
- method: string;
110
- url: string;
111
- statusCode: number;
112
- timestamp: string;
113
- duration: number;
114
- headers?: Record<string, string>;
115
- }>;
116
- routes?: Array<{
117
- path: string;
118
- method: string;
119
- hit: boolean;
120
- timestamp: string;
121
- responseTime?: number;
122
- }>;
123
- dbQueries?: Array<{
124
- query: string;
125
- duration: number;
126
- timestamp: string;
127
- table?: string;
128
- }>;
129
- };
130
- criticalPaths?: Array<{
131
- path: string;
132
- description: string;
133
- covered: boolean;
134
- evidence: string[];
135
- timestamp: string;
136
- }>;
137
- orgKeyId?: string;
138
- orgPrivateKey?: string;
139
- }
140
- /**
141
- * Generate Proof-of-Execution Receipt
142
- */
143
- export declare function generateReceipt(options: ReceiptOptions): Promise<string>;
144
- /**
145
- * Verify receipt signature
146
- */
147
- export declare function verifyReceipt(receiptPath: string, orgPublicKey?: string): Promise<boolean>;
148
- /**
149
- * Generate receipt summary for display
150
- */
151
- export declare function generateReceiptSummary(receiptPath: string): string;
152
- //# sourceMappingURL=receipt-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"receipt-generator.d.ts","sourceRoot":"","sources":["../../src/reality/receipt-generator.ts"],"names":[],"mappings":"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"}
@@ -1,495 +0,0 @@
1
- "use strict";
2
- /**
3
- * Proof-of-Execution Receipt Generator
4
- *
5
- * Generates tamper-evident receipt bundles for every PASS/SHIP verdict.
6
- * Includes cryptographic attestation and machine-verifiable evidence.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.generateReceipt = generateReceipt;
43
- exports.verifyReceipt = verifyReceipt;
44
- exports.generateReceiptSummary = generateReceiptSummary;
45
- const crypto = __importStar(require("crypto"));
46
- const fs = __importStar(require("fs"));
47
- const path = __importStar(require("path"));
48
- const child_process_1 = require("child_process");
49
- const crypto_1 = require("crypto");
50
- const reality_graph_1 = require("./reality-graph");
51
- /**
52
- * Get build hash from package-lock.json, yarn.lock, or pnpm-lock.yaml
53
- */
54
- function getDependencyLockHash(projectPath) {
55
- const lockFiles = [
56
- { file: 'package-lock.json', pm: 'npm' },
57
- { file: 'yarn.lock', pm: 'yarn' },
58
- { file: 'pnpm-lock.yaml', pm: 'pnpm' },
59
- ];
60
- for (const { file, pm } of lockFiles) {
61
- const lockPath = path.join(projectPath, file);
62
- if (fs.existsSync(lockPath)) {
63
- const content = fs.readFileSync(lockPath, 'utf-8');
64
- const hash = (0, crypto_1.createHash)('sha256').update(content).digest('hex');
65
- return { hash, packageManager: pm };
66
- }
67
- }
68
- return { hash: '', packageManager: 'unknown' };
69
- }
70
- /**
71
- * Get build hash from build artifacts or dist directory
72
- */
73
- function getBuildHash(projectPath) {
74
- const buildDirs = ['dist', 'build', '.next', 'out', '.turbo'];
75
- for (const dir of buildDirs) {
76
- const buildPath = path.join(projectPath, dir);
77
- if (fs.existsSync(buildPath) && fs.statSync(buildPath).isDirectory()) {
78
- return hashDirectory(buildPath);
79
- }
80
- }
81
- // If no build directory, hash package.json and source files
82
- const packageJsonPath = path.join(projectPath, 'package.json');
83
- if (fs.existsSync(packageJsonPath)) {
84
- const content = fs.readFileSync(packageJsonPath, 'utf-8');
85
- return (0, crypto_1.createHash)('sha256').update(content).digest('hex');
86
- }
87
- return '';
88
- }
89
- /**
90
- * Hash directory contents recursively
91
- */
92
- function hashDirectory(dirPath) {
93
- const hasher = (0, crypto_1.createHash)('sha256');
94
- function walk(currentPath) {
95
- const entries = fs.readdirSync(currentPath, { withFileTypes: true });
96
- for (const entry of entries) {
97
- const fullPath = path.join(currentPath, entry.name);
98
- // Skip node_modules, .git, etc.
99
- if (entry.name === 'node_modules' || entry.name === '.git' || entry.name.startsWith('.')) {
100
- continue;
101
- }
102
- if (entry.isDirectory()) {
103
- walk(fullPath);
104
- }
105
- else {
106
- try {
107
- const content = fs.readFileSync(fullPath);
108
- hasher.update(entry.name);
109
- hasher.update(content);
110
- }
111
- catch {
112
- // Skip files we can't read
113
- }
114
- }
115
- }
116
- }
117
- walk(dirPath);
118
- return hasher.digest('hex');
119
- }
120
- /**
121
- * Collect artifacts from artifact directory
122
- */
123
- function collectArtifacts(artifactDir) {
124
- const artifacts = {
125
- screenshots: [],
126
- videos: [],
127
- traces: [],
128
- logs: [],
129
- };
130
- if (!fs.existsSync(artifactDir)) {
131
- return artifacts;
132
- }
133
- function walk(currentPath, relativePath = '') {
134
- const entries = fs.readdirSync(currentPath, { withFileTypes: true });
135
- for (const entry of entries) {
136
- const fullPath = path.join(currentPath, entry.name);
137
- const relPath = path.join(relativePath, entry.name);
138
- if (entry.isDirectory()) {
139
- walk(fullPath, relPath);
140
- }
141
- else {
142
- const ext = path.extname(entry.name).toLowerCase();
143
- if (['.png', '.jpg', '.jpeg'].includes(ext)) {
144
- artifacts.screenshots.push(relPath);
145
- }
146
- else if (['.webm', '.mp4', '.mov'].includes(ext)) {
147
- artifacts.videos.push(relPath);
148
- }
149
- else if (ext === '.zip' && entry.name.includes('trace')) {
150
- artifacts.traces.push(relPath);
151
- }
152
- else if (['.log', '.txt'].includes(ext)) {
153
- artifacts.logs.push(relPath);
154
- }
155
- }
156
- }
157
- }
158
- walk(artifactDir);
159
- return artifacts;
160
- }
161
- /**
162
- * Get Git information
163
- */
164
- function getGitInfo(projectPath) {
165
- try {
166
- const sha = (0, child_process_1.execSync)('git rev-parse HEAD', { cwd: projectPath, encoding: 'utf-8' }).trim();
167
- const branch = (0, child_process_1.execSync)('git rev-parse --abbrev-ref HEAD', { cwd: projectPath, encoding: 'utf-8' }).trim();
168
- return { sha, branch };
169
- }
170
- catch {
171
- return {};
172
- }
173
- }
174
- /**
175
- * Sign receipt with organization key
176
- */
177
- function signReceipt(receiptContent, orgKeyId, orgPrivateKey) {
178
- // If org private key provided, use RSA/ECDSA signing
179
- if (orgPrivateKey) {
180
- try {
181
- // Try RSA first
182
- const key = crypto.createPrivateKey(orgPrivateKey);
183
- const sign = crypto.createSign('RSA-SHA256');
184
- sign.update(receiptContent);
185
- const signature = sign.sign(key, 'base64');
186
- return { signature, algorithm: 'RS256' };
187
- }
188
- catch {
189
- // Try ECDSA
190
- try {
191
- const key = crypto.createPrivateKey(orgPrivateKey);
192
- const sign = crypto.createSign('sha256');
193
- sign.update(receiptContent);
194
- const signature = sign.sign(key, 'base64');
195
- return { signature, algorithm: 'ES256' };
196
- }
197
- catch {
198
- // Fall back to HMAC
199
- }
200
- }
201
- }
202
- // Fallback to HMAC with org key ID
203
- const key = process.env.VIBECHECK_ORG_KEY || `org-${orgKeyId}`;
204
- const signature = crypto.createHmac('sha256', key).update(receiptContent).digest('hex');
205
- return { signature, algorithm: 'HMAC-SHA256' };
206
- }
207
- /**
208
- * Generate Proof-of-Execution Receipt
209
- */
210
- async function generateReceipt(options) {
211
- const receiptDir = path.join(options.projectPath, '.vibecheck', 'receipts', options.runId);
212
- fs.mkdirSync(receiptDir, { recursive: true });
213
- const timestamp = new Date().toISOString();
214
- const gitInfo = getGitInfo(options.projectPath);
215
- const { hash: dependencyLockHash, packageManager } = getDependencyLockHash(options.projectPath);
216
- const buildHash = getBuildHash(options.projectPath);
217
- const artifacts = collectArtifacts(options.artifactDir);
218
- // Try to load runtime traces from test output if not provided
219
- let runtimeTraces = options.runtimeTraces;
220
- if (!runtimeTraces) {
221
- const runtimeTracesPath = path.join(options.artifactDir, 'runtime-traces.json');
222
- if (fs.existsSync(runtimeTracesPath)) {
223
- try {
224
- const tracesData = JSON.parse(fs.readFileSync(runtimeTracesPath, 'utf-8'));
225
- runtimeTraces = {
226
- requests: tracesData.requests || [],
227
- routes: tracesData.routes || [],
228
- dbQueries: tracesData.dbQueries || [],
229
- };
230
- }
231
- catch (e) {
232
- // Ignore errors loading traces
233
- runtimeTraces = {
234
- requests: [],
235
- routes: [],
236
- dbQueries: [],
237
- };
238
- }
239
- }
240
- else {
241
- runtimeTraces = {
242
- requests: [],
243
- routes: [],
244
- dbQueries: [],
245
- };
246
- }
247
- }
248
- // Get tool version
249
- let toolVersion = 'unknown';
250
- try {
251
- const packageJsonPath = path.join(__dirname, '../../package.json');
252
- if (fs.existsSync(packageJsonPath)) {
253
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
254
- toolVersion = pkg.version || 'unknown';
255
- }
256
- }
257
- catch {
258
- // Ignore
259
- }
260
- // Update critical paths with evidence from artifacts and runtime traces
261
- const updatedCriticalPaths = (options.criticalPaths || []).map(path => {
262
- // Check if route was hit
263
- const routeHit = runtimeTraces?.routes?.some(r => r.path === path.path) || path.covered;
264
- // Find evidence files (screenshots/videos) that might relate to this path
265
- const pathEvidence = [
266
- ...artifacts.screenshots.filter(f => f.includes(path.path.replace(/\//g, '-'))),
267
- ...artifacts.videos.filter(f => f.includes(path.path.replace(/\//g, '-'))),
268
- ];
269
- return {
270
- ...path,
271
- covered: routeHit,
272
- evidence: pathEvidence.length > 0 ? pathEvidence : path.evidence,
273
- };
274
- });
275
- // Calculate coverage
276
- const coverageReport = updatedCriticalPaths.length > 0 ? {
277
- totalPaths: updatedCriticalPaths.length,
278
- coveredPaths: updatedCriticalPaths.filter(p => p.covered).length,
279
- percentage: Math.round((updatedCriticalPaths.filter(p => p.covered).length / updatedCriticalPaths.length) * 100),
280
- } : undefined;
281
- // Build receipt bundle
282
- const receipt = {
283
- schemaVersion: 'vibecheck.receipt.v1',
284
- receiptId: `receipt-${options.runId}-${Date.now()}`,
285
- verdict: options.verdict,
286
- timestamp,
287
- build: {
288
- buildHash,
289
- dependencyLockHash,
290
- packageManager,
291
- nodeVersion: process.version,
292
- platform: `${process.platform}-${process.arch}`,
293
- },
294
- execution: {
295
- commands: options.commands || [],
296
- runtimeTraces: {
297
- requests: runtimeTraces?.requests || [],
298
- routes: runtimeTraces?.routes || [],
299
- dbQueries: runtimeTraces?.dbQueries || [],
300
- },
301
- },
302
- coverage: {
303
- criticalPaths: updatedCriticalPaths,
304
- coverageReport,
305
- },
306
- artifacts: {
307
- screenshots: artifacts.screenshots,
308
- videos: artifacts.videos,
309
- traces: artifacts.traces,
310
- logs: artifacts.logs,
311
- },
312
- attestation: {
313
- algorithm: 'HMAC-SHA256',
314
- keyId: options.orgKeyId || 'default',
315
- signature: '',
316
- signedAt: timestamp,
317
- },
318
- metadata: {
319
- projectPath: options.projectPath,
320
- gitSha: gitInfo.sha,
321
- gitBranch: gitInfo.branch,
322
- runId: options.runId,
323
- toolVersion,
324
- },
325
- };
326
- // Sign the receipt (without signature field)
327
- const receiptContent = JSON.stringify(receipt, null, 2);
328
- const { signature, algorithm } = signReceipt(receiptContent, receipt.attestation.keyId, options.orgPrivateKey);
329
- receipt.attestation.signature = signature;
330
- receipt.attestation.algorithm = algorithm;
331
- // Write receipt bundle
332
- const receiptPath = path.join(receiptDir, 'receipt.json');
333
- fs.writeFileSync(receiptPath, JSON.stringify(receipt, null, 2));
334
- // Copy artifacts to receipt directory
335
- const receiptArtifactsDir = path.join(receiptDir, 'artifacts');
336
- if (fs.existsSync(options.artifactDir)) {
337
- copyDirectoryRecursive(options.artifactDir, receiptArtifactsDir);
338
- }
339
- // Build Reality Graph from execution evidence
340
- const graphBuilder = new reality_graph_1.RealityGraphBuilder(options.projectPath);
341
- graphBuilder.discoverStaticNodes();
342
- graphBuilder.updateFromRuntimeTraces(runtimeTraces);
343
- graphBuilder.saveSnapshot();
344
- // Export Reality Graph
345
- const graphPath = path.join(receiptDir, 'reality-graph.json');
346
- fs.writeFileSync(graphPath, graphBuilder.export());
347
- // Add graph summary to receipt metadata
348
- const graph = graphBuilder.getGraph();
349
- receipt.metadata = {
350
- ...receipt.metadata,
351
- realityGraph: {
352
- nodeCount: graph.nodes.size,
353
- edgeCount: graph.edges.size,
354
- graphPath: 'reality-graph.json',
355
- },
356
- };
357
- // Re-sign receipt with updated metadata
358
- const updatedReceiptContent = JSON.stringify(receipt, null, 2);
359
- const { signature: updatedSignature, algorithm: updatedAlgorithm } = signReceipt(updatedReceiptContent, receipt.attestation.keyId, options.orgPrivateKey);
360
- receipt.attestation.signature = updatedSignature;
361
- receipt.attestation.algorithm = updatedAlgorithm;
362
- // Write updated receipt
363
- fs.writeFileSync(receiptPath, JSON.stringify(receipt, null, 2));
364
- // Create receipt manifest
365
- const manifest = {
366
- receiptId: receipt.receiptId,
367
- receiptPath: 'receipt.json',
368
- artifactsDir: 'artifacts',
369
- realityGraphPath: 'reality-graph.json',
370
- verified: false,
371
- };
372
- fs.writeFileSync(path.join(receiptDir, 'manifest.json'), JSON.stringify(manifest, null, 2));
373
- return receiptPath;
374
- }
375
- /**
376
- * Verify receipt signature
377
- */
378
- async function verifyReceipt(receiptPath, orgPublicKey) {
379
- try {
380
- const receiptContent = fs.readFileSync(receiptPath, 'utf-8');
381
- const receipt = JSON.parse(receiptContent);
382
- // Extract signature
383
- const storedSignature = receipt.attestation.signature;
384
- delete receipt.attestation.signature;
385
- // Recompute signature
386
- const contentToVerify = JSON.stringify(receipt, null, 2);
387
- let isValid = false;
388
- if (receipt.attestation.algorithm === 'RS256' && orgPublicKey) {
389
- try {
390
- const key = crypto.createPublicKey(orgPublicKey);
391
- const verify = crypto.createVerify('RSA-SHA256');
392
- verify.update(contentToVerify);
393
- isValid = verify.verify(key, storedSignature, 'base64');
394
- }
395
- catch {
396
- isValid = false;
397
- }
398
- }
399
- else if (receipt.attestation.algorithm === 'ES256' && orgPublicKey) {
400
- try {
401
- const key = crypto.createPublicKey(orgPublicKey);
402
- const verify = crypto.createVerify('sha256');
403
- verify.update(contentToVerify);
404
- isValid = verify.verify(key, storedSignature, 'base64');
405
- }
406
- catch {
407
- isValid = false;
408
- }
409
- }
410
- else {
411
- // HMAC verification
412
- const key = process.env.VIBECHECK_ORG_KEY || `org-${receipt.attestation.keyId}`;
413
- const expectedSignature = crypto.createHmac('sha256', key).update(contentToVerify).digest('hex');
414
- isValid = storedSignature === expectedSignature;
415
- }
416
- // Restore signature for return
417
- receipt.attestation.signature = storedSignature;
418
- return isValid;
419
- }
420
- catch (error) {
421
- console.error(`Receipt verification failed: ${error.message}`);
422
- return false;
423
- }
424
- }
425
- /**
426
- * Recursively copy directory
427
- */
428
- function copyDirectoryRecursive(src, dest) {
429
- if (!fs.existsSync(dest)) {
430
- fs.mkdirSync(dest, { recursive: true });
431
- }
432
- const entries = fs.readdirSync(src, { withFileTypes: true });
433
- for (const entry of entries) {
434
- const srcPath = path.join(src, entry.name);
435
- const destPath = path.join(dest, entry.name);
436
- if (entry.isDirectory()) {
437
- copyDirectoryRecursive(srcPath, destPath);
438
- }
439
- else {
440
- fs.copyFileSync(srcPath, destPath);
441
- }
442
- }
443
- }
444
- /**
445
- * Generate receipt summary for display
446
- */
447
- function generateReceiptSummary(receiptPath) {
448
- try {
449
- const receipt = JSON.parse(fs.readFileSync(receiptPath, 'utf-8'));
450
- const summary = `
451
- ╔════════════════════════════════════════════════════════════╗
452
- ║ 📜 PROOF-OF-EXECUTION RECEIPT ║
453
- ╚════════════════════════════════════════════════════════════╝
454
-
455
- Receipt ID: ${receipt.receiptId}
456
- Verdict: ${receipt.verdict}
457
- Timestamp: ${receipt.timestamp}
458
-
459
- Build Evidence:
460
- • Build Hash: ${receipt.build.buildHash.slice(0, 16)}...
461
- • Dependency Lock: ${receipt.build.dependencyLockHash.slice(0, 16)}... (${receipt.build.packageManager})
462
- • Platform: ${receipt.build.platform}
463
- • Node: ${receipt.build.nodeVersion}
464
-
465
- Execution Evidence:
466
- • Commands Run: ${receipt.execution.commands.length}
467
- • HTTP Requests: ${receipt.execution.runtimeTraces.requests.length}
468
- • Routes Hit: ${receipt.execution.runtimeTraces.routes.length}
469
- • DB Queries: ${receipt.execution.runtimeTraces.dbQueries?.length || 0}
470
-
471
- Coverage:
472
- • Critical Paths: ${receipt.coverage.criticalPaths.length}
473
- • Covered: ${receipt.coverage.criticalPaths.filter(p => p.covered).length}
474
- ${receipt.coverage.coverageReport ? `• Coverage: ${receipt.coverage.coverageReport.percentage}%` : ''}
475
-
476
- Artifacts:
477
- • Screenshots: ${receipt.artifacts.screenshots.length}
478
- • Videos: ${receipt.artifacts.videos.length}
479
- • Traces: ${receipt.artifacts.traces.length}
480
- • Logs: ${receipt.artifacts.logs.length}
481
-
482
- Attestation:
483
- • Algorithm: ${receipt.attestation.algorithm}
484
- • Key ID: ${receipt.attestation.keyId}
485
- • Signature: ${receipt.attestation.signature.slice(0, 32)}...
486
-
487
- Receipt Path: ${receiptPath}
488
- `;
489
- return summary;
490
- }
491
- catch (error) {
492
- return `Failed to generate summary: ${error.message}`;
493
- }
494
- }
495
- //# sourceMappingURL=receipt-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"receipt-generator.js","sourceRoot":"","sources":["../../src/reality/receipt-generator.ts"],"names":[],"mappings":"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"}