@idea1/cli 1.2.3 → 1.3.1
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 +19 -152
- package/dist/cli/parser.d.ts +20 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +105 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/resolver.d.ts +16 -0
- package/dist/cli/resolver.d.ts.map +1 -0
- package/dist/cli/resolver.js +72 -0
- package/dist/cli/resolver.js.map +1 -0
- package/dist/cli.d.ts +0 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +38 -357
- package/dist/cli.js.map +1 -1
- package/dist/commands/approve-pr.d.ts.map +1 -1
- package/dist/commands/approve-pr.js +13 -28
- package/dist/commands/approve-pr.js.map +1 -1
- package/dist/commands/close-worktree.d.ts.map +1 -1
- package/dist/commands/close-worktree.js +29 -42
- package/dist/commands/close-worktree.js.map +1 -1
- package/dist/commands/create-worktree.d.ts.map +1 -1
- package/dist/commands/create-worktree.js +34 -55
- package/dist/commands/create-worktree.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +107 -68
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/index.d.ts +2 -2
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +10 -8
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/next-workflow-step.js +4 -4
- package/dist/commands/next-workflow-step.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +45 -54
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/ready-for-approval.d.ts.map +1 -1
- package/dist/commands/ready-for-approval.js +25 -62
- package/dist/commands/ready-for-approval.js.map +1 -1
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +47 -98
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/start-dev-implementation.d.ts.map +1 -1
- package/dist/commands/start-dev-implementation.js +41 -43
- package/dist/commands/start-dev-implementation.js.map +1 -1
- package/dist/commands/start-project-item.d.ts.map +1 -1
- package/dist/commands/start-project-item.js +219 -150
- package/dist/commands/start-project-item.js.map +1 -1
- package/dist/commands/update-branch.d.ts +3 -0
- package/dist/commands/update-branch.d.ts.map +1 -0
- package/dist/commands/update-branch.js +191 -0
- package/dist/commands/update-branch.js.map +1 -0
- package/dist/commands/update-docs.js +1 -1
- package/dist/commands/update-docs.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/interactive.d.ts +19 -0
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +14 -56
- package/dist/interactive.js.map +1 -1
- package/dist/lib/settings.d.ts +18 -0
- package/dist/lib/settings.d.ts.map +1 -1
- package/dist/lib/settings.js +30 -0
- package/dist/lib/settings.js.map +1 -1
- package/dist/services/claude.d.ts +5 -0
- package/dist/services/claude.d.ts.map +1 -1
- package/dist/services/claude.js +16 -0
- package/dist/services/claude.js.map +1 -1
- package/dist/services/config.d.ts +8 -0
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +14 -1
- package/dist/services/config.js.map +1 -1
- package/dist/services/git.d.ts +59 -0
- package/dist/services/git.d.ts.map +1 -1
- package/dist/services/git.js +163 -2
- package/dist/services/git.js.map +1 -1
- package/dist/services/worktree.d.ts +36 -2
- package/dist/services/worktree.d.ts.map +1 -1
- package/dist/services/worktree.js +170 -9
- package/dist/services/worktree.js.map +1 -1
- package/dist/types/index.d.ts +31 -93
- package/dist/types/index.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -2
package/dist/cli.js
CHANGED
|
@@ -1,307 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getCommand } from './commands/index.js';
|
|
2
|
+
import { parseCommandLine, printUsage, printCommandUsage } from './cli/parser.js';
|
|
3
|
+
import { resolveOptions } from './cli/resolver.js';
|
|
3
4
|
import { runInteractiveMode } from './interactive.js';
|
|
4
5
|
import { logger } from './lib/logger.js';
|
|
5
6
|
import { VERSION } from './version.js';
|
|
6
7
|
import { ensureSetup } from './services/setup.js';
|
|
7
8
|
import * as git from './services/git.js';
|
|
8
|
-
/**
|
|
9
|
-
* Create and configure the CLI program
|
|
10
|
-
*/
|
|
11
|
-
export function createProgram() {
|
|
12
|
-
const program = new Command();
|
|
13
|
-
program
|
|
14
|
-
.name('idea1')
|
|
15
|
-
.description('CLI tool for Idea1.ai workflow automation - AI-assisted development workflows')
|
|
16
|
-
.version(VERSION, '-v, --version', 'Output the current version');
|
|
17
|
-
// Global command line options (main names only, no aliases)
|
|
18
|
-
program
|
|
19
|
-
.option('--start-project-item <url>', 'Start implementing a project item')
|
|
20
|
-
.option('--close-worktree', 'Close current worktree and create PR')
|
|
21
|
-
.option('--create-worktree <name>', 'Create a new branch and worktree')
|
|
22
|
-
.option('--push', 'Commit, push changes, and create PR')
|
|
23
|
-
.option('--update-docs', 'Update README.md for changed folders')
|
|
24
|
-
.option('--help-command', 'Show help information');
|
|
25
|
-
// Start project item command
|
|
26
|
-
program
|
|
27
|
-
.command('start-project-item <url> [branch-name]')
|
|
28
|
-
.alias('s')
|
|
29
|
-
.description('Start implementing a project item in an isolated environment')
|
|
30
|
-
.option('-m, --isolation-mode <mode>', 'Isolation mode: worktree (default) or container', 'worktree')
|
|
31
|
-
.option('-p, --source-path <path>', 'Path to source directory')
|
|
32
|
-
.option('-b, --base-branch <branch>', 'Base branch (default: working/release)', 'working/release')
|
|
33
|
-
.option('--build-image', 'Force rebuild of Docker image (container mode)')
|
|
34
|
-
.option('--disable-firewall', 'Disable network firewall (container mode)')
|
|
35
|
-
.action(async (url, branchName, options) => {
|
|
36
|
-
try {
|
|
37
|
-
const args = [url];
|
|
38
|
-
if (branchName) {
|
|
39
|
-
args.push(branchName);
|
|
40
|
-
}
|
|
41
|
-
if (options.isolationMode && options.isolationMode !== 'worktree') {
|
|
42
|
-
args.unshift('-m', options.isolationMode);
|
|
43
|
-
}
|
|
44
|
-
if (options.sourcePath) {
|
|
45
|
-
args.unshift('-p', options.sourcePath);
|
|
46
|
-
}
|
|
47
|
-
if (options.baseBranch && options.baseBranch !== 'working/release') {
|
|
48
|
-
args.unshift('-b', options.baseBranch);
|
|
49
|
-
}
|
|
50
|
-
if (options.buildImage) {
|
|
51
|
-
args.unshift('--build-image');
|
|
52
|
-
}
|
|
53
|
-
if (options.disableFirewall) {
|
|
54
|
-
args.unshift('--disable-firewall');
|
|
55
|
-
}
|
|
56
|
-
await startProjectItemCommand.execute(args);
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
const err = error;
|
|
60
|
-
logger.error(err.message);
|
|
61
|
-
process.exit(1);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
// Close worktree command
|
|
65
|
-
program
|
|
66
|
-
.command('close-worktree')
|
|
67
|
-
.alias('c')
|
|
68
|
-
.description('Close current worktree, commit changes, and create PR')
|
|
69
|
-
.option('-p, --source-path <path>', 'Path to worktree directory')
|
|
70
|
-
.option('-b, --base-branch <branch>', 'Base branch for PR')
|
|
71
|
-
.option('--prompt-pr', 'Prompt before creating PR')
|
|
72
|
-
.action(async (options) => {
|
|
73
|
-
try {
|
|
74
|
-
const args = [];
|
|
75
|
-
if (options.sourcePath) {
|
|
76
|
-
args.push('-p', options.sourcePath);
|
|
77
|
-
}
|
|
78
|
-
if (options.baseBranch) {
|
|
79
|
-
args.push('-b', options.baseBranch);
|
|
80
|
-
}
|
|
81
|
-
if (options.promptPr) {
|
|
82
|
-
args.push('--prompt-pr');
|
|
83
|
-
}
|
|
84
|
-
await closeWorktreeCommand.execute(args);
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
const err = error;
|
|
88
|
-
logger.error(err.message);
|
|
89
|
-
process.exit(1);
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
// Create worktree command
|
|
93
|
-
program
|
|
94
|
-
.command('create-worktree <name>')
|
|
95
|
-
.alias('w')
|
|
96
|
-
.description('Create a new branch and git worktree for development')
|
|
97
|
-
.option('-d, --dest-branch <branch>', 'Base branch to branch from (default: working/release)')
|
|
98
|
-
.option('-p, --branch-prefix <prefix>', 'Prefix for new branch (default: working/agent)')
|
|
99
|
-
.option('-s, --source-path <path>', 'Path to source directory')
|
|
100
|
-
.action(async (name, options) => {
|
|
101
|
-
try {
|
|
102
|
-
const args = [name];
|
|
103
|
-
if (options.destBranch) {
|
|
104
|
-
args.unshift('-d', options.destBranch);
|
|
105
|
-
}
|
|
106
|
-
if (options.branchPrefix) {
|
|
107
|
-
args.unshift('-p', options.branchPrefix);
|
|
108
|
-
}
|
|
109
|
-
if (options.sourcePath) {
|
|
110
|
-
args.unshift('-s', options.sourcePath);
|
|
111
|
-
}
|
|
112
|
-
await createWorktreeCommand.execute(args);
|
|
113
|
-
}
|
|
114
|
-
catch (error) {
|
|
115
|
-
const err = error;
|
|
116
|
-
logger.error(err.message);
|
|
117
|
-
process.exit(1);
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
// Push command
|
|
121
|
-
program
|
|
122
|
-
.command('push')
|
|
123
|
-
.alias('p')
|
|
124
|
-
.description('Commit and push changes, optionally creating a PR')
|
|
125
|
-
.option('-i, --project-item-url <url>', 'Project item URL for commit message')
|
|
126
|
-
.option('--no-project-item', 'Skip project item URL')
|
|
127
|
-
.option('--no-tests', 'Skip running tests before PR creation')
|
|
128
|
-
.option('--create-pr <value>', 'Whether to create PR (default: true)')
|
|
129
|
-
.option('-d, --dest-branch <branch>', 'PR target branch')
|
|
130
|
-
.action(async (options) => {
|
|
131
|
-
try {
|
|
132
|
-
const args = [];
|
|
133
|
-
if (options.projectItemUrl) {
|
|
134
|
-
args.push('-i', options.projectItemUrl);
|
|
135
|
-
}
|
|
136
|
-
if (options.noProjectItem === true) {
|
|
137
|
-
args.push('--no-project-item');
|
|
138
|
-
}
|
|
139
|
-
if (options.tests === false) {
|
|
140
|
-
args.push('--no-tests');
|
|
141
|
-
}
|
|
142
|
-
if (options.createPr !== undefined) {
|
|
143
|
-
args.push('--create-pr', String(options.createPr));
|
|
144
|
-
}
|
|
145
|
-
if (options.destBranch) {
|
|
146
|
-
args.push('-d', options.destBranch);
|
|
147
|
-
}
|
|
148
|
-
await pushCommand.execute(args);
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
const err = error;
|
|
152
|
-
logger.error(err.message);
|
|
153
|
-
process.exit(1);
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
// Update docs command
|
|
157
|
-
program
|
|
158
|
-
.command('update-docs')
|
|
159
|
-
.alias('docs')
|
|
160
|
-
.description('Update README.md files for folders with code changes')
|
|
161
|
-
.action(async () => {
|
|
162
|
-
try {
|
|
163
|
-
await updateDocsCommand.execute([]);
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
const err = error;
|
|
167
|
-
logger.error(err.message);
|
|
168
|
-
process.exit(1);
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
// Help command (also available as --help by default)
|
|
172
|
-
program
|
|
173
|
-
.command('help')
|
|
174
|
-
.alias('h')
|
|
175
|
-
.description('Show help information')
|
|
176
|
-
.action(async () => {
|
|
177
|
-
await helpCommand.execute([]);
|
|
178
|
-
});
|
|
179
|
-
// Release command
|
|
180
|
-
program
|
|
181
|
-
.command('release')
|
|
182
|
-
.alias('r')
|
|
183
|
-
.description('Create a release PR from release branch to main')
|
|
184
|
-
.option('-b, --branch <branch>', 'Source branch to release from')
|
|
185
|
-
.option('-t, --target <branch>', 'Target branch to release to')
|
|
186
|
-
.option('-pr, --pr-mode <mode>', 'PR mode: merge or review')
|
|
187
|
-
.option('--title <title>', 'PR title')
|
|
188
|
-
.action(async (options) => {
|
|
189
|
-
try {
|
|
190
|
-
const args = [];
|
|
191
|
-
if (options.branch) {
|
|
192
|
-
args.push('-b', options.branch);
|
|
193
|
-
}
|
|
194
|
-
if (options.target) {
|
|
195
|
-
args.push('-t', options.target);
|
|
196
|
-
}
|
|
197
|
-
if (options.prMode) {
|
|
198
|
-
args.push('--pr-mode', options.prMode);
|
|
199
|
-
}
|
|
200
|
-
if (options.title) {
|
|
201
|
-
args.push('--title', options.title);
|
|
202
|
-
}
|
|
203
|
-
await releaseCommand.execute(args);
|
|
204
|
-
}
|
|
205
|
-
catch (error) {
|
|
206
|
-
const err = error;
|
|
207
|
-
logger.error(err.message);
|
|
208
|
-
process.exit(1);
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
// Start dev implementation command
|
|
212
|
-
program
|
|
213
|
-
.command('start-dev-implementation')
|
|
214
|
-
.alias('dev')
|
|
215
|
-
.description('Transition from agent to dev implementation - creates PR and closes worktree')
|
|
216
|
-
.option('-p, --source-path <path>', 'Path to worktree directory')
|
|
217
|
-
.action(async (options) => {
|
|
218
|
-
try {
|
|
219
|
-
const args = [];
|
|
220
|
-
if (options.sourcePath) {
|
|
221
|
-
args.push('-p', options.sourcePath);
|
|
222
|
-
}
|
|
223
|
-
await startDevImplementationCommand.execute(args);
|
|
224
|
-
}
|
|
225
|
-
catch (error) {
|
|
226
|
-
const err = error;
|
|
227
|
-
logger.error(err.message);
|
|
228
|
-
process.exit(1);
|
|
229
|
-
}
|
|
230
|
-
});
|
|
231
|
-
// Ready for approval command
|
|
232
|
-
program
|
|
233
|
-
.command('ready-for-approval [reviewer]')
|
|
234
|
-
.alias('rfa')
|
|
235
|
-
.description('Mark PR as ready for approval and assign reviewer')
|
|
236
|
-
.option('-r, --reviewer <username>', 'GitHub username of reviewer')
|
|
237
|
-
.action(async (reviewer, options) => {
|
|
238
|
-
try {
|
|
239
|
-
const args = [];
|
|
240
|
-
if (reviewer) {
|
|
241
|
-
args.push(reviewer);
|
|
242
|
-
}
|
|
243
|
-
else if (options.reviewer) {
|
|
244
|
-
args.push('--reviewer', options.reviewer);
|
|
245
|
-
}
|
|
246
|
-
await readyForApprovalCommand.execute(args);
|
|
247
|
-
}
|
|
248
|
-
catch (error) {
|
|
249
|
-
const err = error;
|
|
250
|
-
logger.error(err.message);
|
|
251
|
-
process.exit(1);
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
// Approve PR command
|
|
255
|
-
program
|
|
256
|
-
.command('approve-pr')
|
|
257
|
-
.alias('approve')
|
|
258
|
-
.description('Approve and merge the PR, completing the workflow')
|
|
259
|
-
.option('-c, --comment <message>', 'Custom approval comment')
|
|
260
|
-
.action(async (options) => {
|
|
261
|
-
try {
|
|
262
|
-
const args = [];
|
|
263
|
-
if (options.comment) {
|
|
264
|
-
args.push('--comment', options.comment);
|
|
265
|
-
}
|
|
266
|
-
await approvePrCommand.execute(args);
|
|
267
|
-
}
|
|
268
|
-
catch (error) {
|
|
269
|
-
const err = error;
|
|
270
|
-
logger.error(err.message);
|
|
271
|
-
process.exit(1);
|
|
272
|
-
}
|
|
273
|
-
});
|
|
274
|
-
// Next workflow step command
|
|
275
|
-
program
|
|
276
|
-
.command('next-workflow-step')
|
|
277
|
-
.aliases(['next', 'n'])
|
|
278
|
-
.description('Automatically perform the next workflow transition')
|
|
279
|
-
.action(async () => {
|
|
280
|
-
try {
|
|
281
|
-
await nextWorkflowStepCommand.execute([]);
|
|
282
|
-
}
|
|
283
|
-
catch (error) {
|
|
284
|
-
const err = error;
|
|
285
|
-
logger.error(err.message);
|
|
286
|
-
process.exit(1);
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
return program;
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Check if argv contains a global option and return its value
|
|
293
|
-
*/
|
|
294
|
-
function findGlobalOption(argv, option) {
|
|
295
|
-
const index = argv.indexOf(option);
|
|
296
|
-
if (index === -1)
|
|
297
|
-
return undefined;
|
|
298
|
-
// Check if next arg exists and is not another option
|
|
299
|
-
const nextArg = argv[index + 1];
|
|
300
|
-
if (nextArg && !nextArg.startsWith('-')) {
|
|
301
|
-
return nextArg; // Return the value
|
|
302
|
-
}
|
|
303
|
-
return true; // Boolean flag
|
|
304
|
-
}
|
|
305
9
|
/**
|
|
306
10
|
* Run the CLI
|
|
307
11
|
*/
|
|
@@ -314,76 +18,53 @@ export async function runCli(argv) {
|
|
|
314
18
|
catch {
|
|
315
19
|
// Not in a git repository - skip setup
|
|
316
20
|
}
|
|
21
|
+
// Effective args (strip node and script path)
|
|
22
|
+
const args = argv.slice(2);
|
|
317
23
|
// If no arguments provided, run interactive mode
|
|
318
|
-
if (
|
|
24
|
+
if (args.length === 0) {
|
|
319
25
|
await runInteractiveMode();
|
|
320
26
|
return;
|
|
321
27
|
}
|
|
322
|
-
//
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
try {
|
|
327
|
-
await startProjectItemCommand.execute([startProjectItemValue]);
|
|
328
|
-
}
|
|
329
|
-
catch (error) {
|
|
330
|
-
const err = error;
|
|
331
|
-
logger.error(err.message);
|
|
332
|
-
process.exit(1);
|
|
333
|
-
}
|
|
28
|
+
// Handle global flags
|
|
29
|
+
const firstArg = args[0];
|
|
30
|
+
if (firstArg === '--version' || firstArg === '-v') {
|
|
31
|
+
console.log(VERSION);
|
|
334
32
|
return;
|
|
335
33
|
}
|
|
336
|
-
if (
|
|
337
|
-
|
|
338
|
-
await closeWorktreeCommand.execute([]);
|
|
339
|
-
}
|
|
340
|
-
catch (error) {
|
|
341
|
-
const err = error;
|
|
342
|
-
logger.error(err.message);
|
|
343
|
-
process.exit(1);
|
|
344
|
-
}
|
|
34
|
+
if (firstArg === '--help' || firstArg === '-h') {
|
|
35
|
+
printUsage();
|
|
345
36
|
return;
|
|
346
37
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
357
|
-
return;
|
|
38
|
+
// Extract command name
|
|
39
|
+
const commandName = firstArg;
|
|
40
|
+
const remainingArgs = args.slice(1);
|
|
41
|
+
// Find command in registry
|
|
42
|
+
const command = getCommand(commandName);
|
|
43
|
+
if (!command) {
|
|
44
|
+
logger.error(`Unknown command: ${commandName}`);
|
|
45
|
+
logger.dim("Run 'idea1 --help' to see available commands.");
|
|
46
|
+
process.exit(1);
|
|
358
47
|
}
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
}
|
|
363
|
-
catch (error) {
|
|
364
|
-
const err = error;
|
|
365
|
-
logger.error(err.message);
|
|
366
|
-
process.exit(1);
|
|
367
|
-
}
|
|
48
|
+
// Check for per-command --help
|
|
49
|
+
if (remainingArgs.includes('--help') || remainingArgs.includes('-h')) {
|
|
50
|
+
printCommandUsage(command);
|
|
368
51
|
return;
|
|
369
52
|
}
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
process.exit(1);
|
|
378
|
-
}
|
|
379
|
-
return;
|
|
53
|
+
try {
|
|
54
|
+
// Parse command line options
|
|
55
|
+
const parsed = parseCommandLine(remainingArgs, command);
|
|
56
|
+
// Resolve missing options (prompts if needed)
|
|
57
|
+
const resolved = await resolveOptions(command, parsed);
|
|
58
|
+
// Execute command
|
|
59
|
+
await command.execute(resolved);
|
|
380
60
|
}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
61
|
+
catch (error) {
|
|
62
|
+
const err = error;
|
|
63
|
+
if (err.message?.includes('command cancelled') || err.message?.includes('force closed')) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
logger.error(err.message);
|
|
67
|
+
process.exit(1);
|
|
384
68
|
}
|
|
385
|
-
// Parse and execute subcommand
|
|
386
|
-
const program = createProgram();
|
|
387
|
-
await program.parseAsync(argv);
|
|
388
69
|
}
|
|
389
70
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,6BAA6B,EAC7B,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,+EAA+E,CAAC;SAC5F,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;IAEnE,4DAA4D;IAC5D,OAAO;SACJ,MAAM,CAAC,4BAA4B,EAAE,mCAAmC,CAAC;SACzE,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;SAClE,MAAM,CAAC,0BAA0B,EAAE,kCAAkC,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,qCAAqC,CAAC;SACvD,MAAM,CAAC,eAAe,EAAE,sCAAsC,CAAC;SAC/D,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IAErD,6BAA6B;IAC7B,OAAO;SACJ,OAAO,CAAC,wCAAwC,CAAC;SACjD,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,6BAA6B,EAAE,iDAAiD,EAAE,UAAU,CAAC;SACpG,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;SAC9D,MAAM,CAAC,4BAA4B,EAAE,wCAAwC,EAAE,iBAAiB,CAAC;SACjG,MAAM,CAAC,eAAe,EAAE,gDAAgD,CAAC;SACzE,MAAM,CAAC,oBAAoB,EAAE,2CAA2C,CAAC;SACzE,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,UAA8B,EAAE,OAAyC,EAAE,EAAE;QACvG,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,CAAC,GAAG,CAAC,CAAC;YAE7B,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;YAED,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;gBAClE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,aAAuB,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAoB,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;gBACnE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAoB,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,yBAAyB;IACzB,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,0BAA0B,EAAE,4BAA4B,CAAC;SAChE,MAAM,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;SAC1D,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,UAAoB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,UAAoB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3B,CAAC;YAED,MAAM,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,0BAA0B;IAC1B,OAAO;SACJ,OAAO,CAAC,wBAAwB,CAAC;SACjC,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,4BAA4B,EAAE,uDAAuD,CAAC;SAC7F,MAAM,CAAC,8BAA8B,EAAE,gDAAgD,CAAC;SACxF,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAyC,EAAE,EAAE;QACxE,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAoB,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAsB,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAoB,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,eAAe;IACf,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,8BAA8B,EAAE,qCAAqC,CAAC;SAC7E,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SACpD,MAAM,CAAC,YAAY,EAAE,uCAAuC,CAAC;SAC7D,MAAM,CAAC,qBAAqB,EAAE,sCAAsC,CAAC;SACrE,MAAM,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,cAAwB,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,UAAoB,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sBAAsB;IACtB,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,KAAK,CAAC,MAAM,CAAC;SACb,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,qDAAqD;IACrD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEL,kBAAkB;IAClB,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;SAChE,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;SAC9D,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC;SAC3D,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAgB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAgB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,MAAgB,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAe,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mCAAmC;IACnC,OAAO;SACJ,OAAO,CAAC,0BAA0B,CAAC;SACnC,KAAK,CAAC,KAAK,CAAC;SACZ,WAAW,CAAC,8EAA8E,CAAC;SAC3F,MAAM,CAAC,0BAA0B,EAAE,4BAA4B,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,UAAoB,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,6BAA6B;IAC7B,OAAO;SACJ,OAAO,CAAC,+BAA+B,CAAC;SACxC,KAAK,CAAC,KAAK,CAAC;SACZ,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,2BAA2B,EAAE,6BAA6B,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,QAA4B,EAAE,OAAyC,EAAE,EAAE;QACxF,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,QAAkB,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,qBAAqB;IACrB,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,KAAK,CAAC,SAAS,CAAC;SAChB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,OAAiB,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,6BAA6B;IAC7B,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACtB,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAc,EAAE,MAAc;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnC,qDAAqD;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAChC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,CAAC,mBAAmB;IACrC,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,eAAe;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc;IACzC,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IAED,iDAAiD;IACjD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,kBAAkB,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,uDAAuD;IACvD,qDAAqD;IACrD,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAC7E,IAAI,qBAAqB,IAAI,OAAO,qBAAqB,KAAK,QAAQ,EAAE,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACxE,IAAI,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC7C,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve-pr.d.ts","sourceRoot":"","sources":["../../src/commands/approve-pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"approve-pr.d.ts","sourceRoot":"","sources":["../../src/commands/approve-pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQjD,eAAO,MAAM,gBAAgB,EAAE,OAgI9B,CAAC"}
|
|
@@ -4,36 +4,21 @@ import * as github from '../services/github.js';
|
|
|
4
4
|
import * as claude from '../services/claude.js';
|
|
5
5
|
import * as workflow from '../services/workflow.js';
|
|
6
6
|
import inquirer from 'inquirer';
|
|
7
|
-
/**
|
|
8
|
-
* Parse command line arguments for approve-pr
|
|
9
|
-
*/
|
|
10
|
-
function parseArgs(args) {
|
|
11
|
-
const options = {};
|
|
12
|
-
let i = 0;
|
|
13
|
-
while (i < args.length) {
|
|
14
|
-
const arg = args[i];
|
|
15
|
-
switch (arg) {
|
|
16
|
-
case '--comment':
|
|
17
|
-
case '-c':
|
|
18
|
-
i++;
|
|
19
|
-
options.comment = args[i];
|
|
20
|
-
break;
|
|
21
|
-
default:
|
|
22
|
-
if (arg.startsWith('-')) {
|
|
23
|
-
throw new Error(`Unknown option: ${arg}`);
|
|
24
|
-
}
|
|
25
|
-
throw new Error(`Unexpected argument: ${arg}`);
|
|
26
|
-
}
|
|
27
|
-
i++;
|
|
28
|
-
}
|
|
29
|
-
return options;
|
|
30
|
-
}
|
|
31
7
|
export const approvePrCommand = {
|
|
32
8
|
name: 'approve-pr',
|
|
33
9
|
aliases: ['approve'],
|
|
34
10
|
description: 'Approve and merge the PR, completing the workflow',
|
|
35
|
-
|
|
36
|
-
|
|
11
|
+
options: [
|
|
12
|
+
{
|
|
13
|
+
longName: 'comment',
|
|
14
|
+
shortName: 'c',
|
|
15
|
+
description: 'Custom approval comment',
|
|
16
|
+
defaultValue: '',
|
|
17
|
+
promptWhenDefaultExists: false
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
async execute(resolved) {
|
|
21
|
+
const comment = resolved['comment'] || undefined;
|
|
37
22
|
// Validate transition
|
|
38
23
|
const validation = await workflow.validateTransition('approve-pr');
|
|
39
24
|
if (!validation.valid) {
|
|
@@ -65,7 +50,7 @@ export const approvePrCommand = {
|
|
|
65
50
|
}
|
|
66
51
|
else if (approvalStatus.isRequestedReviewer) {
|
|
67
52
|
// User is a reviewer and hasn't approved yet - approve
|
|
68
|
-
const approvalComment =
|
|
53
|
+
const approvalComment = comment ?? 'Approved via idea1 CLI workflow';
|
|
69
54
|
const approved = await github.approvePr(branchName, approvalComment);
|
|
70
55
|
if (!approved) {
|
|
71
56
|
logger.warning('Failed to approve PR, continuing with merge...');
|
|
@@ -125,7 +110,7 @@ export const approvePrCommand = {
|
|
|
125
110
|
try {
|
|
126
111
|
await git.deleteBranch(branchName, true);
|
|
127
112
|
}
|
|
128
|
-
catch
|
|
113
|
+
catch {
|
|
129
114
|
// Branch might already be deleted on remote after merge
|
|
130
115
|
logger.dim(`Note: Branch ${branchName} may have been automatically deleted after merge`);
|
|
131
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve-pr.js","sourceRoot":"","sources":["../../src/commands/approve-pr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC
|
|
1
|
+
{"version":3,"file":"approve-pr.js","sourceRoot":"","sources":["../../src/commands/approve-pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close-worktree.d.ts","sourceRoot":"","sources":["../../src/commands/close-worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"close-worktree.d.ts","sourceRoot":"","sources":["../../src/commands/close-worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA6EjD,eAAO,MAAM,oBAAoB,EAAE,OAuIlC,CAAC"}
|
|
@@ -4,40 +4,6 @@ import * as github from '../services/github.js';
|
|
|
4
4
|
import * as claude from '../services/claude.js';
|
|
5
5
|
import { configService } from '../services/config.js';
|
|
6
6
|
import inquirer from 'inquirer';
|
|
7
|
-
/**
|
|
8
|
-
* Parse command line arguments for close-worktree
|
|
9
|
-
*/
|
|
10
|
-
function parseArgs(args) {
|
|
11
|
-
const options = {
|
|
12
|
-
promptPr: false
|
|
13
|
-
};
|
|
14
|
-
let i = 0;
|
|
15
|
-
while (i < args.length) {
|
|
16
|
-
const arg = args[i];
|
|
17
|
-
switch (arg) {
|
|
18
|
-
case '--source-path':
|
|
19
|
-
case '-p':
|
|
20
|
-
i++;
|
|
21
|
-
options.sourcePath = args[i];
|
|
22
|
-
break;
|
|
23
|
-
case '--base-branch':
|
|
24
|
-
case '-b':
|
|
25
|
-
i++;
|
|
26
|
-
options.baseBranch = args[i];
|
|
27
|
-
break;
|
|
28
|
-
case '--prompt-pr':
|
|
29
|
-
options.promptPr = true;
|
|
30
|
-
break;
|
|
31
|
-
default:
|
|
32
|
-
if (arg.startsWith('-')) {
|
|
33
|
-
throw new Error(`Unknown option: ${arg}`);
|
|
34
|
-
}
|
|
35
|
-
throw new Error(`Unexpected argument: ${arg}`);
|
|
36
|
-
}
|
|
37
|
-
i++;
|
|
38
|
-
}
|
|
39
|
-
return options;
|
|
40
|
-
}
|
|
41
7
|
/**
|
|
42
8
|
* Prompt for project item URL
|
|
43
9
|
*/
|
|
@@ -100,17 +66,38 @@ export const closeWorktreeCommand = {
|
|
|
100
66
|
name: 'close-worktree',
|
|
101
67
|
aliases: ['c', 'close'],
|
|
102
68
|
description: 'Close current worktree, commit changes, and create PR',
|
|
103
|
-
|
|
104
|
-
|
|
69
|
+
options: [
|
|
70
|
+
{
|
|
71
|
+
longName: 'source-path',
|
|
72
|
+
shortName: 'p',
|
|
73
|
+
description: 'Path to worktree directory',
|
|
74
|
+
defaultValue: './',
|
|
75
|
+
promptWhenDefaultExists: true
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
longName: 'base-branch',
|
|
79
|
+
shortName: 'b',
|
|
80
|
+
description: 'Base branch for PR',
|
|
81
|
+
defaultValue: undefined,
|
|
82
|
+
promptWhenDefaultExists: true
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
longName: 'prompt-pr',
|
|
86
|
+
description: 'Prompt before creating PR',
|
|
87
|
+
isFlag: true
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
async execute(resolved) {
|
|
91
|
+
const sourcePath = resolved['source-path'];
|
|
92
|
+
const baseBranchArg = resolved['base-branch'] || undefined;
|
|
93
|
+
const promptPr = resolved['prompt-pr'] === 'true';
|
|
105
94
|
// Navigate to source path if provided
|
|
106
|
-
if (
|
|
107
|
-
process.chdir(
|
|
95
|
+
if (sourcePath) {
|
|
96
|
+
process.chdir(sourcePath);
|
|
108
97
|
}
|
|
109
98
|
logger.step('Gathering worktree information...');
|
|
110
99
|
// Get the main repository root dynamically
|
|
111
100
|
const mainRepoRoot = await git.getMainRepoRoot();
|
|
112
|
-
// Get repository name
|
|
113
|
-
const repoName = await git.getRepoName();
|
|
114
101
|
// Get current branch
|
|
115
102
|
const fullBranchName = await git.getCurrentBranch();
|
|
116
103
|
// Extract short branch name (remove "working/agent/" prefix)
|
|
@@ -127,7 +114,7 @@ export const closeWorktreeCommand = {
|
|
|
127
114
|
logger.dim(`Found stored project item URL: ${projectItemUrl}`);
|
|
128
115
|
}
|
|
129
116
|
// Resolve base branch
|
|
130
|
-
const baseBranchName = await resolveBaseBranch(
|
|
117
|
+
const baseBranchName = await resolveBaseBranch(baseBranchArg, fullBranchName);
|
|
131
118
|
// Check for uncommitted changes
|
|
132
119
|
const hasChanges = await git.hasUncommittedChanges();
|
|
133
120
|
if (hasChanges) {
|
|
@@ -153,7 +140,7 @@ export const closeWorktreeCommand = {
|
|
|
153
140
|
if (!prInfo) {
|
|
154
141
|
logger.newline();
|
|
155
142
|
let shouldCreatePr = true;
|
|
156
|
-
if (
|
|
143
|
+
if (promptPr) {
|
|
157
144
|
shouldCreatePr = await askCreatePr();
|
|
158
145
|
}
|
|
159
146
|
if (shouldCreatePr) {
|