@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,339 @@
1
+ "use strict";
2
+ /**
3
+ * AI Helpers
4
+ *
5
+ * Utility functions for AI-powered features across CLI commands
6
+ * Provides consistent AI capabilities with multi-provider support
7
+ *
8
+ * ⚠️ PRO FEATURE - Requires PRO tier subscription
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.getAIProvider = getAIProvider;
15
+ exports.isAIAvailable = isAIAvailable;
16
+ exports.hasAIAPIKey = hasAIAPIKey;
17
+ exports.getAIClient = getAIClient;
18
+ exports.explainIssue = explainIssue;
19
+ exports.generateSuggestions = generateSuggestions;
20
+ const openai_1 = __importDefault(require("openai"));
21
+ const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
22
+ const core_1 = require('guardrail-core');
23
+ /**
24
+ * Get available AI provider
25
+ */
26
+ function getAIProvider() {
27
+ const openaiKey = process.env.OPENAI_API_KEY;
28
+ const anthropicKey = process.env.ANTHROPIC_API_KEY;
29
+ const preferred = process.env.GUARDRAIL_AI_PROVIDER;
30
+ if (preferred === 'openai' && openaiKey)
31
+ return 'openai';
32
+ if (preferred === 'anthropic' && anthropicKey)
33
+ return 'anthropic';
34
+ if (openaiKey)
35
+ return 'openai';
36
+ if (anthropicKey)
37
+ return 'anthropic';
38
+ return null;
39
+ }
40
+ /**
41
+ * Check if AI is available (both API key and PRO tier)
42
+ */
43
+ async function isAIAvailable() {
44
+ // Check if API key is set
45
+ const provider = getAIProvider();
46
+ if (!provider) {
47
+ return false;
48
+ }
49
+ // Check if user has PRO tier (AI features are PRO-only)
50
+ // Use 'ai-agent' feature check since that's the existing PRO AI feature
51
+ try {
52
+ const featureCheck = await core_1.entitlements.checkFeature('ai-agent');
53
+ return featureCheck.allowed;
54
+ }
55
+ catch (error) {
56
+ // If entitlement check fails, assume not available
57
+ return false;
58
+ }
59
+ }
60
+ /**
61
+ * Check if AI is available (sync version - checks API key only)
62
+ * Use for UI hints, not for actual feature access
63
+ */
64
+ function hasAIAPIKey() {
65
+ return getAIProvider() !== null;
66
+ }
67
+ /**
68
+ * Get AI client based on provider
69
+ */
70
+ function getAIClient(provider) {
71
+ const resolvedProvider = provider === 'auto' || !provider ? getAIProvider() : provider;
72
+ if (!resolvedProvider)
73
+ return null;
74
+ if (resolvedProvider === 'openai' && process.env.OPENAI_API_KEY) {
75
+ return new openai_1.default({ apiKey: process.env.OPENAI_API_KEY });
76
+ }
77
+ if (resolvedProvider === 'anthropic' && process.env.ANTHROPIC_API_KEY) {
78
+ return new sdk_1.default({ apiKey: process.env.ANTHROPIC_API_KEY });
79
+ }
80
+ return null;
81
+ }
82
+ /**
83
+ * Explain a vulnerability or issue using AI
84
+ * ⚠️ PRO FEATURE - Requires PRO tier subscription
85
+ */
86
+ async function explainIssue(issue, config = {}) {
87
+ // Check entitlement - AI features are PRO-only
88
+ // Use 'ai-agent' feature check since that's the existing PRO AI feature
89
+ try {
90
+ await core_1.entitlements.enforceFeature('ai-agent');
91
+ }
92
+ catch (error) {
93
+ if (error.code === 'FEATURE_NOT_AVAILABLE') {
94
+ throw new Error(error.upgradePrompt ||
95
+ 'AI-powered explanations require a PRO subscription. Upgrade at https://guardrail.dev/pricing');
96
+ }
97
+ throw error;
98
+ }
99
+ const client = getAIClient(config.provider || 'auto');
100
+ if (!client)
101
+ return null;
102
+ const provider = getAIProvider();
103
+ if (!provider)
104
+ return null;
105
+ const prompt = buildExplanationPrompt(issue);
106
+ try {
107
+ if (provider === 'openai' && client instanceof openai_1.default) {
108
+ const response = await client.chat.completions.create({
109
+ model: config.model || process.env.OPENAI_MODEL || 'gpt-4o',
110
+ messages: [
111
+ {
112
+ role: 'system',
113
+ content: `You are a security and code quality expert. Explain issues clearly and provide actionable recommendations.`,
114
+ },
115
+ {
116
+ role: 'user',
117
+ content: prompt,
118
+ },
119
+ ],
120
+ max_tokens: config.maxTokens || 1500,
121
+ temperature: config.temperature || 0.3,
122
+ });
123
+ const content = response.choices[0]?.message?.content || '';
124
+ return parseExplanation(content, provider);
125
+ }
126
+ else if (provider === 'anthropic' && client instanceof sdk_1.default) {
127
+ const message = await client.messages.create({
128
+ model: config.model || process.env.ANTHROPIC_MODEL || 'claude-3-5-sonnet-20241022',
129
+ max_tokens: config.maxTokens || 1500,
130
+ temperature: config.temperature || 0.3,
131
+ system: `You are a security and code quality expert. Explain issues clearly and provide actionable recommendations.`,
132
+ messages: [
133
+ {
134
+ role: 'user',
135
+ content: prompt,
136
+ },
137
+ ],
138
+ });
139
+ const content = message.content[0];
140
+ const text = content && content.type === 'text' ? content.text : '';
141
+ return parseExplanation(text, provider);
142
+ }
143
+ }
144
+ catch (error) {
145
+ console.warn('AI explanation failed:', error instanceof Error ? error.message : String(error));
146
+ return null;
147
+ }
148
+ return null;
149
+ }
150
+ /**
151
+ * Generate AI-powered suggestions for code improvements
152
+ * ⚠️ PRO FEATURE - Requires PRO tier subscription
153
+ */
154
+ async function generateSuggestions(code, context, config = {}) {
155
+ // Check entitlement - AI features are PRO-only
156
+ // Use 'ai-agent' feature check since that's the existing PRO AI feature
157
+ try {
158
+ await core_1.entitlements.enforceFeature('ai-agent');
159
+ }
160
+ catch (error) {
161
+ if (error.code === 'FEATURE_NOT_AVAILABLE') {
162
+ throw new Error(error.upgradePrompt ||
163
+ 'AI-powered suggestions require a PRO subscription. Upgrade at https://guardrail.dev/pricing');
164
+ }
165
+ throw error;
166
+ }
167
+ const client = getAIClient(config.provider || 'auto');
168
+ if (!client)
169
+ return null;
170
+ const provider = getAIProvider();
171
+ if (!provider)
172
+ return null;
173
+ const prompt = buildSuggestionsPrompt(code, context);
174
+ try {
175
+ let text;
176
+ if (provider === 'openai' && client instanceof openai_1.default) {
177
+ const response = await client.chat.completions.create({
178
+ model: config.model || process.env.OPENAI_MODEL || 'gpt-4o',
179
+ messages: [
180
+ {
181
+ role: 'system',
182
+ content: `You are a code quality expert. Provide practical, actionable suggestions for improving code.`,
183
+ },
184
+ {
185
+ role: 'user',
186
+ content: prompt,
187
+ },
188
+ ],
189
+ max_tokens: config.maxTokens || 2000,
190
+ temperature: config.temperature || 0.4,
191
+ });
192
+ text = response.choices[0]?.message?.content || '';
193
+ }
194
+ else if (provider === 'anthropic' && client instanceof sdk_1.default) {
195
+ const message = await client.messages.create({
196
+ model: config.model || process.env.ANTHROPIC_MODEL || 'claude-3-5-sonnet-20241022',
197
+ max_tokens: config.maxTokens || 2000,
198
+ temperature: config.temperature || 0.4,
199
+ system: `You are a code quality expert. Provide practical, actionable suggestions for improving code.`,
200
+ messages: [
201
+ {
202
+ role: 'user',
203
+ content: prompt,
204
+ },
205
+ ],
206
+ });
207
+ const content = message.content[0];
208
+ text = content && content.type === 'text' ? content.text : '';
209
+ }
210
+ else {
211
+ return null;
212
+ }
213
+ return parseSuggestions(text);
214
+ }
215
+ catch (error) {
216
+ console.warn('AI suggestions failed:', error instanceof Error ? error.message : String(error));
217
+ return null;
218
+ }
219
+ }
220
+ /**
221
+ * Build explanation prompt
222
+ */
223
+ function buildExplanationPrompt(issue) {
224
+ let prompt = `Explain this ${issue.type} issue:
225
+
226
+ Severity: ${issue.severity}
227
+ Description: ${issue.description}`;
228
+ if (issue.file) {
229
+ prompt += `\nFile: ${issue.file}`;
230
+ }
231
+ if (issue.line) {
232
+ prompt += `\nLine: ${issue.line}`;
233
+ }
234
+ if (issue.code) {
235
+ prompt += `\n\nCode:\n\`\`\`\n${issue.code}\n\`\`\``;
236
+ }
237
+ prompt += `\n\nProvide:
238
+ 1. A clear summary of what this issue means
239
+ 2. Why it's a problem (impact)
240
+ 3. Specific recommendations to fix it
241
+ 4. Best practices to prevent it in the future
242
+
243
+ Format your response as JSON:
244
+ {
245
+ "summary": "Brief summary",
246
+ "details": ["detail 1", "detail 2"],
247
+ "severity": "${issue.severity}",
248
+ "impact": "Impact explanation",
249
+ "recommendations": ["rec 1", "rec 2"]
250
+ }`;
251
+ return prompt;
252
+ }
253
+ /**
254
+ * Build suggestions prompt
255
+ */
256
+ function buildSuggestionsPrompt(code, context) {
257
+ let prompt = `Analyze this code and provide improvement suggestions:\n\n`;
258
+ if (context.file) {
259
+ prompt += `File: ${context.file}\n`;
260
+ }
261
+ if (context.language) {
262
+ prompt += `Language: ${context.language}\n`;
263
+ }
264
+ if (context.issues && context.issues.length > 0) {
265
+ prompt += `Known Issues: ${context.issues.join(', ')}\n`;
266
+ }
267
+ prompt += `\nCode:\n\`\`\`${context.language || ''}\n${code.slice(0, 2000)}\n\`\`\``;
268
+ prompt += `\n\nProvide actionable suggestions in JSON format:
269
+ [
270
+ {
271
+ "type": "fix|improvement|refactor|security",
272
+ "priority": "low|medium|high",
273
+ "description": "What to improve",
274
+ "code": "Optional code example",
275
+ "explanation": "Why this helps",
276
+ "confidence": 0.0-1.0
277
+ }
278
+ ]`;
279
+ return prompt;
280
+ }
281
+ /**
282
+ * Parse explanation response
283
+ */
284
+ function parseExplanation(text, provider) {
285
+ try {
286
+ const jsonMatch = text.match(/\{[\s\S]*\}/);
287
+ if (jsonMatch) {
288
+ const parsed = JSON.parse(jsonMatch[0]);
289
+ return {
290
+ summary: parsed.summary || 'Unable to generate explanation',
291
+ details: Array.isArray(parsed.details) ? parsed.details : [],
292
+ severity: parsed.severity || 'medium',
293
+ impact: parsed.impact || '',
294
+ recommendations: Array.isArray(parsed.recommendations) ? parsed.recommendations : [],
295
+ provider,
296
+ timestamp: new Date().toISOString(),
297
+ };
298
+ }
299
+ }
300
+ catch (e) {
301
+ // Fall through to default
302
+ }
303
+ // Fallback parsing
304
+ return {
305
+ summary: text.slice(0, 200) || 'Unable to generate explanation',
306
+ details: text.split('\n').filter((l) => l.trim().length > 0).slice(0, 5),
307
+ severity: 'medium',
308
+ impact: '',
309
+ recommendations: [],
310
+ provider,
311
+ timestamp: new Date().toISOString(),
312
+ };
313
+ }
314
+ /**
315
+ * Parse suggestions response
316
+ */
317
+ function parseSuggestions(text) {
318
+ try {
319
+ const jsonMatch = text.match(/\[[\s\S]*\]/);
320
+ if (jsonMatch) {
321
+ const parsed = JSON.parse(jsonMatch[0]);
322
+ if (Array.isArray(parsed)) {
323
+ return parsed.map((s) => ({
324
+ type: s.type || 'improvement',
325
+ priority: s.priority || 'medium',
326
+ description: s.description || '',
327
+ code: s.code,
328
+ explanation: s.explanation || '',
329
+ confidence: typeof s.confidence === 'number' ? s.confidence : 0.7,
330
+ }));
331
+ }
332
+ }
333
+ }
334
+ catch (e) {
335
+ // Fall through to empty array
336
+ }
337
+ return [];
338
+ }
339
+ //# sourceMappingURL=ai-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-helpers.js","sourceRoot":"","sources":["../../src/utils/ai-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Validation Utilities
3
+ * Enterprise-grade validation helpers
4
+ */
5
+ export interface ValidationResult {
6
+ valid: boolean;
7
+ errors: string[];
8
+ warnings?: string[];
9
+ }
10
+ /**
11
+ * Validate file path exists
12
+ */
13
+ export declare function validateFilePath(filePath: string): ValidationResult;
14
+ /**
15
+ * Validate directory path exists
16
+ */
17
+ export declare function validateDirectoryPath(dirPath: string): ValidationResult;
18
+ /**
19
+ * Validate JSON file
20
+ */
21
+ export declare function validateJsonFile(filePath: string): ValidationResult;
22
+ /**
23
+ * Validate port number
24
+ */
25
+ export declare function validatePort(port: number | string): ValidationResult;
26
+ /**
27
+ * Validate URL format
28
+ */
29
+ export declare function validateUrl(url: string): ValidationResult;
30
+ /**
31
+ * Validate regex pattern
32
+ */
33
+ export declare function validateRegex(pattern: string): ValidationResult;
34
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CA0BnE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CA0BvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAuBnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAmBpE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAkBzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAe/D"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ /**
3
+ * Validation Utilities
4
+ * Enterprise-grade validation helpers
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.validateFilePath = validateFilePath;
8
+ exports.validateDirectoryPath = validateDirectoryPath;
9
+ exports.validateJsonFile = validateJsonFile;
10
+ exports.validatePort = validatePort;
11
+ exports.validateUrl = validateUrl;
12
+ exports.validateRegex = validateRegex;
13
+ /**
14
+ * Validate file path exists
15
+ */
16
+ function validateFilePath(filePath) {
17
+ const errors = [];
18
+ const warnings = [];
19
+ try {
20
+ const fs = require('fs');
21
+ const path = require('path');
22
+ const resolved = path.resolve(filePath);
23
+ if (!fs.existsSync(resolved)) {
24
+ errors.push(`File does not exist: ${resolved}`);
25
+ }
26
+ else {
27
+ const stats = fs.statSync(resolved);
28
+ if (!stats.isFile()) {
29
+ errors.push(`Path is not a file: ${resolved}`);
30
+ }
31
+ }
32
+ }
33
+ catch (error) {
34
+ errors.push(`Error validating file path: ${error.message}`);
35
+ }
36
+ return {
37
+ valid: errors.length === 0,
38
+ errors,
39
+ warnings,
40
+ };
41
+ }
42
+ /**
43
+ * Validate directory path exists
44
+ */
45
+ function validateDirectoryPath(dirPath) {
46
+ const errors = [];
47
+ const warnings = [];
48
+ try {
49
+ const fs = require('fs');
50
+ const path = require('path');
51
+ const resolved = path.resolve(dirPath);
52
+ if (!fs.existsSync(resolved)) {
53
+ errors.push(`Directory does not exist: ${resolved}`);
54
+ }
55
+ else {
56
+ const stats = fs.statSync(resolved);
57
+ if (!stats.isDirectory()) {
58
+ errors.push(`Path is not a directory: ${resolved}`);
59
+ }
60
+ }
61
+ }
62
+ catch (error) {
63
+ errors.push(`Error validating directory path: ${error.message}`);
64
+ }
65
+ return {
66
+ valid: errors.length === 0,
67
+ errors,
68
+ warnings,
69
+ };
70
+ }
71
+ /**
72
+ * Validate JSON file
73
+ */
74
+ function validateJsonFile(filePath) {
75
+ const errors = [];
76
+ const warnings = [];
77
+ try {
78
+ const fs = require('fs');
79
+ const content = fs.readFileSync(filePath, 'utf-8');
80
+ JSON.parse(content);
81
+ }
82
+ catch (error) {
83
+ if (error.code === 'ENOENT') {
84
+ errors.push(`File does not exist: ${filePath}`);
85
+ }
86
+ else if (error instanceof SyntaxError) {
87
+ errors.push(`Invalid JSON: ${error.message}`);
88
+ }
89
+ else {
90
+ errors.push(`Error reading file: ${error.message}`);
91
+ }
92
+ }
93
+ return {
94
+ valid: errors.length === 0,
95
+ errors,
96
+ warnings,
97
+ };
98
+ }
99
+ /**
100
+ * Validate port number
101
+ */
102
+ function validatePort(port) {
103
+ const errors = [];
104
+ const warnings = [];
105
+ const portNum = typeof port === 'string' ? parseInt(port, 10) : port;
106
+ if (isNaN(portNum)) {
107
+ errors.push(`Invalid port number: ${port}`);
108
+ }
109
+ else if (portNum < 1 || portNum > 65535) {
110
+ errors.push(`Port number must be between 1 and 65535: ${portNum}`);
111
+ }
112
+ else if (portNum < 1024) {
113
+ warnings.push(`Port ${portNum} requires root privileges on Unix systems`);
114
+ }
115
+ return {
116
+ valid: errors.length === 0,
117
+ errors,
118
+ warnings,
119
+ };
120
+ }
121
+ /**
122
+ * Validate URL format
123
+ */
124
+ function validateUrl(url) {
125
+ const errors = [];
126
+ const warnings = [];
127
+ try {
128
+ const urlObj = new URL(url);
129
+ if (!['http:', 'https:'].includes(urlObj.protocol)) {
130
+ errors.push(`URL must use http:// or https:// protocol`);
131
+ }
132
+ }
133
+ catch (error) {
134
+ errors.push(`Invalid URL format: ${error.message}`);
135
+ }
136
+ return {
137
+ valid: errors.length === 0,
138
+ errors,
139
+ warnings,
140
+ };
141
+ }
142
+ /**
143
+ * Validate regex pattern
144
+ */
145
+ function validateRegex(pattern) {
146
+ const errors = [];
147
+ const warnings = [];
148
+ try {
149
+ new RegExp(pattern);
150
+ }
151
+ catch (error) {
152
+ errors.push(`Invalid regex pattern: ${error.message}`);
153
+ }
154
+ return {
155
+ valid: errors.length === 0,
156
+ errors,
157
+ warnings,
158
+ };
159
+ }
160
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@vibecheckai/cli",
3
+ "version": "2.5.1",
4
+ "description": "Guardrail CLI - Enterprise security scanning with interactive menu, arrow navigation, and auto-installation",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "guardrail": "dist/index.js",
8
+ "gr": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist/**/*",
12
+ "README.md",
13
+ "LICENSE"
14
+ ],
15
+ "scripts": {
16
+ "build": "node scripts/build.js",
17
+ "dev": "tsx src/index.ts",
18
+ "start": "node dist/index.js",
19
+ "prepublishOnly": "npm run build"
20
+ },
21
+ "dependencies": {
22
+ "@guardrail/core": "workspace:*",
23
+ "@guardrail/security": "workspace:*",
24
+ "@guardrail/ship": "workspace:*",
25
+ "chalk": "^5.3.0",
26
+ "commander": "^12.0.0",
27
+ "ora": "^8.0.0",
28
+ "zod": "^3.23.0"
29
+ },
30
+ "devDependencies": {
31
+ "@types/node": "^20.10.0",
32
+ "esbuild": ">=0.25.0",
33
+ "tsx": "^4.7.0",
34
+ "typescript": "^5.3.0"
35
+ },
36
+ "keywords": [
37
+ "guardrail",
38
+ "security",
39
+ "cli",
40
+ "scanning",
41
+ "vulnerabilities",
42
+ "secrets",
43
+ "sbom",
44
+ "osv",
45
+ "cve",
46
+ "devsecops",
47
+ "sast",
48
+ "supply-chain"
49
+ ],
50
+ "license": "MIT",
51
+ "author": "Guardrail Team <team@getguardrail.io>",
52
+ "homepage": "https://getguardrail.io",
53
+ "repository": {
54
+ "type": "git",
55
+ "url": "git+https://github.com/guardiavault-oss/codeguard.git"
56
+ },
57
+ "bugs": {
58
+ "url": "https://github.com/guardiavault-oss/codeguard/issues"
59
+ },
60
+ "engines": {
61
+ "node": ">=18.0.0"
62
+ },
63
+ "publishConfig": {
64
+ "access": "public"
65
+ }
66
+ }