@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,133 @@
1
+ "use strict";
2
+ /**
3
+ * Ship Configuration Management
4
+ * Enterprise-grade configuration system for ship checks
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ShipConfigManager = void 0;
8
+ const fs_1 = require("fs");
9
+ const path_1 = require("path");
10
+ const DEFAULT_CONFIG = {
11
+ version: '1.0.0',
12
+ thresholds: {
13
+ passScore: 90,
14
+ warnScore: 70,
15
+ failScore: 50,
16
+ },
17
+ checks: [],
18
+ baseline: {
19
+ enabled: false,
20
+ path: '.guardrail/ship-baseline.json',
21
+ },
22
+ };
23
+ class ShipConfigManager {
24
+ /**
25
+ * Load ship configuration from file
26
+ */
27
+ static loadConfig(projectPath) {
28
+ const configPath = (0, path_1.join)(projectPath, '.guardrail', 'ship.config.json');
29
+ if (!(0, fs_1.existsSync)(configPath)) {
30
+ return { ...DEFAULT_CONFIG };
31
+ }
32
+ try {
33
+ const content = (0, fs_1.readFileSync)(configPath, 'utf-8');
34
+ const config = JSON.parse(content);
35
+ // Merge with defaults to ensure all fields are present
36
+ return {
37
+ ...DEFAULT_CONFIG,
38
+ ...config,
39
+ thresholds: {
40
+ ...DEFAULT_CONFIG.thresholds,
41
+ ...config.thresholds,
42
+ },
43
+ };
44
+ }
45
+ catch (error) {
46
+ console.warn(`Failed to load ship config: ${error}`);
47
+ return { ...DEFAULT_CONFIG };
48
+ }
49
+ }
50
+ /**
51
+ * Save ship configuration to file
52
+ */
53
+ static saveConfig(projectPath, config) {
54
+ const configDir = (0, path_1.join)(projectPath, '.guardrail');
55
+ const configPath = (0, path_1.join)(configDir, 'ship.config.json');
56
+ (0, fs_1.mkdirSync)(configDir, { recursive: true });
57
+ (0, fs_1.writeFileSync)(configPath, JSON.stringify(config, null, 2), 'utf-8');
58
+ }
59
+ /**
60
+ * Initialize default configuration
61
+ */
62
+ static initConfig(projectPath) {
63
+ const config = { ...DEFAULT_CONFIG };
64
+ this.saveConfig(projectPath, config);
65
+ return config;
66
+ }
67
+ /**
68
+ * Validate configuration
69
+ */
70
+ static validateConfig(config) {
71
+ const errors = [];
72
+ if (config.thresholds.passScore < 0 || config.thresholds.passScore > 100) {
73
+ errors.push('passScore must be between 0 and 100');
74
+ }
75
+ if (config.thresholds.warnScore < 0 || config.thresholds.warnScore > 100) {
76
+ errors.push('warnScore must be between 0 and 100');
77
+ }
78
+ if (config.thresholds.failScore < 0 || config.thresholds.failScore > 100) {
79
+ errors.push('failScore must be between 0 and 100');
80
+ }
81
+ if (config.thresholds.passScore < config.thresholds.warnScore) {
82
+ errors.push('passScore must be >= warnScore');
83
+ }
84
+ if (config.thresholds.warnScore < config.thresholds.failScore) {
85
+ errors.push('warnScore must be >= failScore');
86
+ }
87
+ return {
88
+ valid: errors.length === 0,
89
+ errors,
90
+ };
91
+ }
92
+ /**
93
+ * Export configuration (for sharing between projects)
94
+ */
95
+ static exportConfig(config) {
96
+ // Remove sensitive data
97
+ const exportConfig = {
98
+ ...config,
99
+ notifications: config.notifications
100
+ ? {
101
+ enabled: config.notifications.enabled,
102
+ }
103
+ : undefined,
104
+ integrations: config.integrations
105
+ ? {
106
+ ...config.integrations,
107
+ dashboards: config.integrations.dashboards
108
+ ? {
109
+ enabled: config.integrations.dashboards.enabled,
110
+ }
111
+ : undefined,
112
+ }
113
+ : undefined,
114
+ };
115
+ return JSON.stringify(exportConfig, null, 2);
116
+ }
117
+ /**
118
+ * Import configuration
119
+ */
120
+ static importConfig(configJson) {
121
+ const imported = JSON.parse(configJson);
122
+ return {
123
+ ...DEFAULT_CONFIG,
124
+ ...imported,
125
+ thresholds: {
126
+ ...DEFAULT_CONFIG.thresholds,
127
+ ...imported.thresholds,
128
+ },
129
+ };
130
+ }
131
+ }
132
+ exports.ShipConfigManager = ShipConfigManager;
133
+ //# sourceMappingURL=ship-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-config.js","sourceRoot":"","sources":["../src/ship-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Ship Data Loader
3
+ *
4
+ * Robust data loading for ship command with fallback to local files
5
+ * Handles offline mode, API failures, and missing fields gracefully
6
+ */
7
+ export interface ScanData {
8
+ scans?: Array<{
9
+ id: string;
10
+ name: string;
11
+ status: string;
12
+ score?: number;
13
+ duration?: number;
14
+ criticalIssues?: number;
15
+ warnings?: number;
16
+ [key: string]: any;
17
+ }>;
18
+ checks?: Array<{
19
+ id: string;
20
+ name: string;
21
+ status: string;
22
+ message?: string;
23
+ details?: string[];
24
+ [key: string]: any;
25
+ }>;
26
+ verdict?: 'ship' | 'no-ship' | 'review';
27
+ score?: number;
28
+ summary?: {
29
+ totalScans?: number;
30
+ passedScans?: number;
31
+ failedScans?: number;
32
+ criticalIssues?: number;
33
+ warnings?: number;
34
+ totalDuration?: number;
35
+ };
36
+ [key: string]: any;
37
+ }
38
+ export interface LoadScanDataOptions {
39
+ projectPath: string;
40
+ debug?: boolean;
41
+ }
42
+ export interface LoadScanDataResult {
43
+ data: ScanData | null;
44
+ source: 'api' | 'local' | 'none';
45
+ error?: string;
46
+ }
47
+ /**
48
+ * Load scan data from API (if available) or fallback to local files
49
+ * Always returns normalized data shape
50
+ */
51
+ export declare function loadScanData(options: LoadScanDataOptions): Promise<LoadScanDataResult>;
52
+ /**
53
+ * Custom error class for ship data validation failures
54
+ */
55
+ export declare class ShipDataError extends Error {
56
+ readonly missingFields?: string[];
57
+ constructor(message: string, missingFields?: string[]);
58
+ }
59
+ /**
60
+ * Normalize and validate ship response data
61
+ * Throws ShipDataError if critical fields are missing
62
+ * Returns a stable object shape with all required fields
63
+ */
64
+ export declare function normalizeShipResponse(raw: any): ScanData;
65
+ /**
66
+ * Merge scan data with defaults to ensure all required fields exist
67
+ * This is a non-throwing version for backwards compatibility
68
+ */
69
+ export declare function normalizeScanData(data: ScanData | null): ScanData;
70
+ //# sourceMappingURL=ship-data-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-data-loader.d.ts","sourceRoot":"","sources":["../src/ship-data-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAwE7B;AA4HD;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aACO,aAAa,CAAC,EAAE,MAAM,EAAE;gBAAzD,OAAO,EAAE,MAAM,EAAkB,aAAa,CAAC,EAAE,MAAM,EAAE;CAKtE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CA0ExD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAuBjE"}
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+ /**
3
+ * Ship Data Loader
4
+ *
5
+ * Robust data loading for ship command with fallback to local files
6
+ * Handles offline mode, API failures, and missing fields gracefully
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ShipDataError = void 0;
10
+ exports.loadScanData = loadScanData;
11
+ exports.normalizeShipResponse = normalizeShipResponse;
12
+ exports.normalizeScanData = normalizeScanData;
13
+ const fs_1 = require("fs");
14
+ const path_1 = require("path");
15
+ const creds_1 = require("./runtime/creds");
16
+ /**
17
+ * Load scan data from API (if available) or fallback to local files
18
+ * Always returns normalized data shape
19
+ */
20
+ async function loadScanData(options) {
21
+ const { projectPath, debug = false } = options;
22
+ // Try API first if we have credentials
23
+ try {
24
+ const authState = (0, creds_1.loadAuthState)();
25
+ if (authState?.apiKey) {
26
+ if (debug) {
27
+ console.log('[DEBUG] Attempting to load scan data from API...');
28
+ }
29
+ const apiData = await loadScanDataFromAPI(authState.apiKey, projectPath, debug);
30
+ if (apiData) {
31
+ // Normalize API response before returning
32
+ try {
33
+ const normalized = normalizeShipResponse(apiData);
34
+ if (debug) {
35
+ console.log('[DEBUG] Successfully loaded and normalized scan data from API');
36
+ }
37
+ return { data: normalized, source: 'api' };
38
+ }
39
+ catch (normalizeError) {
40
+ if (normalizeError instanceof ShipDataError) {
41
+ if (debug) {
42
+ console.log(`[DEBUG] API response validation failed: ${normalizeError.message}`);
43
+ }
44
+ // Continue to local fallback on validation failure
45
+ }
46
+ else {
47
+ throw normalizeError;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ catch (error) {
54
+ if (debug) {
55
+ console.log(`[DEBUG] API load failed: ${error.message}, falling back to local files`);
56
+ }
57
+ // Continue to local fallback
58
+ }
59
+ // Fallback to local files
60
+ try {
61
+ const localData = loadScanDataFromLocal(projectPath, debug);
62
+ if (localData) {
63
+ // Normalize local data before returning
64
+ try {
65
+ const normalized = normalizeShipResponse(localData);
66
+ if (debug) {
67
+ console.log('[DEBUG] Successfully loaded and normalized scan data from local files');
68
+ }
69
+ return { data: normalized, source: 'local' };
70
+ }
71
+ catch (normalizeError) {
72
+ if (normalizeError instanceof ShipDataError) {
73
+ if (debug) {
74
+ console.log(`[DEBUG] Local data validation failed: ${normalizeError.message}`);
75
+ }
76
+ // Return null if local data is invalid
77
+ }
78
+ else {
79
+ throw normalizeError;
80
+ }
81
+ }
82
+ }
83
+ }
84
+ catch (error) {
85
+ if (debug) {
86
+ console.log(`[DEBUG] Local file load failed: ${error.message}`);
87
+ }
88
+ }
89
+ // No data available
90
+ if (debug) {
91
+ console.log('[DEBUG] No scan data available from API or local files');
92
+ }
93
+ return { data: null, source: 'none', error: 'No scan data available' };
94
+ }
95
+ /**
96
+ * Load scan data from API
97
+ */
98
+ async function loadScanDataFromAPI(apiKey, projectPath, debug) {
99
+ try {
100
+ const baseUrl = process.env.GUARDRAIL_API_BASE_URL || 'https://api.guardrail.dev';
101
+ const projectName = (0, path_1.basename)(projectPath);
102
+ // Try to get scan results from API
103
+ // Note: This is a placeholder - adjust the endpoint as needed
104
+ const response = await fetch(`${baseUrl}/api/ship/results`, {
105
+ method: 'POST',
106
+ headers: {
107
+ 'Content-Type': 'application/json',
108
+ 'Authorization': `Bearer ${apiKey}`,
109
+ },
110
+ body: JSON.stringify({
111
+ projectPath,
112
+ projectName,
113
+ }),
114
+ });
115
+ if (!response.ok) {
116
+ if (debug) {
117
+ console.log(`[DEBUG] API returned status ${response.status}`);
118
+ }
119
+ return null;
120
+ }
121
+ const responseData = await response.json();
122
+ // Validate response structure
123
+ if (!responseData || typeof responseData !== 'object') {
124
+ if (debug) {
125
+ console.log('[DEBUG] API response is invalid or empty');
126
+ }
127
+ return null;
128
+ }
129
+ // Return raw data - normalization will happen in loadScanData
130
+ // This allows loadScanData to handle validation errors appropriately
131
+ return responseData;
132
+ }
133
+ catch (error) {
134
+ if (debug) {
135
+ console.log(`[DEBUG] API request failed: ${error.message}`);
136
+ }
137
+ return null;
138
+ }
139
+ }
140
+ /**
141
+ * Load scan data from local .guardrail directory
142
+ */
143
+ function loadScanDataFromLocal(projectPath, debug) {
144
+ const guardrailDir = (0, path_1.join)(projectPath, '.guardrail');
145
+ if (!(0, fs_1.existsSync)(guardrailDir)) {
146
+ if (debug) {
147
+ console.log('[DEBUG] .guardrail directory does not exist');
148
+ }
149
+ return null;
150
+ }
151
+ // Try to find latest scan result file
152
+ const scanFiles = [
153
+ (0, path_1.join)(guardrailDir, 'ship-result.json'),
154
+ (0, path_1.join)(guardrailDir, 'ship-report.json'),
155
+ (0, path_1.join)(guardrailDir, 'scan-result.json'),
156
+ ];
157
+ // Also check ship subdirectory
158
+ const shipDir = (0, path_1.join)(guardrailDir, 'ship');
159
+ if ((0, fs_1.existsSync)(shipDir)) {
160
+ try {
161
+ const shipFiles = (0, fs_1.readdirSync)(shipDir)
162
+ .filter(f => f.endsWith('.json'))
163
+ .sort()
164
+ .reverse()
165
+ .slice(0, 1)
166
+ .map(f => (0, path_1.join)(shipDir, f));
167
+ scanFiles.push(...shipFiles);
168
+ }
169
+ catch (e) {
170
+ // Ignore readdir errors
171
+ }
172
+ }
173
+ // Try to load from each potential file
174
+ for (const filePath of scanFiles) {
175
+ if ((0, fs_1.existsSync)(filePath)) {
176
+ try {
177
+ const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
178
+ const data = JSON.parse(content);
179
+ // Extract ship data (might be nested under 'ship' key)
180
+ const shipData = data.ship || data;
181
+ if (debug) {
182
+ console.log(`[DEBUG] Loaded scan data from ${filePath}`);
183
+ }
184
+ // Return raw data - normalization will happen in loadScanData
185
+ // This ensures consistent normalization for both API and local sources
186
+ return shipData;
187
+ }
188
+ catch (error) {
189
+ if (debug) {
190
+ console.log(`[DEBUG] Failed to parse ${filePath}: ${error.message}`);
191
+ }
192
+ // Continue to next file
193
+ }
194
+ }
195
+ }
196
+ return null;
197
+ }
198
+ /**
199
+ * Custom error class for ship data validation failures
200
+ */
201
+ class ShipDataError extends Error {
202
+ constructor(message, missingFields) {
203
+ super(message);
204
+ this.missingFields = missingFields;
205
+ this.name = 'ShipDataError';
206
+ Error.captureStackTrace?.(this, ShipDataError);
207
+ }
208
+ }
209
+ exports.ShipDataError = ShipDataError;
210
+ /**
211
+ * Normalize and validate ship response data
212
+ * Throws ShipDataError if critical fields are missing
213
+ * Returns a stable object shape with all required fields
214
+ */
215
+ function normalizeShipResponse(raw) {
216
+ // Handle null/undefined
217
+ if (raw == null) {
218
+ throw new ShipDataError('Ship data is null or undefined. Cannot proceed with ship check.', ['scans', 'checks', 'verdict', 'score']);
219
+ }
220
+ // Ensure it's an object
221
+ if (typeof raw !== 'object') {
222
+ throw new ShipDataError(`Invalid ship data type: expected object, got ${typeof raw}`, ['scans', 'checks', 'verdict', 'score']);
223
+ }
224
+ // Validate and normalize scans - CRITICAL FIELD
225
+ // scans is optional but if present must be an array
226
+ const scans = raw.scans != null
227
+ ? (Array.isArray(raw.scans) ? raw.scans : [])
228
+ : [];
229
+ // Validate and normalize checks - CRITICAL FIELD
230
+ // checks is optional but if present must be an array
231
+ const checks = raw.checks != null
232
+ ? (Array.isArray(raw.checks) ? raw.checks : [])
233
+ : [];
234
+ // Validate and normalize verdict
235
+ const validVerdicts = ['ship', 'no-ship', 'review'];
236
+ const verdict = raw.verdict && validVerdicts.includes(raw.verdict)
237
+ ? raw.verdict
238
+ : 'review';
239
+ // Validate and normalize score
240
+ const score = typeof raw.score === 'number' && !isNaN(raw.score)
241
+ ? Math.max(0, Math.min(100, raw.score)) // Clamp to 0-100
242
+ : 0;
243
+ // Validate and normalize summary
244
+ const summary = raw.summary && typeof raw.summary === 'object'
245
+ ? {
246
+ totalScans: typeof raw.summary.totalScans === 'number' ? raw.summary.totalScans : scans.length,
247
+ passedScans: typeof raw.summary.passedScans === 'number' ? raw.summary.passedScans : 0,
248
+ failedScans: typeof raw.summary.failedScans === 'number' ? raw.summary.failedScans : 0,
249
+ criticalIssues: typeof raw.summary.criticalIssues === 'number' ? raw.summary.criticalIssues : 0,
250
+ warnings: typeof raw.summary.warnings === 'number' ? raw.summary.warnings : 0,
251
+ totalDuration: typeof raw.summary.totalDuration === 'number' ? raw.summary.totalDuration : 0,
252
+ ...raw.summary,
253
+ }
254
+ : {
255
+ totalScans: scans.length,
256
+ passedScans: 0,
257
+ failedScans: 0,
258
+ criticalIssues: 0,
259
+ warnings: 0,
260
+ totalDuration: 0,
261
+ };
262
+ // Return normalized response with stable shape
263
+ return {
264
+ scans,
265
+ checks,
266
+ verdict,
267
+ score,
268
+ summary,
269
+ // Preserve other fields if present
270
+ ...Object.fromEntries(Object.entries(raw).filter(([key]) => !['scans', 'checks', 'verdict', 'score', 'summary'].includes(key))),
271
+ };
272
+ }
273
+ /**
274
+ * Merge scan data with defaults to ensure all required fields exist
275
+ * This is a non-throwing version for backwards compatibility
276
+ */
277
+ function normalizeScanData(data) {
278
+ if (!data) {
279
+ return {
280
+ scans: [],
281
+ checks: [],
282
+ verdict: 'review',
283
+ score: 0,
284
+ summary: {},
285
+ };
286
+ }
287
+ try {
288
+ return normalizeShipResponse(data);
289
+ }
290
+ catch (error) {
291
+ // If normalization fails, return safe defaults
292
+ return {
293
+ scans: Array.isArray(data.scans) ? data.scans : [],
294
+ checks: Array.isArray(data.checks) ? data.checks : [],
295
+ verdict: data.verdict || 'review',
296
+ score: typeof data.score === 'number' ? data.score : 0,
297
+ summary: data.summary || {},
298
+ };
299
+ }
300
+ }
301
+ //# sourceMappingURL=ship-data-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-data-loader.js","sourceRoot":"","sources":["../src/ship-data-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=standalone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone.d.ts","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=standalone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone.js","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":""}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Truth Pack Generator
3
+ *
4
+ * Creates the relationship infrastructure that makes AI dependent on repo-truth.
5
+ * This is the moat - installed once, used 500x/day.
6
+ */
7
+ export interface TruthPack {
8
+ version: string;
9
+ generatedAt: string;
10
+ projectPath: string;
11
+ stack: {
12
+ framework: string;
13
+ language: string;
14
+ packageManager: string;
15
+ runtime?: string;
16
+ };
17
+ metadata: {
18
+ fileCount: number;
19
+ lineCount: number;
20
+ totalSize: number;
21
+ };
22
+ }
23
+ export interface Symbol {
24
+ name: string;
25
+ type: 'function' | 'class' | 'interface' | 'type' | 'variable' | 'constant' | 'enum';
26
+ file: string;
27
+ line: number;
28
+ column?: number;
29
+ exported: boolean;
30
+ signature?: string;
31
+ doc?: string;
32
+ }
33
+ export interface Dependency {
34
+ name: string;
35
+ version: string;
36
+ type: 'production' | 'dev' | 'peer' | 'optional';
37
+ registry: string;
38
+ license?: string;
39
+ }
40
+ export interface Route {
41
+ path: string;
42
+ method: string;
43
+ file: string;
44
+ line: number;
45
+ handler: string;
46
+ auth?: boolean;
47
+ middleware?: string[];
48
+ params?: string[];
49
+ }
50
+ export interface RiskTag {
51
+ file: string;
52
+ line: number;
53
+ category: 'auth' | 'payment' | 'database' | 'security' | 'sensitive';
54
+ severity: 'critical' | 'high' | 'medium' | 'low';
55
+ description: string;
56
+ }
57
+ export interface Pattern {
58
+ name: string;
59
+ type: 'golden' | 'antipattern';
60
+ file: string;
61
+ line: number;
62
+ description: string;
63
+ example?: string;
64
+ }
65
+ export declare class TruthPackGenerator {
66
+ private projectPath;
67
+ private truthPackPath;
68
+ constructor(projectPath: string);
69
+ /**
70
+ * Generate complete Truth Pack
71
+ */
72
+ generate(): Promise<TruthPack>;
73
+ /**
74
+ * Check if Truth Pack exists and is fresh
75
+ */
76
+ isFresh(maxAgeHours?: number): boolean;
77
+ /**
78
+ * Get Truth Pack path
79
+ */
80
+ getPath(): string;
81
+ private detectStack;
82
+ private generateSymbols;
83
+ private extractSignature;
84
+ private extractDoc;
85
+ private findCodeFiles;
86
+ private generateDependencies;
87
+ private generateImportGraph;
88
+ private generateRoutes;
89
+ private extractHandlerName;
90
+ private hasAuth;
91
+ private extractMiddleware;
92
+ private extractParams;
93
+ private extractNextJSRoutePath;
94
+ private generateRiskTags;
95
+ private generateImportance;
96
+ private resolveImportPath;
97
+ private generatePatterns;
98
+ private generateAntipatterns;
99
+ private generateVulnerabilities;
100
+ private generateMetadata;
101
+ }
102
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/truth-pack/index.ts"],"names":[],"mappings":"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"}