@specforge/mcp 2.5.0 → 2.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 +45 -45
- package/bin/specforge-mcp +5 -0
- package/dist/cli/commands/blocked.js +6 -6
- package/dist/cli/commands/blocked.js.map +1 -1
- package/dist/cli/commands/blueprints.js +1 -1
- package/dist/cli/commands/blueprints.js.map +1 -1
- package/dist/cli/commands/configure.js +6 -6
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/debug/call.js +3 -3
- package/dist/cli/commands/debug/call.js.map +1 -1
- package/dist/cli/commands/debug/register.js +11 -11
- package/dist/cli/commands/debug/test.js +1 -1
- package/dist/cli/commands/debug/test.js.map +1 -1
- package/dist/cli/commands/debug/tools.js +1 -1
- package/dist/cli/commands/debug/tools.js.map +1 -1
- package/dist/cli/commands/docs/content/api.js +3 -3
- package/dist/cli/commands/docs/content/examples.js +12 -12
- package/dist/cli/commands/docs/content/workflow.js +2 -2
- package/dist/cli/commands/docs/display.js +4 -4
- package/dist/cli/commands/docs/display.js.map +1 -1
- package/dist/cli/commands/docs/docs.js +3 -3
- package/dist/cli/commands/docs/docs.js.map +1 -1
- package/dist/cli/commands/docs/tool-docs.js +2 -2
- package/dist/cli/commands/docs/tool-docs.js.map +1 -1
- package/dist/cli/commands/doctor.js +2 -2
- package/dist/cli/commands/doctor.types.d.ts +7 -7
- package/dist/cli/commands/doctor.types.js +7 -7
- package/dist/cli/commands/doctor.types.js.map +1 -1
- package/dist/cli/commands/feedback.js +5 -5
- package/dist/cli/commands/index.d.ts +2 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.js +8 -8
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/invitations.d.ts +31 -0
- package/dist/cli/commands/invitations.d.ts.map +1 -0
- package/dist/cli/commands/invitations.js +256 -0
- package/dist/cli/commands/invitations.js.map +1 -0
- package/dist/cli/commands/login.js +6 -6
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/members.d.ts +55 -0
- package/dist/cli/commands/members.d.ts.map +1 -0
- package/dist/cli/commands/members.js +308 -0
- package/dist/cli/commands/members.js.map +1 -0
- package/dist/cli/commands/next.js +10 -10
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/projects.js +6 -6
- package/dist/cli/commands/projects.js.map +1 -1
- package/dist/cli/commands/review/review.js +8 -8
- package/dist/cli/commands/review/review.js.map +1 -1
- package/dist/cli/commands/scaffold/scaffold.js +2 -2
- package/dist/cli/commands/scaffold/scaffold.js.map +1 -1
- package/dist/cli/commands/session/display.js +1 -1
- package/dist/cli/commands/session/display.js.map +1 -1
- package/dist/cli/commands/session/end.js +6 -6
- package/dist/cli/commands/session/end.js.map +1 -1
- package/dist/cli/commands/session/register.js +12 -12
- package/dist/cli/commands/session/start.js +6 -6
- package/dist/cli/commands/session/start.js.map +1 -1
- package/dist/cli/commands/session/status.js +1 -1
- package/dist/cli/commands/session/status.js.map +1 -1
- package/dist/cli/commands/specs.js +9 -9
- package/dist/cli/commands/specs.js.map +1 -1
- package/dist/cli/commands/status.js +11 -11
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/switch.js +10 -10
- package/dist/cli/commands/switch.js.map +1 -1
- package/dist/cli/commands/ticket/command.js +5 -5
- package/dist/cli/commands/ticket/command.js.map +1 -1
- package/dist/cli/commands/ticket/register.js +4 -4
- package/dist/cli/commands/ticket/resolver.js +1 -1
- package/dist/cli/commands/ticket/resolver.js.map +1 -1
- package/dist/cli/commands/tickets.js +11 -11
- package/dist/cli/commands/tickets.js.map +1 -1
- package/dist/cli/config/loader.d.ts +1 -1
- package/dist/cli/config/loader.js +1 -1
- package/dist/cli/config/types.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +10 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/middleware/auth-guard.js +1 -1
- package/dist/cli/middleware/auth-guard.js.map +1 -1
- package/dist/cli/middleware/error-handler.js +1 -1
- package/dist/cli/middleware/error-handler.js.map +1 -1
- package/dist/cli/ui/dashboard.js +1 -1
- package/dist/cli/ui/dashboard.js.map +1 -1
- package/dist/cli/ui/output.d.ts +2 -2
- package/dist/cli/ui/output.js +2 -2
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/core/workflow-guide.js +1 -1
- package/dist/tools/core/workflow-guide.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +136 -0
- package/dist/tools/index.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Members Command
|
|
3
|
+
*
|
|
4
|
+
* Manage project members - list, add, remove, and update roles.
|
|
5
|
+
*/
|
|
6
|
+
import ora from 'ora';
|
|
7
|
+
import Table from 'cli-table3';
|
|
8
|
+
import { resolveConfig } from '../config/index.js';
|
|
9
|
+
import { withErrorHandler, CliError, NetworkError } from '../middleware/error-handler.js';
|
|
10
|
+
import { printBlank, printHeader } from '../ui/output.js';
|
|
11
|
+
import { colors } from '../ui/colors.js';
|
|
12
|
+
import { ApiClient } from '../../client/api-client.js';
|
|
13
|
+
/**
|
|
14
|
+
* Get role badge with color
|
|
15
|
+
*/
|
|
16
|
+
function getRoleBadge(role) {
|
|
17
|
+
switch (role) {
|
|
18
|
+
case 'owner':
|
|
19
|
+
return colors.warning('owner');
|
|
20
|
+
case 'editor':
|
|
21
|
+
return colors.primary('editor');
|
|
22
|
+
case 'viewer':
|
|
23
|
+
return colors.muted('viewer');
|
|
24
|
+
default:
|
|
25
|
+
return role;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get status badge with color
|
|
30
|
+
*/
|
|
31
|
+
function getStatusBadge(status) {
|
|
32
|
+
switch (status) {
|
|
33
|
+
case 'accepted':
|
|
34
|
+
return colors.success('active');
|
|
35
|
+
case 'pending':
|
|
36
|
+
return colors.warning('pending');
|
|
37
|
+
case 'declined':
|
|
38
|
+
return colors.error('declined');
|
|
39
|
+
default:
|
|
40
|
+
return status;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Display members as table
|
|
45
|
+
*/
|
|
46
|
+
function displayMembersTable(response) {
|
|
47
|
+
printBlank();
|
|
48
|
+
printHeader(`Members - ${response.projectName}`);
|
|
49
|
+
printBlank();
|
|
50
|
+
const table = new Table({
|
|
51
|
+
head: [
|
|
52
|
+
colors.muted('EMAIL'),
|
|
53
|
+
colors.muted('ROLE'),
|
|
54
|
+
colors.muted('STATUS'),
|
|
55
|
+
],
|
|
56
|
+
style: { head: [], border: [] },
|
|
57
|
+
chars: {
|
|
58
|
+
'top': '', 'top-mid': '', 'top-left': '', 'top-right': '',
|
|
59
|
+
'bottom': '', 'bottom-mid': '', 'bottom-left': '', 'bottom-right': '',
|
|
60
|
+
'left': '', 'left-mid': '', 'mid': '', 'mid-mid': '',
|
|
61
|
+
'right': '', 'right-mid': '', 'middle': ' ',
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
// Add owner
|
|
65
|
+
table.push([
|
|
66
|
+
response.owner.email,
|
|
67
|
+
getRoleBadge('owner'),
|
|
68
|
+
getStatusBadge('accepted'),
|
|
69
|
+
]);
|
|
70
|
+
// Add members
|
|
71
|
+
for (const member of response.members.filter(m => m.status !== 'declined')) {
|
|
72
|
+
table.push([
|
|
73
|
+
member.email,
|
|
74
|
+
getRoleBadge(member.role),
|
|
75
|
+
getStatusBadge(member.status),
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
78
|
+
// Add pending invitations
|
|
79
|
+
for (const inv of response.pendingInvitations) {
|
|
80
|
+
table.push([
|
|
81
|
+
inv.email,
|
|
82
|
+
getRoleBadge(inv.role),
|
|
83
|
+
colors.warning('invited'),
|
|
84
|
+
]);
|
|
85
|
+
}
|
|
86
|
+
console.log(table.toString());
|
|
87
|
+
printBlank();
|
|
88
|
+
console.log(colors.muted(`Total: ${response.totalMembers} member(s)`));
|
|
89
|
+
printBlank();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Display empty state
|
|
93
|
+
*/
|
|
94
|
+
function displayEmptyState() {
|
|
95
|
+
printBlank();
|
|
96
|
+
console.log(colors.muted('No additional members.'));
|
|
97
|
+
console.log(colors.muted('Use `specforge members add <email>` to invite someone.'));
|
|
98
|
+
printBlank();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* List members action handler
|
|
102
|
+
*/
|
|
103
|
+
export async function membersListAction(options) {
|
|
104
|
+
const config = resolveConfig();
|
|
105
|
+
if (!config.apiKey) {
|
|
106
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
107
|
+
}
|
|
108
|
+
const projectId = options.project || config.projectId;
|
|
109
|
+
if (!projectId) {
|
|
110
|
+
throw new CliError('No project specified', 1, 'Use --project <id> or run `specforge init` to set a default project');
|
|
111
|
+
}
|
|
112
|
+
const spinner = ora({
|
|
113
|
+
text: 'Fetching members...',
|
|
114
|
+
color: 'cyan',
|
|
115
|
+
}).start();
|
|
116
|
+
try {
|
|
117
|
+
const client = new ApiClient({
|
|
118
|
+
apiKey: config.apiKey,
|
|
119
|
+
apiUrl: config.apiUrl,
|
|
120
|
+
debug: config.debug,
|
|
121
|
+
});
|
|
122
|
+
const response = await client.call('list_project_members', {
|
|
123
|
+
projectId,
|
|
124
|
+
});
|
|
125
|
+
spinner.stop();
|
|
126
|
+
if (options.json) {
|
|
127
|
+
console.log(JSON.stringify(response, null, 2));
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (response.members.length === 0 && response.pendingInvitations.length === 0) {
|
|
131
|
+
displayEmptyState();
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
displayMembersTable(response);
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
spinner.fail('Failed to fetch members');
|
|
138
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
139
|
+
throw new NetworkError(`Failed to fetch members: ${message}`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Add member action handler
|
|
144
|
+
*/
|
|
145
|
+
export async function membersAddAction(email, options) {
|
|
146
|
+
const config = resolveConfig();
|
|
147
|
+
if (!config.apiKey) {
|
|
148
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
149
|
+
}
|
|
150
|
+
const projectId = options.project || config.projectId;
|
|
151
|
+
if (!projectId) {
|
|
152
|
+
throw new CliError('No project specified', 1, 'Use --project <id> or run `specforge init` to set a default project');
|
|
153
|
+
}
|
|
154
|
+
const spinner = ora({
|
|
155
|
+
text: `Inviting ${email}...`,
|
|
156
|
+
color: 'cyan',
|
|
157
|
+
}).start();
|
|
158
|
+
try {
|
|
159
|
+
const client = new ApiClient({
|
|
160
|
+
apiKey: config.apiKey,
|
|
161
|
+
apiUrl: config.apiUrl,
|
|
162
|
+
debug: config.debug,
|
|
163
|
+
});
|
|
164
|
+
const response = await client.call('invite_to_project', {
|
|
165
|
+
projectId,
|
|
166
|
+
email,
|
|
167
|
+
role: options.role || 'editor',
|
|
168
|
+
message: options.message,
|
|
169
|
+
});
|
|
170
|
+
spinner.succeed(`Invited ${email} as ${response.role}`);
|
|
171
|
+
printBlank();
|
|
172
|
+
console.log(colors.muted(response.message));
|
|
173
|
+
printBlank();
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
spinner.fail(`Failed to invite ${email}`);
|
|
177
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
178
|
+
throw new NetworkError(`Failed to invite: ${message}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Remove member action handler
|
|
183
|
+
*/
|
|
184
|
+
export async function membersRemoveAction(emailOrId, options) {
|
|
185
|
+
const config = resolveConfig();
|
|
186
|
+
if (!config.apiKey) {
|
|
187
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
188
|
+
}
|
|
189
|
+
const projectId = options.project || config.projectId;
|
|
190
|
+
if (!projectId) {
|
|
191
|
+
throw new CliError('No project specified', 1, 'Use --project <id> or run `specforge init` to set a default project');
|
|
192
|
+
}
|
|
193
|
+
const spinner = ora({
|
|
194
|
+
text: `Removing ${emailOrId}...`,
|
|
195
|
+
color: 'cyan',
|
|
196
|
+
}).start();
|
|
197
|
+
try {
|
|
198
|
+
const client = new ApiClient({
|
|
199
|
+
apiKey: config.apiKey,
|
|
200
|
+
apiUrl: config.apiUrl,
|
|
201
|
+
debug: config.debug,
|
|
202
|
+
});
|
|
203
|
+
// Determine if it's an ID or needs lookup
|
|
204
|
+
const args = { projectId };
|
|
205
|
+
if (emailOrId.includes('@')) {
|
|
206
|
+
// It's an email - we need to find the member first
|
|
207
|
+
const members = await client.call('list_project_members', { projectId });
|
|
208
|
+
const member = members.members.find(m => m.email.toLowerCase() === emailOrId.toLowerCase());
|
|
209
|
+
if (!member) {
|
|
210
|
+
throw new Error(`Member with email ${emailOrId} not found`);
|
|
211
|
+
}
|
|
212
|
+
args.memberId = member.id;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// Assume it's a member ID
|
|
216
|
+
args.memberId = emailOrId;
|
|
217
|
+
}
|
|
218
|
+
const response = await client.call('remove_project_member', args);
|
|
219
|
+
spinner.succeed(response.message);
|
|
220
|
+
printBlank();
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
spinner.fail(`Failed to remove ${emailOrId}`);
|
|
224
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
225
|
+
throw new NetworkError(`Failed to remove member: ${message}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Update member role action handler
|
|
230
|
+
*/
|
|
231
|
+
export async function membersRoleAction(emailOrId, role, options) {
|
|
232
|
+
const config = resolveConfig();
|
|
233
|
+
if (!config.apiKey) {
|
|
234
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
235
|
+
}
|
|
236
|
+
if (role !== 'editor' && role !== 'viewer') {
|
|
237
|
+
throw new CliError('Invalid role', 1, 'Role must be "editor" or "viewer"');
|
|
238
|
+
}
|
|
239
|
+
const projectId = options.project || config.projectId;
|
|
240
|
+
if (!projectId) {
|
|
241
|
+
throw new CliError('No project specified', 1, 'Use --project <id> or run `specforge init` to set a default project');
|
|
242
|
+
}
|
|
243
|
+
const spinner = ora({
|
|
244
|
+
text: `Updating role for ${emailOrId}...`,
|
|
245
|
+
color: 'cyan',
|
|
246
|
+
}).start();
|
|
247
|
+
try {
|
|
248
|
+
const client = new ApiClient({
|
|
249
|
+
apiKey: config.apiKey,
|
|
250
|
+
apiUrl: config.apiUrl,
|
|
251
|
+
debug: config.debug,
|
|
252
|
+
});
|
|
253
|
+
// Find member ID if email provided
|
|
254
|
+
let memberId = emailOrId;
|
|
255
|
+
if (emailOrId.includes('@')) {
|
|
256
|
+
const members = await client.call('list_project_members', { projectId });
|
|
257
|
+
const member = members.members.find(m => m.email.toLowerCase() === emailOrId.toLowerCase());
|
|
258
|
+
if (!member) {
|
|
259
|
+
throw new Error(`Member with email ${emailOrId} not found`);
|
|
260
|
+
}
|
|
261
|
+
memberId = member.id;
|
|
262
|
+
}
|
|
263
|
+
const response = await client.call('update_member_role', {
|
|
264
|
+
projectId,
|
|
265
|
+
memberId,
|
|
266
|
+
role,
|
|
267
|
+
});
|
|
268
|
+
spinner.succeed(response.message);
|
|
269
|
+
printBlank();
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
spinner.fail(`Failed to update role for ${emailOrId}`);
|
|
273
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
274
|
+
throw new NetworkError(`Failed to update role: ${message}`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Register members command with Commander
|
|
279
|
+
*/
|
|
280
|
+
export function registerMembersCommand(program) {
|
|
281
|
+
const membersCmd = program
|
|
282
|
+
.command('members')
|
|
283
|
+
.description('Manage project members')
|
|
284
|
+
.option('--project <id>', 'Project ID (uses current project if not specified)')
|
|
285
|
+
.option('--json', 'Output as JSON')
|
|
286
|
+
.action(withErrorHandler(membersListAction));
|
|
287
|
+
// Add subcommand
|
|
288
|
+
membersCmd
|
|
289
|
+
.command('add <email>')
|
|
290
|
+
.description('Invite a user to the project')
|
|
291
|
+
.option('--project <id>', 'Project ID')
|
|
292
|
+
.option('--role <role>', 'Role to assign (editor or viewer)', 'editor')
|
|
293
|
+
.option('--message <msg>', 'Optional invitation message')
|
|
294
|
+
.action(withErrorHandler(membersAddAction));
|
|
295
|
+
// Remove subcommand
|
|
296
|
+
membersCmd
|
|
297
|
+
.command('remove <email-or-id>')
|
|
298
|
+
.description('Remove a member from the project')
|
|
299
|
+
.option('--project <id>', 'Project ID')
|
|
300
|
+
.action(withErrorHandler(membersRemoveAction));
|
|
301
|
+
// Role subcommand
|
|
302
|
+
membersCmd
|
|
303
|
+
.command('role <email-or-id> <role>')
|
|
304
|
+
.description('Update a member\'s role (editor or viewer)')
|
|
305
|
+
.option('--project <id>', 'Project ID')
|
|
306
|
+
.action(withErrorHandler(membersRoleAction));
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=members.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"members.js","sourceRoot":"","sources":["../../../src/cli/commands/members.ts"],"names":[],"mappings":"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"}
|
|
@@ -120,7 +120,7 @@ function displayTicketCard(ticket) {
|
|
|
120
120
|
// Bottom border
|
|
121
121
|
console.log(`└${border}┘`);
|
|
122
122
|
printBlank();
|
|
123
|
-
console.log(colors.muted('Start working? Run: specforge
|
|
123
|
+
console.log(colors.muted('Start working? Run: specforge session start'));
|
|
124
124
|
printBlank();
|
|
125
125
|
}
|
|
126
126
|
/**
|
|
@@ -165,7 +165,7 @@ function displayEmptyState() {
|
|
|
165
165
|
console.log(colors.muted('No actionable tickets found.'));
|
|
166
166
|
console.log(colors.muted('All tickets may be completed, blocked, or in progress.'));
|
|
167
167
|
printBlank();
|
|
168
|
-
console.log(colors.muted('Check status with: specforge
|
|
168
|
+
console.log(colors.muted('Check status with: specforge tickets'));
|
|
169
169
|
printBlank();
|
|
170
170
|
}
|
|
171
171
|
/**
|
|
@@ -174,10 +174,10 @@ function displayEmptyState() {
|
|
|
174
174
|
export async function nextAction(options) {
|
|
175
175
|
const config = resolveConfig();
|
|
176
176
|
if (!config.apiKey) {
|
|
177
|
-
throw new CliError('Not authenticated', 1, 'Run `specforge
|
|
177
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
178
178
|
}
|
|
179
179
|
if (!config.specificationId) {
|
|
180
|
-
throw new CliError('No specification configured', 1, "Run 'specforge
|
|
180
|
+
throw new CliError('No specification configured', 1, "Run 'specforge init' or 'specforge switch <spec-id>' to set a specification");
|
|
181
181
|
}
|
|
182
182
|
const spinner = ora({
|
|
183
183
|
text: 'Finding next actionable ticket...',
|
|
@@ -239,10 +239,10 @@ export async function nextAction(options) {
|
|
|
239
239
|
spinner.fail('Failed to find next ticket');
|
|
240
240
|
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
241
241
|
if (message.includes('404') || message.includes('not found')) {
|
|
242
|
-
throw new CliError('Specification not found', 1, 'The configured specification may have been deleted. Run `specforge
|
|
242
|
+
throw new CliError('Specification not found', 1, 'The configured specification may have been deleted. Run `specforge init` to select a new one.');
|
|
243
243
|
}
|
|
244
244
|
if (message.includes('401') || message.includes('Unauthorized')) {
|
|
245
|
-
throw new CliError('Authentication failed', 1, 'Your API key may be invalid. Run `specforge
|
|
245
|
+
throw new CliError('Authentication failed', 1, 'Your API key may be invalid. Run `specforge login` to re-authenticate');
|
|
246
246
|
}
|
|
247
247
|
throw new NetworkError(`Failed to find next ticket: ${message}`);
|
|
248
248
|
}
|
|
@@ -259,9 +259,9 @@ export function registerNextCommand(program) {
|
|
|
259
259
|
.option('--brief', 'Show only title and ID')
|
|
260
260
|
.addHelpText('after', `
|
|
261
261
|
Examples:
|
|
262
|
-
$ specforge
|
|
263
|
-
$ specforge
|
|
264
|
-
$ specforge
|
|
262
|
+
$ specforge next # Show full ticket card
|
|
263
|
+
$ specforge next --brief # Show just ID and title
|
|
264
|
+
$ specforge next --json # Output as JSON
|
|
265
265
|
|
|
266
266
|
The next command finds the highest priority pending ticket that is not blocked.
|
|
267
267
|
It displays:
|
|
@@ -272,7 +272,7 @@ It displays:
|
|
|
272
272
|
- Description (truncated)
|
|
273
273
|
- Acceptance criteria
|
|
274
274
|
|
|
275
|
-
After reviewing, start working with: specforge
|
|
275
|
+
After reviewing, start working with: specforge session start
|
|
276
276
|
`)
|
|
277
277
|
.action(withErrorHandler(nextAction));
|
|
278
278
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/cli/commands/next.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/cli/commands/next.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAIL,cAAc,EACd,QAAQ,EACR,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB;YACE,OAAO,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB;YACE,OAAO,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,MAAM,KAAK,GAAG,iBAAiB,CAAC;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;IAE7B,UAAU,EAAE,CAAC;IAEb,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5E,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,UAAU;QAClD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,KAAK;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;IAE3B,8BAA8B;IAC9B,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,aAAa,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAEnE,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChE,cAAc,GAAG,eAAe,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,cAAc,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAEpE,uCAAuC;IACvC,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,aAAa,GAAG,cAAc,MAAM,CAAC,cAAc,GAAG,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IACpE,MAAM,WAAW,GAAG,UAAU,KAAK,MAAM;QACvC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QAC1B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,iBAAiB,WAAW,EAAE,CAAC;IAEhD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAEnE,yBAAyB;IACzB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;IAE3B,cAAc;IACd,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QAC/D,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACnF,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB;YAClF,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;YACzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;IAE3B,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACzE,UAAU,EAAE,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAkB;IACtC,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACxE,UAAU,EAAE,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,MAAM,KAAK,GAAa,CAAC,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,qBAAqB,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpH,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;IACpF,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAClE,UAAU,EAAE,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAoB;IACnD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,CAAC,EACD,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,IAAI,QAAQ,CAChB,6BAA6B,EAC7B,CAAC,EACD,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,EAAE,mCAAmC;QACzC,KAAK,EAAE,MAAM;KACd,CAAC,CAAC,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CAAyB,cAAc,EAAE;YAC7E,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QAEzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,iBAAiB,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,OAAO,CAAC,IAAI,GAAG,2BAA2B,CAAC;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,CAAuB,YAAY,EAAE;YAC3E,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,MAAM,MAAM,GAAe;YACzB,EAAE,EAAE,cAAc,CAAC,EAAE;YACrB,YAAY,EAAE,cAAc,CAAC,YAAY;YACzC,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,WAAW,EAAE,cAAc,CAAC,WAAW;YACvC,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,cAAc,EAAE,cAAc,CAAC,cAAc;YAC7C,kBAAkB,EAAE,cAAc,CAAC,kBAAkB;YACrD,MAAM,EAAE,cAAc,CAAC,MAAM;SAC9B,CAAC;QAEF,yBAAyB;QACzB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAEzE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,QAAQ,CAChB,yBAAyB,EACzB,CAAC,EACD,+FAA+F,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,QAAQ,CAChB,uBAAuB,EACvB,CAAC,EACD,uEAAuE,CACxE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,YAAY,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;SAC3C,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;CAgBzB,CAAC;SACG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -82,7 +82,7 @@ function displayEmptyState() {
|
|
|
82
82
|
export async function projectsAction(options) {
|
|
83
83
|
const config = resolveConfig();
|
|
84
84
|
if (!config.apiKey) {
|
|
85
|
-
throw new CliError('Not authenticated', 1, 'Run `specforge
|
|
85
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
86
86
|
}
|
|
87
87
|
const spinner = ora({
|
|
88
88
|
text: 'Fetching projects...',
|
|
@@ -120,7 +120,7 @@ export async function projectsAction(options) {
|
|
|
120
120
|
spinner.fail('Failed to fetch projects');
|
|
121
121
|
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
122
122
|
if (message.includes('401') || message.includes('Unauthorized')) {
|
|
123
|
-
throw new CliError('Authentication failed', 1, 'Your API key may be invalid. Run `specforge
|
|
123
|
+
throw new CliError('Authentication failed', 1, 'Your API key may be invalid. Run `specforge login` to re-authenticate');
|
|
124
124
|
}
|
|
125
125
|
throw new NetworkError(`Failed to fetch projects: ${message}`);
|
|
126
126
|
}
|
|
@@ -137,10 +137,10 @@ export function registerProjectsCommand(program) {
|
|
|
137
137
|
.option('--limit <n>', 'Limit number of results')
|
|
138
138
|
.addHelpText('after', `
|
|
139
139
|
Examples:
|
|
140
|
-
$ specforge
|
|
141
|
-
$ specforge
|
|
142
|
-
$ specforge
|
|
143
|
-
$ specforge
|
|
140
|
+
$ specforge projects # List all projects
|
|
141
|
+
$ specforge projects --json # Output as JSON
|
|
142
|
+
$ specforge projects --toon # Output as TOON format
|
|
143
|
+
$ specforge projects --limit 10 # Limit to 10 results
|
|
144
144
|
|
|
145
145
|
The current project (set via 'init' or 'switch') is marked with ▶
|
|
146
146
|
`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/cli/commands/projects.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/cli/commands/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export async function reviewCommand(scope, id, options) {
|
|
|
22
22
|
// Validate inputs
|
|
23
23
|
if (!scope || !id) {
|
|
24
24
|
console.error(chalk.red('\nError: Scope and ID are required.'));
|
|
25
|
-
console.error('Usage: specforge
|
|
25
|
+
console.error('Usage: specforge review <ticket|epic|spec> <id>');
|
|
26
26
|
process.exit(1);
|
|
27
27
|
}
|
|
28
28
|
if (!isValidScope(scope)) {
|
|
@@ -32,7 +32,7 @@ export async function reviewCommand(scope, id, options) {
|
|
|
32
32
|
}
|
|
33
33
|
const config = resolveConfig();
|
|
34
34
|
if (!config.apiKey) {
|
|
35
|
-
throw new CliError('Not authenticated', 1, 'Run `specforge
|
|
35
|
+
throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
|
|
36
36
|
}
|
|
37
37
|
const normalizedScope = normalizeScope(scope);
|
|
38
38
|
const spinner = options.json ? null : ora('Reviewing implementation...').start();
|
|
@@ -90,7 +90,7 @@ export async function reviewCommand(scope, id, options) {
|
|
|
90
90
|
console.error(chalk.dim('\nPossible causes:'));
|
|
91
91
|
console.error(chalk.dim(' - Invalid ticket/epic/spec ID'));
|
|
92
92
|
console.error(chalk.dim(' - Network connectivity issues'));
|
|
93
|
-
console.error(chalk.dim(' - Authentication expired (try: specforge
|
|
93
|
+
console.error(chalk.dim(' - Authentication expired (try: specforge login)'));
|
|
94
94
|
}
|
|
95
95
|
process.exit(1);
|
|
96
96
|
}
|
|
@@ -108,11 +108,11 @@ Arguments:
|
|
|
108
108
|
id Ticket, Epic, or Specification ID
|
|
109
109
|
|
|
110
110
|
Examples:
|
|
111
|
-
$ specforge
|
|
112
|
-
$ specforge
|
|
113
|
-
$ specforge
|
|
114
|
-
$ specforge
|
|
115
|
-
$ specforge
|
|
111
|
+
$ specforge review ticket ticket_abc123
|
|
112
|
+
$ specforge review epic epic_def456
|
|
113
|
+
$ specforge review spec spec_ghi789
|
|
114
|
+
$ specforge review ticket ticket_abc123 --strict
|
|
115
|
+
$ specforge review epic epic_def456 --fix --report
|
|
116
116
|
|
|
117
117
|
Review Checks:
|
|
118
118
|
Acceptance Criteria Each criterion verified against implementation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../../src/cli/commands/review/review.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAGL,YAAY,EACZ,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAa,EACb,EAAU,EACV,OAAsB;IAEtB,kBAAkB;IAClB,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../../src/cli/commands/review/review.ts"],"names":[],"mappings":"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"}
|
|
@@ -504,7 +504,7 @@ export async function scaffoldCommand(options) {
|
|
|
504
504
|
const template = templates.find(t => t.name === options.preview);
|
|
505
505
|
if (!template) {
|
|
506
506
|
console.error(colors.error(`\nError: Unknown agent "${options.preview}"`));
|
|
507
|
-
console.error(`Run 'specforge
|
|
507
|
+
console.error(`Run 'specforge scaffold --agents --list' to see available agents`);
|
|
508
508
|
process.exit(1);
|
|
509
509
|
return;
|
|
510
510
|
}
|
|
@@ -516,7 +516,7 @@ export async function scaffoldCommand(options) {
|
|
|
516
516
|
const template = templates.find(t => t.name === options.preview);
|
|
517
517
|
if (!template) {
|
|
518
518
|
console.error(colors.error(`\nError: Unknown command "${options.preview}"`));
|
|
519
|
-
console.error(`Run 'specforge
|
|
519
|
+
console.error(`Run 'specforge scaffold --list' to see available commands`);
|
|
520
520
|
process.exit(1);
|
|
521
521
|
return;
|
|
522
522
|
}
|