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,24 @@
1
+ /**
2
+ * autopilot-decision command
3
+ *
4
+ * Purpose:
5
+ * Check deployment decisions via the Autopilot Decision Engine.
6
+ * Makes PASS/WARN/FAIL decisions based on route integrity, security findings,
7
+ * compliance signals, and prompt firewall results.
8
+ *
9
+ * Usage:
10
+ * guardrail autopilot-decision [--repository-id=<id>] [--scan-id=<id>] [--commit-sha=<sha>] [--branch=<branch>] [--json]
11
+ *
12
+ * Failure modes:
13
+ * - Authentication failures: exits with AUTH_FAILURE
14
+ * - Invalid repository: exits with USER_ERROR
15
+ * - Decision engine errors: exits with SYSTEM_ERROR
16
+ *
17
+ * This is a PRO feature and requires autopilot entitlement.
18
+ */
19
+ import { Command } from 'commander';
20
+ /**
21
+ * Register the autopilot-decision command
22
+ */
23
+ export declare function registerAutopilotDecisionCommand(program: Command, requireAuth: () => any): void;
24
+ //# sourceMappingURL=autopilot-decision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autopilot-decision.d.ts","sourceRoot":"","sources":["../../src/commands/autopilot-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsSpC;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,GAAG,GACrB,IAAI,CA4CN"}
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+ /**
3
+ * autopilot-decision command
4
+ *
5
+ * Purpose:
6
+ * Check deployment decisions via the Autopilot Decision Engine.
7
+ * Makes PASS/WARN/FAIL decisions based on route integrity, security findings,
8
+ * compliance signals, and prompt firewall results.
9
+ *
10
+ * Usage:
11
+ * guardrail autopilot-decision [--repository-id=<id>] [--scan-id=<id>] [--commit-sha=<sha>] [--branch=<branch>] [--json]
12
+ *
13
+ * Failure modes:
14
+ * - Authentication failures: exits with AUTH_FAILURE
15
+ * - Invalid repository: exits with USER_ERROR
16
+ * - Decision engine errors: exits with SYSTEM_ERROR
17
+ *
18
+ * This is a PRO feature and requires autopilot entitlement.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.registerAutopilotDecisionCommand = registerAutopilotDecisionCommand;
22
+ const exit_codes_1 = require("../runtime/exit-codes");
23
+ const creds_1 = require("../runtime/creds");
24
+ const c = {
25
+ bold: (s) => `\x1b[1m${s}\x1b[0m`,
26
+ dim: (s) => `\x1b[2m${s}\x1b[0m`,
27
+ critical: (s) => `\x1b[35m${s}\x1b[0m`,
28
+ high: (s) => `\x1b[31m${s}\x1b[0m`,
29
+ medium: (s) => `\x1b[33m${s}\x1b[0m`,
30
+ low: (s) => `\x1b[36m${s}\x1b[0m`,
31
+ success: (s) => `\x1b[32m${s}\x1b[0m`,
32
+ info: (s) => `\x1b[34m${s}\x1b[0m`,
33
+ error: (s) => `\x1b[31m${s}\x1b[0m`,
34
+ cyan: (s) => `\x1b[36m${s}\x1b[0m`,
35
+ yellow: (s) => `\x1b[33m${s}\x1b[0m`,
36
+ };
37
+ /**
38
+ * Format decision state with emoji
39
+ */
40
+ function formatDecisionState(decision) {
41
+ switch (decision) {
42
+ case 'PASS':
43
+ return `${c.success('✓')} ${c.success('PASS')}`;
44
+ case 'WARN':
45
+ return `${c.yellow('⚠')} ${c.yellow('WARN')}`;
46
+ case 'FAIL':
47
+ return `${c.error('✗')} ${c.error('FAIL')}`;
48
+ }
49
+ }
50
+ /**
51
+ * Format score with color
52
+ */
53
+ function formatScore(score) {
54
+ if (score >= 80)
55
+ return c.success(`${score}/100`);
56
+ if (score >= 50)
57
+ return c.yellow(`${score}/100`);
58
+ return c.error(`${score}/100`);
59
+ }
60
+ /**
61
+ * Display decision result
62
+ */
63
+ function displayDecision(decision, options) {
64
+ if (options.json) {
65
+ console.log(JSON.stringify(decision, null, 2));
66
+ return;
67
+ }
68
+ console.log(`\n${c.dim('─'.repeat(80))}`);
69
+ console.log(`${c.bold('🤖 AUTOPILOT DECISION')}`);
70
+ console.log(`${c.dim('─'.repeat(80))}\n`);
71
+ // Decision state
72
+ console.log(`${c.bold('Decision:')} ${formatDecisionState(decision.decision)}`);
73
+ console.log(`${c.bold('Score:')} ${formatScore(decision.score)}`);
74
+ console.log(`${c.bold('Deploy Allowed:')} ${decision.deployAllowed ? c.success('Yes') : c.error('No')}`);
75
+ console.log('');
76
+ // Component scores
77
+ console.log(`${c.bold('Component Scores:')}`);
78
+ if (decision.routeIntegrityScore !== null) {
79
+ console.log(` ${c.dim('├─')} Route Integrity: ${formatScore(decision.routeIntegrityScore)}`);
80
+ }
81
+ console.log(` ${c.dim('├─')} Security: ${formatScore(decision.securityScore)}`);
82
+ if (decision.complianceScore !== null) {
83
+ console.log(` ${c.dim('├─')} Compliance: ${formatScore(decision.complianceScore)}`);
84
+ }
85
+ if (decision.promptFirewallScore !== null) {
86
+ console.log(` ${c.dim('└─')} Prompt Firewall: ${formatScore(decision.promptFirewallScore)}`);
87
+ }
88
+ console.log('');
89
+ // Critical failures
90
+ if (decision.criticalFailures && decision.criticalFailures.length > 0) {
91
+ console.log(`${c.error('Critical Failures (Blocking):')}`);
92
+ decision.criticalFailures.forEach((f, i) => {
93
+ const isLast = i === decision.criticalFailures.length - 1;
94
+ const prefix = isLast ? '└─' : '├─';
95
+ console.log(` ${c.dim(prefix)} ${c.error('✗')} ${c.bold(f.ruleName)}: ${f.reason}`);
96
+ });
97
+ console.log('');
98
+ }
99
+ // Warnings
100
+ if (decision.warnings && decision.warnings.length > 0) {
101
+ console.log(`${c.yellow('Warnings:')}`);
102
+ decision.warnings.forEach((w, i) => {
103
+ const isLast = i === decision.warnings.length - 1;
104
+ const prefix = isLast ? '└─' : '├─';
105
+ console.log(` ${c.dim(prefix)} ${c.yellow('⚠')} ${c.bold(w.ruleName)}: ${w.reason}`);
106
+ });
107
+ console.log('');
108
+ }
109
+ // Explanation
110
+ if (decision.explanation) {
111
+ console.log(`${c.bold('Explanation:')}`);
112
+ console.log(c.dim(decision.explanation.split('\n').join('\n')));
113
+ console.log('');
114
+ }
115
+ // Metadata
116
+ if (decision.scanId || decision.commitSha || decision.branch) {
117
+ console.log(`${c.bold('Context:')}`);
118
+ if (decision.scanId) {
119
+ console.log(` ${c.dim('├─')} Scan ID: ${c.info(decision.scanId)}`);
120
+ }
121
+ if (decision.commitSha) {
122
+ console.log(` ${c.dim('├─')} Commit: ${c.dim(decision.commitSha)}`);
123
+ }
124
+ if (decision.branch) {
125
+ console.log(` ${c.dim('└─')} Branch: ${c.info(decision.branch)}`);
126
+ }
127
+ console.log('');
128
+ }
129
+ console.log(`${c.dim('─'.repeat(80))}\n`);
130
+ // Exit code hint
131
+ if (decision.decision === 'FAIL') {
132
+ console.log(`${c.error('✗')} ${c.bold('Deploy BLOCKED')} - Resolve critical issues before deploying\n`);
133
+ }
134
+ else if (decision.decision === 'WARN') {
135
+ console.log(`${c.yellow('⚠')} ${c.bold('Deploy ALLOWED with warnings')} - Review issues before deploying\n`);
136
+ }
137
+ else {
138
+ console.log(`${c.success('✓')} ${c.bold('Deploy ALLOWED')} - All checks passed\n`);
139
+ }
140
+ }
141
+ /**
142
+ * Make authenticated API request
143
+ */
144
+ async function apiRequest(path, options = {}) {
145
+ const authState = (0, creds_1.loadAuthState)();
146
+ if (!authState?.apiKey) {
147
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.AUTH_FAILURE, 'Not authenticated. Run: guardrail auth login');
148
+ }
149
+ const baseUrl = process.env.GUARDRAIL_API_BASE_URL || 'https://api.guardrail.dev';
150
+ const url = `${baseUrl}${path}`;
151
+ const headers = {
152
+ 'Content-Type': 'application/json',
153
+ Authorization: `Bearer ${authState.apiKey}`,
154
+ };
155
+ const response = await fetch(url, {
156
+ method: options.method || 'GET',
157
+ headers,
158
+ ...(options.body && { body: JSON.stringify(options.body) }),
159
+ });
160
+ return response;
161
+ }
162
+ /**
163
+ * Get latest decision for repository
164
+ */
165
+ async function getLatestDecision(repositoryId, options) {
166
+ try {
167
+ const response = await apiRequest(`/api/v1/autopilot/decision/${repositoryId}`);
168
+ if (!response.ok) {
169
+ const error = await response.json();
170
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.SYSTEM_ERROR, error.error || 'Failed to get decision');
171
+ }
172
+ const data = await response.json();
173
+ displayDecision(data.decision, options);
174
+ // Exit with appropriate code
175
+ if (data.decision.decision === 'FAIL') {
176
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.POLICY_FAIL, 'Deploy blocked by Autopilot');
177
+ }
178
+ else if (data.decision.decision === 'WARN') {
179
+ // WARN doesn't block deploy, but exit with non-zero for visibility
180
+ process.exit(1);
181
+ }
182
+ // PASS exits with 0 (success)
183
+ }
184
+ catch (error) {
185
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.SYSTEM_ERROR, error.message || 'Failed to get decision');
186
+ }
187
+ }
188
+ /**
189
+ * Make decision from scan
190
+ */
191
+ async function makeDecision(repositoryId, scanId, options) {
192
+ try {
193
+ const body = { scanId };
194
+ if (options.commitSha)
195
+ body.commitSha = options.commitSha;
196
+ if (options.branch)
197
+ body.branch = options.branch;
198
+ const response = await apiRequest(`/api/v1/autopilot/decision/${repositoryId}`, {
199
+ method: 'POST',
200
+ body,
201
+ });
202
+ if (!response.ok) {
203
+ const error = await response.json();
204
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.SYSTEM_ERROR, error.error || 'Failed to make decision');
205
+ }
206
+ const data = await response.json();
207
+ displayDecision(data.decision, options);
208
+ // Exit with appropriate code
209
+ if (data.decision.decision === 'FAIL') {
210
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.POLICY_FAIL, 'Deploy blocked by Autopilot');
211
+ }
212
+ else if (data.decision.decision === 'WARN') {
213
+ process.exit(1);
214
+ }
215
+ }
216
+ catch (error) {
217
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.SYSTEM_ERROR, error.message || 'Failed to make decision');
218
+ }
219
+ }
220
+ /**
221
+ * Get decision history
222
+ */
223
+ async function getDecisionHistory(repositoryId, options) {
224
+ try {
225
+ const limit = options.limit ? parseInt(options.limit, 10) : 20;
226
+ const response = await apiRequest(`/api/v1/autopilot/decisions/${repositoryId}?limit=${limit}`);
227
+ if (!response.ok) {
228
+ const error = await response.json();
229
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.SYSTEM_ERROR, error.error || 'Failed to get decision history');
230
+ }
231
+ const data = await response.json();
232
+ if (options.json) {
233
+ console.log(JSON.stringify(data.decisions, null, 2));
234
+ return;
235
+ }
236
+ console.log(`\n${c.dim('─'.repeat(80))}`);
237
+ console.log(`${c.bold('📋 DECISION HISTORY')}`);
238
+ console.log(`${c.dim('─'.repeat(80))}\n`);
239
+ if (data.decisions.length === 0) {
240
+ console.log(` ${c.dim('No decisions found')}\n`);
241
+ return;
242
+ }
243
+ console.log(`${c.bold('ID')} ${c.bold('Decision')} ${c.bold('Score')} ${c.bold('Deploy')} ${c.bold('Created')}`);
244
+ console.log(`${c.dim('─'.repeat(80))}`);
245
+ data.decisions.forEach((d) => {
246
+ const id = d.id.substring(0, 8) + '...';
247
+ const decision = formatDecisionState(d.decision);
248
+ const score = formatScore(d.score);
249
+ const deploy = d.deployAllowed ? c.success('Yes') : c.error('No');
250
+ const created = new Date(d.createdAt).toLocaleString();
251
+ console.log(`${id} ${decision} ${score} ${deploy} ${c.dim(created)}`);
252
+ });
253
+ console.log(`${c.dim('─'.repeat(80))}\n`);
254
+ }
255
+ catch (error) {
256
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.SYSTEM_ERROR, error.message || 'Failed to get decision history');
257
+ }
258
+ }
259
+ /**
260
+ * Register the autopilot-decision command
261
+ */
262
+ function registerAutopilotDecisionCommand(program, requireAuth) {
263
+ program
264
+ .command('autopilot-decision')
265
+ .alias('decision')
266
+ .description('Check Autopilot deployment decisions (PRO feature)')
267
+ .addHelpText('after', `
268
+ Examples:
269
+ $ guardrail autopilot-decision --repository-id=<id> Get latest decision
270
+ $ guardrail autopilot-decision --repository-id=<id> --scan-id=<id> Make decision from scan
271
+ $ guardrail autopilot-decision --repository-id=<id> --history Get decision history
272
+ $ guardrail autopilot-decision --repository-id=<id> --json Output as JSON
273
+
274
+ Features:
275
+ • Check deployment decisions (PASS/WARN/FAIL)
276
+ • View decision scores and explanations
277
+ • Get decision history
278
+ • Exit codes: 0 (PASS), 1 (WARN), 2 (FAIL/POLICY_FAIL)
279
+ • JSON output for CI/CD integration
280
+ `)
281
+ .option('-r, --repository-id <id>', 'Repository ID')
282
+ .option('-s, --scan-id <id>', 'Scan ID to make decision from')
283
+ .option('--commit-sha <sha>', 'Commit SHA')
284
+ .option('--branch <branch>', 'Branch name', 'main')
285
+ .option('--history', 'Get decision history')
286
+ .option('--limit <number>', 'Limit results (for history)', '20')
287
+ .option('--json', 'Output as JSON', false)
288
+ .action(async (opts) => {
289
+ requireAuth();
290
+ if (!opts.repositoryId) {
291
+ (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.USER_ERROR, 'Repository ID is required');
292
+ }
293
+ if (opts.history) {
294
+ await getDecisionHistory(opts.repositoryId, opts);
295
+ }
296
+ else if (opts.scanId) {
297
+ await makeDecision(opts.repositoryId, opts.scanId, opts);
298
+ }
299
+ else {
300
+ await getLatestDecision(opts.repositoryId, opts);
301
+ }
302
+ });
303
+ }
304
+ //# sourceMappingURL=autopilot-decision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autopilot-decision.js","sourceRoot":"","sources":["../../src/commands/autopilot-decision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * autopilot command
3
+ *
4
+ * Purpose:
5
+ * Orchestrates the Autopilot batch remediation system that:
6
+ * 1. Scans the project for issues
7
+ * 2. Groups findings into fix packs by strategy
8
+ * 3. Applies fixes in batches with verification
9
+ * 4. Rolls back on verification failure
10
+ *
11
+ * Usage:
12
+ * guardrail autopilot [--dry-run] [--interactive] [--max-fixes=N] [--evidence]
13
+ *
14
+ * Failure modes:
15
+ * - Authentication/entitlement failures: exits with AUTH_FAILURE
16
+ * - Invalid project path: exits with USER_ERROR
17
+ * - Scan failures: exits with SYSTEM_ERROR
18
+ * - Verification failures in dry-run: shows plan but exits with POLICY_FAIL
19
+ * - Verification failures in apply mode: rolls back automatically, exits with POLICY_FAIL
20
+ * - Git operations failures: continues with backup-based rollback
21
+ *
22
+ * This is a PRO feature and requires autopilot entitlement.
23
+ */
24
+ import { Command } from 'commander';
25
+ /**
26
+ * Main autopilot command handler with enhanced features
27
+ */
28
+ export declare function runAutopilotCommand(projectPath: string, options: any): Promise<void>;
29
+ /**
30
+ * Register the autopilot command
31
+ */
32
+ export declare function registerAutopilotCommand(program: Command, requireAuth: () => any, printLogo: () => void): void;
33
+ //# sourceMappingURL=autopilot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autopilot.d.ts","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA82CpC;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CA4ef;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,GAAG,EACtB,SAAS,EAAE,MAAM,IAAI,GACpB,IAAI,CAqJN"}