@fractary/core-cli 0.4.9 → 0.4.15
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 +298 -121
- package/dist/cli.js +5 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/config.d.ts +6 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +197 -12
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/docs/doc.d.ts +3 -0
- package/dist/commands/docs/doc.d.ts.map +1 -1
- package/dist/commands/docs/doc.js +357 -0
- package/dist/commands/docs/doc.js.map +1 -1
- package/dist/commands/docs/index.d.ts.map +1 -1
- package/dist/commands/docs/index.js +4 -0
- package/dist/commands/docs/index.js.map +1 -1
- package/dist/commands/file/index.d.ts +3 -1
- package/dist/commands/file/index.d.ts.map +1 -1
- package/dist/commands/file/index.js +366 -57
- package/dist/commands/file/index.js.map +1 -1
- package/dist/commands/logs/index.d.ts +19 -0
- package/dist/commands/logs/index.d.ts.map +1 -1
- package/dist/commands/logs/index.js +22 -2
- package/dist/commands/logs/index.js.map +1 -1
- package/dist/commands/spec/index.d.ts +3 -1
- package/dist/commands/spec/index.d.ts.map +1 -1
- package/dist/commands/spec/index.js +16 -248
- package/dist/commands/spec/index.js.map +1 -1
- package/dist/commands/spec/spec.d.ts +13 -0
- package/dist/commands/spec/spec.d.ts.map +1 -0
- package/dist/commands/spec/spec.js +418 -0
- package/dist/commands/spec/spec.js.map +1 -0
- package/dist/commands/spec/template.d.ts +6 -0
- package/dist/commands/spec/template.d.ts.map +1 -0
- package/dist/commands/spec/template.js +38 -0
- package/dist/commands/spec/template.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Spec operations for specification management
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.createSpecCreateFileCommand = createSpecCreateFileCommand;
|
|
43
|
+
exports.createSpecGetCommand = createSpecGetCommand;
|
|
44
|
+
exports.createSpecListCommand = createSpecListCommand;
|
|
45
|
+
exports.createSpecUpdateCommand = createSpecUpdateCommand;
|
|
46
|
+
exports.createSpecDeleteCommand = createSpecDeleteCommand;
|
|
47
|
+
exports.createSpecValidateCheckCommand = createSpecValidateCheckCommand;
|
|
48
|
+
exports.createSpecRefineScanCommand = createSpecRefineScanCommand;
|
|
49
|
+
exports.createSpecArchiveCommand = createSpecArchiveCommand;
|
|
50
|
+
const commander_1 = require("commander");
|
|
51
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
52
|
+
const fs = __importStar(require("fs"));
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const crypto = __importStar(require("crypto"));
|
|
55
|
+
const factory_1 = require("../../sdk/factory");
|
|
56
|
+
const errors_1 = require("../../utils/errors");
|
|
57
|
+
function createSpecCreateFileCommand() {
|
|
58
|
+
return new commander_1.Command('spec-create-file')
|
|
59
|
+
.description('Create a new specification file')
|
|
60
|
+
.argument('<title>', 'Specification title')
|
|
61
|
+
.option('--template <type>', 'Specification template (feature, bugfix, refactor)', 'feature')
|
|
62
|
+
.option('--work-id <id>', 'Associated work item ID')
|
|
63
|
+
.option('--json', 'Output as JSON')
|
|
64
|
+
.action(async (title, options) => {
|
|
65
|
+
try {
|
|
66
|
+
const specManager = await (0, factory_1.getSpecManager)();
|
|
67
|
+
const spec = specManager.createSpec(title, {
|
|
68
|
+
template: options.template,
|
|
69
|
+
workId: options.workId,
|
|
70
|
+
});
|
|
71
|
+
if (options.json) {
|
|
72
|
+
console.log(JSON.stringify({ status: 'success', data: spec }, null, 2));
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.log(chalk_1.default.green(`✓ Created specification: ${spec.title}`));
|
|
76
|
+
console.log(chalk_1.default.gray(` ID: ${spec.id}`));
|
|
77
|
+
console.log(chalk_1.default.gray(` Path: ${spec.path}`));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
(0, errors_1.handleError)(error, options);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function createSpecGetCommand() {
|
|
86
|
+
return new commander_1.Command('spec-get')
|
|
87
|
+
.description('Get a specification by ID or path')
|
|
88
|
+
.argument('<id>', 'Specification ID or path')
|
|
89
|
+
.option('--json', 'Output as JSON')
|
|
90
|
+
.action(async (id, options) => {
|
|
91
|
+
try {
|
|
92
|
+
const specManager = await (0, factory_1.getSpecManager)();
|
|
93
|
+
const spec = specManager.getSpec(id);
|
|
94
|
+
if (!spec) {
|
|
95
|
+
if (options.json) {
|
|
96
|
+
console.error(JSON.stringify({
|
|
97
|
+
status: 'error',
|
|
98
|
+
error: { code: 'SPEC_NOT_FOUND', message: `Specification not found: ${id}` },
|
|
99
|
+
}, null, 2));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.error(chalk_1.default.red(`Specification not found: ${id}`));
|
|
103
|
+
}
|
|
104
|
+
process.exit(3);
|
|
105
|
+
}
|
|
106
|
+
if (options.json) {
|
|
107
|
+
console.log(JSON.stringify({ status: 'success', data: spec }, null, 2));
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
console.log(chalk_1.default.bold(`${spec.title}`));
|
|
111
|
+
console.log(chalk_1.default.gray(`ID: ${spec.id}`));
|
|
112
|
+
console.log(chalk_1.default.gray(`Status: ${spec.metadata.validation_status || 'not_validated'}`));
|
|
113
|
+
console.log(chalk_1.default.gray(`Work ID: ${spec.workId || 'N/A'}`));
|
|
114
|
+
console.log('\n' + spec.content);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
(0, errors_1.handleError)(error, options);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
function createSpecListCommand() {
|
|
123
|
+
return new commander_1.Command('spec-list')
|
|
124
|
+
.description('List specifications')
|
|
125
|
+
.option('--status <status>', 'Filter by status (draft, validated, needs_revision)')
|
|
126
|
+
.option('--work-id <id>', 'Filter by work item ID')
|
|
127
|
+
.option('--json', 'Output as JSON')
|
|
128
|
+
.action(async (options) => {
|
|
129
|
+
try {
|
|
130
|
+
const specManager = await (0, factory_1.getSpecManager)();
|
|
131
|
+
const specs = specManager.listSpecs({
|
|
132
|
+
status: options.status,
|
|
133
|
+
workId: options.workId,
|
|
134
|
+
});
|
|
135
|
+
if (options.json) {
|
|
136
|
+
console.log(JSON.stringify({ status: 'success', data: specs }, null, 2));
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
if (specs.length === 0) {
|
|
140
|
+
console.log(chalk_1.default.yellow('No specifications found'));
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
specs.forEach((spec) => {
|
|
144
|
+
const status = spec.metadata.validation_status || 'draft';
|
|
145
|
+
console.log(`${spec.id}: ${spec.title} [${status}]`);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
(0, errors_1.handleError)(error, options);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
function createSpecUpdateCommand() {
|
|
156
|
+
return new commander_1.Command('spec-update')
|
|
157
|
+
.description('Update a specification')
|
|
158
|
+
.argument('<id>', 'Specification ID or path')
|
|
159
|
+
.option('--title <title>', 'New title')
|
|
160
|
+
.option('--content <content>', 'New content')
|
|
161
|
+
.option('--work-id <id>', 'Update work item ID')
|
|
162
|
+
.option('--status <status>', 'Update status')
|
|
163
|
+
.option('--json', 'Output as JSON')
|
|
164
|
+
.action(async (id, options) => {
|
|
165
|
+
try {
|
|
166
|
+
const specManager = await (0, factory_1.getSpecManager)();
|
|
167
|
+
const spec = specManager.updateSpec(id, {
|
|
168
|
+
title: options.title,
|
|
169
|
+
content: options.content,
|
|
170
|
+
workId: options.workId,
|
|
171
|
+
validationStatus: options.status,
|
|
172
|
+
});
|
|
173
|
+
if (options.json) {
|
|
174
|
+
console.log(JSON.stringify({ status: 'success', data: spec }, null, 2));
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
console.log(chalk_1.default.green(`✓ Updated specification: ${spec.id}`));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
(0, errors_1.handleError)(error, options);
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
function createSpecDeleteCommand() {
|
|
186
|
+
return new commander_1.Command('spec-delete')
|
|
187
|
+
.description('Delete a specification')
|
|
188
|
+
.argument('<id>', 'Specification ID or path')
|
|
189
|
+
.option('--json', 'Output as JSON')
|
|
190
|
+
.action(async (id, options) => {
|
|
191
|
+
try {
|
|
192
|
+
const specManager = await (0, factory_1.getSpecManager)();
|
|
193
|
+
specManager.deleteSpec(id);
|
|
194
|
+
if (options.json) {
|
|
195
|
+
console.log(JSON.stringify({ status: 'success', data: { id } }, null, 2));
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
console.log(chalk_1.default.green(`✓ Deleted specification: ${id}`));
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
(0, errors_1.handleError)(error, options);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
function createSpecValidateCheckCommand() {
|
|
207
|
+
return new commander_1.Command('spec-validate-check')
|
|
208
|
+
.description('Run structural validation checks on a specification')
|
|
209
|
+
.argument('<id>', 'Specification ID or path')
|
|
210
|
+
.option('--json', 'Output as JSON')
|
|
211
|
+
.action(async (id, options) => {
|
|
212
|
+
try {
|
|
213
|
+
const specManager = await (0, factory_1.getSpecManager)();
|
|
214
|
+
const result = specManager.validateSpec(id);
|
|
215
|
+
if (options.json) {
|
|
216
|
+
console.log(JSON.stringify({ status: 'success', data: result }, null, 2));
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
console.log(chalk_1.default.bold(`Validation Result: ${result.status.toUpperCase()}`));
|
|
220
|
+
console.log(chalk_1.default.gray(`Score: ${result.score}%`));
|
|
221
|
+
if (result.checks.requirements) {
|
|
222
|
+
const req = result.checks.requirements;
|
|
223
|
+
console.log(chalk_1.default.gray(`\nRequirements: ${req.completed}/${req.total} - ${req.status}`));
|
|
224
|
+
}
|
|
225
|
+
if (result.checks.acceptanceCriteria) {
|
|
226
|
+
const ac = result.checks.acceptanceCriteria;
|
|
227
|
+
console.log(chalk_1.default.gray(`Acceptance Criteria: ${ac.met}/${ac.total} - ${ac.status}`));
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
(0, errors_1.handleError)(error, options);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
function createSpecRefineScanCommand() {
|
|
237
|
+
return new commander_1.Command('spec-refine-scan')
|
|
238
|
+
.description('Scan a specification for structural gaps and refinement areas')
|
|
239
|
+
.argument('<id>', 'Specification ID or path')
|
|
240
|
+
.option('--json', 'Output as JSON')
|
|
241
|
+
.action(async (id, options) => {
|
|
242
|
+
try {
|
|
243
|
+
const specManager = await (0, factory_1.getSpecManager)();
|
|
244
|
+
const questions = specManager.generateRefinementQuestions(id);
|
|
245
|
+
if (options.json) {
|
|
246
|
+
console.log(JSON.stringify({ status: 'success', data: questions }, null, 2));
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
if (questions.length === 0) {
|
|
250
|
+
console.log(chalk_1.default.green('No refinement questions needed'));
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
console.log(chalk_1.default.bold('Refinement Questions:'));
|
|
254
|
+
questions.forEach((question, idx) => {
|
|
255
|
+
console.log(`\n${idx + 1}. ${chalk_1.default.yellow(question.question)}`);
|
|
256
|
+
console.log(chalk_1.default.gray(` Category: ${question.category}`));
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
(0, errors_1.handleError)(error, options);
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
function computeFileChecksum(filePath) {
|
|
267
|
+
const content = fs.readFileSync(filePath);
|
|
268
|
+
return crypto.createHash('sha256').update(content).digest('hex');
|
|
269
|
+
}
|
|
270
|
+
function createSpecArchiveCommand() {
|
|
271
|
+
return new commander_1.Command('spec-archive')
|
|
272
|
+
.description('Archive specifications for a completed issue (copy to archive, verify, remove originals)')
|
|
273
|
+
.argument('<issue_number>', 'GitHub issue number')
|
|
274
|
+
.option('--local', 'Force local archive mode (skip cloud storage)')
|
|
275
|
+
.option('--json', 'Output as JSON')
|
|
276
|
+
.action(async (issueNumber, options) => {
|
|
277
|
+
try {
|
|
278
|
+
const specManager = await (0, factory_1.getSpecManager)();
|
|
279
|
+
// Find specs matching this issue by filename pattern
|
|
280
|
+
const allSpecs = specManager.listSpecs();
|
|
281
|
+
const paddedIssue = issueNumber.padStart(5, '0');
|
|
282
|
+
const matchingSpecs = allSpecs.filter((spec) => {
|
|
283
|
+
const filename = path.basename(spec.path);
|
|
284
|
+
return filename.startsWith(`SPEC-${paddedIssue}`) ||
|
|
285
|
+
filename.startsWith(`WORK-${paddedIssue}`);
|
|
286
|
+
});
|
|
287
|
+
if (matchingSpecs.length === 0) {
|
|
288
|
+
if (options.json) {
|
|
289
|
+
console.error(JSON.stringify({
|
|
290
|
+
status: 'error',
|
|
291
|
+
error: { code: 'NO_SPECS_FOUND', message: `No specifications found for issue ${issueNumber}` },
|
|
292
|
+
}, null, 2));
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
console.error(chalk_1.default.red(`No specifications found for issue ${issueNumber}`));
|
|
296
|
+
}
|
|
297
|
+
process.exit(3);
|
|
298
|
+
}
|
|
299
|
+
// Determine archive mode
|
|
300
|
+
let archiveMode = 'local';
|
|
301
|
+
if (!options.local) {
|
|
302
|
+
try {
|
|
303
|
+
const { loadFileConfig } = await Promise.resolve().then(() => __importStar(require('@fractary/core/common/config')));
|
|
304
|
+
const fileConfig = loadFileConfig();
|
|
305
|
+
const specsSource = fileConfig?.sources?.specs;
|
|
306
|
+
if (specsSource &&
|
|
307
|
+
['s3', 'r2', 'gcs'].includes(specsSource.type) &&
|
|
308
|
+
specsSource.bucket) {
|
|
309
|
+
archiveMode = 'cloud';
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
catch {
|
|
313
|
+
// Config not available, use local mode
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
if (!options.json) {
|
|
317
|
+
console.log(chalk_1.default.gray(`Archiving ${matchingSpecs.length} spec(s) for issue ${issueNumber} (${archiveMode} mode)`));
|
|
318
|
+
}
|
|
319
|
+
const results = [];
|
|
320
|
+
const errors = [];
|
|
321
|
+
for (const spec of matchingSpecs) {
|
|
322
|
+
const filename = path.basename(spec.path);
|
|
323
|
+
const specPath = spec.path;
|
|
324
|
+
try {
|
|
325
|
+
if (archiveMode === 'cloud') {
|
|
326
|
+
// Cloud archive: upload via SDK FileManager
|
|
327
|
+
const cloudPath = `archive/specs/${filename}`;
|
|
328
|
+
const content = fs.readFileSync(specPath, 'utf-8');
|
|
329
|
+
const checksum = crypto.createHash('sha256').update(content).digest('hex');
|
|
330
|
+
const fileSize = Buffer.byteLength(content, 'utf-8');
|
|
331
|
+
const fileManager = await (0, factory_1.getFileManagerForSource)('specs');
|
|
332
|
+
const cloudUrl = await fileManager.write(cloudPath, content);
|
|
333
|
+
// Verify upload independently
|
|
334
|
+
const exists = await fileManager.exists(cloudPath);
|
|
335
|
+
if (!exists) {
|
|
336
|
+
throw new Error('Upload verification failed: file not found in cloud storage after upload');
|
|
337
|
+
}
|
|
338
|
+
// Verified in cloud - safe to remove original
|
|
339
|
+
fs.unlinkSync(specPath);
|
|
340
|
+
results.push({
|
|
341
|
+
filename,
|
|
342
|
+
source_path: specPath,
|
|
343
|
+
cloud_url: cloudUrl,
|
|
344
|
+
cloud_path: cloudPath,
|
|
345
|
+
size_bytes: fileSize,
|
|
346
|
+
checksum: `sha256:${checksum}`,
|
|
347
|
+
archived_at: new Date().toISOString(),
|
|
348
|
+
archive_mode: 'cloud',
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
// Local archive: copy, verify checksum, delete original
|
|
353
|
+
const specsDir = path.dirname(specPath);
|
|
354
|
+
const archiveDir = path.join(specsDir, 'archive');
|
|
355
|
+
const archivePath = path.join(archiveDir, filename);
|
|
356
|
+
const checksum = computeFileChecksum(specPath);
|
|
357
|
+
const fileSize = fs.statSync(specPath).size;
|
|
358
|
+
fs.mkdirSync(archiveDir, { recursive: true });
|
|
359
|
+
fs.copyFileSync(specPath, archivePath);
|
|
360
|
+
const archiveChecksum = computeFileChecksum(archivePath);
|
|
361
|
+
if (checksum !== archiveChecksum) {
|
|
362
|
+
fs.unlinkSync(archivePath);
|
|
363
|
+
throw new Error('Checksum mismatch after copy - archive removed, original preserved');
|
|
364
|
+
}
|
|
365
|
+
// Checksum verified - safe to remove original
|
|
366
|
+
fs.unlinkSync(specPath);
|
|
367
|
+
results.push({
|
|
368
|
+
filename,
|
|
369
|
+
source_path: specPath,
|
|
370
|
+
archive_path: archivePath,
|
|
371
|
+
size_bytes: fileSize,
|
|
372
|
+
checksum: `sha256:${checksum}`,
|
|
373
|
+
archived_at: new Date().toISOString(),
|
|
374
|
+
archive_mode: 'local',
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
if (!options.json) {
|
|
378
|
+
console.log(chalk_1.default.green(` ✓ ${filename}`));
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
catch (err) {
|
|
382
|
+
errors.push({ filename, error: err.message || String(err) });
|
|
383
|
+
if (!options.json) {
|
|
384
|
+
console.error(chalk_1.default.red(` ✗ ${filename}: ${err.message || err}`));
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (options.json) {
|
|
389
|
+
console.log(JSON.stringify({
|
|
390
|
+
status: errors.length === 0
|
|
391
|
+
? 'success'
|
|
392
|
+
: results.length > 0
|
|
393
|
+
? 'partial'
|
|
394
|
+
: 'error',
|
|
395
|
+
data: {
|
|
396
|
+
archived: results,
|
|
397
|
+
errors: errors.length > 0 ? errors : undefined,
|
|
398
|
+
summary: {
|
|
399
|
+
total: matchingSpecs.length,
|
|
400
|
+
archived: results.length,
|
|
401
|
+
failed: errors.length,
|
|
402
|
+
archive_mode: archiveMode,
|
|
403
|
+
},
|
|
404
|
+
},
|
|
405
|
+
}, null, 2));
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
console.log('');
|
|
409
|
+
console.log(`${chalk_1.default.green(String(results.length))} archived, ` +
|
|
410
|
+
`${errors.length > 0 ? chalk_1.default.red(String(errors.length)) : '0'} failed`);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
catch (error) {
|
|
414
|
+
(0, errors_1.handleError)(error, options);
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
//# sourceMappingURL=spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../src/commands/spec/spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/commands/spec/template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,yBAAyB,IAAI,OAAO,CAsBnD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Template operations for specification management
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.createTemplateListCommand = createTemplateListCommand;
|
|
10
|
+
const commander_1 = require("commander");
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const factory_1 = require("../../sdk/factory");
|
|
13
|
+
const errors_1 = require("../../utils/errors");
|
|
14
|
+
function createTemplateListCommand() {
|
|
15
|
+
return new commander_1.Command('template-list')
|
|
16
|
+
.description('List available specification templates')
|
|
17
|
+
.option('--json', 'Output as JSON')
|
|
18
|
+
.action(async (options) => {
|
|
19
|
+
try {
|
|
20
|
+
const specManager = await (0, factory_1.getSpecManager)();
|
|
21
|
+
const templates = specManager.getTemplates();
|
|
22
|
+
if (options.json) {
|
|
23
|
+
console.log(JSON.stringify({ status: 'success', data: templates }, null, 2));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
console.log(chalk_1.default.bold('Available Templates:'));
|
|
27
|
+
templates.forEach((template) => {
|
|
28
|
+
console.log(`\n${chalk_1.default.green(template.name)}`);
|
|
29
|
+
console.log(chalk_1.default.gray(` ${template.description}`));
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
(0, errors_1.handleError)(error, options);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/commands/spec/template.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAOH,8DAsBC;AA3BD,yCAAoC;AACpC,kDAA0B;AAC1B,+CAAmD;AACnD,+CAAiD;AAEjD,SAAgB,yBAAyB;IACvC,OAAO,IAAI,mBAAO,CAAC,eAAe,CAAC;SAChC,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAc,GAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;YAE7C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAChD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;oBAClC,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,oBAAW,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fractary/core-cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.15",
|
|
4
4
|
"description": "CLI for Fractary Core SDK - work tracking, repository management, specifications, logging, file storage, and documentation",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"author": "Fractary Team",
|
|
45
45
|
"license": "MIT",
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@fractary/core": "^0.7.
|
|
47
|
+
"@fractary/core": "^0.7.9",
|
|
48
48
|
"chalk": "^5.3.0",
|
|
49
49
|
"cli-table3": "^0.6.5",
|
|
50
50
|
"commander": "^11.1.0",
|