@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 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Enterprise Credential Store
3
+ * - OS keychain first (Keychain/Windows Credential Manager/libsecret)
4
+ * - Secure fallback with 0600 perms + atomic writes
5
+ * - Token-first model (short-lived tokens preferred over static API keys)
6
+ */
7
+ export type Tier = 'free' | 'starter' | 'pro' | 'enterprise';
8
+ export interface AuthState {
9
+ apiKey?: string;
10
+ accessToken?: string;
11
+ refreshToken?: string;
12
+ tier?: Tier;
13
+ email?: string;
14
+ entitlements?: string[];
15
+ authenticatedAt?: string;
16
+ cacheUntil?: string;
17
+ expiresAt?: string;
18
+ issuedAt?: string;
19
+ }
20
+ /**
21
+ * Load authentication state
22
+ * Prefers keychain for sensitive tokens, falls back to disk
23
+ */
24
+ export declare function loadAuthState(): Promise<AuthState>;
25
+ /**
26
+ * Save authentication state
27
+ * Stores sensitive tokens in keychain when available, non-sensitive data on disk
28
+ */
29
+ export declare function saveAuthState(next: AuthState): Promise<void>;
30
+ /**
31
+ * Clear all authentication state (logout)
32
+ */
33
+ export declare function clearAuthState(): Promise<void>;
34
+ /**
35
+ * Check if cached entitlements are still valid
36
+ * Uses the shorter of cacheUntil (local) or expiresAt (server)
37
+ */
38
+ export declare function isCacheValid(state: AuthState): boolean;
39
+ /**
40
+ * Check if entitlements should be reused from cache
41
+ * Returns true only if cache is valid AND has > 5 minutes remaining
42
+ */
43
+ export declare function shouldUseCachedEntitlements(state: AuthState): boolean;
44
+ /**
45
+ * Get config directory path (for display purposes)
46
+ */
47
+ export declare function getConfigPath(): string;
48
+ //# sourceMappingURL=creds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creds.d.ts","sourceRoot":"","sources":["../../src/runtime/creds.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAgFD;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAwBxD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBlE;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAmBtD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAoBrE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ /**
3
+ * Enterprise Credential Store
4
+ * - OS keychain first (Keychain/Windows Credential Manager/libsecret)
5
+ * - Secure fallback with 0600 perms + atomic writes
6
+ * - Token-first model (short-lived tokens preferred over static API keys)
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.loadAuthState = loadAuthState;
46
+ exports.saveAuthState = saveAuthState;
47
+ exports.clearAuthState = clearAuthState;
48
+ exports.isCacheValid = isCacheValid;
49
+ exports.shouldUseCachedEntitlements = shouldUseCachedEntitlements;
50
+ exports.getConfigPath = getConfigPath;
51
+ const os_1 = __importDefault(require("os"));
52
+ const path_1 = __importDefault(require("path"));
53
+ const promises_1 = __importDefault(require("fs/promises"));
54
+ const fs_1 = require("fs");
55
+ const crypto_1 = __importDefault(require("crypto"));
56
+ const SERVICE = 'guardrail-cli';
57
+ const ACCOUNT = 'default';
58
+ function getConfigDir() {
59
+ if (process.platform === 'win32') {
60
+ return path_1.default.join(process.env.APPDATA || path_1.default.join(os_1.default.homedir(), 'AppData', 'Roaming'), 'guardrail');
61
+ }
62
+ if (process.platform === 'darwin') {
63
+ return path_1.default.join(os_1.default.homedir(), 'Library', 'Application Support', 'guardrail');
64
+ }
65
+ return path_1.default.join(process.env.XDG_CONFIG_HOME || path_1.default.join(os_1.default.homedir(), '.config'), 'guardrail');
66
+ }
67
+ const CONFIG_DIR = getConfigDir();
68
+ const CONFIG_FILE = path_1.default.join(CONFIG_DIR, 'state.json');
69
+ /**
70
+ * Try to load keytar for OS keychain access
71
+ * Returns null if keytar is not available
72
+ */
73
+ async function tryKeytar() {
74
+ try {
75
+ return require('keytar');
76
+ }
77
+ catch {
78
+ return null;
79
+ }
80
+ }
81
+ /**
82
+ * Atomic write with restrictive permissions
83
+ * Prevents partial writes and race conditions
84
+ * Security: 0600 on Unix, NTFS ACL restriction on Windows (best effort)
85
+ */
86
+ async function atomicWrite(filePath, data) {
87
+ await promises_1.default.mkdir(path_1.default.dirname(filePath), { recursive: true, mode: 0o700 });
88
+ const tmp = `${filePath}.${crypto_1.default.randomBytes(6).toString('hex')}.tmp`;
89
+ // Write with restrictive mode on Unix
90
+ await promises_1.default.writeFile(tmp, data, { encoding: 'utf8', mode: 0o600 });
91
+ // Lock down permissions
92
+ if (process.platform !== 'win32') {
93
+ // Unix: 0600 = owner read/write only
94
+ await promises_1.default.chmod(tmp, 0o600);
95
+ }
96
+ else {
97
+ // Windows: Best effort - use icacls to restrict access
98
+ // This is a no-op if it fails, as Windows file permissions are complex
99
+ try {
100
+ const { exec } = await Promise.resolve().then(() => __importStar(require('child_process')));
101
+ const username = process.env.USERNAME || process.env.USER;
102
+ if (username) {
103
+ await new Promise((resolve) => {
104
+ exec(`icacls "${tmp}" /inheritance:r /grant:r "${username}:F"`, { windowsHide: true }, () => resolve() // Ignore errors
105
+ );
106
+ });
107
+ }
108
+ }
109
+ catch {
110
+ // Windows permission setting failed - continue anyway
111
+ }
112
+ }
113
+ await promises_1.default.rename(tmp, filePath);
114
+ // Also secure the directory on Unix
115
+ if (process.platform !== 'win32') {
116
+ await promises_1.default.chmod(path_1.default.dirname(filePath), 0o700).catch(() => { });
117
+ }
118
+ }
119
+ /**
120
+ * Load authentication state
121
+ * Prefers keychain for sensitive tokens, falls back to disk
122
+ */
123
+ async function loadAuthState() {
124
+ try {
125
+ if (!(0, fs_1.existsSync)(CONFIG_FILE))
126
+ return {};
127
+ const raw = await promises_1.default.readFile(CONFIG_FILE, 'utf8');
128
+ const state = JSON.parse(raw);
129
+ // If keychain is available, prefer tokens from there
130
+ const keytar = await tryKeytar();
131
+ if (keytar) {
132
+ try {
133
+ const secret = await keytar.getPassword(SERVICE, ACCOUNT);
134
+ if (secret) {
135
+ const fromKeychain = JSON.parse(secret);
136
+ return { ...state, ...fromKeychain };
137
+ }
138
+ }
139
+ catch {
140
+ // Keychain access failed, use disk state
141
+ }
142
+ }
143
+ return state;
144
+ }
145
+ catch {
146
+ return {};
147
+ }
148
+ }
149
+ /**
150
+ * Save authentication state
151
+ * Stores sensitive tokens in keychain when available, non-sensitive data on disk
152
+ */
153
+ async function saveAuthState(next) {
154
+ // Separate sensitive from non-sensitive data
155
+ const { accessToken, refreshToken, apiKey, ...diskSafe } = next;
156
+ const keytar = await tryKeytar();
157
+ if (keytar) {
158
+ try {
159
+ const secretPayload = { accessToken, refreshToken, apiKey };
160
+ await keytar.setPassword(SERVICE, ACCOUNT, JSON.stringify(secretPayload));
161
+ }
162
+ catch {
163
+ // Keychain save failed, store everything on disk
164
+ diskSafe.apiKey = apiKey;
165
+ diskSafe.accessToken = accessToken;
166
+ diskSafe.refreshToken = refreshToken;
167
+ }
168
+ }
169
+ else {
170
+ // No keychain available: fall back to disk with tight perms
171
+ diskSafe.apiKey = apiKey;
172
+ diskSafe.accessToken = accessToken;
173
+ diskSafe.refreshToken = refreshToken;
174
+ }
175
+ await atomicWrite(CONFIG_FILE, JSON.stringify(diskSafe, null, 2));
176
+ }
177
+ /**
178
+ * Clear all authentication state (logout)
179
+ */
180
+ async function clearAuthState() {
181
+ const keytar = await tryKeytar();
182
+ if (keytar) {
183
+ try {
184
+ await keytar.deletePassword(SERVICE, ACCOUNT);
185
+ }
186
+ catch {
187
+ // Keychain delete failed, continue anyway
188
+ }
189
+ }
190
+ await atomicWrite(CONFIG_FILE, JSON.stringify({}, null, 2));
191
+ }
192
+ /**
193
+ * Check if cached entitlements are still valid
194
+ * Uses the shorter of cacheUntil (local) or expiresAt (server)
195
+ */
196
+ function isCacheValid(state) {
197
+ if (!state.tier)
198
+ return false;
199
+ const now = new Date();
200
+ // Check local cache expiry
201
+ if (state.cacheUntil) {
202
+ const cacheExpiry = new Date(state.cacheUntil);
203
+ if (cacheExpiry <= now)
204
+ return false;
205
+ }
206
+ // Check server-issued expiry
207
+ if (state.expiresAt) {
208
+ const serverExpiry = new Date(state.expiresAt);
209
+ if (serverExpiry <= now)
210
+ return false;
211
+ }
212
+ // At least one expiry must be set
213
+ return Boolean(state.cacheUntil || state.expiresAt);
214
+ }
215
+ /**
216
+ * Check if entitlements should be reused from cache
217
+ * Returns true only if cache is valid AND has > 5 minutes remaining
218
+ */
219
+ function shouldUseCachedEntitlements(state) {
220
+ if (!state.tier)
221
+ return false;
222
+ const now = new Date();
223
+ const fiveMinutesFromNow = new Date(now.getTime() + 5 * 60 * 1000);
224
+ // Check if local cache has > 5 min remaining
225
+ if (state.cacheUntil) {
226
+ const cacheExpiry = new Date(state.cacheUntil);
227
+ if (cacheExpiry <= fiveMinutesFromNow)
228
+ return false;
229
+ }
230
+ // Check if server expiry has > 5 min remaining
231
+ if (state.expiresAt) {
232
+ const serverExpiry = new Date(state.expiresAt);
233
+ if (serverExpiry <= fiveMinutesFromNow)
234
+ return false;
235
+ }
236
+ // At least one expiry must be set and valid
237
+ return Boolean(state.cacheUntil || state.expiresAt);
238
+ }
239
+ /**
240
+ * Get config directory path (for display purposes)
241
+ */
242
+ function getConfigPath() {
243
+ return CONFIG_FILE;
244
+ }
245
+ //# sourceMappingURL=creds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creds.js","sourceRoot":"","sources":["../../src/runtime/creds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Enterprise Exit Codes
3
+ * Consistent, meaningful exit codes for CI/CD integration
4
+ *
5
+ * Usage:
6
+ * process.exit(ExitCode.POLICY_FAIL)
7
+ * exitWith(ExitCode.AUTH_FAILURE, 'Invalid API key')
8
+ */
9
+ export declare enum ExitCode {
10
+ /** Scan passed, no policy violations */
11
+ SUCCESS = 0,
12
+ /** Findings above threshold (policy fail) - actionable by user */
13
+ POLICY_FAIL = 1,
14
+ /** User error: invalid args, bad config, missing required options */
15
+ USER_ERROR = 2,
16
+ /** Invalid input: malformed data, validation failures */
17
+ INVALID_INPUT = 2,
18
+ /** System error: crash, filesystem issues, unexpected exceptions */
19
+ SYSTEM_ERROR = 3,
20
+ /** Auth/entitlement failure: invalid key, expired token, insufficient tier */
21
+ AUTH_FAILURE = 4,
22
+ /** Network/backend failure: API unreachable, timeout */
23
+ NETWORK_FAILURE = 5
24
+ }
25
+ export declare const EXIT_CODE_DESCRIPTIONS: Record<ExitCode, string>;
26
+ /**
27
+ * Exit with code and optional message
28
+ * Logs the exit reason for debugging
29
+ */
30
+ export declare function exitWith(code: ExitCode, message?: string): never;
31
+ /**
32
+ * Map error types to exit codes
33
+ */
34
+ export declare function getExitCodeForError(err: Error): ExitCode;
35
+ /**
36
+ * Determine exit code based on scan results and policy
37
+ */
38
+ export declare function getExitCodeForFindings(findings: {
39
+ critical?: number;
40
+ high?: number;
41
+ medium?: number;
42
+ low?: number;
43
+ }, policy: {
44
+ failOnCritical?: boolean;
45
+ failOnHigh?: boolean;
46
+ failOnMedium?: boolean;
47
+ failOnAny?: boolean;
48
+ }): ExitCode;
49
+ //# sourceMappingURL=exit-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/runtime/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oBAAY,QAAQ;IAClB,wCAAwC;IACxC,OAAO,IAAI;IAEX,kEAAkE;IAClE,WAAW,IAAI;IAEf,qEAAqE;IACrE,UAAU,IAAI;IAEd,yDAAyD;IACzD,aAAa,IAAI;IAEjB,oEAAoE;IACpE,YAAY,IAAI;IAEhB,8EAA8E;IAC9E,YAAY,IAAI;IAEhB,wDAAwD;IACxD,eAAe,IAAI;CACpB;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAO3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAShE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,KAAK,GAAG,QAAQ,CAiBxD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,EAAE,MAAM,EAAE;IACT,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,QAAQ,CAiBX"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ /**
3
+ * Enterprise Exit Codes
4
+ * Consistent, meaningful exit codes for CI/CD integration
5
+ *
6
+ * Usage:
7
+ * process.exit(ExitCode.POLICY_FAIL)
8
+ * exitWith(ExitCode.AUTH_FAILURE, 'Invalid API key')
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.EXIT_CODE_DESCRIPTIONS = exports.ExitCode = void 0;
12
+ exports.exitWith = exitWith;
13
+ exports.getExitCodeForError = getExitCodeForError;
14
+ exports.getExitCodeForFindings = getExitCodeForFindings;
15
+ var ExitCode;
16
+ (function (ExitCode) {
17
+ /** Scan passed, no policy violations */
18
+ ExitCode[ExitCode["SUCCESS"] = 0] = "SUCCESS";
19
+ /** Findings above threshold (policy fail) - actionable by user */
20
+ ExitCode[ExitCode["POLICY_FAIL"] = 1] = "POLICY_FAIL";
21
+ /** User error: invalid args, bad config, missing required options */
22
+ ExitCode[ExitCode["USER_ERROR"] = 2] = "USER_ERROR";
23
+ /** Invalid input: malformed data, validation failures */
24
+ ExitCode[ExitCode["INVALID_INPUT"] = 2] = "INVALID_INPUT";
25
+ /** System error: crash, filesystem issues, unexpected exceptions */
26
+ ExitCode[ExitCode["SYSTEM_ERROR"] = 3] = "SYSTEM_ERROR";
27
+ /** Auth/entitlement failure: invalid key, expired token, insufficient tier */
28
+ ExitCode[ExitCode["AUTH_FAILURE"] = 4] = "AUTH_FAILURE";
29
+ /** Network/backend failure: API unreachable, timeout */
30
+ ExitCode[ExitCode["NETWORK_FAILURE"] = 5] = "NETWORK_FAILURE";
31
+ })(ExitCode || (exports.ExitCode = ExitCode = {}));
32
+ exports.EXIT_CODE_DESCRIPTIONS = {
33
+ [ExitCode.SUCCESS]: 'Scan completed successfully with no policy violations',
34
+ [ExitCode.POLICY_FAIL]: 'Findings exceed configured thresholds',
35
+ [ExitCode.USER_ERROR]: 'Invalid arguments or configuration',
36
+ [ExitCode.SYSTEM_ERROR]: 'Internal error or filesystem issue',
37
+ [ExitCode.AUTH_FAILURE]: 'Authentication or authorization failed',
38
+ [ExitCode.NETWORK_FAILURE]: 'Network or API communication failed',
39
+ };
40
+ /**
41
+ * Exit with code and optional message
42
+ * Logs the exit reason for debugging
43
+ */
44
+ function exitWith(code, message) {
45
+ if (message) {
46
+ if (code === ExitCode.SUCCESS) {
47
+ console.log(message);
48
+ }
49
+ else {
50
+ console.error(`[exit:${code}] ${message}`);
51
+ }
52
+ }
53
+ process.exit(code);
54
+ }
55
+ /**
56
+ * Map error types to exit codes
57
+ */
58
+ function getExitCodeForError(err) {
59
+ const msg = err.message.toLowerCase();
60
+ if (msg.includes('enoent') || msg.includes('permission denied') || msg.includes('eacces')) {
61
+ return ExitCode.SYSTEM_ERROR;
62
+ }
63
+ if (msg.includes('network') || msg.includes('timeout') || msg.includes('fetch')) {
64
+ return ExitCode.NETWORK_FAILURE;
65
+ }
66
+ if (msg.includes('auth') || msg.includes('unauthorized') || msg.includes('forbidden')) {
67
+ return ExitCode.AUTH_FAILURE;
68
+ }
69
+ if (msg.includes('invalid') || msg.includes('missing') || msg.includes('required')) {
70
+ return ExitCode.USER_ERROR;
71
+ }
72
+ return ExitCode.SYSTEM_ERROR;
73
+ }
74
+ /**
75
+ * Determine exit code based on scan results and policy
76
+ */
77
+ function getExitCodeForFindings(findings, policy) {
78
+ const { critical = 0, high = 0, medium = 0, low = 0 } = findings;
79
+ if (policy.failOnAny && (critical + high + medium + low) > 0) {
80
+ return ExitCode.POLICY_FAIL;
81
+ }
82
+ if (policy.failOnCritical && critical > 0) {
83
+ return ExitCode.POLICY_FAIL;
84
+ }
85
+ if (policy.failOnHigh && (critical + high) > 0) {
86
+ return ExitCode.POLICY_FAIL;
87
+ }
88
+ if (policy.failOnMedium && (critical + high + medium) > 0) {
89
+ return ExitCode.POLICY_FAIL;
90
+ }
91
+ return ExitCode.SUCCESS;
92
+ }
93
+ //# sourceMappingURL=exit-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/runtime/exit-codes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAsCH,4BASC;AAKD,kDAiBC;AAKD,wDA2BC;AAnGD,IAAY,QAqBX;AArBD,WAAY,QAAQ;IAClB,wCAAwC;IACxC,6CAAW,CAAA;IAEX,kEAAkE;IAClE,qDAAe,CAAA;IAEf,qEAAqE;IACrE,mDAAc,CAAA;IAEd,yDAAyD;IACzD,yDAAiB,CAAA;IAEjB,oEAAoE;IACpE,uDAAgB,CAAA;IAEhB,8EAA8E;IAC9E,uDAAgB,CAAA;IAEhB,wDAAwD;IACxD,6DAAmB,CAAA;AACrB,CAAC,EArBW,QAAQ,wBAAR,QAAQ,QAqBnB;AAEY,QAAA,sBAAsB,GAA6B;IAC9D,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,uDAAuD;IAC3E,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,uCAAuC;IAC/D,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,oCAAoC;IAC3D,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,oCAAoC;IAC7D,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,wCAAwC;IACjE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,qCAAqC;CAClE,CAAC;AAEF;;;GAGG;AACH,SAAgB,QAAQ,CAAC,IAAc,EAAE,OAAgB;IACvD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,GAAU;IAC5C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAEtC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1F,OAAO,QAAQ,CAAC,YAAY,CAAC;IAC/B,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChF,OAAO,QAAQ,CAAC,eAAe,CAAC;IAClC,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtF,OAAO,QAAQ,CAAC,YAAY,CAAC;IAC/B,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnF,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,OAAO,QAAQ,CAAC,YAAY,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,QAKtC,EAAE,MAKF;IACC,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC;IAEjE,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Enterprise Runtime Modules
3
+ * Re-exports all runtime utilities for clean imports
4
+ */
5
+ export * from './creds';
6
+ export * from './client';
7
+ export * from './exit-codes';
8
+ export * from './semver';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * Enterprise Runtime Modules
4
+ * Re-exports all runtime utilities for clean imports
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ __exportStar(require("./creds"), exports);
22
+ __exportStar(require("./client"), exports);
23
+ __exportStar(require("./exit-codes"), exports);
24
+ __exportStar(require("./semver"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAyB"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Standardized JSON Output Schema
3
+ *
4
+ * All CLI commands with --json flag use this unified schema
5
+ * Version: 1.0
6
+ */
7
+ export interface GuardrailJsonOutput {
8
+ version: string;
9
+ schema: string;
10
+ timestamp: string;
11
+ command: string;
12
+ success: boolean;
13
+ exitCode: number;
14
+ data?: any;
15
+ error?: {
16
+ code: string;
17
+ message: string;
18
+ nextSteps?: string[];
19
+ };
20
+ metadata?: {
21
+ [key: string]: any;
22
+ };
23
+ }
24
+ /**
25
+ * Create standardized JSON output
26
+ */
27
+ export declare function createJsonOutput(command: string, success: boolean, exitCode: number, data?: any, error?: {
28
+ code: string;
29
+ message: string;
30
+ nextSteps?: string[];
31
+ }, metadata?: {
32
+ [key: string]: any;
33
+ }): GuardrailJsonOutput;
34
+ /**
35
+ * Format scan results for JSON output
36
+ */
37
+ export declare function formatScanResults(results: any): any;
38
+ /**
39
+ * Format gate results for JSON output
40
+ */
41
+ export declare function formatGateResults(exitCode: number, verdict: string): any;
42
+ //# sourceMappingURL=json-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-output.d.ts","sourceRoot":"","sources":["../../src/runtime/json-output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,GAAG,EACV,KAAK,CAAC,EAAE;IACN,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,EACD,QAAQ,CAAC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAChC,mBAAmB,CAYrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAiBnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAMxE"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * Standardized JSON Output Schema
4
+ *
5
+ * All CLI commands with --json flag use this unified schema
6
+ * Version: 1.0
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createJsonOutput = createJsonOutput;
10
+ exports.formatScanResults = formatScanResults;
11
+ exports.formatGateResults = formatGateResults;
12
+ /**
13
+ * Create standardized JSON output
14
+ */
15
+ function createJsonOutput(command, success, exitCode, data, error, metadata) {
16
+ return {
17
+ version: '1.0',
18
+ schema: 'guardrail/v1',
19
+ timestamp: new Date().toISOString(),
20
+ command,
21
+ success,
22
+ exitCode,
23
+ ...(data && { data }),
24
+ ...(error && { error }),
25
+ ...(metadata && { metadata }),
26
+ };
27
+ }
28
+ /**
29
+ * Format scan results for JSON output
30
+ */
31
+ function formatScanResults(results) {
32
+ return {
33
+ summary: {
34
+ critical: results?.summary?.critical ?? 0,
35
+ high: results?.summary?.high ?? 0,
36
+ medium: results?.summary?.medium ?? 0,
37
+ low: results?.summary?.low ?? 0,
38
+ info: results?.summary?.info ?? 0,
39
+ total: results?.summary?.total ?? 0,
40
+ },
41
+ findings: results?.findings || [],
42
+ score: results?.score ?? 0,
43
+ verdict: results?.verdict || 'unknown',
44
+ filesScanned: results?.filesScanned ?? 0,
45
+ linesScanned: results?.linesScanned ?? 0,
46
+ duration: results?.duration ?? 0,
47
+ };
48
+ }
49
+ /**
50
+ * Format gate results for JSON output
51
+ */
52
+ function formatGateResults(exitCode, verdict) {
53
+ return {
54
+ verdict: exitCode === 0 ? 'pass' : 'fail',
55
+ gateResult: exitCode === 0 ? 'GATE_PASSED' : 'GATE_FAILED',
56
+ exitCode,
57
+ };
58
+ }
59
+ //# sourceMappingURL=json-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-output.js","sourceRoot":"","sources":["../../src/runtime/json-output.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuBH,4CAuBC;AAKD,8CAiBC;AAKD,8CAMC;AA3DD;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,OAAe,EACf,OAAgB,EAChB,QAAgB,EAChB,IAAU,EACV,KAIC,EACD,QAAiC;IAEjC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;QACP,OAAO;QACP,QAAQ;QACR,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;QACrB,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAY;IAC5C,OAAO;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;YACzC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC;YACjC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;YACrC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YAC/B,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC;YACjC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;SACpC;QACD,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE;QACjC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS;QACtC,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC;QACxC,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC;QACxC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,OAAe;IACjE,OAAO;QACL,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACzC,UAAU,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa;QAC1D,QAAQ;KACT,CAAC;AACJ,CAAC"}