guardrail-cli 2.4.13 → 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 (244) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +548 -521
  3. package/dist/commands/autopilot-decision.d.ts +24 -0
  4. package/dist/commands/autopilot-decision.d.ts.map +1 -0
  5. package/dist/commands/autopilot-decision.js +304 -0
  6. package/dist/commands/autopilot-decision.js.map +1 -0
  7. package/dist/commands/autopilot.d.ts +33 -0
  8. package/dist/commands/autopilot.d.ts.map +1 -0
  9. package/dist/commands/autopilot.js +1539 -0
  10. package/dist/commands/autopilot.js.map +1 -0
  11. package/dist/commands/baseline.d.ts.map +1 -1
  12. package/dist/commands/baseline.js.map +1 -1
  13. package/dist/commands/cache.d.ts.map +1 -1
  14. package/dist/commands/cache.js +3 -1
  15. package/dist/commands/cache.js.map +1 -1
  16. package/dist/commands/context.d.ts +8 -0
  17. package/dist/commands/context.d.ts.map +1 -0
  18. package/dist/commands/context.js +340 -0
  19. package/dist/commands/context.js.map +1 -0
  20. package/dist/commands/debug.d.ts +78 -0
  21. package/dist/commands/debug.d.ts.map +1 -0
  22. package/dist/commands/debug.js +381 -0
  23. package/dist/commands/debug.js.map +1 -0
  24. package/dist/commands/evidence.d.ts.map +1 -1
  25. package/dist/commands/evidence.js +23 -7
  26. package/dist/commands/evidence.js.map +1 -1
  27. package/dist/commands/index.d.ts +5 -0
  28. package/dist/commands/index.d.ts.map +1 -1
  29. package/dist/commands/index.js +16 -1
  30. package/dist/commands/index.js.map +1 -1
  31. package/dist/commands/preview.d.ts +54 -0
  32. package/dist/commands/preview.d.ts.map +1 -0
  33. package/dist/commands/preview.js +352 -0
  34. package/dist/commands/preview.js.map +1 -0
  35. package/dist/commands/quality/check.d.ts +31 -0
  36. package/dist/commands/quality/check.d.ts.map +1 -0
  37. package/dist/commands/quality/check.js +242 -0
  38. package/dist/commands/quality/check.js.map +1 -0
  39. package/dist/commands/quality/index.d.ts +8 -0
  40. package/dist/commands/quality/index.d.ts.map +1 -0
  41. package/dist/commands/quality/index.js +14 -0
  42. package/dist/commands/quality/index.js.map +1 -0
  43. package/dist/commands/quality/setup-quality.d.ts +23 -0
  44. package/dist/commands/quality/setup-quality.d.ts.map +1 -0
  45. package/dist/commands/quality/setup-quality.js +452 -0
  46. package/dist/commands/quality/setup-quality.js.map +1 -0
  47. package/dist/commands/quality/tidy.d.ts +41 -0
  48. package/dist/commands/quality/tidy.d.ts.map +1 -0
  49. package/dist/commands/quality/tidy.js +466 -0
  50. package/dist/commands/quality/tidy.js.map +1 -0
  51. package/dist/commands/quality/utils.d.ts +73 -0
  52. package/dist/commands/quality/utils.d.ts.map +1 -0
  53. package/dist/commands/quality/utils.js +158 -0
  54. package/dist/commands/quality/utils.js.map +1 -0
  55. package/dist/commands/scan-secrets.d.ts.map +1 -1
  56. package/dist/commands/scan-secrets.js +35 -18
  57. package/dist/commands/scan-secrets.js.map +1 -1
  58. package/dist/commands/scan-vulnerabilities-enhanced.d.ts +1 -0
  59. package/dist/commands/scan-vulnerabilities-enhanced.d.ts.map +1 -1
  60. package/dist/commands/scan-vulnerabilities-enhanced.js +40 -14
  61. package/dist/commands/scan-vulnerabilities-enhanced.js.map +1 -1
  62. package/dist/commands/scan-vulnerabilities-osv.d.ts +1 -1
  63. package/dist/commands/scan-vulnerabilities-osv.d.ts.map +1 -1
  64. package/dist/commands/scan-vulnerabilities-osv.js +76 -45
  65. package/dist/commands/scan-vulnerabilities-osv.js.map +1 -1
  66. package/dist/commands/scan-vulnerabilities.d.ts.map +1 -1
  67. package/dist/commands/scan-vulnerabilities.js +82 -21
  68. package/dist/commands/scan-vulnerabilities.js.map +1 -1
  69. package/dist/commands/secrets-allowlist.d.ts.map +1 -1
  70. package/dist/commands/secrets-allowlist.js +12 -11
  71. package/dist/commands/secrets-allowlist.js.map +1 -1
  72. package/dist/fix/analytics.d.ts +121 -0
  73. package/dist/fix/analytics.d.ts.map +1 -0
  74. package/dist/fix/analytics.js +289 -0
  75. package/dist/fix/analytics.js.map +1 -0
  76. package/dist/fix/applicator.d.ts +21 -2
  77. package/dist/fix/applicator.d.ts.map +1 -1
  78. package/dist/fix/applicator.js +109 -6
  79. package/dist/fix/applicator.js.map +1 -1
  80. package/dist/fix/audit.d.ts +61 -0
  81. package/dist/fix/audit.d.ts.map +1 -0
  82. package/dist/fix/audit.js +149 -0
  83. package/dist/fix/audit.js.map +1 -0
  84. package/dist/fix/backup.d.ts +12 -2
  85. package/dist/fix/backup.d.ts.map +1 -1
  86. package/dist/fix/backup.js +53 -4
  87. package/dist/fix/backup.js.map +1 -1
  88. package/dist/fix/config.d.ts +78 -0
  89. package/dist/fix/config.d.ts.map +1 -0
  90. package/dist/fix/config.js +200 -0
  91. package/dist/fix/config.js.map +1 -0
  92. package/dist/fix/engine.d.ts.map +1 -1
  93. package/dist/fix/engine.js +5 -5
  94. package/dist/fix/engine.js.map +1 -1
  95. package/dist/fix/impact.d.ts +74 -0
  96. package/dist/fix/impact.d.ts.map +1 -0
  97. package/dist/fix/impact.js +281 -0
  98. package/dist/fix/impact.js.map +1 -0
  99. package/dist/fix/index.d.ts +3 -0
  100. package/dist/fix/index.d.ts.map +1 -1
  101. package/dist/fix/index.js +7 -1
  102. package/dist/fix/index.js.map +1 -1
  103. package/dist/fix/interactive.d.ts.map +1 -1
  104. package/dist/fix/interactive.js +9 -4
  105. package/dist/fix/interactive.js.map +1 -1
  106. package/dist/fix/learning.d.ts +109 -0
  107. package/dist/fix/learning.d.ts.map +1 -0
  108. package/dist/fix/learning.js +296 -0
  109. package/dist/fix/learning.js.map +1 -0
  110. package/dist/fix/metrics.d.ts +106 -0
  111. package/dist/fix/metrics.d.ts.map +1 -0
  112. package/dist/fix/metrics.js +138 -0
  113. package/dist/fix/metrics.js.map +1 -0
  114. package/dist/fix/parallel.d.ts +69 -0
  115. package/dist/fix/parallel.d.ts.map +1 -0
  116. package/dist/fix/parallel.js +203 -0
  117. package/dist/fix/parallel.js.map +1 -0
  118. package/dist/fix/report.d.ts +40 -0
  119. package/dist/fix/report.d.ts.map +1 -0
  120. package/dist/fix/report.js +212 -0
  121. package/dist/fix/report.js.map +1 -0
  122. package/dist/fix/strategy.d.ts +53 -0
  123. package/dist/fix/strategy.d.ts.map +1 -0
  124. package/dist/fix/strategy.js +143 -0
  125. package/dist/fix/strategy.js.map +1 -0
  126. package/dist/fix/templates.d.ts +58 -0
  127. package/dist/fix/templates.d.ts.map +1 -0
  128. package/dist/fix/templates.js +259 -0
  129. package/dist/fix/templates.js.map +1 -0
  130. package/dist/fix/testing.d.ts +68 -0
  131. package/dist/fix/testing.d.ts.map +1 -0
  132. package/dist/fix/testing.js +245 -0
  133. package/dist/fix/testing.js.map +1 -0
  134. package/dist/fix/validation.d.ts +71 -0
  135. package/dist/fix/validation.d.ts.map +1 -0
  136. package/dist/fix/validation.js +267 -0
  137. package/dist/fix/validation.js.map +1 -0
  138. package/dist/fix/visualization.d.ts +73 -0
  139. package/dist/fix/visualization.d.ts.map +1 -0
  140. package/dist/fix/visualization.js +243 -0
  141. package/dist/fix/visualization.js.map +1 -0
  142. package/dist/formatters/sarif-enhanced.d.ts.map +1 -1
  143. package/dist/formatters/sarif-enhanced.js +15 -7
  144. package/dist/formatters/sarif-enhanced.js.map +1 -1
  145. package/dist/formatters/sarif-v2.d.ts.map +1 -1
  146. package/dist/formatters/sarif-v2.js +82 -46
  147. package/dist/formatters/sarif-v2.js.map +1 -1
  148. package/dist/formatters/sarif.d.ts.map +1 -1
  149. package/dist/formatters/sarif.js +49 -22
  150. package/dist/formatters/sarif.js.map +1 -1
  151. package/dist/index.js +2544 -410
  152. package/dist/index.js.map +1 -1
  153. package/dist/init/ci-generator.d.ts.map +1 -1
  154. package/dist/init/ci-generator.js +186 -180
  155. package/dist/init/ci-generator.js.map +1 -1
  156. package/dist/init/detect-framework.d.ts.map +1 -1
  157. package/dist/init/detect-framework.js +19 -9
  158. package/dist/init/detect-framework.js.map +1 -1
  159. package/dist/init/hooks-installer.d.ts.map +1 -1
  160. package/dist/init/hooks-installer.js +74 -65
  161. package/dist/init/hooks-installer.js.map +1 -1
  162. package/dist/init/index.d.ts +3 -3
  163. package/dist/init/index.d.ts.map +1 -1
  164. package/dist/init/index.js.map +1 -1
  165. package/dist/init/templates.d.ts +10 -10
  166. package/dist/init/templates.d.ts.map +1 -1
  167. package/dist/init/templates.js +9 -4
  168. package/dist/init/templates.js.map +1 -1
  169. package/dist/reality/reality-runner.d.ts.map +1 -1
  170. package/dist/reality/reality-runner.js +23 -7
  171. package/dist/reality/reality-runner.js.map +1 -1
  172. package/dist/runtime/auth-utils.d.ts.map +1 -1
  173. package/dist/runtime/auth-utils.js.map +1 -1
  174. package/dist/runtime/cli-errors.d.ts +38 -0
  175. package/dist/runtime/cli-errors.d.ts.map +1 -0
  176. package/dist/runtime/cli-errors.js +354 -0
  177. package/dist/runtime/cli-errors.js.map +1 -0
  178. package/dist/runtime/client.d.ts.map +1 -1
  179. package/dist/runtime/client.js +27 -10
  180. package/dist/runtime/client.js.map +1 -1
  181. package/dist/runtime/creds.d.ts +5 -0
  182. package/dist/runtime/creds.d.ts.map +1 -1
  183. package/dist/runtime/creds.js +6 -1
  184. package/dist/runtime/creds.js.map +1 -1
  185. package/dist/runtime/exit-codes.d.ts +32 -4
  186. package/dist/runtime/exit-codes.d.ts.map +1 -1
  187. package/dist/runtime/exit-codes.js +42 -14
  188. package/dist/runtime/exit-codes.js.map +1 -1
  189. package/dist/runtime/owner-mode.d.ts +48 -0
  190. package/dist/runtime/owner-mode.d.ts.map +1 -0
  191. package/dist/runtime/owner-mode.js +284 -0
  192. package/dist/runtime/owner-mode.js.map +1 -0
  193. package/dist/runtime/semver.d.ts.map +1 -1
  194. package/dist/runtime/semver.js +5 -2
  195. package/dist/runtime/semver.js.map +1 -1
  196. package/dist/scanner/baseline.d.ts.map +1 -1
  197. package/dist/scanner/baseline.js +3 -3
  198. package/dist/scanner/baseline.js.map +1 -1
  199. package/dist/scanner/incremental.d.ts.map +1 -1
  200. package/dist/scanner/incremental.js +3 -3
  201. package/dist/scanner/incremental.js.map +1 -1
  202. package/dist/scanner/index.d.ts +8 -0
  203. package/dist/scanner/index.d.ts.map +1 -0
  204. package/dist/scanner/index.js +15 -0
  205. package/dist/scanner/index.js.map +1 -0
  206. package/dist/scanner/parallel.d.ts.map +1 -1
  207. package/dist/scanner/parallel.js +29 -8
  208. package/dist/scanner/parallel.js.map +1 -1
  209. package/dist/scanner/placeholder-detector.d.ts +56 -0
  210. package/dist/scanner/placeholder-detector.d.ts.map +1 -0
  211. package/dist/scanner/placeholder-detector.js +220 -0
  212. package/dist/scanner/placeholder-detector.js.map +1 -0
  213. package/dist/scanner/route-detector.d.ts +100 -0
  214. package/dist/scanner/route-detector.d.ts.map +1 -0
  215. package/dist/scanner/route-detector.js +455 -0
  216. package/dist/scanner/route-detector.js.map +1 -0
  217. package/dist/scanner/scoring.d.ts +67 -0
  218. package/dist/scanner/scoring.d.ts.map +1 -0
  219. package/dist/scanner/scoring.js +284 -0
  220. package/dist/scanner/scoring.js.map +1 -0
  221. package/dist/ship-baseline.d.ts +56 -0
  222. package/dist/ship-baseline.d.ts.map +1 -0
  223. package/dist/ship-baseline.js +194 -0
  224. package/dist/ship-baseline.js.map +1 -0
  225. package/dist/ship-config.d.ts +91 -0
  226. package/dist/ship-config.d.ts.map +1 -0
  227. package/dist/ship-config.js +133 -0
  228. package/dist/ship-config.js.map +1 -0
  229. package/dist/ship-data-loader.d.ts +70 -0
  230. package/dist/ship-data-loader.d.ts.map +1 -0
  231. package/dist/ship-data-loader.js +301 -0
  232. package/dist/ship-data-loader.js.map +1 -0
  233. package/dist/ui/frame.d.ts.map +1 -1
  234. package/dist/ui/frame.js +3 -1
  235. package/dist/ui/frame.js.map +1 -1
  236. package/dist/utils/ai-helpers.d.ts +72 -0
  237. package/dist/utils/ai-helpers.d.ts.map +1 -0
  238. package/dist/utils/ai-helpers.js +339 -0
  239. package/dist/utils/ai-helpers.js.map +1 -0
  240. package/dist/utils/validation.d.ts +34 -0
  241. package/dist/utils/validation.d.ts.map +1 -0
  242. package/dist/utils/validation.js +160 -0
  243. package/dist/utils/validation.js.map +1 -0
  244. package/package.json +3 -2
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Preview/Dry-Run Utilities
3
+ *
4
+ * Provides preview functionality for paid commands:
5
+ * - gate
6
+ * - ship
7
+ * - reality
8
+ * - autopilot
9
+ *
10
+ * Shows what checks would run, artifacts that would be generated, and sample report skeleton
11
+ */
12
+ export interface PreviewCheck {
13
+ id: string;
14
+ name: string;
15
+ description: string;
16
+ category: string;
17
+ tier: 'free' | 'starter' | 'pro' | 'enterprise';
18
+ }
19
+ export interface PreviewArtifact {
20
+ type: 'report' | 'badge' | 'log' | 'config' | 'data';
21
+ name: string;
22
+ format?: string;
23
+ location: string;
24
+ description: string;
25
+ }
26
+ export interface PreviewResult {
27
+ command: string;
28
+ checks: PreviewCheck[];
29
+ artifacts: PreviewArtifact[];
30
+ sampleReport?: any;
31
+ estimatedDuration?: string;
32
+ tierRequired: 'free' | 'starter' | 'pro' | 'enterprise';
33
+ }
34
+ /**
35
+ * Generate preview for ship command
36
+ */
37
+ export declare function generateShipPreview(projectPath: string, options?: any): PreviewResult;
38
+ /**
39
+ * Generate preview for gate command
40
+ */
41
+ export declare function generateGatePreview(projectPath: string, options?: any): PreviewResult;
42
+ /**
43
+ * Generate preview for reality command
44
+ */
45
+ export declare function generateRealityPreview(projectPath: string, options?: any): PreviewResult;
46
+ /**
47
+ * Generate preview for autopilot command
48
+ */
49
+ export declare function generateAutopilotPreview(projectPath: string, options?: any): PreviewResult;
50
+ /**
51
+ * Format preview as text
52
+ */
53
+ export declare function formatPreviewAsText(preview: PreviewResult): string;
54
+ //# sourceMappingURL=preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/commands/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC;CACzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,GAAQ,GAChB,aAAa,CA4Ff;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,GAAQ,GAChB,aAAa,CAkEf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,GAAQ,GAChB,aAAa,CA+Df;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,GAAQ,GAChB,aAAa,CA+Df;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAgDlE"}
@@ -0,0 +1,352 @@
1
+ "use strict";
2
+ /**
3
+ * Preview/Dry-Run Utilities
4
+ *
5
+ * Provides preview functionality for paid commands:
6
+ * - gate
7
+ * - ship
8
+ * - reality
9
+ * - autopilot
10
+ *
11
+ * Shows what checks would run, artifacts that would be generated, and sample report skeleton
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.generateShipPreview = generateShipPreview;
15
+ exports.generateGatePreview = generateGatePreview;
16
+ exports.generateRealityPreview = generateRealityPreview;
17
+ exports.generateAutopilotPreview = generateAutopilotPreview;
18
+ exports.formatPreviewAsText = formatPreviewAsText;
19
+ /**
20
+ * Generate preview for ship command
21
+ */
22
+ function generateShipPreview(projectPath, options = {}) {
23
+ const checks = [
24
+ {
25
+ id: 'no-mock-data',
26
+ name: 'No Mock Data Detected',
27
+ description: 'Scans for mock data patterns in production code',
28
+ category: 'production-readiness',
29
+ tier: 'starter',
30
+ },
31
+ {
32
+ id: 'no-localhost',
33
+ name: 'No Localhost/Ngrok',
34
+ description: 'Checks for localhost, staging, or ngrok URLs in production',
35
+ category: 'production-readiness',
36
+ tier: 'starter',
37
+ },
38
+ {
39
+ id: 'env-vars',
40
+ name: 'Environment Variables Present',
41
+ description: 'Verifies required environment variables are configured',
42
+ category: 'configuration',
43
+ tier: 'starter',
44
+ },
45
+ {
46
+ id: 'real-billing',
47
+ name: 'Real Billing',
48
+ description: 'Checks for simulated or test billing implementations',
49
+ category: 'business-logic',
50
+ tier: 'pro',
51
+ },
52
+ {
53
+ id: 'real-database',
54
+ name: 'Real Database',
55
+ description: 'Verifies production database configuration',
56
+ category: 'infrastructure',
57
+ tier: 'pro',
58
+ },
59
+ {
60
+ id: 'oauth-callbacks',
61
+ name: 'OAuth Callbacks',
62
+ description: 'Validates OAuth callback URLs are production-ready',
63
+ category: 'security',
64
+ tier: 'pro',
65
+ },
66
+ ];
67
+ const artifacts = [
68
+ {
69
+ type: 'report',
70
+ name: 'Ship Check Report',
71
+ format: options.format || 'table',
72
+ location: options.output || '.guardrail/ship-report.json',
73
+ description: 'Detailed ship check results and recommendations',
74
+ },
75
+ {
76
+ type: 'badge',
77
+ name: 'Ship Badge',
78
+ format: 'svg',
79
+ location: '.guardrail/badges/ship-badge.svg',
80
+ description: 'Ship/no-ship status badge for README',
81
+ },
82
+ ];
83
+ const sampleReport = {
84
+ verdict: 'review',
85
+ score: 75,
86
+ checks: [
87
+ {
88
+ id: 'no-mock-data',
89
+ name: 'No Mock Data Detected',
90
+ status: 'pass',
91
+ message: 'No mock data patterns found',
92
+ },
93
+ {
94
+ id: 'no-localhost',
95
+ name: 'No Localhost/Ngrok',
96
+ status: 'fail',
97
+ message: 'Found 3 localhost URLs in production code',
98
+ details: ['src/api/client.ts:45', 'src/utils/helpers.ts:12'],
99
+ },
100
+ ],
101
+ timestamp: new Date().toISOString(),
102
+ };
103
+ return {
104
+ command: 'ship',
105
+ checks,
106
+ artifacts,
107
+ sampleReport,
108
+ estimatedDuration: '2-5 seconds',
109
+ tierRequired: 'starter',
110
+ };
111
+ }
112
+ /**
113
+ * Generate preview for gate command
114
+ */
115
+ function generateGatePreview(projectPath, options = {}) {
116
+ const checks = [
117
+ {
118
+ id: 'secrets',
119
+ name: 'Secrets Detection',
120
+ description: 'Scans for hardcoded secrets and credentials',
121
+ category: 'security',
122
+ tier: 'free',
123
+ },
124
+ {
125
+ id: 'vulnerabilities',
126
+ name: 'Vulnerability Scan',
127
+ description: 'Checks dependencies for known vulnerabilities',
128
+ category: 'security',
129
+ tier: 'free',
130
+ },
131
+ {
132
+ id: 'compliance',
133
+ name: 'Compliance Check',
134
+ description: 'Validates compliance with configured frameworks',
135
+ category: 'compliance',
136
+ tier: 'pro',
137
+ },
138
+ ];
139
+ const artifacts = [
140
+ {
141
+ type: 'report',
142
+ name: 'Gate Report',
143
+ format: options.format || 'sarif',
144
+ location: options.output || '.guardrail/gate-report.sarif',
145
+ description: 'Gate check results in SARIF format for CI/CD',
146
+ },
147
+ {
148
+ type: 'log',
149
+ name: 'Gate Log',
150
+ format: 'json',
151
+ location: '.guardrail/gate-log.json',
152
+ description: 'Detailed execution log',
153
+ },
154
+ ];
155
+ const sampleReport = {
156
+ passed: false,
157
+ findings: {
158
+ critical: 0,
159
+ high: 2,
160
+ medium: 5,
161
+ low: 10,
162
+ },
163
+ summary: {
164
+ secrets: 2,
165
+ vulnerabilities: 5,
166
+ compliance: 8,
167
+ },
168
+ timestamp: new Date().toISOString(),
169
+ };
170
+ return {
171
+ command: 'gate',
172
+ checks,
173
+ artifacts,
174
+ sampleReport,
175
+ estimatedDuration: '5-15 seconds',
176
+ tierRequired: 'free',
177
+ };
178
+ }
179
+ /**
180
+ * Generate preview for reality command
181
+ */
182
+ function generateRealityPreview(projectPath, options = {}) {
183
+ const checks = [
184
+ {
185
+ id: 'runtime-exploration',
186
+ name: 'Runtime Exploration',
187
+ description: 'Explores application runtime behavior',
188
+ category: 'testing',
189
+ tier: 'pro',
190
+ },
191
+ {
192
+ id: 'fake-detection',
193
+ name: 'Fake Success Detection',
194
+ description: 'Detects fake success patterns in API responses',
195
+ category: 'testing',
196
+ tier: 'pro',
197
+ },
198
+ {
199
+ id: 'auth-enforcement',
200
+ name: 'Auth Enforcement',
201
+ description: 'Validates authentication flow integrity',
202
+ category: 'security',
203
+ tier: 'pro',
204
+ },
205
+ ];
206
+ const artifacts = [
207
+ {
208
+ type: 'report',
209
+ name: 'Reality Check Report',
210
+ format: 'json',
211
+ location: options.output || '.guardrail/reality-report.json',
212
+ description: 'Runtime behavior analysis results',
213
+ },
214
+ {
215
+ type: 'log',
216
+ name: 'Reality Flight Recorder',
217
+ format: 'json',
218
+ location: '.guardrail/reality-recorder.json',
219
+ description: 'Detailed runtime execution log',
220
+ },
221
+ ];
222
+ const sampleReport = {
223
+ verdict: 'pass',
224
+ findings: [
225
+ {
226
+ type: 'fake-api-domain',
227
+ severity: 'critical',
228
+ message: 'Request to localhost:3000 detected',
229
+ url: 'http://localhost:3000/api/users',
230
+ },
231
+ ],
232
+ timestamp: new Date().toISOString(),
233
+ };
234
+ return {
235
+ command: 'reality',
236
+ checks,
237
+ artifacts,
238
+ sampleReport,
239
+ estimatedDuration: '30-120 seconds',
240
+ tierRequired: 'pro',
241
+ };
242
+ }
243
+ /**
244
+ * Generate preview for autopilot command
245
+ */
246
+ function generateAutopilotPreview(projectPath, options = {}) {
247
+ const checks = [
248
+ {
249
+ id: 'code-analysis',
250
+ name: 'Code Analysis',
251
+ description: 'Comprehensive static code analysis',
252
+ category: 'quality',
253
+ tier: 'enterprise',
254
+ },
255
+ {
256
+ id: 'ai-recommendations',
257
+ name: 'AI Recommendations',
258
+ description: 'AI-powered code improvement suggestions',
259
+ category: 'quality',
260
+ tier: 'enterprise',
261
+ },
262
+ {
263
+ id: 'auto-fix',
264
+ name: 'Auto-Fix Suggestions',
265
+ description: 'Automated fix recommendations',
266
+ category: 'quality',
267
+ tier: 'enterprise',
268
+ },
269
+ ];
270
+ const artifacts = [
271
+ {
272
+ type: 'report',
273
+ name: 'Autopilot Report',
274
+ format: 'json',
275
+ location: options.output || '.guardrail/autopilot-report.json',
276
+ description: 'Comprehensive analysis and recommendations',
277
+ },
278
+ {
279
+ type: 'data',
280
+ name: 'Fix Suggestions',
281
+ format: 'json',
282
+ location: '.guardrail/autopilot-fixes.json',
283
+ description: 'Automated fix suggestions',
284
+ },
285
+ ];
286
+ const sampleReport = {
287
+ recommendations: [
288
+ {
289
+ type: 'security',
290
+ severity: 'high',
291
+ message: 'Hardcoded API key detected',
292
+ suggestion: 'Move to environment variables',
293
+ autoFixable: true,
294
+ },
295
+ ],
296
+ timestamp: new Date().toISOString(),
297
+ };
298
+ return {
299
+ command: 'autopilot',
300
+ checks,
301
+ artifacts,
302
+ sampleReport,
303
+ estimatedDuration: '60-300 seconds',
304
+ tierRequired: 'enterprise',
305
+ };
306
+ }
307
+ /**
308
+ * Format preview as text
309
+ */
310
+ function formatPreviewAsText(preview) {
311
+ const lines = [];
312
+ lines.push('═══════════════════════════════════════════════════════════════');
313
+ lines.push(`PREVIEW: guardrail ${preview.command}`);
314
+ lines.push('═══════════════════════════════════════════════════════════════');
315
+ lines.push('');
316
+ lines.push(`Tier Required: ${preview.tierRequired.toUpperCase()}`);
317
+ if (preview.estimatedDuration) {
318
+ lines.push(`Estimated Duration: ${preview.estimatedDuration}`);
319
+ }
320
+ lines.push('');
321
+ lines.push('CHECKS THAT WOULD RUN:');
322
+ lines.push('');
323
+ for (const check of preview.checks) {
324
+ lines.push(` ✓ ${check.name} (${check.category})`);
325
+ lines.push(` ${check.description}`);
326
+ lines.push(` Tier: ${check.tier}`);
327
+ lines.push('');
328
+ }
329
+ lines.push('ARTIFACTS THAT WOULD BE GENERATED:');
330
+ lines.push('');
331
+ for (const artifact of preview.artifacts) {
332
+ lines.push(` ${artifact.type === 'report' ? '📄' : artifact.type === 'badge' ? '🛡️' : '📝'} ${artifact.name}`);
333
+ if (artifact.format) {
334
+ lines.push(` Format: ${artifact.format}`);
335
+ }
336
+ lines.push(` Location: ${artifact.location}`);
337
+ lines.push(` ${artifact.description}`);
338
+ lines.push('');
339
+ }
340
+ if (preview.sampleReport) {
341
+ lines.push('SAMPLE REPORT STRUCTURE:');
342
+ lines.push('');
343
+ lines.push(JSON.stringify(preview.sampleReport, null, 2));
344
+ lines.push('');
345
+ }
346
+ lines.push('═══════════════════════════════════════════════════════════════');
347
+ lines.push('This is a preview. No actual checks were executed.');
348
+ lines.push('Run the command without --preview to execute checks.');
349
+ lines.push('═══════════════════════════════════════════════════════════════');
350
+ return lines.join('\n');
351
+ }
352
+ //# sourceMappingURL=preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/commands/preview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * guardrail check command
3
+ * Adapter/orchestrator that runs existing quality scripts
4
+ */
5
+ import { Command } from 'commander';
6
+ export interface CheckResult {
7
+ script: string;
8
+ command: string;
9
+ exitCode: number;
10
+ success: boolean;
11
+ output?: string;
12
+ error?: string;
13
+ }
14
+ export interface CheckOptions {
15
+ projectPath: string;
16
+ scripts?: string[];
17
+ json: boolean;
18
+ ci: boolean;
19
+ }
20
+ /**
21
+ * Run all quality checks
22
+ */
23
+ export declare function runChecks(options: CheckOptions): Promise<{
24
+ results: CheckResult[];
25
+ allPassed: boolean;
26
+ }>;
27
+ /**
28
+ * Register check command
29
+ */
30
+ export declare function registerCheckCommand(program: Command, printLogo: () => void): void;
31
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/quality/check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;CACb;AAyGD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;IAC9D,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAoDD;AA2DD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,IAAI,GACpB,IAAI,CA4DN"}