@vibecheckai/cli 2.5.7 → 2.7.0

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 (159) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bundles/vibecheck-core.js +20 -20
  3. package/dist/commands/secrets-allowlist.js +4 -4
  4. package/dist/commands/secrets-allowlist.js.map +1 -1
  5. package/dist/commands/ship-consolidated.js +193 -193
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/init/ci-generator.d.ts +2 -2
  10. package/dist/init/hooks-installer.d.ts +2 -2
  11. package/dist/init/index.d.ts +1 -1
  12. package/dist/init/index.d.ts.map +1 -1
  13. package/dist/init/index.js +2 -2
  14. package/dist/init/index.js.map +1 -1
  15. package/dist/init/templates.d.ts +6 -285
  16. package/dist/init/templates.d.ts.map +1 -1
  17. package/dist/init/templates.js +2 -3
  18. package/dist/init/templates.js.map +1 -1
  19. package/dist/runtime/json-output.d.ts +2 -2
  20. package/package.json +11 -3
  21. package/dist/bundles/guardrail-core.js +0 -25799
  22. package/dist/bundles/guardrail-security.js +0 -208687
  23. package/dist/bundles/guardrail-ship.js +0 -2318
  24. package/dist/commands/autopilot-decision.d.ts +0 -24
  25. package/dist/commands/autopilot-decision.d.ts.map +0 -1
  26. package/dist/commands/autopilot-decision.js +0 -304
  27. package/dist/commands/autopilot-decision.js.map +0 -1
  28. package/dist/commands/autopilot.d.ts +0 -33
  29. package/dist/commands/autopilot.d.ts.map +0 -1
  30. package/dist/commands/autopilot.js +0 -1539
  31. package/dist/commands/autopilot.js.map +0 -1
  32. package/dist/commands/context.d.ts +0 -8
  33. package/dist/commands/context.d.ts.map +0 -1
  34. package/dist/commands/context.js +0 -340
  35. package/dist/commands/context.js.map +0 -1
  36. package/dist/commands/debug.d.ts +0 -78
  37. package/dist/commands/debug.d.ts.map +0 -1
  38. package/dist/commands/debug.js +0 -381
  39. package/dist/commands/debug.js.map +0 -1
  40. package/dist/commands/preview.d.ts +0 -54
  41. package/dist/commands/preview.d.ts.map +0 -1
  42. package/dist/commands/preview.js +0 -352
  43. package/dist/commands/preview.js.map +0 -1
  44. package/dist/commands/quality/check.d.ts +0 -31
  45. package/dist/commands/quality/check.d.ts.map +0 -1
  46. package/dist/commands/quality/check.js +0 -242
  47. package/dist/commands/quality/check.js.map +0 -1
  48. package/dist/commands/quality/index.d.ts +0 -8
  49. package/dist/commands/quality/index.d.ts.map +0 -1
  50. package/dist/commands/quality/index.js +0 -14
  51. package/dist/commands/quality/index.js.map +0 -1
  52. package/dist/commands/quality/setup-quality.d.ts +0 -23
  53. package/dist/commands/quality/setup-quality.d.ts.map +0 -1
  54. package/dist/commands/quality/setup-quality.js +0 -452
  55. package/dist/commands/quality/setup-quality.js.map +0 -1
  56. package/dist/commands/quality/tidy.d.ts +0 -41
  57. package/dist/commands/quality/tidy.d.ts.map +0 -1
  58. package/dist/commands/quality/tidy.js +0 -466
  59. package/dist/commands/quality/tidy.js.map +0 -1
  60. package/dist/commands/quality/utils.d.ts +0 -73
  61. package/dist/commands/quality/utils.d.ts.map +0 -1
  62. package/dist/commands/quality/utils.js +0 -158
  63. package/dist/commands/quality/utils.js.map +0 -1
  64. package/dist/fix/analytics.d.ts +0 -121
  65. package/dist/fix/analytics.d.ts.map +0 -1
  66. package/dist/fix/analytics.js +0 -289
  67. package/dist/fix/analytics.js.map +0 -1
  68. package/dist/fix/audit.d.ts +0 -61
  69. package/dist/fix/audit.d.ts.map +0 -1
  70. package/dist/fix/audit.js +0 -149
  71. package/dist/fix/audit.js.map +0 -1
  72. package/dist/fix/config.d.ts +0 -78
  73. package/dist/fix/config.d.ts.map +0 -1
  74. package/dist/fix/config.js +0 -200
  75. package/dist/fix/config.js.map +0 -1
  76. package/dist/fix/impact.d.ts +0 -74
  77. package/dist/fix/impact.d.ts.map +0 -1
  78. package/dist/fix/impact.js +0 -281
  79. package/dist/fix/impact.js.map +0 -1
  80. package/dist/fix/learning.d.ts +0 -109
  81. package/dist/fix/learning.d.ts.map +0 -1
  82. package/dist/fix/learning.js +0 -296
  83. package/dist/fix/learning.js.map +0 -1
  84. package/dist/fix/metrics.d.ts +0 -106
  85. package/dist/fix/metrics.d.ts.map +0 -1
  86. package/dist/fix/metrics.js +0 -138
  87. package/dist/fix/metrics.js.map +0 -1
  88. package/dist/fix/parallel.d.ts +0 -69
  89. package/dist/fix/parallel.d.ts.map +0 -1
  90. package/dist/fix/parallel.js +0 -203
  91. package/dist/fix/parallel.js.map +0 -1
  92. package/dist/fix/report.d.ts +0 -40
  93. package/dist/fix/report.d.ts.map +0 -1
  94. package/dist/fix/report.js +0 -212
  95. package/dist/fix/report.js.map +0 -1
  96. package/dist/fix/strategy.d.ts +0 -53
  97. package/dist/fix/strategy.d.ts.map +0 -1
  98. package/dist/fix/strategy.js +0 -143
  99. package/dist/fix/strategy.js.map +0 -1
  100. package/dist/fix/templates.d.ts +0 -58
  101. package/dist/fix/templates.d.ts.map +0 -1
  102. package/dist/fix/templates.js +0 -259
  103. package/dist/fix/templates.js.map +0 -1
  104. package/dist/fix/testing.d.ts +0 -68
  105. package/dist/fix/testing.d.ts.map +0 -1
  106. package/dist/fix/testing.js +0 -245
  107. package/dist/fix/testing.js.map +0 -1
  108. package/dist/fix/validation.d.ts +0 -71
  109. package/dist/fix/validation.d.ts.map +0 -1
  110. package/dist/fix/validation.js +0 -267
  111. package/dist/fix/validation.js.map +0 -1
  112. package/dist/fix/visualization.d.ts +0 -73
  113. package/dist/fix/visualization.d.ts.map +0 -1
  114. package/dist/fix/visualization.js +0 -243
  115. package/dist/fix/visualization.js.map +0 -1
  116. package/dist/runtime/cli-errors.d.ts +0 -38
  117. package/dist/runtime/cli-errors.d.ts.map +0 -1
  118. package/dist/runtime/cli-errors.js +0 -354
  119. package/dist/runtime/cli-errors.js.map +0 -1
  120. package/dist/runtime/owner-mode.d.ts +0 -48
  121. package/dist/runtime/owner-mode.d.ts.map +0 -1
  122. package/dist/runtime/owner-mode.js +0 -284
  123. package/dist/runtime/owner-mode.js.map +0 -1
  124. package/dist/scanner/index.d.ts +0 -8
  125. package/dist/scanner/index.d.ts.map +0 -1
  126. package/dist/scanner/index.js +0 -15
  127. package/dist/scanner/index.js.map +0 -1
  128. package/dist/scanner/placeholder-detector.d.ts +0 -56
  129. package/dist/scanner/placeholder-detector.d.ts.map +0 -1
  130. package/dist/scanner/placeholder-detector.js +0 -220
  131. package/dist/scanner/placeholder-detector.js.map +0 -1
  132. package/dist/scanner/route-detector.d.ts +0 -100
  133. package/dist/scanner/route-detector.d.ts.map +0 -1
  134. package/dist/scanner/route-detector.js +0 -455
  135. package/dist/scanner/route-detector.js.map +0 -1
  136. package/dist/scanner/scoring.d.ts +0 -67
  137. package/dist/scanner/scoring.d.ts.map +0 -1
  138. package/dist/scanner/scoring.js +0 -284
  139. package/dist/scanner/scoring.js.map +0 -1
  140. package/dist/ship-baseline.d.ts +0 -56
  141. package/dist/ship-baseline.d.ts.map +0 -1
  142. package/dist/ship-baseline.js +0 -194
  143. package/dist/ship-baseline.js.map +0 -1
  144. package/dist/ship-config.d.ts +0 -91
  145. package/dist/ship-config.d.ts.map +0 -1
  146. package/dist/ship-config.js +0 -133
  147. package/dist/ship-config.js.map +0 -1
  148. package/dist/ship-data-loader.d.ts +0 -70
  149. package/dist/ship-data-loader.d.ts.map +0 -1
  150. package/dist/ship-data-loader.js +0 -301
  151. package/dist/ship-data-loader.js.map +0 -1
  152. package/dist/utils/ai-helpers.d.ts +0 -72
  153. package/dist/utils/ai-helpers.d.ts.map +0 -1
  154. package/dist/utils/ai-helpers.js +0 -339
  155. package/dist/utils/ai-helpers.js.map +0 -1
  156. package/dist/utils/validation.d.ts +0 -34
  157. package/dist/utils/validation.d.ts.map +0 -1
  158. package/dist/utils/validation.js +0 -160
  159. package/dist/utils/validation.js.map +0 -1
@@ -1,14 +0,0 @@
1
- "use strict";
2
- /**
3
- * Quality commands module
4
- * Exports all quality-related commands (tidy, setup-quality, check)
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.registerCheckCommand = exports.registerSetupQualityCommand = exports.registerTidyCommand = void 0;
8
- var tidy_1 = require("./tidy");
9
- Object.defineProperty(exports, "registerTidyCommand", { enumerable: true, get: function () { return tidy_1.registerTidyCommand; } });
10
- var setup_quality_1 = require("./setup-quality");
11
- Object.defineProperty(exports, "registerSetupQualityCommand", { enumerable: true, get: function () { return setup_quality_1.registerSetupQualityCommand; } });
12
- var check_1 = require("./check");
13
- Object.defineProperty(exports, "registerCheckCommand", { enumerable: true, get: function () { return check_1.registerCheckCommand; } });
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/quality/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAA6C;AAApC,2GAAA,mBAAmB,OAAA;AAC5B,iDAA8D;AAArD,4HAAA,2BAA2B,OAAA;AACpC,iCAA+C;AAAtC,6GAAA,oBAAoB,OAAA"}
@@ -1,23 +0,0 @@
1
- /**
2
- * guardrail setup quality command
3
- * Safe config pack generator that creates baseline quality files
4
- */
5
- import { Command } from 'commander';
6
- export interface FileChange {
7
- path: string;
8
- content: string;
9
- exists: boolean;
10
- action: 'create' | 'update';
11
- }
12
- export interface SetupQualityOptions {
13
- projectPath: string;
14
- dryRun: boolean;
15
- force: boolean;
16
- interactive: boolean;
17
- presets?: string[];
18
- }
19
- /**
20
- * Register setup quality command
21
- */
22
- export declare function registerSetupQualityCommand(program: Command, printLogo: () => void): void;
23
- //# sourceMappingURL=setup-quality.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-quality.d.ts","sourceRoot":"","sources":["../../../src/commands/quality/setup-quality.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BpC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAwXD;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,IAAI,GACpB,IAAI,CA0FN"}
@@ -1,452 +0,0 @@
1
- "use strict";
2
- /**
3
- * guardrail setup quality command
4
- * Safe config pack generator that creates baseline quality files
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.registerSetupQualityCommand = registerSetupQualityCommand;
41
- const path_1 = require("path");
42
- const fs_1 = require("fs");
43
- const exit_codes_1 = require("../../runtime/exit-codes");
44
- const utils_1 = require("./utils");
45
- const readline = __importStar(require("readline"));
46
- // Color helpers
47
- const c = {
48
- reset: '\x1b[0m',
49
- bold: (s) => `\x1b[1m${s}\x1b[0m`,
50
- dim: (s) => `\x1b[2m${s}\x1b[0m`,
51
- success: (s) => `\x1b[32m${s}\x1b[0m`,
52
- info: (s) => `\x1b[34m${s}\x1b[0m`,
53
- warning: (s) => `\x1b[33m${s}\x1b[0m`,
54
- };
55
- /**
56
- * Minimal .editorconfig
57
- */
58
- const EDITORCONFIG_CONTENT = `# EditorConfig is awesome: https://EditorConfig.org
59
-
60
- root = true
61
-
62
- [*]
63
- charset = utf-8
64
- end_of_line = lf
65
- insert_final_newline = true
66
- trim_trailing_whitespace = true
67
-
68
- [*.md]
69
- trim_trailing_whitespace = false
70
- `;
71
- /**
72
- * Minimal .gitattributes
73
- */
74
- const GITATTRIBUTES_CONTENT = `# Auto detect text files and perform LF normalization
75
- * text=auto
76
-
77
- # Force LF line endings for cross-platform consistency
78
- *.js text eol=lf
79
- *.jsx text eol=lf
80
- *.ts text eol=lf
81
- *.tsx text eol=lf
82
- *.json text eol=lf
83
- *.md text eol=lf
84
- *.yml text eol=lf
85
- *.yaml text eol=lf
86
- *.sh text eol=lf
87
-
88
- # Binary files
89
- *.png binary
90
- *.jpg binary
91
- *.jpeg binary
92
- *.gif binary
93
- *.ico binary
94
- *.pdf binary
95
- `;
96
- /**
97
- * Minimal README skeleton
98
- */
99
- const README_SKELETON = `# Project Name
100
-
101
- Brief project description.
102
-
103
- ## Getting Started
104
-
105
- ## Development
106
-
107
- ## License
108
- `;
109
- /**
110
- * Minimal CONTRIBUTING.md
111
- */
112
- const CONTRIBUTING_SKELETON = `# Contributing
113
-
114
- ## Development Setup
115
-
116
- ## Code Style
117
-
118
- ## Submitting Changes
119
- `;
120
- /**
121
- * Minimal SECURITY.md
122
- */
123
- const SECURITY_SKELETON = `# Security Policy
124
-
125
- ## Supported Versions
126
-
127
- ## Reporting a Vulnerability
128
-
129
- Please report security vulnerabilities to: [your-security-email]
130
- `;
131
- /**
132
- * Prompt for user input
133
- */
134
- function prompt(question) {
135
- const rl = readline.createInterface({
136
- input: process.stdin,
137
- output: process.stdout,
138
- });
139
- return new Promise((resolve) => {
140
- rl.question(question, (answer) => {
141
- rl.close();
142
- resolve(answer.trim());
143
- });
144
- });
145
- }
146
- /**
147
- * Prompt yes/no
148
- */
149
- async function promptYesNo(question, defaultValue) {
150
- const defaultText = defaultValue ? 'Y/n' : 'y/N';
151
- const answer = await prompt(`${question} (${defaultText}): `);
152
- if (!answer)
153
- return defaultValue;
154
- return /^y(es)?$/i.test(answer);
155
- }
156
- /**
157
- * Generate JS/TS preset files
158
- */
159
- function generateJSTSPreset(projectPath, info) {
160
- const changes = [];
161
- const pkg = info.packageJson;
162
- // .editorconfig
163
- const editorConfigPath = (0, path_1.join)(projectPath, '.editorconfig');
164
- if (!(0, utils_1.fileExists)(editorConfigPath)) {
165
- changes.push({
166
- path: editorConfigPath,
167
- content: EDITORCONFIG_CONTENT,
168
- exists: false,
169
- action: 'create',
170
- });
171
- }
172
- // .gitattributes
173
- const gitAttributesPath = (0, path_1.join)(projectPath, '.gitattributes');
174
- if (!(0, utils_1.fileExists)(gitAttributesPath)) {
175
- changes.push({
176
- path: gitAttributesPath,
177
- content: GITATTRIBUTES_CONTENT,
178
- exists: false,
179
- action: 'create',
180
- });
181
- }
182
- // Update package.json scripts (only if package.json exists)
183
- if (pkg) {
184
- const scripts = pkg.scripts || {};
185
- const updates = {};
186
- let needsUpdate = false;
187
- // Check for eslint
188
- const hasEslint = (0, utils_1.hasDependency)(pkg, 'eslint');
189
- if (hasEslint && !scripts.lint) {
190
- updates.lint = 'eslint .';
191
- needsUpdate = true;
192
- }
193
- // Check for prettier or biome
194
- const hasPrettier = (0, utils_1.hasDependency)(pkg, 'prettier');
195
- const hasBiome = (0, utils_1.hasDependency)(pkg, '@biomejs/biome');
196
- if ((hasPrettier || hasBiome) && !scripts['format:check']) {
197
- if (hasBiome) {
198
- updates['format:check'] = 'biome check .';
199
- }
200
- else {
201
- updates['format:check'] = 'prettier --check .';
202
- }
203
- needsUpdate = true;
204
- }
205
- // Check for TypeScript
206
- const hasTypescript = (0, utils_1.hasDependency)(pkg, 'typescript');
207
- const hasTsconfig = info.hasTsconfig;
208
- if (hasTypescript && hasTsconfig && !scripts.typecheck) {
209
- updates.typecheck = 'tsc --noEmit';
210
- needsUpdate = true;
211
- }
212
- if (needsUpdate) {
213
- const updatedPkg = {
214
- ...pkg,
215
- scripts: {
216
- ...scripts,
217
- ...updates,
218
- },
219
- };
220
- changes.push({
221
- path: (0, path_1.join)(projectPath, 'package.json'),
222
- content: JSON.stringify(updatedPkg, null, 2) + '\n',
223
- exists: true,
224
- action: 'update',
225
- });
226
- }
227
- }
228
- return changes;
229
- }
230
- /**
231
- * Generate Python preset files
232
- */
233
- function generatePythonPreset(projectPath, info) {
234
- const changes = [];
235
- // .editorconfig
236
- const editorConfigPath = (0, path_1.join)(projectPath, '.editorconfig');
237
- if (!(0, utils_1.fileExists)(editorConfigPath)) {
238
- changes.push({
239
- path: editorConfigPath,
240
- content: EDITORCONFIG_CONTENT + '\n[*.py]\nindent_style = space\nindent_size = 4\n',
241
- exists: false,
242
- action: 'create',
243
- });
244
- }
245
- // pyproject.toml updates (only if it exists and ruff is present)
246
- const pyprojectPath = (0, path_1.join)(projectPath, 'pyproject.toml');
247
- if ((0, utils_1.fileExists)(pyprojectPath)) {
248
- const content = (0, utils_1.readFile)(pyprojectPath);
249
- if (content && content.includes('ruff')) {
250
- // Note: We're not modifying pyproject.toml in this implementation
251
- // as it requires more complex TOML parsing. This is a safe approach.
252
- }
253
- }
254
- return changes;
255
- }
256
- /**
257
- * Generate docs preset files
258
- */
259
- function generateDocsPreset(projectPath, info) {
260
- const changes = [];
261
- // README.md (only if missing)
262
- const readmePath = (0, path_1.join)(projectPath, 'README.md');
263
- if (!(0, utils_1.fileExists)(readmePath)) {
264
- changes.push({
265
- path: readmePath,
266
- content: README_SKELETON,
267
- exists: false,
268
- action: 'create',
269
- });
270
- }
271
- // CONTRIBUTING.md (optional, only if missing)
272
- const contributingPath = (0, path_1.join)(projectPath, 'CONTRIBUTING.md');
273
- if (!(0, utils_1.fileExists)(contributingPath)) {
274
- // We'll let the interactive mode decide, or skip for now
275
- }
276
- // SECURITY.md (optional, only if missing)
277
- const securityPath = (0, path_1.join)(projectPath, 'SECURITY.md');
278
- if (!(0, utils_1.fileExists)(securityPath)) {
279
- // We'll let the interactive mode decide, or skip for now
280
- }
281
- return changes;
282
- }
283
- /**
284
- * Generate all preset changes
285
- */
286
- function generatePresetChanges(projectPath, presets) {
287
- const info = (0, utils_1.getProjectInfo)(projectPath);
288
- const changes = [];
289
- for (const preset of presets) {
290
- switch (preset) {
291
- case 'js-ts':
292
- changes.push(...generateJSTSPreset(projectPath, info));
293
- break;
294
- case 'python':
295
- changes.push(...generatePythonPreset(projectPath, info));
296
- break;
297
- case 'docs':
298
- changes.push(...generateDocsPreset(projectPath, info));
299
- break;
300
- }
301
- }
302
- return changes;
303
- }
304
- /**
305
- * Detect which presets to apply
306
- */
307
- function detectPresets(info) {
308
- const presets = [];
309
- if (info.hasPackageJson) {
310
- presets.push('js-ts');
311
- }
312
- if (info.hasPyprojectToml) {
313
- presets.push('python');
314
- }
315
- if (!(0, utils_1.fileExists)((0, path_1.join)(info.path, 'README.md'))) {
316
- presets.push('docs');
317
- }
318
- return presets;
319
- }
320
- /**
321
- * Apply file changes
322
- */
323
- function applyChanges(changes, force) {
324
- for (const change of changes) {
325
- if (change.exists && !force) {
326
- // Skip existing files unless force
327
- continue;
328
- }
329
- // Ensure directory exists
330
- const pathParts = change.path.split(/[/\\]/);
331
- pathParts.pop();
332
- if (pathParts.length > 0) {
333
- const dir = pathParts.join('/');
334
- if (!(0, fs_1.existsSync)(dir)) {
335
- (0, fs_1.mkdirSync)(dir, { recursive: true });
336
- }
337
- }
338
- (0, fs_1.writeFileSync)(change.path, change.content, 'utf-8');
339
- }
340
- }
341
- /**
342
- * Show diff preview
343
- */
344
- function showDiffPreview(changes) {
345
- console.log(`\n${c.bold('📝 Changes to apply:')}\n`);
346
- for (const change of changes) {
347
- const relPath = change.path.replace(process.cwd() + '/', '');
348
- const icon = change.action === 'create' ? c.success('+') : c.info('~');
349
- console.log(` ${icon} ${c.bold(relPath)} (${change.action})`);
350
- }
351
- console.log('');
352
- }
353
- /**
354
- * Save preset trace to .guardrail/presets/
355
- */
356
- function savePresetTrace(projectPath, presets, changes) {
357
- const presetsDir = (0, path_1.join)(projectPath, '.guardrail', 'presets');
358
- (0, fs_1.mkdirSync)(presetsDir, { recursive: true });
359
- const trace = {
360
- timestamp: new Date().toISOString(),
361
- presets,
362
- files: changes.map((c) => ({
363
- path: c.path.replace(projectPath + '/', ''),
364
- action: c.action,
365
- })),
366
- };
367
- const tracePath = (0, path_1.join)(presetsDir, 'quality.json');
368
- (0, fs_1.writeFileSync)(tracePath, JSON.stringify(trace, null, 2));
369
- }
370
- /**
371
- * Register setup quality command
372
- */
373
- function registerSetupQualityCommand(program, printLogo) {
374
- program
375
- .command('setup:quality')
376
- .alias('setup quality')
377
- .description('Generate baseline quality configuration files')
378
- .option('-p, --path <path>', 'Project path', '.')
379
- .option('--dry-run', 'Preview changes without applying', false)
380
- .option('--force', 'Overwrite existing files', false)
381
- .option('--interactive', 'Interactive mode: select presets', false)
382
- .option('--presets <presets>', 'Comma-separated presets: js-ts,python,docs')
383
- .action(async (opts) => {
384
- printLogo();
385
- console.log(`\n${c.bold('⚙️ SETUP QUALITY')}\n`);
386
- const projectPath = (0, path_1.resolve)(opts.path);
387
- if (!(0, fs_1.existsSync)(projectPath)) {
388
- (0, exit_codes_1.exitWith)(exit_codes_1.ExitCode.USER_ERROR, `Path does not exist: ${projectPath}`);
389
- }
390
- const info = (0, utils_1.getProjectInfo)(projectPath);
391
- let presets = [];
392
- // Determine presets
393
- if (opts.presets) {
394
- presets = opts.presets.split(',').map((p) => p.trim());
395
- }
396
- else if (opts.interactive) {
397
- // Interactive mode
398
- const detected = detectPresets(info);
399
- console.log(` ${c.dim('Detected presets:')} ${detected.join(', ') || 'none'}\n`);
400
- if (info.hasPackageJson) {
401
- const useJS = await promptYesNo('Apply JS/TS preset?', true);
402
- if (useJS)
403
- presets.push('js-ts');
404
- }
405
- if (info.hasPyprojectToml) {
406
- const usePython = await promptYesNo('Apply Python preset?', true);
407
- if (usePython)
408
- presets.push('python');
409
- }
410
- const useDocs = await promptYesNo('Apply docs preset?', !(0, utils_1.fileExists)((0, path_1.join)(projectPath, 'README.md')));
411
- if (useDocs)
412
- presets.push('docs');
413
- }
414
- else {
415
- // Auto-detect
416
- presets = detectPresets(info);
417
- }
418
- if (presets.length === 0) {
419
- console.log(` ${c.warning('⚠')} No presets to apply\n`);
420
- console.log(` ${c.dim('Tip:')} Use ${c.bold('--presets')} to specify manually\n`);
421
- return;
422
- }
423
- console.log(` ${c.dim('Applying presets:')} ${presets.join(', ')}\n`);
424
- // Generate changes
425
- const changes = generatePresetChanges(projectPath, presets);
426
- if (changes.length === 0) {
427
- console.log(` ${c.info('ℹ')} No changes needed (all files exist)\n`);
428
- console.log(` ${c.dim('Tip:')} Use ${c.bold('--force')} to overwrite existing files\n`);
429
- return;
430
- }
431
- // Filter out existing files unless force
432
- const filteredChanges = opts.force
433
- ? changes
434
- : changes.filter((c) => !c.exists);
435
- if (filteredChanges.length === 0) {
436
- console.log(` ${c.info('ℹ')} No new files to create (use --force to overwrite)\n`);
437
- return;
438
- }
439
- // Show preview
440
- showDiffPreview(filteredChanges);
441
- if (opts.dryRun) {
442
- console.log(` ${c.info('ℹ')} Dry run mode - no files were modified\n`);
443
- return;
444
- }
445
- // Apply changes
446
- applyChanges(filteredChanges, opts.force);
447
- savePresetTrace(projectPath, presets, filteredChanges);
448
- console.log(` ${c.success('✓')} Quality setup complete\n`);
449
- console.log(` ${c.dim('Preset trace saved to:')} .guardrail/presets/quality.json\n`);
450
- });
451
- }
452
- //# sourceMappingURL=setup-quality.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-quality.js","sourceRoot":"","sources":["../../../src/commands/quality/setup-quality.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- /**
2
- * guardrail tidy command
3
- * Read-only hygiene scanner that detects missing/weak repo quality signals
4
- */
5
- import { Command } from 'commander';
6
- export interface TidyCheck {
7
- id: string;
8
- category: 'hygiene' | 'automation' | 'documentation' | 'safety';
9
- severity: 'info' | 'warn' | 'fail';
10
- message: string;
11
- file?: string;
12
- suggestion?: string;
13
- scoreImpact: number;
14
- }
15
- export interface TidyReport {
16
- timestamp: string;
17
- projectPath: string;
18
- checks: TidyCheck[];
19
- scores: {
20
- hygiene: number;
21
- automation: number;
22
- documentation: number;
23
- safety: number;
24
- overall: number;
25
- };
26
- summary: {
27
- total: number;
28
- info: number;
29
- warn: number;
30
- fail: number;
31
- };
32
- }
33
- /**
34
- * Run all tidy checks
35
- */
36
- export declare function runTidyChecks(projectPath: string): TidyReport;
37
- /**
38
- * Register tidy command
39
- */
40
- export declare function registerTidyCommand(program: Command, printLogo: () => void): void;
41
- //# sourceMappingURL=tidy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tidy.d.ts","sourceRoot":"","sources":["../../../src/commands/quality/tidy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCpC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,QAAQ,CAAC;IAChE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AA2RD;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAyD7D;AAyID;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,IAAI,GACpB,IAAI,CA8BN"}