@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.
Files changed (99) hide show
  1. package/README.md +45 -45
  2. package/bin/specforge-mcp +5 -0
  3. package/dist/cli/commands/blocked.js +6 -6
  4. package/dist/cli/commands/blocked.js.map +1 -1
  5. package/dist/cli/commands/blueprints.js +1 -1
  6. package/dist/cli/commands/blueprints.js.map +1 -1
  7. package/dist/cli/commands/configure.js +6 -6
  8. package/dist/cli/commands/configure.js.map +1 -1
  9. package/dist/cli/commands/debug/call.js +3 -3
  10. package/dist/cli/commands/debug/call.js.map +1 -1
  11. package/dist/cli/commands/debug/register.js +11 -11
  12. package/dist/cli/commands/debug/test.js +1 -1
  13. package/dist/cli/commands/debug/test.js.map +1 -1
  14. package/dist/cli/commands/debug/tools.js +1 -1
  15. package/dist/cli/commands/debug/tools.js.map +1 -1
  16. package/dist/cli/commands/docs/content/api.js +3 -3
  17. package/dist/cli/commands/docs/content/examples.js +12 -12
  18. package/dist/cli/commands/docs/content/workflow.js +2 -2
  19. package/dist/cli/commands/docs/display.js +4 -4
  20. package/dist/cli/commands/docs/display.js.map +1 -1
  21. package/dist/cli/commands/docs/docs.js +3 -3
  22. package/dist/cli/commands/docs/docs.js.map +1 -1
  23. package/dist/cli/commands/docs/tool-docs.js +2 -2
  24. package/dist/cli/commands/docs/tool-docs.js.map +1 -1
  25. package/dist/cli/commands/doctor.js +2 -2
  26. package/dist/cli/commands/doctor.types.d.ts +7 -7
  27. package/dist/cli/commands/doctor.types.js +7 -7
  28. package/dist/cli/commands/doctor.types.js.map +1 -1
  29. package/dist/cli/commands/feedback.js +5 -5
  30. package/dist/cli/commands/index.d.ts +2 -0
  31. package/dist/cli/commands/index.d.ts.map +1 -1
  32. package/dist/cli/commands/index.js +2 -0
  33. package/dist/cli/commands/index.js.map +1 -1
  34. package/dist/cli/commands/init.js +8 -8
  35. package/dist/cli/commands/init.js.map +1 -1
  36. package/dist/cli/commands/invitations.d.ts +31 -0
  37. package/dist/cli/commands/invitations.d.ts.map +1 -0
  38. package/dist/cli/commands/invitations.js +256 -0
  39. package/dist/cli/commands/invitations.js.map +1 -0
  40. package/dist/cli/commands/login.js +6 -6
  41. package/dist/cli/commands/login.js.map +1 -1
  42. package/dist/cli/commands/members.d.ts +55 -0
  43. package/dist/cli/commands/members.d.ts.map +1 -0
  44. package/dist/cli/commands/members.js +308 -0
  45. package/dist/cli/commands/members.js.map +1 -0
  46. package/dist/cli/commands/next.js +10 -10
  47. package/dist/cli/commands/next.js.map +1 -1
  48. package/dist/cli/commands/projects.js +6 -6
  49. package/dist/cli/commands/projects.js.map +1 -1
  50. package/dist/cli/commands/review/review.js +8 -8
  51. package/dist/cli/commands/review/review.js.map +1 -1
  52. package/dist/cli/commands/scaffold/scaffold.js +2 -2
  53. package/dist/cli/commands/scaffold/scaffold.js.map +1 -1
  54. package/dist/cli/commands/session/display.js +1 -1
  55. package/dist/cli/commands/session/display.js.map +1 -1
  56. package/dist/cli/commands/session/end.js +6 -6
  57. package/dist/cli/commands/session/end.js.map +1 -1
  58. package/dist/cli/commands/session/register.js +12 -12
  59. package/dist/cli/commands/session/start.js +6 -6
  60. package/dist/cli/commands/session/start.js.map +1 -1
  61. package/dist/cli/commands/session/status.js +1 -1
  62. package/dist/cli/commands/session/status.js.map +1 -1
  63. package/dist/cli/commands/specs.js +9 -9
  64. package/dist/cli/commands/specs.js.map +1 -1
  65. package/dist/cli/commands/status.js +11 -11
  66. package/dist/cli/commands/status.js.map +1 -1
  67. package/dist/cli/commands/switch.js +10 -10
  68. package/dist/cli/commands/switch.js.map +1 -1
  69. package/dist/cli/commands/ticket/command.js +5 -5
  70. package/dist/cli/commands/ticket/command.js.map +1 -1
  71. package/dist/cli/commands/ticket/register.js +4 -4
  72. package/dist/cli/commands/ticket/resolver.js +1 -1
  73. package/dist/cli/commands/ticket/resolver.js.map +1 -1
  74. package/dist/cli/commands/tickets.js +11 -11
  75. package/dist/cli/commands/tickets.js.map +1 -1
  76. package/dist/cli/config/loader.d.ts +1 -1
  77. package/dist/cli/config/loader.js +1 -1
  78. package/dist/cli/config/types.d.ts +2 -2
  79. package/dist/cli/index.d.ts.map +1 -1
  80. package/dist/cli/index.js +10 -7
  81. package/dist/cli/index.js.map +1 -1
  82. package/dist/cli/middleware/auth-guard.js +1 -1
  83. package/dist/cli/middleware/auth-guard.js.map +1 -1
  84. package/dist/cli/middleware/error-handler.js +1 -1
  85. package/dist/cli/middleware/error-handler.js.map +1 -1
  86. package/dist/cli/ui/dashboard.js +1 -1
  87. package/dist/cli/ui/dashboard.js.map +1 -1
  88. package/dist/cli/ui/output.d.ts +2 -2
  89. package/dist/cli/ui/output.js +2 -2
  90. package/dist/index.js +1 -0
  91. package/dist/index.js.map +1 -1
  92. package/dist/server.js +1 -1
  93. package/dist/server.js.map +1 -1
  94. package/dist/tools/core/workflow-guide.js +1 -1
  95. package/dist/tools/core/workflow-guide.js.map +1 -1
  96. package/dist/tools/index.d.ts.map +1 -1
  97. package/dist/tools/index.js +136 -0
  98. package/dist/tools/index.js.map +1 -1
  99. package/package.json +2 -1
@@ -0,0 +1,256 @@
1
+ /**
2
+ * Invitations Command
3
+ *
4
+ * Manage project invitations - view received, accept, decline.
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 { formatRelativeTime } from '../ui/time.js';
13
+ import { ApiClient } from '../../client/api-client.js';
14
+ /**
15
+ * Get role badge with color
16
+ */
17
+ function getRoleBadge(role) {
18
+ switch (role) {
19
+ case 'owner':
20
+ return colors.warning('owner');
21
+ case 'editor':
22
+ return colors.primary('editor');
23
+ case 'viewer':
24
+ return colors.muted('viewer');
25
+ default:
26
+ return role;
27
+ }
28
+ }
29
+ /**
30
+ * Display received invitations as table
31
+ */
32
+ function displayReceivedInvitations(invitations) {
33
+ if (invitations.length === 0) {
34
+ console.log(colors.muted('No pending invitations.'));
35
+ return;
36
+ }
37
+ printHeader('Received Invitations');
38
+ printBlank();
39
+ const table = new Table({
40
+ head: [
41
+ colors.muted('PROJECT'),
42
+ colors.muted('ROLE'),
43
+ colors.muted('INVITED'),
44
+ colors.muted('ID'),
45
+ ],
46
+ style: { head: [], border: [] },
47
+ chars: {
48
+ 'top': '', 'top-mid': '', 'top-left': '', 'top-right': '',
49
+ 'bottom': '', 'bottom-mid': '', 'bottom-left': '', 'bottom-right': '',
50
+ 'left': '', 'left-mid': '', 'mid': '', 'mid-mid': '',
51
+ 'right': '', 'right-mid': '', 'middle': ' ',
52
+ },
53
+ });
54
+ for (const inv of invitations) {
55
+ table.push([
56
+ inv.projectName || inv.projectId,
57
+ getRoleBadge(inv.role),
58
+ formatRelativeTime(inv.invitedAt),
59
+ colors.muted(inv.id.substring(0, 12) + '...'),
60
+ ]);
61
+ }
62
+ console.log(table.toString());
63
+ printBlank();
64
+ console.log(colors.muted('Accept: specforge invitations accept <id>'));
65
+ console.log(colors.muted('Decline: specforge invitations decline <id>'));
66
+ }
67
+ /**
68
+ * Display sent invitations as table
69
+ */
70
+ function displaySentInvitations(invitations) {
71
+ if (invitations.length === 0) {
72
+ console.log(colors.muted('No sent invitations.'));
73
+ return;
74
+ }
75
+ printBlank();
76
+ printHeader('Sent Invitations');
77
+ printBlank();
78
+ const table = new Table({
79
+ head: [
80
+ colors.muted('EMAIL'),
81
+ colors.muted('PROJECT'),
82
+ colors.muted('ROLE'),
83
+ colors.muted('STATUS'),
84
+ colors.muted('SENT'),
85
+ ],
86
+ style: { head: [], border: [] },
87
+ chars: {
88
+ 'top': '', 'top-mid': '', 'top-left': '', 'top-right': '',
89
+ 'bottom': '', 'bottom-mid': '', 'bottom-left': '', 'bottom-right': '',
90
+ 'left': '', 'left-mid': '', 'mid': '', 'mid-mid': '',
91
+ 'right': '', 'right-mid': '', 'middle': ' ',
92
+ },
93
+ });
94
+ for (const inv of invitations) {
95
+ let statusBadge;
96
+ switch (inv.status) {
97
+ case 'pending':
98
+ statusBadge = colors.warning('pending');
99
+ break;
100
+ case 'accepted':
101
+ statusBadge = colors.success('accepted');
102
+ break;
103
+ case 'expired':
104
+ statusBadge = colors.error('expired');
105
+ break;
106
+ case 'cancelled':
107
+ statusBadge = colors.muted('cancelled');
108
+ break;
109
+ default:
110
+ statusBadge = inv.status;
111
+ }
112
+ table.push([
113
+ inv.email,
114
+ inv.projectName || inv.projectId.substring(0, 12) + '...',
115
+ getRoleBadge(inv.role),
116
+ statusBadge,
117
+ formatRelativeTime(inv.createdAt),
118
+ ]);
119
+ }
120
+ console.log(table.toString());
121
+ }
122
+ /**
123
+ * List invitations action handler
124
+ */
125
+ export async function invitationsListAction(options) {
126
+ const config = resolveConfig();
127
+ if (!config.apiKey) {
128
+ throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
129
+ }
130
+ const spinner = ora({
131
+ text: 'Fetching invitations...',
132
+ color: 'cyan',
133
+ }).start();
134
+ try {
135
+ const client = new ApiClient({
136
+ apiKey: config.apiKey,
137
+ apiUrl: config.apiUrl,
138
+ debug: config.debug,
139
+ });
140
+ const response = await client.call('list_invitations', {
141
+ includeSent: options.sent,
142
+ });
143
+ spinner.stop();
144
+ if (options.json) {
145
+ console.log(JSON.stringify(response, null, 2));
146
+ return;
147
+ }
148
+ printBlank();
149
+ displayReceivedInvitations(response.received);
150
+ if (options.sent && response.sent) {
151
+ displaySentInvitations(response.sent);
152
+ }
153
+ printBlank();
154
+ }
155
+ catch (error) {
156
+ spinner.fail('Failed to fetch invitations');
157
+ const message = error instanceof Error ? error.message : 'Unknown error';
158
+ throw new NetworkError(`Failed to fetch invitations: ${message}`);
159
+ }
160
+ }
161
+ /**
162
+ * Accept invitation action handler
163
+ */
164
+ export async function invitationsAcceptAction(idOrToken) {
165
+ const config = resolveConfig();
166
+ if (!config.apiKey) {
167
+ throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
168
+ }
169
+ const spinner = ora({
170
+ text: 'Accepting invitation...',
171
+ color: 'cyan',
172
+ }).start();
173
+ try {
174
+ const client = new ApiClient({
175
+ apiKey: config.apiKey,
176
+ apiUrl: config.apiUrl,
177
+ debug: config.debug,
178
+ });
179
+ // Determine if it's a token or invitation ID
180
+ const args = {};
181
+ if (idOrToken.startsWith('proj_inv_')) {
182
+ args.token = idOrToken;
183
+ }
184
+ else {
185
+ args.invitationId = idOrToken;
186
+ }
187
+ const response = await client.call('accept_project_invitation', args);
188
+ spinner.succeed(`Joined ${response.projectName} as ${response.role}`);
189
+ printBlank();
190
+ console.log(colors.muted(response.message));
191
+ printBlank();
192
+ }
193
+ catch (error) {
194
+ spinner.fail('Failed to accept invitation');
195
+ const message = error instanceof Error ? error.message : 'Unknown error';
196
+ throw new NetworkError(`Failed to accept invitation: ${message}`);
197
+ }
198
+ }
199
+ /**
200
+ * Decline invitation action handler
201
+ */
202
+ export async function invitationsDeclineAction(idOrToken) {
203
+ const config = resolveConfig();
204
+ if (!config.apiKey) {
205
+ throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
206
+ }
207
+ const spinner = ora({
208
+ text: 'Declining invitation...',
209
+ color: 'cyan',
210
+ }).start();
211
+ try {
212
+ const client = new ApiClient({
213
+ apiKey: config.apiKey,
214
+ apiUrl: config.apiUrl,
215
+ debug: config.debug,
216
+ });
217
+ // Determine if it's a token or invitation ID
218
+ const args = {};
219
+ if (idOrToken.startsWith('proj_inv_')) {
220
+ args.token = idOrToken;
221
+ }
222
+ else {
223
+ args.invitationId = idOrToken;
224
+ }
225
+ const response = await client.call('decline_project_invitation', args);
226
+ spinner.succeed('Invitation declined');
227
+ printBlank();
228
+ }
229
+ catch (error) {
230
+ spinner.fail('Failed to decline invitation');
231
+ const message = error instanceof Error ? error.message : 'Unknown error';
232
+ throw new NetworkError(`Failed to decline invitation: ${message}`);
233
+ }
234
+ }
235
+ /**
236
+ * Register invitations command with Commander
237
+ */
238
+ export function registerInvitationsCommand(program) {
239
+ const invitationsCmd = program
240
+ .command('invitations')
241
+ .description('Manage project invitations')
242
+ .option('--sent', 'Include sent invitations')
243
+ .option('--json', 'Output as JSON')
244
+ .action(withErrorHandler(invitationsListAction));
245
+ // Accept subcommand
246
+ invitationsCmd
247
+ .command('accept <id-or-token>')
248
+ .description('Accept a project invitation')
249
+ .action(withErrorHandler(invitationsAcceptAction));
250
+ // Decline subcommand
251
+ invitationsCmd
252
+ .command('decline <id-or-token>')
253
+ .description('Decline a project invitation')
254
+ .action(withErrorHandler(invitationsDeclineAction));
255
+ }
256
+ //# sourceMappingURL=invitations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../../src/cli/commands/invitations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA8CvD;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjC,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,WAAiC;IACnE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACpC,UAAU,EAAE,CAAC;IAEb,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE;YACJ,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;SACnB;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/B,KAAK,EAAE;YACL,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;YACzD,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE;YACrE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;YACpD,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG;SAC5C;KACF,CAAC,CAAC;IAEH,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC;YACT,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,SAAS;YAChC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9B,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,WAA6B;IAC3D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,UAAU,EAAE,CAAC;IACb,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAChC,UAAU,EAAE,CAAC;IAEb,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE;YACJ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;SACrB;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/B,KAAK,EAAE;YACL,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;YACzD,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE;YACrE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;YACpD,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG;SAC5C;KACF,CAAC,CAAC;IAEH,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,WAAmB,CAAC;QACxB,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,SAAS;gBACZ,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,UAAU;gBACb,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,SAAS;gBACZ,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,WAAW;gBACd,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACxC,MAAM;YACR;gBACE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,GAAG,CAAC,KAAK;YACT,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;YACzD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB,WAAW;YACX,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAA2B;IACrE,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,MAAM,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,EAAE,yBAAyB;QAC/B,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,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,kBAAkB,EAAE;YAC9E,WAAW,EAAE,OAAO,CAAC,IAAI;SAC1B,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,UAAU,EAAE,CAAC;QACb,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE9C,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,UAAU,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,MAAM,IAAI,YAAY,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,SAAiB;IAC7D,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,MAAM,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,EAAE,yBAAyB;QAC/B,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,6CAA6C;QAC7C,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAM/B,2BAA2B,EAAE,IAAI,CAAC,CAAC;QAEtC,OAAO,CAAC,OAAO,CAAC,UAAU,QAAQ,CAAC,WAAW,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,UAAU,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,MAAM,IAAI,YAAY,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,SAAiB;IAC9D,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,MAAM,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,EAAE,yBAAyB;QAC/B,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,6CAA6C;QAC7C,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAG/B,4BAA4B,EAAE,IAAI,CAAC,CAAC;QAEvC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvC,UAAU,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,MAAM,IAAI,YAAY,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,MAAM,cAAc,GAAG,OAAO;SAC3B,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC;SAC5C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAEnD,oBAAoB;IACpB,cAAc;SACX,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAErD,qBAAqB;IACrB,cAAc;SACX,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACxD,CAAC"}
@@ -99,7 +99,7 @@ export async function loginAction(options) {
99
99
  if (existingConfig.apiKey && !options.force) {
100
100
  printBlank();
101
101
  printWarning('You are already authenticated.');
102
- console.log(`Use ${chalk.cyan('specforge-mcp login --force')} to re-authenticate with a different API key.`);
102
+ console.log(`Use ${chalk.cyan('specforge login --force')} to re-authenticate with a different API key.`);
103
103
  printBlank();
104
104
  return;
105
105
  }
@@ -140,8 +140,8 @@ export async function loginAction(options) {
140
140
  printBlank();
141
141
  // Next steps
142
142
  console.log(chalk.bold('Next steps:'));
143
- printHint('specforge-mcp init', 'initialize SpecForge in your project');
144
- printHint('specforge-mcp status', 'check your current configuration');
143
+ printHint('specforge init', 'initialize SpecForge in your project');
144
+ printHint('specforge status', 'check your current configuration');
145
145
  printBlank();
146
146
  }
147
147
  catch (error) {
@@ -162,9 +162,9 @@ export function registerLoginCommand(program) {
162
162
  .option('-f, --force', 'Overwrite existing authentication')
163
163
  .addHelpText('after', `
164
164
  Examples:
165
- $ specforge-mcp login # Interactive login (recommended)
166
- $ specforge-mcp login --api-key <key> # Non-interactive login
167
- $ specforge-mcp login --force # Re-authenticate with new key
165
+ $ specforge login # Interactive login (recommended)
166
+ $ specforge login --api-key <key> # Non-interactive login
167
+ $ specforge login --force # Re-authenticate with new key
168
168
 
169
169
  Get your API key:
170
170
  https://specforge.com.br/settings/api-keys
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAwBrD;;;;GAIG;AACH,KAAK,UAAU,eAAe;IAC5B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACpC;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,qBAAqB;YAC9B,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAClC,OAAO,qBAAqB,CAAC;gBAC/B,CAAC;gBAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACtB,OAAO,UAAU,CAAC,KAAK,IAAI,wBAAwB,CAAC;gBACtD,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;SACF;KACF,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,yBAAyB,CAAC,MAAc;IACrD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,eAAe,CAAC,MAAM;QAC/D,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM;KAC9C,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAE7C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,eAAe,CACvB,MAAM,CAAC,OAAO,IAAI,2BAA2B,EAC7C,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAED,yDAAyD;QACzD,8DAA8D;QAC9D,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8BAA8B;QAC9B,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvE,iBAAiB;QACjB,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1G,MAAM,IAAI,YAAY,CACpB,oCAAoC,EACpC,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,eAAe,CACvB,iBAAiB,EACjB,qEAAqE,CACtE,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,YAAY,CACpB,qBAAqB,EACrB,6BAA6B,CAC9B,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,MAAM,IAAI,YAAY,CACpB,cAAc,OAAO,EAAE,EACvB,6DAA6D,CAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAqB;IACrD,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC;IAE1C,6BAA6B;IAC7B,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5C,UAAU,EAAE,CAAC;QACb,YAAY,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,+CAA+C,CAChG,CAAC;QACF,UAAU,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,SAAS;IACT,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,UAAU,EAAE,CAAC;IAEb,cAAc;IACd,IAAI,MAAc,CAAC;IAEnB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,uBAAuB;QACvB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAExB,wBAAwB;QACxB,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CACvB,gBAAgB,CAAC,KAAK,IAAI,wBAAwB,EAClD,oEAAoE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wCAAwC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxH,UAAU,EAAE,CAAC;QAEb,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACnC,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,MAAM;KACd,CAAC,CAAC,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAEzD,OAAO,CAAC,OAAO,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAElE,wBAAwB;QACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE7B,UAAU,EAAE,CAAC;QACb,YAAY,CAAC,2CAA2C,CAAC,CAAC;QAC1D,UAAU,EAAE,CAAC;QAEb,aAAa;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,SAAS,CAAC,oBAAoB,EAAE,sCAAsC,CAAC,CAAC;QACxE,SAAS,CAAC,sBAAsB,EAAE,kCAAkC,CAAC,CAAC;QACtE,UAAU,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACtC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,oDAAoD,CAAC;SAC/E,MAAM,CAAC,aAAa,EAAE,mCAAmC,CAAC;SAC1D,WAAW,CAAC,OAAO,EAAE;;;;;;;;CAQzB,CAAC;SACG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Members Command
3
+ *
4
+ * Manage project members - list, add, remove, and update roles.
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Options for members command
9
+ */
10
+ interface MembersOptions {
11
+ project?: string;
12
+ json?: boolean;
13
+ }
14
+ /**
15
+ * Options for members add command
16
+ */
17
+ interface MembersAddOptions {
18
+ project?: string;
19
+ role?: 'editor' | 'viewer';
20
+ message?: string;
21
+ }
22
+ /**
23
+ * Options for members remove command
24
+ */
25
+ interface MembersRemoveOptions {
26
+ project?: string;
27
+ }
28
+ /**
29
+ * Options for members role command
30
+ */
31
+ interface MembersRoleOptions {
32
+ project?: string;
33
+ }
34
+ /**
35
+ * List members action handler
36
+ */
37
+ export declare function membersListAction(options: MembersOptions): Promise<void>;
38
+ /**
39
+ * Add member action handler
40
+ */
41
+ export declare function membersAddAction(email: string, options: MembersAddOptions): Promise<void>;
42
+ /**
43
+ * Remove member action handler
44
+ */
45
+ export declare function membersRemoveAction(emailOrId: string, options: MembersRemoveOptions): Promise<void>;
46
+ /**
47
+ * Update member role action handler
48
+ */
49
+ export declare function membersRoleAction(emailOrId: string, role: string, options: MembersRoleOptions): Promise<void>;
50
+ /**
51
+ * Register members command with Commander
52
+ */
53
+ export declare function registerMembersCommand(program: Command): void;
54
+ export {};
55
+ //# sourceMappingURL=members.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/members.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDpC;;GAEG;AACH,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkGD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD9E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAqDf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAwDf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqEf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8B7D"}