@stackbilt/cli 0.4.2 → 0.6.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.
- package/README.md +17 -1
- package/dist/__tests__/adf-metrics.test.d.ts +2 -0
- package/dist/__tests__/adf-metrics.test.d.ts.map +1 -0
- package/dist/__tests__/adf-metrics.test.js +117 -0
- package/dist/__tests__/adf-metrics.test.js.map +1 -0
- package/dist/__tests__/git-helpers.test.d.ts +2 -0
- package/dist/__tests__/git-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/git-helpers.test.js +136 -0
- package/dist/__tests__/git-helpers.test.js.map +1 -0
- package/dist/__tests__/telemetry.test.d.ts +2 -0
- package/dist/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/__tests__/telemetry.test.js +119 -0
- package/dist/__tests__/telemetry.test.js.map +1 -0
- package/dist/commands/adf-bundle.d.ts.map +1 -1
- package/dist/commands/adf-bundle.js +5 -15
- package/dist/commands/adf-bundle.js.map +1 -1
- package/dist/commands/adf-evidence.d.ts.map +1 -1
- package/dist/commands/adf-evidence.js +57 -50
- package/dist/commands/adf-evidence.js.map +1 -1
- package/dist/commands/adf-metrics.d.ts +8 -0
- package/dist/commands/adf-metrics.d.ts.map +1 -0
- package/dist/commands/adf-metrics.js +242 -0
- package/dist/commands/adf-metrics.js.map +1 -0
- package/dist/commands/adf-migrate.d.ts +17 -0
- package/dist/commands/adf-migrate.d.ts.map +1 -1
- package/dist/commands/adf-migrate.js +36 -14
- package/dist/commands/adf-migrate.js.map +1 -1
- package/dist/commands/adf-sync.d.ts.map +1 -1
- package/dist/commands/adf-sync.js +2 -8
- package/dist/commands/adf-sync.js.map +1 -1
- package/dist/commands/adf.d.ts +5 -0
- package/dist/commands/adf.d.ts.map +1 -1
- package/dist/commands/adf.js +118 -82
- package/dist/commands/adf.js.map +1 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +19 -87
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +160 -52
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +4 -15
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/drift.d.ts.map +1 -1
- package/dist/commands/drift.js +2 -8
- package/dist/commands/drift.js.map +1 -1
- package/dist/commands/hook.d.ts.map +1 -1
- package/dist/commands/hook.js +4 -14
- package/dist/commands/hook.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +29 -9
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +34 -11
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/telemetry.d.ts +8 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/commands/telemetry.js +184 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +11 -97
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/why.d.ts.map +1 -1
- package/dist/commands/why.js +7 -76
- package/dist/commands/why.js.map +1 -1
- package/dist/flags.d.ts +20 -0
- package/dist/flags.d.ts.map +1 -0
- package/dist/flags.js +76 -0
- package/dist/flags.js.map +1 -0
- package/dist/git-helpers.d.ts +36 -0
- package/dist/git-helpers.d.ts.map +1 -0
- package/dist/git-helpers.js +146 -0
- package/dist/git-helpers.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +94 -54
- package/dist/index.js.map +1 -1
- package/dist/telemetry.d.ts +29 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +88 -0
- package/dist/telemetry.js.map +1 -0
- package/package.json +8 -8
package/dist/commands/audit.js
CHANGED
|
@@ -40,16 +40,25 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
})();
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.auditCommand = auditCommand;
|
|
43
|
-
const node_child_process_1 = require("node:child_process");
|
|
44
43
|
const fs = __importStar(require("node:fs"));
|
|
45
44
|
const path = __importStar(require("node:path"));
|
|
46
45
|
const index_1 = require("../index");
|
|
47
46
|
const config_1 = require("../config");
|
|
48
47
|
const git_1 = require("@stackbilt/git");
|
|
49
48
|
const git_2 = require("@stackbilt/git");
|
|
49
|
+
const git_helpers_1 = require("../git-helpers");
|
|
50
50
|
async function auditCommand(options, args = []) {
|
|
51
51
|
const config = (0, config_1.loadConfig)(options.configPath);
|
|
52
52
|
const patterns = (0, config_1.loadPatterns)(options.configPath);
|
|
53
|
+
if (!(0, git_helpers_1.hasCommits)()) {
|
|
54
|
+
if (options.format === 'json') {
|
|
55
|
+
console.log(JSON.stringify({ status: 'PASS', summary: 'No commits to audit.' }, null, 2));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
console.log(' No commits to audit.');
|
|
59
|
+
}
|
|
60
|
+
return index_1.EXIT_CODE.SUCCESS;
|
|
61
|
+
}
|
|
53
62
|
const range = getCommitRange(args);
|
|
54
63
|
const commitLoad = getCommits(range);
|
|
55
64
|
if (commitLoad.error) {
|
|
@@ -205,10 +214,10 @@ function printReport(report) {
|
|
|
205
214
|
}
|
|
206
215
|
function getCommits(range) {
|
|
207
216
|
try {
|
|
208
|
-
const metadataLog = runGit(['log', range, '--format=%H%x1f%an%x1f%aI%x1f%B%x1e']);
|
|
209
|
-
const filesLog = runGit(['log', range, '--name-only', '--format=%H']);
|
|
210
|
-
const filesBySha = parseChangedFilesByCommit(filesLog);
|
|
211
|
-
const commits = parseCommitMetadata(metadataLog).map((commit) => ({
|
|
217
|
+
const metadataLog = (0, git_helpers_1.runGit)(['log', range, '--format=%H%x1f%an%x1f%aI%x1f%B%x1e']);
|
|
218
|
+
const filesLog = (0, git_helpers_1.runGit)(['log', range, '--name-only', '--format=%H']);
|
|
219
|
+
const filesBySha = (0, git_helpers_1.parseChangedFilesByCommit)(filesLog);
|
|
220
|
+
const commits = (0, git_helpers_1.parseCommitMetadata)(metadataLog).map((commit) => ({
|
|
212
221
|
...commit,
|
|
213
222
|
files_changed: filesBySha.get(commit.sha) || [],
|
|
214
223
|
}));
|
|
@@ -217,65 +226,24 @@ function getCommits(range) {
|
|
|
217
226
|
catch (error) {
|
|
218
227
|
return {
|
|
219
228
|
commits: [],
|
|
220
|
-
error: getGitErrorMessage(error),
|
|
229
|
+
error: (0, git_helpers_1.getGitErrorMessage)(error),
|
|
221
230
|
};
|
|
222
231
|
}
|
|
223
232
|
}
|
|
224
|
-
function parseCommitMetadata(logOutput) {
|
|
225
|
-
const commits = [];
|
|
226
|
-
for (const rawRecord of logOutput.split('\x1e')) {
|
|
227
|
-
const record = rawRecord.trim();
|
|
228
|
-
if (!record)
|
|
229
|
-
continue;
|
|
230
|
-
const [sha = '', author = '', timestamp = '', ...messageParts] = record.split('\x1f');
|
|
231
|
-
if (!sha)
|
|
232
|
-
continue;
|
|
233
|
-
commits.push({
|
|
234
|
-
sha: sha.trim(),
|
|
235
|
-
author: author.trim(),
|
|
236
|
-
timestamp: timestamp.trim(),
|
|
237
|
-
message: messageParts.join('\x1f').replace(/\r\n/g, '\n').replace(/\n+$/, ''),
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
return commits;
|
|
241
|
-
}
|
|
242
|
-
function parseChangedFilesByCommit(logOutput) {
|
|
243
|
-
const filesBySha = new Map();
|
|
244
|
-
let currentSha = '';
|
|
245
|
-
for (const rawLine of logOutput.split(/\r?\n/)) {
|
|
246
|
-
const line = rawLine.trim();
|
|
247
|
-
if (!line)
|
|
248
|
-
continue;
|
|
249
|
-
if (/^[a-f0-9]{40}$/i.test(line)) {
|
|
250
|
-
currentSha = line;
|
|
251
|
-
if (!filesBySha.has(currentSha)) {
|
|
252
|
-
filesBySha.set(currentSha, []);
|
|
253
|
-
}
|
|
254
|
-
continue;
|
|
255
|
-
}
|
|
256
|
-
if (!currentSha)
|
|
257
|
-
continue;
|
|
258
|
-
const files = filesBySha.get(currentSha);
|
|
259
|
-
if (!files || files.includes(line))
|
|
260
|
-
continue;
|
|
261
|
-
files.push(line);
|
|
262
|
-
}
|
|
263
|
-
return filesBySha;
|
|
264
|
-
}
|
|
265
233
|
function getCommitRange(args) {
|
|
266
234
|
const rangeIdx = args.indexOf('--range');
|
|
267
235
|
if (rangeIdx !== -1 && rangeIdx + 1 < args.length) {
|
|
268
236
|
return args[rangeIdx + 1];
|
|
269
237
|
}
|
|
270
|
-
const recentRange = getRecentCommitRange();
|
|
238
|
+
const recentRange = (0, git_helpers_1.getRecentCommitRange)();
|
|
271
239
|
try {
|
|
272
|
-
const currentBranch = runGit(['rev-parse', 'HEAD']).trim();
|
|
240
|
+
const currentBranch = (0, git_helpers_1.runGit)(['rev-parse', 'HEAD']).trim();
|
|
273
241
|
let baseBranch = '';
|
|
274
242
|
try {
|
|
275
|
-
baseBranch = runGit(['rev-parse', '--verify', 'main']).trim();
|
|
243
|
+
baseBranch = (0, git_helpers_1.runGit)(['rev-parse', '--verify', 'main']).trim();
|
|
276
244
|
}
|
|
277
245
|
catch {
|
|
278
|
-
baseBranch = runGit(['rev-parse', '--verify', 'master']).trim();
|
|
246
|
+
baseBranch = (0, git_helpers_1.runGit)(['rev-parse', '--verify', 'master']).trim();
|
|
279
247
|
}
|
|
280
248
|
if (!baseBranch || baseBranch === currentBranch) {
|
|
281
249
|
return recentRange;
|
|
@@ -286,42 +254,6 @@ function getCommitRange(args) {
|
|
|
286
254
|
return recentRange;
|
|
287
255
|
}
|
|
288
256
|
}
|
|
289
|
-
function getRecentCommitRange() {
|
|
290
|
-
try {
|
|
291
|
-
const count = Number.parseInt(runGit(['rev-list', '--count', 'HEAD']).trim(), 10);
|
|
292
|
-
if (!Number.isFinite(count) || count <= 1) {
|
|
293
|
-
return 'HEAD';
|
|
294
|
-
}
|
|
295
|
-
const span = Math.min(5, count - 1);
|
|
296
|
-
return `HEAD~${span}..HEAD`;
|
|
297
|
-
}
|
|
298
|
-
catch {
|
|
299
|
-
return 'HEAD';
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
function runGit(args) {
|
|
303
|
-
return (0, node_child_process_1.execFileSync)('git', args, {
|
|
304
|
-
encoding: 'utf-8',
|
|
305
|
-
maxBuffer: 10 * 1024 * 1024,
|
|
306
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
function getGitErrorMessage(error) {
|
|
310
|
-
const fallback = 'Unknown git error.';
|
|
311
|
-
if (!(error instanceof Error))
|
|
312
|
-
return fallback;
|
|
313
|
-
const execError = error;
|
|
314
|
-
if (execError.stderr) {
|
|
315
|
-
const stderr = execError.stderr.toString().trim();
|
|
316
|
-
if (stderr.length > 0) {
|
|
317
|
-
return stderr;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
if (execError.message) {
|
|
321
|
-
return execError.message.trim();
|
|
322
|
-
}
|
|
323
|
-
return fallback;
|
|
324
|
-
}
|
|
325
257
|
function getRecommendations(inputs) {
|
|
326
258
|
const recommendations = [];
|
|
327
259
|
const missingCoverage = Math.max(0, 67 - inputs.coveragePercent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEH,oCA2CC;AAzGD,4CAA8B;AAC9B,gDAAkC;AAElC,oCAAqC;AACrC,sCAAwG;AACxG,wCAAkD;AAClD,wCAAkD;AAElD,gDAA8I;AAsDvI,KAAK,UAAU,YAAY,CAAC,OAAmB,EAAE,OAAiB,EAAE;IACzE,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAA,qBAAY,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,IAAA,wBAAU,GAAE,EAAE,CAAC;QAClB,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,iBAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAErC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACzB,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,uCAAuC;gBAChD,OAAO,EAAE,UAAU,CAAC,KAAK;aAC1B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,iBAAS,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAEpH,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,CAAC;QAChD,OAAO,iBAAS,CAAC,gBAAgB,CAAC;IACpC,CAAC;IAED,OAAO,iBAAS,CAAC,OAAO,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAqB,EACrB,WAAmB,EACnB,UAAkB,EAClB,QAAmE,EACnE,WAAmB,EACnB,OAAoB;IAEpB,MAAM,MAAM,GAAG,IAAA,sBAAgB,EAAC,OAAO,CAAC,CAAC;IAEzC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAEtE,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAA,sBAAgB,EAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACpE,IAAI,IAAI,KAAK,MAAM;gBAAE,gBAAgB,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;QACzD,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACrE,MAAM,kBAAkB,GAAG,IAAA,sCAA6B,EAAC,UAAU,CAAC,CAAC;IACrE,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,UAAU,WAAW,CAAC;IAC7C,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAC5C,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEhF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,GAAG,GAAG,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC;IAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9F,MAAM,WAAW,GAAG;QAClB,eAAe;QACf,cAAc,EAAE,cAAc,CAAC,MAAM;QACrC,kBAAkB;QAClB,eAAe,EAAE,cAAc,CAAC,eAAe;KAChD,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,aAAa,EAAE,KAAK;QACpB,GAAG,EAAE;YACH,WAAW;YACX,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,mBAAmB,EAAE,aAAa,CAAC,IAAI;YACvC,eAAe;YACf,gBAAgB;YAChB,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,mBAAmB,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACpE;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU;YACV,kBAAkB;SACnB;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,WAAW;YAClB,eAAe,EAAE,cAAc,CAAC,eAAe;YAC/C,eAAe,EAAE,cAAc,CAAC,eAAe;YAC/C,eAAe,EAAE,cAAc,CAAC,eAAe;SAChD;QACD,KAAK,EAAE;YACL,OAAO;YACP,SAAS,EAAE;gBACT,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC5C,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;aAC7C;YACD,QAAQ,EAAE;gBACR,eAAe,EAAE,oEAAoE;gBACrF,kBAAkB,EAAE,4EAA4E;gBAChG,mBAAmB,EAAE,8FAA8F;aACpH;YACD,eAAe,EAAE,kBAAkB,CAAC,WAAW,CAAC;SACjD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM;QACnD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ;YACvC,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IACxI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,QAAQ,CAAC,eAAe,GAAG,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IACjF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,mBAAmB,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,kBAAkB,mBAAmB,CAAC,CAAC;IACvG,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,mBAAmB,CAAC,CAAC;IACxG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAA,oBAAM,EAAC,CAAC,KAAK,EAAE,KAAK,EAAE,qCAAqC,CAAC,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,IAAA,oBAAM,EAAC,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAA,uCAAyB,EAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAA,iCAAmB,EAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChE,GAAG,MAAM;YACT,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;SAChD,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,IAAA,gCAAkB,EAAC,KAAK,CAAC;SACjC,CAAC;IACJ,CAAC;AACH,CAAC;AAGD,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,kCAAoB,GAAE,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAA,oBAAM,EAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,UAAU,GAAG,IAAA,oBAAM,EAAC,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,IAAA,oBAAM,EAAC,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;YAChD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,OAAO,GAAG,UAAU,QAAQ,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAK3B;IACC,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACjE,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACxB,eAAe,CAAC,IAAI,CAClB,2CAA2C,eAAe,4EAA4E,CACvI,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAC/D,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACxB,eAAe,CAAC,IAAI,CAClB,OAAO,eAAe,yGAAyG,CAChI,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,MAAM,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;QACxC,eAAe,CAAC,IAAI,CAAC,sHAAsH,CAAC,CAAC;IAC/I,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,eAAe,CAAC,IAAI,CAClB,yCAAyC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9E,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAqB,EACrB,WAAmB,EACnB,WAAqB;IAErB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO;YACL,eAAe,EAAE,GAAG;YACpB,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,EAAE;SACpB,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,WAAW;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SAC/D,IAAI,CAAC,IAAI,CAAC;SACV,WAAW,EAAE,CAAC;IAEjB,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC;QACzG,IAAI,OAAO,EAAE,CAAC;YACZ,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IACrF,OAAO;QACL,eAAe;QACf,eAAe;QACf,eAAe;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAyD3C,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8L3F"}
|
|
@@ -45,17 +45,21 @@ const path = __importStar(require("node:path"));
|
|
|
45
45
|
const crypto = __importStar(require("node:crypto"));
|
|
46
46
|
const node_child_process_1 = require("node:child_process");
|
|
47
47
|
const index_1 = require("../index");
|
|
48
|
+
const flags_1 = require("../flags");
|
|
49
|
+
const git_helpers_1 = require("../git-helpers");
|
|
50
|
+
const adf_1 = require("./adf");
|
|
48
51
|
const init_1 = require("./init");
|
|
49
52
|
const setup_1 = require("./setup");
|
|
50
|
-
const
|
|
53
|
+
const adf_2 = require("./adf");
|
|
51
54
|
const config_1 = require("../config");
|
|
52
|
-
const
|
|
55
|
+
const adf_3 = require("@stackbilt/adf");
|
|
56
|
+
const adf_migrate_1 = require("./adf-migrate");
|
|
53
57
|
// ============================================================================
|
|
54
58
|
// Command Entry
|
|
55
59
|
// ============================================================================
|
|
56
60
|
async function bootstrapCommand(options, args) {
|
|
57
|
-
const ciTarget = getFlag(args, '--ci');
|
|
58
|
-
const presetFlag = getFlag(args, '--preset');
|
|
61
|
+
const ciTarget = (0, flags_1.getFlag)(args, '--ci');
|
|
62
|
+
const presetFlag = (0, flags_1.getFlag)(args, '--preset');
|
|
59
63
|
const skipInstall = args.includes('--skip-install');
|
|
60
64
|
const skipDoctor = args.includes('--skip-doctor');
|
|
61
65
|
const force = options.yes;
|
|
@@ -63,7 +67,7 @@ async function bootstrapCommand(options, args) {
|
|
|
63
67
|
throw new index_1.CLIError(`Unsupported CI target: ${ciTarget}. Supported: github`);
|
|
64
68
|
}
|
|
65
69
|
if (presetFlag && !isValidPreset(presetFlag)) {
|
|
66
|
-
throw new index_1.CLIError(`Invalid --preset value: ${presetFlag}. Use worker|frontend|backend|fullstack.`);
|
|
70
|
+
throw new index_1.CLIError(`Invalid --preset value: ${presetFlag}. Use worker|frontend|backend|fullstack|docs.`);
|
|
67
71
|
}
|
|
68
72
|
const result = {
|
|
69
73
|
status: 'success',
|
|
@@ -83,7 +87,7 @@ async function bootstrapCommand(options, args) {
|
|
|
83
87
|
const contexts = detectResult.contexts;
|
|
84
88
|
const packageManager = detectResult.packageManager;
|
|
85
89
|
if (options.format === 'text') {
|
|
86
|
-
console.log('[1/
|
|
90
|
+
console.log('[1/6] Detecting stack...');
|
|
87
91
|
console.log(` Stack: ${selectedPreset} (${detection.confidence} confidence)`);
|
|
88
92
|
console.log(` Monorepo: ${detection.monorepo ? 'yes' : 'no'}${detection.monorepo && detection.signals.hasPnpm ? ' (pnpm workspace)' : ''}`);
|
|
89
93
|
if (detection.warnings.length > 0) {
|
|
@@ -101,7 +105,7 @@ async function bootstrapCommand(options, args) {
|
|
|
101
105
|
if (setupResult.step.status === 'fail')
|
|
102
106
|
warnings++;
|
|
103
107
|
if (options.format === 'text') {
|
|
104
|
-
console.log('[2/
|
|
108
|
+
console.log('[2/6] Setting up governance...');
|
|
105
109
|
for (const f of (setupResult.step.details.created || [])) {
|
|
106
110
|
console.log(` Created ${f}`);
|
|
107
111
|
}
|
|
@@ -113,12 +117,12 @@ async function bootstrapCommand(options, args) {
|
|
|
113
117
|
// ========================================================================
|
|
114
118
|
// Phase 3: ADF Init
|
|
115
119
|
// ========================================================================
|
|
116
|
-
const adfResult = runAdfInitPhase(options, force);
|
|
120
|
+
const adfResult = runAdfInitPhase(options, force, selectedPreset);
|
|
117
121
|
result.steps.push(adfResult.step);
|
|
118
122
|
if (adfResult.step.status === 'fail')
|
|
119
123
|
warnings++;
|
|
120
124
|
if (options.format === 'text') {
|
|
121
|
-
console.log('[3/
|
|
125
|
+
console.log('[3/6] Initializing ADF context...');
|
|
122
126
|
for (const f of (adfResult.step.details.files || [])) {
|
|
123
127
|
console.log(` Created ${f}`);
|
|
124
128
|
}
|
|
@@ -128,14 +132,37 @@ async function bootstrapCommand(options, args) {
|
|
|
128
132
|
console.log('');
|
|
129
133
|
}
|
|
130
134
|
// ========================================================================
|
|
131
|
-
// Phase 4:
|
|
135
|
+
// Phase 4: Migrate Agent Configs
|
|
136
|
+
// ========================================================================
|
|
137
|
+
const migrateResult = runMigratePhase(options, force);
|
|
138
|
+
result.steps.push(migrateResult.step);
|
|
139
|
+
if (migrateResult.step.status === 'fail')
|
|
140
|
+
warnings++;
|
|
141
|
+
if (options.format === 'text') {
|
|
142
|
+
console.log('[4/6] Migrating agent configs...');
|
|
143
|
+
if (migrateResult.step.status === 'skip') {
|
|
144
|
+
console.log(' Skipped (no migratable files)');
|
|
145
|
+
}
|
|
146
|
+
else if (migrateResult.step.details.dryRun) {
|
|
147
|
+
for (const w of migrateResult.step.warnings) {
|
|
148
|
+
console.log(` ${w}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
const migrated = migrateResult.step.details.migrated;
|
|
153
|
+
console.log(` Migrated ${migrated} file(s)`);
|
|
154
|
+
}
|
|
155
|
+
console.log('');
|
|
156
|
+
}
|
|
157
|
+
// ========================================================================
|
|
158
|
+
// Phase 5: Install
|
|
132
159
|
// ========================================================================
|
|
133
160
|
const installResult = runInstallPhase(options, skipInstall);
|
|
134
161
|
result.steps.push(installResult.step);
|
|
135
162
|
if (installResult.step.status === 'fail')
|
|
136
163
|
warnings++;
|
|
137
164
|
if (options.format === 'text') {
|
|
138
|
-
console.log('[
|
|
165
|
+
console.log('[5/6] Installing dependencies...');
|
|
139
166
|
if (skipInstall) {
|
|
140
167
|
console.log(' Skipped (--skip-install)');
|
|
141
168
|
}
|
|
@@ -147,20 +174,25 @@ async function bootstrapCommand(options, args) {
|
|
|
147
174
|
}
|
|
148
175
|
else {
|
|
149
176
|
console.log(` Failed: ${installResult.step.details.error}`);
|
|
150
|
-
|
|
177
|
+
for (const w of installResult.step.warnings) {
|
|
178
|
+
if (w.startsWith('Hint:') || w.startsWith('Retry')) {
|
|
179
|
+
console.log(` ${w}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
console.log(' (non-fatal)');
|
|
151
183
|
}
|
|
152
184
|
}
|
|
153
185
|
console.log('');
|
|
154
186
|
}
|
|
155
187
|
// ========================================================================
|
|
156
|
-
// Phase
|
|
188
|
+
// Phase 6: Doctor
|
|
157
189
|
// ========================================================================
|
|
158
190
|
const doctorResult = runDoctorPhase(options, skipDoctor);
|
|
159
191
|
result.steps.push(doctorResult.step);
|
|
160
192
|
if (doctorResult.step.status === 'fail')
|
|
161
193
|
warnings++;
|
|
162
194
|
if (options.format === 'text') {
|
|
163
|
-
console.log('[
|
|
195
|
+
console.log('[6/6] Running health check...');
|
|
164
196
|
if (skipDoctor) {
|
|
165
197
|
console.log(' Skipped (--skip-doctor)');
|
|
166
198
|
}
|
|
@@ -352,7 +384,22 @@ function runSetupPhase(options, selectedPreset, detection, contexts, ciTarget, p
|
|
|
352
384
|
// ============================================================================
|
|
353
385
|
// Phase 3: ADF Init
|
|
354
386
|
// ============================================================================
|
|
355
|
-
function
|
|
387
|
+
function writeAdfScaffolds(aiDir, preset) {
|
|
388
|
+
const isDocsPreset = preset === 'docs';
|
|
389
|
+
fs.mkdirSync(aiDir, { recursive: true });
|
|
390
|
+
fs.writeFileSync(path.join(aiDir, 'manifest.adf'), isDocsPreset ? adf_2.MANIFEST_DOCS_SCAFFOLD : adf_2.MANIFEST_SCAFFOLD);
|
|
391
|
+
fs.writeFileSync(path.join(aiDir, 'core.adf'), adf_2.CORE_SCAFFOLD);
|
|
392
|
+
fs.writeFileSync(path.join(aiDir, 'state.adf'), adf_2.STATE_SCAFFOLD);
|
|
393
|
+
if (isDocsPreset) {
|
|
394
|
+
fs.writeFileSync(path.join(aiDir, 'decisions.adf'), adf_2.DECISIONS_SCAFFOLD);
|
|
395
|
+
fs.writeFileSync(path.join(aiDir, 'planning.adf'), adf_2.PLANNING_SCAFFOLD);
|
|
396
|
+
return ['.ai/manifest.adf', '.ai/core.adf', '.ai/state.adf', '.ai/decisions.adf', '.ai/planning.adf'];
|
|
397
|
+
}
|
|
398
|
+
fs.writeFileSync(path.join(aiDir, 'frontend.adf'), adf_2.FRONTEND_SCAFFOLD);
|
|
399
|
+
fs.writeFileSync(path.join(aiDir, 'backend.adf'), adf_2.BACKEND_SCAFFOLD);
|
|
400
|
+
return ['.ai/manifest.adf', '.ai/core.adf', '.ai/state.adf', '.ai/frontend.adf', '.ai/backend.adf'];
|
|
401
|
+
}
|
|
402
|
+
function runAdfInitPhase(options, force, preset) {
|
|
356
403
|
const warnings = [];
|
|
357
404
|
const files = [];
|
|
358
405
|
const pointers = [];
|
|
@@ -363,12 +410,8 @@ function runAdfInitPhase(options, force) {
|
|
|
363
410
|
const alreadyExists = fs.existsSync(manifestPath);
|
|
364
411
|
const hasCustomContent = alreadyExists && hasCustomAdfContent(aiDir);
|
|
365
412
|
if (!alreadyExists) {
|
|
366
|
-
// Greenfield: write scaffolds
|
|
367
|
-
|
|
368
|
-
fs.writeFileSync(path.join(aiDir, 'manifest.adf'), adf_1.MANIFEST_SCAFFOLD);
|
|
369
|
-
fs.writeFileSync(path.join(aiDir, 'core.adf'), adf_1.CORE_SCAFFOLD);
|
|
370
|
-
fs.writeFileSync(path.join(aiDir, 'state.adf'), adf_1.STATE_SCAFFOLD);
|
|
371
|
-
files.push('.ai/manifest.adf', '.ai/core.adf', '.ai/state.adf');
|
|
413
|
+
// Greenfield: write scaffolds (preset-aware on-demand modules)
|
|
414
|
+
files.push(...writeAdfScaffolds(aiDir, preset));
|
|
372
415
|
// Write .adf.lock
|
|
373
416
|
const lockData = {};
|
|
374
417
|
for (const mod of ['core.adf', 'state.adf']) {
|
|
@@ -384,12 +427,8 @@ function runAdfInitPhase(options, force) {
|
|
|
384
427
|
warnings.push("Run 'charter adf migrate' to consolidate agent configs into ADF");
|
|
385
428
|
}
|
|
386
429
|
else if (force) {
|
|
387
|
-
// Force overwrite
|
|
388
|
-
|
|
389
|
-
fs.writeFileSync(path.join(aiDir, 'manifest.adf'), adf_1.MANIFEST_SCAFFOLD);
|
|
390
|
-
fs.writeFileSync(path.join(aiDir, 'core.adf'), adf_1.CORE_SCAFFOLD);
|
|
391
|
-
fs.writeFileSync(path.join(aiDir, 'state.adf'), adf_1.STATE_SCAFFOLD);
|
|
392
|
-
files.push('.ai/manifest.adf', '.ai/core.adf', '.ai/state.adf');
|
|
430
|
+
// Force overwrite (preset-aware on-demand modules)
|
|
431
|
+
files.push(...writeAdfScaffolds(aiDir, preset));
|
|
393
432
|
const lockData = {};
|
|
394
433
|
for (const mod of ['core.adf', 'state.adf']) {
|
|
395
434
|
const content = fs.readFileSync(path.join(aiDir, mod), 'utf-8');
|
|
@@ -403,9 +442,9 @@ function runAdfInitPhase(options, force) {
|
|
|
403
442
|
}
|
|
404
443
|
// Generate thin pointer files
|
|
405
444
|
const pointerFiles = [
|
|
406
|
-
{ name: 'CLAUDE.md', content:
|
|
407
|
-
{ name: '.cursorrules', content:
|
|
408
|
-
{ name: 'agents.md', content:
|
|
445
|
+
{ name: 'CLAUDE.md', content: adf_2.POINTER_CLAUDE_MD, label: 'CLAUDE.md (thin pointer)' },
|
|
446
|
+
{ name: '.cursorrules', content: adf_2.POINTER_CURSORRULES, label: '.cursorrules (thin pointer)' },
|
|
447
|
+
{ name: 'agents.md', content: adf_2.POINTER_AGENTS_MD, label: 'agents.md (thin pointer)' },
|
|
409
448
|
];
|
|
410
449
|
for (const pf of pointerFiles) {
|
|
411
450
|
const pointerPath = path.resolve(pf.name);
|
|
@@ -449,7 +488,85 @@ function runAdfInitPhase(options, force) {
|
|
|
449
488
|
}
|
|
450
489
|
}
|
|
451
490
|
// ============================================================================
|
|
452
|
-
// Phase 4:
|
|
491
|
+
// Phase 4: Migrate Agent Configs
|
|
492
|
+
// ============================================================================
|
|
493
|
+
const AGENT_CONFIG_FILES = [
|
|
494
|
+
'CLAUDE.md', '.cursorrules', 'agents.md',
|
|
495
|
+
'GEMINI.md', 'copilot-instructions.md',
|
|
496
|
+
];
|
|
497
|
+
function runMigratePhase(options, force) {
|
|
498
|
+
const warnings = [];
|
|
499
|
+
const aiDir = '.ai';
|
|
500
|
+
try {
|
|
501
|
+
// Find agent config files that aren't already thin pointers
|
|
502
|
+
const sources = AGENT_CONFIG_FILES.filter(f => {
|
|
503
|
+
const fullPath = path.resolve(f);
|
|
504
|
+
if (!fs.existsSync(fullPath))
|
|
505
|
+
return false;
|
|
506
|
+
const content = fs.readFileSync(fullPath, 'utf-8');
|
|
507
|
+
return !adf_1.POINTER_MARKERS.some(marker => content.includes(marker));
|
|
508
|
+
});
|
|
509
|
+
if (sources.length === 0) {
|
|
510
|
+
return {
|
|
511
|
+
step: {
|
|
512
|
+
name: 'migrate',
|
|
513
|
+
status: 'skip',
|
|
514
|
+
details: { skipped: true, reason: 'No migratable agent config files found' },
|
|
515
|
+
warnings,
|
|
516
|
+
},
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
if (!force) {
|
|
520
|
+
warnings.push(`Found ${sources.length} agent config file(s) with migratable content: ${sources.join(', ')}`);
|
|
521
|
+
warnings.push("Run with --yes to auto-migrate, or run 'charter adf migrate' separately");
|
|
522
|
+
return {
|
|
523
|
+
step: {
|
|
524
|
+
name: 'migrate',
|
|
525
|
+
status: 'pass',
|
|
526
|
+
details: { dryRun: true, sources, migrated: 0 },
|
|
527
|
+
warnings,
|
|
528
|
+
},
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
// Auto-migrate with --yes
|
|
532
|
+
const results = [];
|
|
533
|
+
for (const source of sources) {
|
|
534
|
+
const result = (0, adf_migrate_1.migrateSource)(source, aiDir, 'dedupe', false, false, options);
|
|
535
|
+
results.push(result);
|
|
536
|
+
}
|
|
537
|
+
const migrated = results.filter(r => !r.skipped).length;
|
|
538
|
+
return {
|
|
539
|
+
step: {
|
|
540
|
+
name: 'migrate',
|
|
541
|
+
status: 'pass',
|
|
542
|
+
details: {
|
|
543
|
+
sources,
|
|
544
|
+
migrated,
|
|
545
|
+
results: results.map(r => ({
|
|
546
|
+
source: r.source,
|
|
547
|
+
skipped: r.skipped,
|
|
548
|
+
itemsMigrated: r.plan?.migrateItems.length ?? 0,
|
|
549
|
+
})),
|
|
550
|
+
},
|
|
551
|
+
warnings,
|
|
552
|
+
},
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
catch (err) {
|
|
556
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
557
|
+
warnings.push(`Migration failed: ${msg}`);
|
|
558
|
+
return {
|
|
559
|
+
step: {
|
|
560
|
+
name: 'migrate',
|
|
561
|
+
status: 'fail',
|
|
562
|
+
details: { error: msg },
|
|
563
|
+
warnings,
|
|
564
|
+
},
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
// ============================================================================
|
|
569
|
+
// Phase 5: Install
|
|
453
570
|
// ============================================================================
|
|
454
571
|
function runInstallPhase(_options, skipInstall) {
|
|
455
572
|
const warnings = [];
|
|
@@ -483,7 +600,12 @@ function runInstallPhase(_options, skipInstall) {
|
|
|
483
600
|
}
|
|
484
601
|
catch (err) {
|
|
485
602
|
const msg = err instanceof Error ? err.message : String(err);
|
|
603
|
+
const isPermError = msg.includes('EPERM') || msg.includes('EACCES') || msg.includes('permission denied');
|
|
486
604
|
warnings.push(`Install failed: ${msg}`);
|
|
605
|
+
if (isPermError) {
|
|
606
|
+
warnings.push(`Hint: permission error detected. Retry outside the sandbox or with elevated privileges: ${command}`);
|
|
607
|
+
}
|
|
608
|
+
warnings.push(`Retry manually: ${command}`);
|
|
487
609
|
return {
|
|
488
610
|
step: {
|
|
489
611
|
name: 'install',
|
|
@@ -504,7 +626,7 @@ function detectPackageManagerFromLockfiles() {
|
|
|
504
626
|
return 'npm';
|
|
505
627
|
}
|
|
506
628
|
// ============================================================================
|
|
507
|
-
// Phase
|
|
629
|
+
// Phase 6: Doctor
|
|
508
630
|
// ============================================================================
|
|
509
631
|
function runDoctorPhase(options, skipDoctor) {
|
|
510
632
|
const warnings = [];
|
|
@@ -521,14 +643,7 @@ function runDoctorPhase(options, skipDoctor) {
|
|
|
521
643
|
const checks = [];
|
|
522
644
|
try {
|
|
523
645
|
// Git repository check
|
|
524
|
-
|
|
525
|
-
try {
|
|
526
|
-
(0, node_child_process_1.execSync)('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });
|
|
527
|
-
inGitRepo = true;
|
|
528
|
-
}
|
|
529
|
-
catch {
|
|
530
|
-
// not in a git repo
|
|
531
|
-
}
|
|
646
|
+
const inGitRepo = (0, git_helpers_1.isGitRepo)();
|
|
532
647
|
checks.push({
|
|
533
648
|
name: 'Git repository',
|
|
534
649
|
status: inGitRepo ? 'PASS' : 'WARN',
|
|
@@ -563,8 +678,8 @@ function runDoctorPhase(options, skipDoctor) {
|
|
|
563
678
|
if (hasManifest) {
|
|
564
679
|
try {
|
|
565
680
|
const manifestContent = fs.readFileSync(manifestPath, 'utf-8');
|
|
566
|
-
const manifestDoc = (0,
|
|
567
|
-
const manifest = (0,
|
|
681
|
+
const manifestDoc = (0, adf_3.parseAdf)(manifestContent);
|
|
682
|
+
const manifest = (0, adf_3.parseManifest)(manifestDoc);
|
|
568
683
|
if (manifest.sync.length > 0) {
|
|
569
684
|
const lockFile = path.join('.ai', '.adf.lock');
|
|
570
685
|
const hasLock = fs.existsSync(lockFile);
|
|
@@ -615,15 +730,8 @@ function runDoctorPhase(options, skipDoctor) {
|
|
|
615
730
|
// ============================================================================
|
|
616
731
|
// Helpers
|
|
617
732
|
// ============================================================================
|
|
618
|
-
function getFlag(args, flag) {
|
|
619
|
-
const idx = args.indexOf(flag);
|
|
620
|
-
if (idx !== -1 && idx + 1 < args.length) {
|
|
621
|
-
return args[idx + 1];
|
|
622
|
-
}
|
|
623
|
-
return undefined;
|
|
624
|
-
}
|
|
625
733
|
function isValidPreset(value) {
|
|
626
|
-
return value === 'worker' || value === 'frontend' || value === 'backend' || value === 'fullstack';
|
|
734
|
+
return value === 'worker' || value === 'frontend' || value === 'backend' || value === 'fullstack' || value === 'docs';
|
|
627
735
|
}
|
|
628
736
|
function hashContent(content) {
|
|
629
737
|
return crypto.createHash('sha256').update(content).digest('hex').slice(0, 16);
|
|
@@ -639,7 +747,7 @@ function hasCustomAdfContent(aiDir) {
|
|
|
639
747
|
const content = fs.readFileSync(coreAdfPath, 'utf-8');
|
|
640
748
|
// Check if the file has been modified from default scaffold
|
|
641
749
|
// A custom file will have different content than the CORE_SCAFFOLD
|
|
642
|
-
return content.trim() !==
|
|
750
|
+
return content.trim() !== adf_2.CORE_SCAFFOLD.trim();
|
|
643
751
|
}
|
|
644
752
|
catch {
|
|
645
753
|
return false;
|
|
@@ -651,7 +759,7 @@ function hasCustomAdfContent(aiDir) {
|
|
|
651
759
|
function isAlreadyThinPointer(filePath) {
|
|
652
760
|
try {
|
|
653
761
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
654
|
-
return content.includes(
|
|
762
|
+
return adf_1.POINTER_MARKERS.some(marker => content.includes(marker));
|
|
655
763
|
}
|
|
656
764
|
catch {
|
|
657
765
|
return false;
|