@specsafe/cli 0.6.0 → 0.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.
- package/dist/commands/capsule.d.ts +8 -0
- package/dist/commands/capsule.d.ts.map +1 -0
- package/dist/commands/capsule.js +466 -0
- package/dist/commands/capsule.js.map +1 -0
- package/dist/commands/export.d.ts +7 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +179 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/memory.d.ts +3 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +166 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/new.d.ts.map +1 -1
- package/dist/commands/new.js +66 -1
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/shard.d.ts +6 -0
- package/dist/commands/shard.d.ts.map +1 -0
- package/dist/commands/shard.js +199 -0
- package/dist/commands/shard.js.map +1 -0
- package/dist/commands/test-guide.d.ts +3 -0
- package/dist/commands/test-guide.d.ts.map +1 -0
- package/dist/commands/test-guide.js +190 -0
- package/dist/commands/test-guide.js.map +1 -0
- package/dist/commands/test-report.d.ts +3 -0
- package/dist/commands/test-report.d.ts.map +1 -0
- package/dist/commands/test-report.js +196 -0
- package/dist/commands/test-report.js.map +1 -0
- package/dist/commands/test-submit.d.ts +6 -0
- package/dist/commands/test-submit.d.ts.map +1 -0
- package/dist/commands/test-submit.js +236 -0
- package/dist/commands/test-submit.js.map +1 -0
- package/dist/index.js +19 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capsule.d.ts","sourceRoot":"","sources":["../../src/commands/capsule.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,eAAO,MAAM,cAAc,SAQzB,CAAC"}
|
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Capsule Command
|
|
4
|
+
* Manage story context capsules for specs
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { input, select, confirm } from '@inquirer/prompts';
|
|
9
|
+
import { writeFile } from 'fs/promises';
|
|
10
|
+
import { CapsuleManager, getTemplate, getTemplateChoices, isValidTemplateType, formatContent, TEMPLATE_NAMES, validateSpecId, validateTitle, validateAuthor, validateTags, } from '@specsafe/core';
|
|
11
|
+
export const capsuleCommand = new Command('capsule')
|
|
12
|
+
.description('Manage story context capsules for specs')
|
|
13
|
+
.addHelpText('after', `
|
|
14
|
+
Examples:
|
|
15
|
+
specsafe capsule add specs/checkout.md --type user-story
|
|
16
|
+
specsafe capsule list specs/checkout.md
|
|
17
|
+
specsafe capsule show specs/checkout.md capsule-abc123
|
|
18
|
+
specsafe capsule export specs/checkout.md
|
|
19
|
+
`);
|
|
20
|
+
// Add subcommand
|
|
21
|
+
capsuleCommand
|
|
22
|
+
.command('add')
|
|
23
|
+
.description('Add a new context capsule to a spec')
|
|
24
|
+
.argument('<spec>', 'Spec ID or path (e.g., specs/checkout.md)')
|
|
25
|
+
.option('-t, --type <type>', 'Capsule type (user-story, technical-context, business-justification, discovery-note)')
|
|
26
|
+
.option('--title <title>', 'Capsule title')
|
|
27
|
+
.option('--author <author>', 'Author name')
|
|
28
|
+
.action(async (spec, options) => {
|
|
29
|
+
try {
|
|
30
|
+
// Validate spec ID early to catch errors
|
|
31
|
+
try {
|
|
32
|
+
validateSpecId(spec);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid spec ID'}`));
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
const manager = new CapsuleManager();
|
|
39
|
+
// Determine capsule type
|
|
40
|
+
let type;
|
|
41
|
+
if (options.type) {
|
|
42
|
+
if (!isValidTemplateType(options.type)) {
|
|
43
|
+
console.error(chalk.red(`Error: Invalid capsule type: ${options.type}`));
|
|
44
|
+
console.log(chalk.gray(`\nValid types: user-story, technical-context, business-justification, discovery-note`));
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
type = options.type;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
type = await select({
|
|
51
|
+
message: 'Select capsule type:',
|
|
52
|
+
choices: getTemplateChoices(),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const template = getTemplate(type);
|
|
56
|
+
console.log(chalk.blue(`\n${template.name}`));
|
|
57
|
+
console.log(chalk.gray(template.description));
|
|
58
|
+
console.log('');
|
|
59
|
+
// Get title with validation
|
|
60
|
+
let title = options.title || '';
|
|
61
|
+
if (!title) {
|
|
62
|
+
title = await input({
|
|
63
|
+
message: 'Title:',
|
|
64
|
+
validate: (value) => {
|
|
65
|
+
try {
|
|
66
|
+
validateTitle(value);
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
return error instanceof Error ? error.message : 'Invalid title';
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
try {
|
|
77
|
+
title = validateTitle(title);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid title'}`));
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Get author with validation
|
|
85
|
+
let author = options.author || '';
|
|
86
|
+
if (!author) {
|
|
87
|
+
author = await input({
|
|
88
|
+
message: 'Author:',
|
|
89
|
+
default: process.env.USER || 'unknown',
|
|
90
|
+
validate: (value) => {
|
|
91
|
+
try {
|
|
92
|
+
validateAuthor(value);
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
return error instanceof Error ? error.message : 'Invalid author';
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
try {
|
|
103
|
+
author = validateAuthor(author);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid author'}`));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Get content from template fields
|
|
111
|
+
const fields = {};
|
|
112
|
+
for (const field of template.fields) {
|
|
113
|
+
const value = await input({
|
|
114
|
+
message: field.label + ':',
|
|
115
|
+
default: field.placeholder || '',
|
|
116
|
+
});
|
|
117
|
+
fields[field.name] = value;
|
|
118
|
+
}
|
|
119
|
+
// Get tags (optional)
|
|
120
|
+
const tagInput = await input({
|
|
121
|
+
message: 'Tags (comma-separated, optional):',
|
|
122
|
+
default: '',
|
|
123
|
+
});
|
|
124
|
+
const tagsRaw = tagInput
|
|
125
|
+
.split(',')
|
|
126
|
+
.map((t) => t.trim())
|
|
127
|
+
.filter((t) => t.length > 0);
|
|
128
|
+
// Validate tags
|
|
129
|
+
let tags = [];
|
|
130
|
+
try {
|
|
131
|
+
tags = validateTags(tagsRaw);
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid tags'}`));
|
|
135
|
+
process.exit(1);
|
|
136
|
+
}
|
|
137
|
+
// Confirm
|
|
138
|
+
console.log('');
|
|
139
|
+
console.log(chalk.blue('Preview:'));
|
|
140
|
+
console.log(chalk.cyan(`Type: ${TEMPLATE_NAMES[type]}`));
|
|
141
|
+
console.log(chalk.cyan(`Title: ${title}`));
|
|
142
|
+
console.log(chalk.cyan(`Author: ${author}`));
|
|
143
|
+
if (tags.length > 0) {
|
|
144
|
+
console.log(chalk.cyan(`Tags: ${tags.join(', ')}`));
|
|
145
|
+
}
|
|
146
|
+
console.log('');
|
|
147
|
+
const confirmed = await confirm({
|
|
148
|
+
message: 'Create this capsule?',
|
|
149
|
+
default: true,
|
|
150
|
+
});
|
|
151
|
+
if (!confirmed) {
|
|
152
|
+
console.log(chalk.yellow('Cancelled.'));
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
// Create capsule
|
|
156
|
+
const content = formatContent(type, fields);
|
|
157
|
+
const capsule = await manager.add(spec, {
|
|
158
|
+
type,
|
|
159
|
+
title,
|
|
160
|
+
content,
|
|
161
|
+
author,
|
|
162
|
+
tags,
|
|
163
|
+
});
|
|
164
|
+
console.log('');
|
|
165
|
+
console.log(chalk.green(`✓ Created capsule: ${capsule.id}`));
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Failed to create capsule'}`));
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
// List subcommand
|
|
173
|
+
capsuleCommand
|
|
174
|
+
.command('list')
|
|
175
|
+
.description('List all capsules for a spec')
|
|
176
|
+
.argument('<spec>', 'Spec ID or path (e.g., specs/checkout.md)')
|
|
177
|
+
.option('-t, --type <types...>', 'Filter by type(s)')
|
|
178
|
+
.option('--tag <tags...>', 'Filter by tag(s)')
|
|
179
|
+
.option('--author <author>', 'Filter by author')
|
|
180
|
+
.action(async (spec, options) => {
|
|
181
|
+
try {
|
|
182
|
+
// Validate spec ID
|
|
183
|
+
try {
|
|
184
|
+
validateSpecId(spec);
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid spec ID'}`));
|
|
188
|
+
process.exit(1);
|
|
189
|
+
}
|
|
190
|
+
const manager = new CapsuleManager();
|
|
191
|
+
// Validate types if provided
|
|
192
|
+
if (options.type) {
|
|
193
|
+
for (const t of options.type) {
|
|
194
|
+
if (!isValidTemplateType(t)) {
|
|
195
|
+
console.error(chalk.red(`Error: Invalid capsule type: ${t}`));
|
|
196
|
+
process.exit(1);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
const filter = {
|
|
201
|
+
types: options.type,
|
|
202
|
+
tags: options.tag,
|
|
203
|
+
author: options.author,
|
|
204
|
+
};
|
|
205
|
+
const capsules = await manager.list(spec, filter);
|
|
206
|
+
if (capsules.length === 0) {
|
|
207
|
+
console.log(chalk.yellow('No capsules found for this spec.'));
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
console.log('');
|
|
211
|
+
console.log(chalk.blue(`Capsules for ${spec}:`));
|
|
212
|
+
console.log(chalk.gray(`Total: ${capsules.length}`));
|
|
213
|
+
console.log('');
|
|
214
|
+
// Group by type
|
|
215
|
+
const byType = {};
|
|
216
|
+
for (const capsule of capsules) {
|
|
217
|
+
if (!byType[capsule.type]) {
|
|
218
|
+
byType[capsule.type] = [];
|
|
219
|
+
}
|
|
220
|
+
byType[capsule.type].push(capsule);
|
|
221
|
+
}
|
|
222
|
+
for (const [type, typeCapsules] of Object.entries(byType)) {
|
|
223
|
+
console.log(chalk.cyan(`\n[${type}]`));
|
|
224
|
+
for (const capsule of typeCapsules) {
|
|
225
|
+
console.log(` ${chalk.white(capsule.title)}`);
|
|
226
|
+
console.log(` ${chalk.gray(capsule.id)}`);
|
|
227
|
+
console.log(` ${chalk.gray(`by ${capsule.author} on ${new Date(capsule.createdAt).toLocaleDateString()}`)}`);
|
|
228
|
+
if (capsule.tags.length > 0) {
|
|
229
|
+
console.log(` ${chalk.gray(`tags: ${capsule.tags.join(', ')}`)}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Failed to list capsules'}`));
|
|
236
|
+
process.exit(1);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
// Show subcommand
|
|
240
|
+
capsuleCommand
|
|
241
|
+
.command('show')
|
|
242
|
+
.description('View a specific capsule')
|
|
243
|
+
.argument('<spec>', 'Spec ID or path')
|
|
244
|
+
.argument('<capsule-id>', 'Capsule ID')
|
|
245
|
+
.action(async (spec, capsuleId) => {
|
|
246
|
+
try {
|
|
247
|
+
// Validate spec ID
|
|
248
|
+
try {
|
|
249
|
+
validateSpecId(spec);
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid spec ID'}`));
|
|
253
|
+
process.exit(1);
|
|
254
|
+
}
|
|
255
|
+
// Validate capsule ID format
|
|
256
|
+
if (!capsuleId || typeof capsuleId !== 'string' || capsuleId.length === 0) {
|
|
257
|
+
console.error(chalk.red('Error: Invalid capsule ID'));
|
|
258
|
+
process.exit(1);
|
|
259
|
+
}
|
|
260
|
+
const manager = new CapsuleManager();
|
|
261
|
+
const capsule = await manager.get(spec, capsuleId);
|
|
262
|
+
if (!capsule) {
|
|
263
|
+
console.error(chalk.red(`Error: Capsule not found: ${capsuleId}`));
|
|
264
|
+
process.exit(1);
|
|
265
|
+
}
|
|
266
|
+
console.log('');
|
|
267
|
+
console.log(chalk.cyan.bold(capsule.title));
|
|
268
|
+
console.log(chalk.gray('─'.repeat(50)));
|
|
269
|
+
console.log(`${chalk.blue('Type:')} ${TEMPLATE_NAMES[capsule.type]}`);
|
|
270
|
+
console.log(`${chalk.blue('ID:')} ${capsule.id}`);
|
|
271
|
+
console.log(`${chalk.blue('Author:')} ${capsule.author}`);
|
|
272
|
+
console.log(`${chalk.blue('Created:')} ${new Date(capsule.createdAt).toLocaleString()}`);
|
|
273
|
+
if (capsule.tags.length > 0) {
|
|
274
|
+
console.log(`${chalk.blue('Tags:')} ${capsule.tags.join(', ')}`);
|
|
275
|
+
}
|
|
276
|
+
console.log('');
|
|
277
|
+
console.log(capsule.content);
|
|
278
|
+
console.log('');
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Failed to show capsule'}`));
|
|
282
|
+
process.exit(1);
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
// Remove subcommand
|
|
286
|
+
capsuleCommand
|
|
287
|
+
.command('remove')
|
|
288
|
+
.description('Remove a capsule')
|
|
289
|
+
.argument('<spec>', 'Spec ID or path')
|
|
290
|
+
.argument('<capsule-id>', 'Capsule ID')
|
|
291
|
+
.option('-y, --yes', 'Skip confirmation')
|
|
292
|
+
.action(async (spec, capsuleId, options) => {
|
|
293
|
+
try {
|
|
294
|
+
// Validate spec ID
|
|
295
|
+
try {
|
|
296
|
+
validateSpecId(spec);
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid spec ID'}`));
|
|
300
|
+
process.exit(1);
|
|
301
|
+
}
|
|
302
|
+
// Validate capsule ID format
|
|
303
|
+
if (!capsuleId || typeof capsuleId !== 'string' || capsuleId.length === 0) {
|
|
304
|
+
console.error(chalk.red('Error: Invalid capsule ID'));
|
|
305
|
+
process.exit(1);
|
|
306
|
+
}
|
|
307
|
+
const manager = new CapsuleManager();
|
|
308
|
+
const capsule = await manager.get(spec, capsuleId);
|
|
309
|
+
if (!capsule) {
|
|
310
|
+
console.error(chalk.red(`Error: Capsule not found: ${capsuleId}`));
|
|
311
|
+
process.exit(1);
|
|
312
|
+
}
|
|
313
|
+
let confirmed = options.yes;
|
|
314
|
+
if (!confirmed) {
|
|
315
|
+
confirmed = await confirm({
|
|
316
|
+
message: `Delete "${capsule.title}"?`,
|
|
317
|
+
default: false,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
if (!confirmed) {
|
|
321
|
+
console.log(chalk.yellow('Cancelled.'));
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
const removed = await manager.remove(spec, capsuleId);
|
|
325
|
+
if (removed) {
|
|
326
|
+
console.log(chalk.green(`✓ Removed capsule: ${capsuleId}`));
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
console.error(chalk.red(`Failed to remove capsule: ${capsuleId}`));
|
|
330
|
+
process.exit(1);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Failed to remove capsule'}`));
|
|
335
|
+
process.exit(1);
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
// Export subcommand
|
|
339
|
+
capsuleCommand
|
|
340
|
+
.command('export')
|
|
341
|
+
.description('Export capsules to markdown')
|
|
342
|
+
.argument('<spec>', 'Spec ID or path')
|
|
343
|
+
.option('-o, --output <file>', 'Output file (default: prints to stdout)')
|
|
344
|
+
.action(async (spec, options) => {
|
|
345
|
+
try {
|
|
346
|
+
// Validate spec ID
|
|
347
|
+
try {
|
|
348
|
+
validateSpecId(spec);
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid spec ID'}`));
|
|
352
|
+
process.exit(1);
|
|
353
|
+
}
|
|
354
|
+
// Validate output path if provided
|
|
355
|
+
if (options.output) {
|
|
356
|
+
if (typeof options.output !== 'string' || options.output.length === 0) {
|
|
357
|
+
console.error(chalk.red('Error: Invalid output path'));
|
|
358
|
+
process.exit(1);
|
|
359
|
+
}
|
|
360
|
+
// Security: Prevent path traversal in output path
|
|
361
|
+
const normalized = options.output.replace(/\\/g, '/');
|
|
362
|
+
if (normalized.includes('..')) {
|
|
363
|
+
console.error(chalk.red('Error: Output path cannot contain path traversal sequences'));
|
|
364
|
+
process.exit(1);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
const manager = new CapsuleManager();
|
|
368
|
+
const markdown = await manager.exportToMarkdown(spec);
|
|
369
|
+
if (options.output) {
|
|
370
|
+
await writeFile(options.output, markdown, 'utf-8');
|
|
371
|
+
console.log(chalk.green(`✓ Exported to ${options.output}`));
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
console.log(markdown);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
catch (error) {
|
|
378
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Failed to export capsules'}`));
|
|
379
|
+
process.exit(1);
|
|
380
|
+
}
|
|
381
|
+
});
|
|
382
|
+
// Edit subcommand
|
|
383
|
+
capsuleCommand
|
|
384
|
+
.command('edit')
|
|
385
|
+
.description('Edit an existing capsule')
|
|
386
|
+
.argument('<spec>', 'Spec ID or path')
|
|
387
|
+
.argument('<capsule-id>', 'Capsule ID')
|
|
388
|
+
.action(async (spec, capsuleId) => {
|
|
389
|
+
try {
|
|
390
|
+
// Validate spec ID
|
|
391
|
+
try {
|
|
392
|
+
validateSpecId(spec);
|
|
393
|
+
}
|
|
394
|
+
catch (error) {
|
|
395
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid spec ID'}`));
|
|
396
|
+
process.exit(1);
|
|
397
|
+
}
|
|
398
|
+
// Validate capsule ID format
|
|
399
|
+
if (!capsuleId || typeof capsuleId !== 'string' || capsuleId.length === 0) {
|
|
400
|
+
console.error(chalk.red('Error: Invalid capsule ID'));
|
|
401
|
+
process.exit(1);
|
|
402
|
+
}
|
|
403
|
+
const manager = new CapsuleManager();
|
|
404
|
+
const capsule = await manager.get(spec, capsuleId);
|
|
405
|
+
if (!capsule) {
|
|
406
|
+
console.error(chalk.red(`Error: Capsule not found: ${capsuleId}`));
|
|
407
|
+
process.exit(1);
|
|
408
|
+
}
|
|
409
|
+
console.log(chalk.blue('Editing capsule (leave blank to keep current value)'));
|
|
410
|
+
console.log('');
|
|
411
|
+
const titleInput = await input({
|
|
412
|
+
message: 'Title:',
|
|
413
|
+
default: capsule.title,
|
|
414
|
+
});
|
|
415
|
+
const title = titleInput || capsule.title;
|
|
416
|
+
const authorInput = await input({
|
|
417
|
+
message: 'Author:',
|
|
418
|
+
default: capsule.author,
|
|
419
|
+
});
|
|
420
|
+
const author = authorInput || capsule.author;
|
|
421
|
+
const tagInput = await input({
|
|
422
|
+
message: 'Tags (comma-separated):',
|
|
423
|
+
default: capsule.tags.join(', '),
|
|
424
|
+
});
|
|
425
|
+
const tagsRaw = tagInput
|
|
426
|
+
.split(',')
|
|
427
|
+
.map((t) => t.trim())
|
|
428
|
+
.filter((t) => t.length > 0);
|
|
429
|
+
// Validate inputs
|
|
430
|
+
let validatedTitle;
|
|
431
|
+
let validatedAuthor;
|
|
432
|
+
let validatedTags;
|
|
433
|
+
try {
|
|
434
|
+
validatedTitle = validateTitle(title);
|
|
435
|
+
validatedAuthor = validateAuthor(author);
|
|
436
|
+
validatedTags = validateTags(tagsRaw.length > 0 ? tagsRaw : capsule.tags);
|
|
437
|
+
}
|
|
438
|
+
catch (error) {
|
|
439
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Invalid input'}`));
|
|
440
|
+
process.exit(1);
|
|
441
|
+
}
|
|
442
|
+
const contentInput = await input({
|
|
443
|
+
message: 'Content:',
|
|
444
|
+
default: capsule.content,
|
|
445
|
+
});
|
|
446
|
+
const content = contentInput || capsule.content;
|
|
447
|
+
const updated = await manager.update(spec, capsuleId, {
|
|
448
|
+
title: validatedTitle,
|
|
449
|
+
author: validatedAuthor,
|
|
450
|
+
tags: validatedTags,
|
|
451
|
+
content,
|
|
452
|
+
});
|
|
453
|
+
if (updated) {
|
|
454
|
+
console.log(chalk.green(`✓ Updated capsule: ${capsuleId}`));
|
|
455
|
+
}
|
|
456
|
+
else {
|
|
457
|
+
console.error(chalk.red(`Failed to update capsule: ${capsuleId}`));
|
|
458
|
+
process.exit(1);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
catch (error) {
|
|
462
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : 'Failed to edit capsule'}`));
|
|
463
|
+
process.exit(1);
|
|
464
|
+
}
|
|
465
|
+
});
|
|
466
|
+
//# sourceMappingURL=capsule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capsule.js","sourceRoot":"","sources":["../../src/commands/capsule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,eAAO,MAAM,aAAa,SAyFtB,CAAC"}
|