@vibecheckai/cli 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +532 -0
  3. package/dist/autopatch/verified-autopatch.d.ts +111 -0
  4. package/dist/autopatch/verified-autopatch.d.ts.map +1 -0
  5. package/dist/autopatch/verified-autopatch.js +503 -0
  6. package/dist/autopatch/verified-autopatch.js.map +1 -0
  7. package/dist/bundles/guardrail-core.js +25799 -0
  8. package/dist/bundles/guardrail-security.js +208687 -0
  9. package/dist/bundles/guardrail-ship.js +2318 -0
  10. package/dist/bundles/index.js +8 -0
  11. package/dist/commands/autopilot-decision.d.ts +24 -0
  12. package/dist/commands/autopilot-decision.d.ts.map +1 -0
  13. package/dist/commands/autopilot-decision.js +304 -0
  14. package/dist/commands/autopilot-decision.js.map +1 -0
  15. package/dist/commands/autopilot.d.ts +33 -0
  16. package/dist/commands/autopilot.d.ts.map +1 -0
  17. package/dist/commands/autopilot.js +1539 -0
  18. package/dist/commands/autopilot.js.map +1 -0
  19. package/dist/commands/baseline.d.ts +7 -0
  20. package/dist/commands/baseline.d.ts.map +1 -0
  21. package/dist/commands/baseline.js +79 -0
  22. package/dist/commands/baseline.js.map +1 -0
  23. package/dist/commands/cache.d.ts +13 -0
  24. package/dist/commands/cache.d.ts.map +1 -0
  25. package/dist/commands/cache.js +165 -0
  26. package/dist/commands/cache.js.map +1 -0
  27. package/dist/commands/checkpoint.d.ts +8 -0
  28. package/dist/commands/checkpoint.d.ts.map +1 -0
  29. package/dist/commands/checkpoint.js +35 -0
  30. package/dist/commands/checkpoint.js.map +1 -0
  31. package/dist/commands/context.d.ts +8 -0
  32. package/dist/commands/context.d.ts.map +1 -0
  33. package/dist/commands/context.js +340 -0
  34. package/dist/commands/context.js.map +1 -0
  35. package/dist/commands/debug.d.ts +78 -0
  36. package/dist/commands/debug.d.ts.map +1 -0
  37. package/dist/commands/debug.js +381 -0
  38. package/dist/commands/debug.js.map +1 -0
  39. package/dist/commands/doctor.d.ts +17 -0
  40. package/dist/commands/doctor.d.ts.map +1 -0
  41. package/dist/commands/doctor.js +226 -0
  42. package/dist/commands/doctor.js.map +1 -0
  43. package/dist/commands/evidence.d.ts +45 -0
  44. package/dist/commands/evidence.d.ts.map +1 -0
  45. package/dist/commands/evidence.js +197 -0
  46. package/dist/commands/evidence.js.map +1 -0
  47. package/dist/commands/explain.d.ts +8 -0
  48. package/dist/commands/explain.d.ts.map +1 -0
  49. package/dist/commands/explain.js +52 -0
  50. package/dist/commands/explain.js.map +1 -0
  51. package/dist/commands/fix-consolidated.d.ts +19 -0
  52. package/dist/commands/fix-consolidated.d.ts.map +1 -0
  53. package/dist/commands/fix-consolidated.js +165 -0
  54. package/dist/commands/fix-consolidated.js.map +1 -0
  55. package/dist/commands/index.d.ts +8 -0
  56. package/dist/commands/index.d.ts.map +1 -0
  57. package/dist/commands/index.js +15 -0
  58. package/dist/commands/index.js.map +1 -0
  59. package/dist/commands/init.d.ts +8 -0
  60. package/dist/commands/init.d.ts.map +1 -0
  61. package/dist/commands/init.js +125 -0
  62. package/dist/commands/init.js.map +1 -0
  63. package/dist/commands/launcher.d.ts +10 -0
  64. package/dist/commands/launcher.d.ts.map +1 -0
  65. package/dist/commands/launcher.js +174 -0
  66. package/dist/commands/launcher.js.map +1 -0
  67. package/dist/commands/on.d.ts +8 -0
  68. package/dist/commands/on.d.ts.map +1 -0
  69. package/dist/commands/on.js +123 -0
  70. package/dist/commands/on.js.map +1 -0
  71. package/dist/commands/preview.d.ts +54 -0
  72. package/dist/commands/preview.d.ts.map +1 -0
  73. package/dist/commands/preview.js +352 -0
  74. package/dist/commands/preview.js.map +1 -0
  75. package/dist/commands/quality/check.d.ts +31 -0
  76. package/dist/commands/quality/check.d.ts.map +1 -0
  77. package/dist/commands/quality/check.js +242 -0
  78. package/dist/commands/quality/check.js.map +1 -0
  79. package/dist/commands/quality/index.d.ts +8 -0
  80. package/dist/commands/quality/index.d.ts.map +1 -0
  81. package/dist/commands/quality/index.js +14 -0
  82. package/dist/commands/quality/index.js.map +1 -0
  83. package/dist/commands/quality/setup-quality.d.ts +23 -0
  84. package/dist/commands/quality/setup-quality.d.ts.map +1 -0
  85. package/dist/commands/quality/setup-quality.js +452 -0
  86. package/dist/commands/quality/setup-quality.js.map +1 -0
  87. package/dist/commands/quality/tidy.d.ts +41 -0
  88. package/dist/commands/quality/tidy.d.ts.map +1 -0
  89. package/dist/commands/quality/tidy.js +466 -0
  90. package/dist/commands/quality/tidy.js.map +1 -0
  91. package/dist/commands/quality/utils.d.ts +73 -0
  92. package/dist/commands/quality/utils.d.ts.map +1 -0
  93. package/dist/commands/quality/utils.js +158 -0
  94. package/dist/commands/quality/utils.js.map +1 -0
  95. package/dist/commands/replay.d.ts +8 -0
  96. package/dist/commands/replay.d.ts.map +1 -0
  97. package/dist/commands/replay.js +52 -0
  98. package/dist/commands/replay.js.map +1 -0
  99. package/dist/commands/scan-consolidated.d.ts +61 -0
  100. package/dist/commands/scan-consolidated.d.ts.map +1 -0
  101. package/dist/commands/scan-consolidated.js +243 -0
  102. package/dist/commands/scan-consolidated.js.map +1 -0
  103. package/dist/commands/scan-secrets.d.ts +47 -0
  104. package/dist/commands/scan-secrets.d.ts.map +1 -0
  105. package/dist/commands/scan-secrets.js +225 -0
  106. package/dist/commands/scan-secrets.js.map +1 -0
  107. package/dist/commands/scan-vulnerabilities-enhanced.d.ts +41 -0
  108. package/dist/commands/scan-vulnerabilities-enhanced.d.ts.map +1 -0
  109. package/dist/commands/scan-vulnerabilities-enhanced.js +368 -0
  110. package/dist/commands/scan-vulnerabilities-enhanced.js.map +1 -0
  111. package/dist/commands/scan-vulnerabilities-osv.d.ts +58 -0
  112. package/dist/commands/scan-vulnerabilities-osv.d.ts.map +1 -0
  113. package/dist/commands/scan-vulnerabilities-osv.js +716 -0
  114. package/dist/commands/scan-vulnerabilities-osv.js.map +1 -0
  115. package/dist/commands/scan-vulnerabilities.d.ts +32 -0
  116. package/dist/commands/scan-vulnerabilities.d.ts.map +1 -0
  117. package/dist/commands/scan-vulnerabilities.js +283 -0
  118. package/dist/commands/scan-vulnerabilities.js.map +1 -0
  119. package/dist/commands/secrets-allowlist.d.ts +7 -0
  120. package/dist/commands/secrets-allowlist.d.ts.map +1 -0
  121. package/dist/commands/secrets-allowlist.js +85 -0
  122. package/dist/commands/secrets-allowlist.js.map +1 -0
  123. package/dist/commands/ship-consolidated.d.ts +58 -0
  124. package/dist/commands/ship-consolidated.d.ts.map +1 -0
  125. package/dist/commands/ship-consolidated.js +515 -0
  126. package/dist/commands/ship-consolidated.js.map +1 -0
  127. package/dist/commands/stats.d.ts +8 -0
  128. package/dist/commands/stats.d.ts.map +1 -0
  129. package/dist/commands/stats.js +134 -0
  130. package/dist/commands/stats.js.map +1 -0
  131. package/dist/commands/upgrade.d.ts +8 -0
  132. package/dist/commands/upgrade.d.ts.map +1 -0
  133. package/dist/commands/upgrade.js +30 -0
  134. package/dist/commands/upgrade.js.map +1 -0
  135. package/dist/fix/analytics.d.ts +121 -0
  136. package/dist/fix/analytics.d.ts.map +1 -0
  137. package/dist/fix/analytics.js +289 -0
  138. package/dist/fix/analytics.js.map +1 -0
  139. package/dist/fix/applicator.d.ts +44 -0
  140. package/dist/fix/applicator.d.ts.map +1 -0
  141. package/dist/fix/applicator.js +144 -0
  142. package/dist/fix/applicator.js.map +1 -0
  143. package/dist/fix/audit.d.ts +61 -0
  144. package/dist/fix/audit.d.ts.map +1 -0
  145. package/dist/fix/audit.js +149 -0
  146. package/dist/fix/audit.js.map +1 -0
  147. package/dist/fix/backup.d.ts +38 -0
  148. package/dist/fix/backup.d.ts.map +1 -0
  149. package/dist/fix/backup.js +154 -0
  150. package/dist/fix/backup.js.map +1 -0
  151. package/dist/fix/config.d.ts +78 -0
  152. package/dist/fix/config.d.ts.map +1 -0
  153. package/dist/fix/config.js +200 -0
  154. package/dist/fix/config.js.map +1 -0
  155. package/dist/fix/engine.d.ts +55 -0
  156. package/dist/fix/engine.d.ts.map +1 -0
  157. package/dist/fix/engine.js +285 -0
  158. package/dist/fix/engine.js.map +1 -0
  159. package/dist/fix/impact.d.ts +74 -0
  160. package/dist/fix/impact.d.ts.map +1 -0
  161. package/dist/fix/impact.js +281 -0
  162. package/dist/fix/impact.js.map +1 -0
  163. package/dist/fix/index.d.ts +5 -0
  164. package/dist/fix/index.d.ts.map +1 -0
  165. package/dist/fix/index.js +12 -0
  166. package/dist/fix/index.js.map +1 -0
  167. package/dist/fix/interactive.d.ts +22 -0
  168. package/dist/fix/interactive.d.ts.map +1 -0
  169. package/dist/fix/interactive.js +172 -0
  170. package/dist/fix/interactive.js.map +1 -0
  171. package/dist/fix/learning.d.ts +109 -0
  172. package/dist/fix/learning.d.ts.map +1 -0
  173. package/dist/fix/learning.js +296 -0
  174. package/dist/fix/learning.js.map +1 -0
  175. package/dist/fix/metrics.d.ts +106 -0
  176. package/dist/fix/metrics.d.ts.map +1 -0
  177. package/dist/fix/metrics.js +138 -0
  178. package/dist/fix/metrics.js.map +1 -0
  179. package/dist/fix/parallel.d.ts +69 -0
  180. package/dist/fix/parallel.d.ts.map +1 -0
  181. package/dist/fix/parallel.js +203 -0
  182. package/dist/fix/parallel.js.map +1 -0
  183. package/dist/fix/report.d.ts +40 -0
  184. package/dist/fix/report.d.ts.map +1 -0
  185. package/dist/fix/report.js +212 -0
  186. package/dist/fix/report.js.map +1 -0
  187. package/dist/fix/strategy.d.ts +53 -0
  188. package/dist/fix/strategy.d.ts.map +1 -0
  189. package/dist/fix/strategy.js +143 -0
  190. package/dist/fix/strategy.js.map +1 -0
  191. package/dist/fix/templates.d.ts +58 -0
  192. package/dist/fix/templates.d.ts.map +1 -0
  193. package/dist/fix/templates.js +259 -0
  194. package/dist/fix/templates.js.map +1 -0
  195. package/dist/fix/testing.d.ts +68 -0
  196. package/dist/fix/testing.d.ts.map +1 -0
  197. package/dist/fix/testing.js +245 -0
  198. package/dist/fix/testing.js.map +1 -0
  199. package/dist/fix/validation.d.ts +71 -0
  200. package/dist/fix/validation.d.ts.map +1 -0
  201. package/dist/fix/validation.js +267 -0
  202. package/dist/fix/validation.js.map +1 -0
  203. package/dist/fix/visualization.d.ts +73 -0
  204. package/dist/fix/visualization.d.ts.map +1 -0
  205. package/dist/fix/visualization.js +243 -0
  206. package/dist/fix/visualization.js.map +1 -0
  207. package/dist/formatters/index.d.ts +6 -0
  208. package/dist/formatters/index.d.ts.map +1 -0
  209. package/dist/formatters/index.js +11 -0
  210. package/dist/formatters/index.js.map +1 -0
  211. package/dist/formatters/sarif-enhanced.d.ts +78 -0
  212. package/dist/formatters/sarif-enhanced.d.ts.map +1 -0
  213. package/dist/formatters/sarif-enhanced.js +144 -0
  214. package/dist/formatters/sarif-enhanced.js.map +1 -0
  215. package/dist/formatters/sarif-v2.d.ts +121 -0
  216. package/dist/formatters/sarif-v2.d.ts.map +1 -0
  217. package/dist/formatters/sarif-v2.js +356 -0
  218. package/dist/formatters/sarif-v2.js.map +1 -0
  219. package/dist/formatters/sarif.d.ts +72 -0
  220. package/dist/formatters/sarif.d.ts.map +1 -0
  221. package/dist/formatters/sarif.js +146 -0
  222. package/dist/formatters/sarif.js.map +1 -0
  223. package/dist/index.d.ts +61 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +4455 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/init/ci-generator.d.ts +18 -0
  228. package/dist/init/ci-generator.d.ts.map +1 -0
  229. package/dist/init/ci-generator.js +317 -0
  230. package/dist/init/ci-generator.js.map +1 -0
  231. package/dist/init/detect-framework.d.ts +15 -0
  232. package/dist/init/detect-framework.d.ts.map +1 -0
  233. package/dist/init/detect-framework.js +301 -0
  234. package/dist/init/detect-framework.js.map +1 -0
  235. package/dist/init/hooks-installer.d.ts +22 -0
  236. package/dist/init/hooks-installer.d.ts.map +1 -0
  237. package/dist/init/hooks-installer.js +310 -0
  238. package/dist/init/hooks-installer.js.map +1 -0
  239. package/dist/init/index.d.ts +8 -0
  240. package/dist/init/index.d.ts.map +1 -0
  241. package/dist/init/index.js +22 -0
  242. package/dist/init/index.js.map +1 -0
  243. package/dist/init/templates.d.ts +401 -0
  244. package/dist/init/templates.d.ts.map +1 -0
  245. package/dist/init/templates.js +240 -0
  246. package/dist/init/templates.js.map +1 -0
  247. package/dist/mcp/server.d.ts +12 -0
  248. package/dist/mcp/server.d.ts.map +1 -0
  249. package/dist/mcp/server.js +42 -0
  250. package/dist/mcp/server.js.map +1 -0
  251. package/dist/mcp/telemetry.d.ts +40 -0
  252. package/dist/mcp/telemetry.d.ts.map +1 -0
  253. package/dist/mcp/telemetry.js +98 -0
  254. package/dist/mcp/telemetry.js.map +1 -0
  255. package/dist/reality/no-dead-buttons/button-sweep-generator.d.ts +32 -0
  256. package/dist/reality/no-dead-buttons/button-sweep-generator.d.ts.map +1 -0
  257. package/dist/reality/no-dead-buttons/button-sweep-generator.js +236 -0
  258. package/dist/reality/no-dead-buttons/button-sweep-generator.js.map +1 -0
  259. package/dist/reality/no-dead-buttons/index.d.ts +11 -0
  260. package/dist/reality/no-dead-buttons/index.d.ts.map +1 -0
  261. package/dist/reality/no-dead-buttons/index.js +18 -0
  262. package/dist/reality/no-dead-buttons/index.js.map +1 -0
  263. package/dist/reality/no-dead-buttons/static-scanner.d.ts +34 -0
  264. package/dist/reality/no-dead-buttons/static-scanner.d.ts.map +1 -0
  265. package/dist/reality/no-dead-buttons/static-scanner.js +230 -0
  266. package/dist/reality/no-dead-buttons/static-scanner.js.map +1 -0
  267. package/dist/reality/reality-graph.d.ts +192 -0
  268. package/dist/reality/reality-graph.d.ts.map +1 -0
  269. package/dist/reality/reality-graph.js +600 -0
  270. package/dist/reality/reality-graph.js.map +1 -0
  271. package/dist/reality/reality-runner.d.ts +89 -0
  272. package/dist/reality/reality-runner.d.ts.map +1 -0
  273. package/dist/reality/reality-runner.js +540 -0
  274. package/dist/reality/reality-runner.js.map +1 -0
  275. package/dist/reality/receipt-generator.d.ts +152 -0
  276. package/dist/reality/receipt-generator.d.ts.map +1 -0
  277. package/dist/reality/receipt-generator.js +495 -0
  278. package/dist/reality/receipt-generator.js.map +1 -0
  279. package/dist/reality/runtime-tracer.d.ts +75 -0
  280. package/dist/reality/runtime-tracer.d.ts.map +1 -0
  281. package/dist/reality/runtime-tracer.js +109 -0
  282. package/dist/reality/runtime-tracer.js.map +1 -0
  283. package/dist/runtime/auth-utils.d.ts +43 -0
  284. package/dist/runtime/auth-utils.d.ts.map +1 -0
  285. package/dist/runtime/auth-utils.js +130 -0
  286. package/dist/runtime/auth-utils.js.map +1 -0
  287. package/dist/runtime/cli-errors.d.ts +38 -0
  288. package/dist/runtime/cli-errors.d.ts.map +1 -0
  289. package/dist/runtime/cli-errors.js +354 -0
  290. package/dist/runtime/cli-errors.js.map +1 -0
  291. package/dist/runtime/client.d.ts +74 -0
  292. package/dist/runtime/client.d.ts.map +1 -0
  293. package/dist/runtime/client.js +222 -0
  294. package/dist/runtime/client.js.map +1 -0
  295. package/dist/runtime/creds.d.ts +48 -0
  296. package/dist/runtime/creds.d.ts.map +1 -0
  297. package/dist/runtime/creds.js +245 -0
  298. package/dist/runtime/creds.js.map +1 -0
  299. package/dist/runtime/exit-codes.d.ts +49 -0
  300. package/dist/runtime/exit-codes.d.ts.map +1 -0
  301. package/dist/runtime/exit-codes.js +93 -0
  302. package/dist/runtime/exit-codes.js.map +1 -0
  303. package/dist/runtime/index.d.ts +9 -0
  304. package/dist/runtime/index.d.ts.map +1 -0
  305. package/dist/runtime/index.js +25 -0
  306. package/dist/runtime/index.js.map +1 -0
  307. package/dist/runtime/json-output.d.ts +42 -0
  308. package/dist/runtime/json-output.d.ts.map +1 -0
  309. package/dist/runtime/json-output.js +59 -0
  310. package/dist/runtime/json-output.js.map +1 -0
  311. package/dist/runtime/owner-mode.d.ts +48 -0
  312. package/dist/runtime/owner-mode.d.ts.map +1 -0
  313. package/dist/runtime/owner-mode.js +284 -0
  314. package/dist/runtime/owner-mode.js.map +1 -0
  315. package/dist/runtime/semver.d.ts +37 -0
  316. package/dist/runtime/semver.d.ts.map +1 -0
  317. package/dist/runtime/semver.js +110 -0
  318. package/dist/runtime/semver.js.map +1 -0
  319. package/dist/scan/dead-ui-detector.d.ts +48 -0
  320. package/dist/scan/dead-ui-detector.d.ts.map +1 -0
  321. package/dist/scan/dead-ui-detector.js +170 -0
  322. package/dist/scan/dead-ui-detector.js.map +1 -0
  323. package/dist/scan/playwright-sweep.d.ts +40 -0
  324. package/dist/scan/playwright-sweep.d.ts.map +1 -0
  325. package/dist/scan/playwright-sweep.js +216 -0
  326. package/dist/scan/playwright-sweep.js.map +1 -0
  327. package/dist/scan/proof-bundle.d.ts +25 -0
  328. package/dist/scan/proof-bundle.d.ts.map +1 -0
  329. package/dist/scan/proof-bundle.js +203 -0
  330. package/dist/scan/proof-bundle.js.map +1 -0
  331. package/dist/scan/proof-graph.d.ts +59 -0
  332. package/dist/scan/proof-graph.d.ts.map +1 -0
  333. package/dist/scan/proof-graph.js +64 -0
  334. package/dist/scan/proof-graph.js.map +1 -0
  335. package/dist/scan/reality-sniff.d.ts +56 -0
  336. package/dist/scan/reality-sniff.d.ts.map +1 -0
  337. package/dist/scan/reality-sniff.js +200 -0
  338. package/dist/scan/reality-sniff.js.map +1 -0
  339. package/dist/scan/structural-verifier.d.ts +20 -0
  340. package/dist/scan/structural-verifier.d.ts.map +1 -0
  341. package/dist/scan/structural-verifier.js +112 -0
  342. package/dist/scan/structural-verifier.js.map +1 -0
  343. package/dist/scan/verification-engine.d.ts +47 -0
  344. package/dist/scan/verification-engine.d.ts.map +1 -0
  345. package/dist/scan/verification-engine.js +141 -0
  346. package/dist/scan/verification-engine.js.map +1 -0
  347. package/dist/scanner/baseline.d.ts +52 -0
  348. package/dist/scanner/baseline.d.ts.map +1 -0
  349. package/dist/scanner/baseline.js +85 -0
  350. package/dist/scanner/baseline.js.map +1 -0
  351. package/dist/scanner/incremental.d.ts +30 -0
  352. package/dist/scanner/incremental.d.ts.map +1 -0
  353. package/dist/scanner/incremental.js +82 -0
  354. package/dist/scanner/incremental.js.map +1 -0
  355. package/dist/scanner/index.d.ts +8 -0
  356. package/dist/scanner/index.d.ts.map +1 -0
  357. package/dist/scanner/index.js +15 -0
  358. package/dist/scanner/index.js.map +1 -0
  359. package/dist/scanner/parallel.d.ts +43 -0
  360. package/dist/scanner/parallel.d.ts.map +1 -0
  361. package/dist/scanner/parallel.js +99 -0
  362. package/dist/scanner/parallel.js.map +1 -0
  363. package/dist/scanner/placeholder-detector.d.ts +56 -0
  364. package/dist/scanner/placeholder-detector.d.ts.map +1 -0
  365. package/dist/scanner/placeholder-detector.js +220 -0
  366. package/dist/scanner/placeholder-detector.js.map +1 -0
  367. package/dist/scanner/route-detector.d.ts +100 -0
  368. package/dist/scanner/route-detector.d.ts.map +1 -0
  369. package/dist/scanner/route-detector.js +455 -0
  370. package/dist/scanner/route-detector.js.map +1 -0
  371. package/dist/scanner/scoring.d.ts +67 -0
  372. package/dist/scanner/scoring.d.ts.map +1 -0
  373. package/dist/scanner/scoring.js +284 -0
  374. package/dist/scanner/scoring.js.map +1 -0
  375. package/dist/ship-baseline.d.ts +56 -0
  376. package/dist/ship-baseline.d.ts.map +1 -0
  377. package/dist/ship-baseline.js +194 -0
  378. package/dist/ship-baseline.js.map +1 -0
  379. package/dist/ship-config.d.ts +91 -0
  380. package/dist/ship-config.d.ts.map +1 -0
  381. package/dist/ship-config.js +133 -0
  382. package/dist/ship-config.js.map +1 -0
  383. package/dist/ship-data-loader.d.ts +70 -0
  384. package/dist/ship-data-loader.d.ts.map +1 -0
  385. package/dist/ship-data-loader.js +301 -0
  386. package/dist/ship-data-loader.js.map +1 -0
  387. package/dist/standalone.d.ts +1 -0
  388. package/dist/standalone.d.ts.map +1 -0
  389. package/dist/standalone.js +1 -0
  390. package/dist/standalone.js.map +1 -0
  391. package/dist/truth-pack/index.d.ts +102 -0
  392. package/dist/truth-pack/index.d.ts.map +1 -0
  393. package/dist/truth-pack/index.js +694 -0
  394. package/dist/truth-pack/index.js.map +1 -0
  395. package/dist/ui/frame.d.ts +68 -0
  396. package/dist/ui/frame.d.ts.map +1 -0
  397. package/dist/ui/frame.js +165 -0
  398. package/dist/ui/frame.js.map +1 -0
  399. package/dist/ui/index.d.ts +5 -0
  400. package/dist/ui/index.d.ts.map +1 -0
  401. package/dist/ui/index.js +16 -0
  402. package/dist/ui/index.js.map +1 -0
  403. package/dist/ui.d.ts +36 -0
  404. package/dist/ui.d.ts.map +1 -0
  405. package/dist/ui.js +45 -0
  406. package/dist/ui.js.map +1 -0
  407. package/dist/utils/ai-helpers.d.ts +72 -0
  408. package/dist/utils/ai-helpers.d.ts.map +1 -0
  409. package/dist/utils/ai-helpers.js +339 -0
  410. package/dist/utils/ai-helpers.js.map +1 -0
  411. package/dist/utils/validation.d.ts +34 -0
  412. package/dist/utils/validation.d.ts.map +1 -0
  413. package/dist/utils/validation.js +160 -0
  414. package/dist/utils/validation.js.map +1 -0
  415. package/package.json +66 -0
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ /**
3
+ * Structural Verification (Level 2)
4
+ *
5
+ * AST + reachability + callsite context analysis
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.StructuralVerifier = void 0;
9
+ const fs_1 = require("fs");
10
+ class StructuralVerifier {
11
+ /**
12
+ * Verify finding using AST and structural analysis
13
+ */
14
+ async verify(finding, projectPath) {
15
+ try {
16
+ // Try to use TypeScript compiler API if available
17
+ if (this.isTypeScriptAvailable()) {
18
+ return await this.verifyWithTypeScript(finding, projectPath);
19
+ }
20
+ // Fallback to basic structural analysis
21
+ return await this.verifyBasic(finding, projectPath);
22
+ }
23
+ catch (error) {
24
+ // If structural verification fails, return null (fallback to lexical)
25
+ return null;
26
+ }
27
+ }
28
+ async verifyWithTypeScript(finding, projectPath) {
29
+ // TODO: Implement full TypeScript AST analysis
30
+ // This would:
31
+ // 1. Parse file with TypeScript compiler API
32
+ // 2. Find the specific node at file:line
33
+ // 3. Analyze reachability (is it called? is it exported?)
34
+ // 4. Analyze context (is it in error handler? is it in test?)
35
+ // 5. Calculate evidence strength based on context
36
+ // For now, return basic structural evidence
37
+ return {
38
+ level: 'structural',
39
+ strength: 0.7,
40
+ data: {
41
+ method: 'ast_analysis',
42
+ reachable: true, // TODO: Actually check
43
+ context: 'production', // TODO: Actually determine
44
+ },
45
+ };
46
+ }
47
+ async verifyBasic(finding, projectPath) {
48
+ try {
49
+ const content = (0, fs_1.readFileSync)(finding.file, 'utf-8');
50
+ const lines = content.split('\n');
51
+ const targetLine = lines[finding.line - 1];
52
+ // Basic structural checks
53
+ const isExported = this.isExported(content, finding.line);
54
+ const isInErrorHandler = this.isInErrorHandler(content, finding.line);
55
+ const isInTest = finding.file.includes('test') || finding.file.includes('spec');
56
+ const isReachable = !this.isDeadCode(content, finding.line);
57
+ // Calculate strength based on context
58
+ let strength = 0.6; // Base strength
59
+ if (isExported && !isInTest) {
60
+ strength += 0.1; // Exported code is more important
61
+ }
62
+ if (isInErrorHandler && finding.type === 'fake_success') {
63
+ strength += 0.2; // Fake success in error handler is worse
64
+ }
65
+ if (!isReachable) {
66
+ strength -= 0.2; // Dead code is less critical
67
+ }
68
+ return {
69
+ level: 'structural',
70
+ strength: Math.max(0.3, Math.min(1.0, strength)),
71
+ data: {
72
+ method: 'basic_analysis',
73
+ exported: isExported,
74
+ inErrorHandler: isInErrorHandler,
75
+ inTest: isInTest,
76
+ reachable: isReachable,
77
+ },
78
+ };
79
+ }
80
+ catch {
81
+ return null;
82
+ }
83
+ }
84
+ isExported(content, lineNum) {
85
+ const lines = content.split('\n');
86
+ const beforeContext = lines.slice(Math.max(0, lineNum - 10), lineNum).join('\n');
87
+ return /\bexport\b/.test(beforeContext);
88
+ }
89
+ isInErrorHandler(content, lineNum) {
90
+ const lines = content.split('\n');
91
+ const beforeContext = lines.slice(Math.max(0, lineNum - 20), lineNum).join('\n');
92
+ return /catch|onError|error|exception/i.test(beforeContext);
93
+ }
94
+ isDeadCode(content, lineNum) {
95
+ const lines = content.split('\n');
96
+ const afterContext = lines.slice(lineNum, Math.min(lines.length, lineNum + 20)).join('\n');
97
+ // Check if there's a return or throw before this line that would make it unreachable
98
+ const beforeContext = lines.slice(Math.max(0, lineNum - 20), lineNum).join('\n');
99
+ return /return\s*;|throw\s+/.test(beforeContext) && !/if\s*\(/.test(beforeContext);
100
+ }
101
+ isTypeScriptAvailable() {
102
+ try {
103
+ require.resolve('typescript');
104
+ return true;
105
+ }
106
+ catch {
107
+ return false;
108
+ }
109
+ }
110
+ }
111
+ exports.StructuralVerifier = StructuralVerifier;
112
+ //# sourceMappingURL=structural-verifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structural-verifier.js","sourceRoot":"","sources":["../../src/scan/structural-verifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Verification Engine with 3-Level Evidence Ladder
3
+ *
4
+ * Level 1: Lexical (fast regex/keywords) → usually WARN
5
+ * Level 2: Structural (AST + reachability + callsite context) → can FAIL
6
+ * Level 3: Runtime witness (probes / Playwright trace / HAR) → definitive FAIL
7
+ */
8
+ import { RealityFinding } from './reality-sniff';
9
+ export type EvidenceLevel = 'lexical' | 'structural' | 'runtime';
10
+ export type Verdict = 'PASS' | 'FAIL' | 'WARN';
11
+ export interface Evidence {
12
+ level: EvidenceLevel;
13
+ strength: number;
14
+ data: any;
15
+ }
16
+ export interface VerifiedFinding {
17
+ finding: RealityFinding;
18
+ evidence: Evidence[];
19
+ verdict: Verdict;
20
+ confidence: number;
21
+ }
22
+ export declare class VerificationEngine {
23
+ /**
24
+ * Verify finding with evidence ladder
25
+ */
26
+ verify(finding: RealityFinding, options?: {
27
+ enableStructural?: boolean;
28
+ enableRuntime?: boolean;
29
+ }): Promise<VerifiedFinding>;
30
+ /**
31
+ * Level 1: Lexical verification (fast regex/keywords)
32
+ */
33
+ private lexicalVerification;
34
+ /**
35
+ * Level 2: Structural verification (AST + reachability)
36
+ */
37
+ private structuralVerification;
38
+ /**
39
+ * Level 3: Runtime verification (probes / Playwright / HAR)
40
+ */
41
+ private runtimeVerification;
42
+ /**
43
+ * Calculate verdict based on evidence
44
+ */
45
+ private calculateVerdict;
46
+ }
47
+ //# sourceMappingURL=verification-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-engine.d.ts","sourceRoot":"","sources":["../../src/scan/verification-engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AACjE,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAC7B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,GAAE;QAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;KACpB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkCjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;YACW,sBAAsB;IAQpC;;OAEG;YACW,mBAAmB;IAMjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAgCzB"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ /**
3
+ * Verification Engine with 3-Level Evidence Ladder
4
+ *
5
+ * Level 1: Lexical (fast regex/keywords) → usually WARN
6
+ * Level 2: Structural (AST + reachability + callsite context) → can FAIL
7
+ * Level 3: Runtime witness (probes / Playwright trace / HAR) → definitive FAIL
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.VerificationEngine = void 0;
44
+ class VerificationEngine {
45
+ /**
46
+ * Verify finding with evidence ladder
47
+ */
48
+ async verify(finding, options = {}) {
49
+ const evidence = [];
50
+ // Level 1: Lexical (always done)
51
+ const lexicalEvidence = this.lexicalVerification(finding);
52
+ evidence.push(lexicalEvidence);
53
+ // Level 2: Structural (if enabled)
54
+ if (options.enableStructural) {
55
+ const structuralEvidence = await this.structuralVerification(finding);
56
+ if (structuralEvidence) {
57
+ evidence.push(structuralEvidence);
58
+ }
59
+ }
60
+ // Level 3: Runtime (if enabled)
61
+ if (options.enableRuntime) {
62
+ const runtimeEvidence = await this.runtimeVerification(finding);
63
+ if (runtimeEvidence) {
64
+ evidence.push(runtimeEvidence);
65
+ }
66
+ }
67
+ // Determine verdict and confidence
68
+ const { verdict, confidence } = this.calculateVerdict(evidence, finding);
69
+ return {
70
+ finding,
71
+ evidence,
72
+ verdict,
73
+ confidence,
74
+ };
75
+ }
76
+ /**
77
+ * Level 1: Lexical verification (fast regex/keywords)
78
+ */
79
+ lexicalVerification(finding) {
80
+ // Already detected by lexical scan, so this is confirmation
81
+ return {
82
+ level: 'lexical',
83
+ strength: 0.6, // Moderate confidence
84
+ data: {
85
+ pattern: finding.evidence.pattern,
86
+ snippet: finding.evidence.snippet,
87
+ },
88
+ };
89
+ }
90
+ /**
91
+ * Level 2: Structural verification (AST + reachability)
92
+ */
93
+ async structuralVerification(finding) {
94
+ const { StructuralVerifier } = await Promise.resolve().then(() => __importStar(require('./structural-verifier')));
95
+ const verifier = new StructuralVerifier();
96
+ // Extract project path from finding file
97
+ const projectPath = finding.file.split('/').slice(0, -1).join('/') || '.';
98
+ return await verifier.verify(finding, projectPath);
99
+ }
100
+ /**
101
+ * Level 3: Runtime verification (probes / Playwright / HAR)
102
+ */
103
+ async runtimeVerification(finding) {
104
+ // TODO: Implement runtime probes
105
+ // For now, return null (not implemented)
106
+ return null;
107
+ }
108
+ /**
109
+ * Calculate verdict based on evidence
110
+ */
111
+ calculateVerdict(evidence, finding) {
112
+ if (evidence.length === 0) {
113
+ return { verdict: 'WARN', confidence: 0.5 };
114
+ }
115
+ // Check for runtime evidence (definitive)
116
+ const runtimeEvidence = evidence.find(e => e.level === 'runtime');
117
+ if (runtimeEvidence && runtimeEvidence.strength > 0.8) {
118
+ return { verdict: 'FAIL', confidence: runtimeEvidence.strength };
119
+ }
120
+ // Check for structural evidence
121
+ const structuralEvidence = evidence.find(e => e.level === 'structural');
122
+ if (structuralEvidence && structuralEvidence.strength > 0.7) {
123
+ // Can FAIL if severity is high/critical
124
+ if (finding.severity === 'critical' || finding.severity === 'high') {
125
+ return { verdict: 'FAIL', confidence: structuralEvidence.strength };
126
+ }
127
+ return { verdict: 'WARN', confidence: structuralEvidence.strength };
128
+ }
129
+ // Lexical only → WARN (unless critical severity)
130
+ const lexicalEvidence = evidence.find(e => e.level === 'lexical');
131
+ if (lexicalEvidence) {
132
+ if (finding.severity === 'critical' && lexicalEvidence.strength > 0.7) {
133
+ return { verdict: 'FAIL', confidence: lexicalEvidence.strength };
134
+ }
135
+ return { verdict: 'WARN', confidence: lexicalEvidence.strength };
136
+ }
137
+ return { verdict: 'WARN', confidence: 0.5 };
138
+ }
139
+ }
140
+ exports.VerificationEngine = VerificationEngine;
141
+ //# sourceMappingURL=verification-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-engine.js","sourceRoot":"","sources":["../../src/scan/verification-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Baseline support for suppressing known findings
3
+ */
4
+ export interface BaselineFinding {
5
+ fingerprint: string;
6
+ category: string;
7
+ title: string;
8
+ file: string;
9
+ line: number;
10
+ suppressedAt: string;
11
+ }
12
+ export interface Baseline {
13
+ version: string;
14
+ createdAt: string;
15
+ findings: BaselineFinding[];
16
+ }
17
+ export interface Finding {
18
+ type?: string;
19
+ category?: string;
20
+ title: string;
21
+ file: string;
22
+ line: number;
23
+ match?: string;
24
+ snippet?: string;
25
+ }
26
+ export declare class BaselineManager {
27
+ /**
28
+ * Generate stable fingerprint for a finding
29
+ * fingerprint = sha256(category + title + file + line + snippetNormalized)
30
+ */
31
+ static generateFingerprint(finding: Finding): string;
32
+ /**
33
+ * Load baseline from file
34
+ */
35
+ static loadBaseline(path: string): Baseline | null;
36
+ /**
37
+ * Save baseline to file
38
+ */
39
+ static saveBaseline(path: string, findings: Finding[]): void;
40
+ /**
41
+ * Check if a finding is suppressed by baseline
42
+ */
43
+ static isSuppressed(finding: Finding, baseline: Baseline | null): boolean;
44
+ /**
45
+ * Filter findings by baseline
46
+ */
47
+ static filterFindings<T extends Finding>(findings: T[], baselinePath?: string): {
48
+ filtered: T[];
49
+ suppressed: number;
50
+ };
51
+ }
52
+ //# sourceMappingURL=baseline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/scanner/baseline.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAcpD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAalD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAiB5D;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO;IASzE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAetH"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /**
3
+ * Baseline support for suppressing known findings
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BaselineManager = void 0;
7
+ const crypto_1 = require("crypto");
8
+ const fs_1 = require("fs");
9
+ class BaselineManager {
10
+ /**
11
+ * Generate stable fingerprint for a finding
12
+ * fingerprint = sha256(category + title + file + line + snippetNormalized)
13
+ */
14
+ static generateFingerprint(finding) {
15
+ const category = finding.category || finding.type || 'unknown';
16
+ const title = finding.title || '';
17
+ const file = finding.file || '';
18
+ const line = finding.line || 0;
19
+ // Normalize snippet by removing whitespace variations
20
+ let snippet = finding.snippet || finding.match || '';
21
+ snippet = snippet.replace(/\s+/g, ' ').trim();
22
+ const data = `${category}:${title}:${file}:${line}:${snippet}`;
23
+ return (0, crypto_1.createHash)('sha256').update(data).digest('hex');
24
+ }
25
+ /**
26
+ * Load baseline from file
27
+ */
28
+ static loadBaseline(path) {
29
+ if (!(0, fs_1.existsSync)(path)) {
30
+ return null;
31
+ }
32
+ try {
33
+ const content = (0, fs_1.readFileSync)(path, 'utf8');
34
+ return JSON.parse(content);
35
+ }
36
+ catch {
37
+ return null;
38
+ }
39
+ }
40
+ /**
41
+ * Save baseline to file
42
+ */
43
+ static saveBaseline(path, findings) {
44
+ const baseline = {
45
+ version: '1.0.0',
46
+ createdAt: new Date().toISOString(),
47
+ findings: findings.map(f => ({
48
+ fingerprint: this.generateFingerprint(f),
49
+ category: f.category || f.type || 'unknown',
50
+ title: f.title,
51
+ file: f.file,
52
+ line: f.line,
53
+ suppressedAt: new Date().toISOString(),
54
+ })),
55
+ };
56
+ (0, fs_1.writeFileSync)(path, JSON.stringify(baseline, null, 2), 'utf8');
57
+ }
58
+ /**
59
+ * Check if a finding is suppressed by baseline
60
+ */
61
+ static isSuppressed(finding, baseline) {
62
+ if (!baseline) {
63
+ return false;
64
+ }
65
+ const fingerprint = this.generateFingerprint(finding);
66
+ return baseline.findings.some(bf => bf.fingerprint === fingerprint);
67
+ }
68
+ /**
69
+ * Filter findings by baseline
70
+ */
71
+ static filterFindings(findings, baselinePath) {
72
+ if (!baselinePath) {
73
+ return { filtered: findings, suppressed: 0 };
74
+ }
75
+ const baseline = this.loadBaseline(baselinePath);
76
+ if (!baseline) {
77
+ return { filtered: findings, suppressed: 0 };
78
+ }
79
+ const filtered = findings.filter(f => !this.isSuppressed(f, baseline));
80
+ const suppressed = findings.length - filtered.length;
81
+ return { filtered, suppressed };
82
+ }
83
+ }
84
+ exports.BaselineManager = BaselineManager;
85
+ //# sourceMappingURL=baseline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/scanner/baseline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Incremental scanning with git diff support
3
+ */
4
+ export interface IncrementalOptions {
5
+ since?: string;
6
+ projectPath: string;
7
+ }
8
+ export interface IncrementalResult {
9
+ enabled: boolean;
10
+ changedFiles: string[];
11
+ baseCommit?: string;
12
+ error?: string;
13
+ }
14
+ export declare class IncrementalScanner {
15
+ /**
16
+ * Get list of changed files since a commit
17
+ * Returns all files if not a git repo or if since is not provided
18
+ */
19
+ static getChangedFiles(options: IncrementalOptions): IncrementalResult;
20
+ /**
21
+ * Filter files to scan based on incremental mode
22
+ * Only applies to secrets scan - vulnerabilities/compliance run full
23
+ */
24
+ static shouldScanFile(filePath: string, incrementalResult: IncrementalResult): boolean;
25
+ /**
26
+ * Get explanation message for incremental mode
27
+ */
28
+ static getIncrementalMessage(incrementalResult: IncrementalResult): string;
29
+ }
30
+ //# sourceMappingURL=incremental.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental.d.ts","sourceRoot":"","sources":["../../src/scanner/incremental.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAkB;IAC7B;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB;IA8CtE;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,OAAO;IAWtF;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,MAAM;CAW3E"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * Incremental scanning with git diff support
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.IncrementalScanner = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const fs_1 = require("fs");
9
+ const path_1 = require("path");
10
+ class IncrementalScanner {
11
+ /**
12
+ * Get list of changed files since a commit
13
+ * Returns all files if not a git repo or if since is not provided
14
+ */
15
+ static getChangedFiles(options) {
16
+ if (!options.since) {
17
+ return {
18
+ enabled: false,
19
+ changedFiles: [],
20
+ };
21
+ }
22
+ // Check if this is a git repository
23
+ const gitDir = (0, path_1.join)(options.projectPath, '.git');
24
+ if (!(0, fs_1.existsSync)(gitDir)) {
25
+ return {
26
+ enabled: false,
27
+ changedFiles: [],
28
+ error: 'Not a git repository',
29
+ };
30
+ }
31
+ try {
32
+ // Get changed files using git diff
33
+ const output = (0, child_process_1.execSync)(`git diff --name-only ${options.since}...HEAD`, {
34
+ cwd: options.projectPath,
35
+ encoding: 'utf8',
36
+ stdio: ['pipe', 'pipe', 'pipe'],
37
+ });
38
+ const changedFiles = output
39
+ .split('\n')
40
+ .map(f => f.trim())
41
+ .filter(f => f.length > 0);
42
+ return {
43
+ enabled: true,
44
+ changedFiles,
45
+ baseCommit: options.since,
46
+ };
47
+ }
48
+ catch (error) {
49
+ // Git command failed (invalid commit, not a repo, etc.)
50
+ return {
51
+ enabled: false,
52
+ changedFiles: [],
53
+ error: error.message || 'Git diff failed',
54
+ };
55
+ }
56
+ }
57
+ /**
58
+ * Filter files to scan based on incremental mode
59
+ * Only applies to secrets scan - vulnerabilities/compliance run full
60
+ */
61
+ static shouldScanFile(filePath, incrementalResult) {
62
+ if (!incrementalResult.enabled) {
63
+ return true; // Scan all files if incremental mode disabled
64
+ }
65
+ // Check if file is in changed files list
66
+ return incrementalResult.changedFiles.some(changed => filePath.includes(changed) || changed.includes(filePath));
67
+ }
68
+ /**
69
+ * Get explanation message for incremental mode
70
+ */
71
+ static getIncrementalMessage(incrementalResult) {
72
+ if (!incrementalResult.enabled) {
73
+ return '';
74
+ }
75
+ if (incrementalResult.error) {
76
+ return `Incremental mode disabled: ${incrementalResult.error}`;
77
+ }
78
+ return `Incremental mode: scanning ${incrementalResult.changedFiles.length} changed files since ${incrementalResult.baseCommit}`;
79
+ }
80
+ }
81
+ exports.IncrementalScanner = IncrementalScanner;
82
+ //# sourceMappingURL=incremental.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../src/scanner/incremental.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAAyC;AACzC,2BAAgC;AAChC,+BAA4B;AAc5B,MAAa,kBAAkB;IAC7B;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,OAA2B;QAChD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,EAAE;aACjB,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,IAAA,eAAU,EAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,sBAAsB;aAC9B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,wBAAwB,OAAO,CAAC,KAAK,SAAS,EAAE;gBACtE,GAAG,EAAE,OAAO,CAAC,WAAW;gBACxB,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM;iBACxB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE7B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,YAAY;gBACZ,UAAU,EAAE,OAAO,CAAC,KAAK;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,wDAAwD;YACxD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,iBAAiB;aAC1C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,QAAgB,EAAE,iBAAoC;QAC1E,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,CAAC,8CAA8C;QAC7D,CAAC;QAED,yCAAyC;QACzC,OAAO,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACnD,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACzD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,iBAAoC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC5B,OAAO,8BAA8B,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACjE,CAAC;QAED,OAAO,8BAA8B,iBAAiB,CAAC,YAAY,CAAC,MAAM,wBAAwB,iBAAiB,CAAC,UAAU,EAAE,CAAC;IACnI,CAAC;CACF;AAhFD,gDAgFC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Scanner Module
3
+ * Re-exports all scanner functionality
4
+ */
5
+ export { PlaceholderDetector, type PlaceholderFinding, type PlaceholderDetectorConfig, } from './placeholder-detector';
6
+ export { RouteDetector, type RouteInfo, type RouteDetectionResult, type RouteDetectorConfig, } from './route-detector';
7
+ export { calculateScore, formatScoreAsText, type ScoringResult, type ScoringInputs, type ScoreComponent, } from './scoring';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * Scanner Module
4
+ * Re-exports all scanner functionality
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.formatScoreAsText = exports.calculateScore = exports.RouteDetector = exports.PlaceholderDetector = void 0;
8
+ var placeholder_detector_1 = require("./placeholder-detector");
9
+ Object.defineProperty(exports, "PlaceholderDetector", { enumerable: true, get: function () { return placeholder_detector_1.PlaceholderDetector; } });
10
+ var route_detector_1 = require("./route-detector");
11
+ Object.defineProperty(exports, "RouteDetector", { enumerable: true, get: function () { return route_detector_1.RouteDetector; } });
12
+ var scoring_1 = require("./scoring");
13
+ Object.defineProperty(exports, "calculateScore", { enumerable: true, get: function () { return scoring_1.calculateScore; } });
14
+ Object.defineProperty(exports, "formatScoreAsText", { enumerable: true, get: function () { return scoring_1.formatScoreAsText; } });
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAIgC;AAH9B,2HAAA,mBAAmB,OAAA;AAIrB,mDAK0B;AAJxB,+GAAA,aAAa,OAAA;AAKf,qCAMmB;AALjB,yGAAA,cAAc,OAAA;AACd,4GAAA,iBAAiB,OAAA"}