@qelos/aidev 0.7.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
File without changes
@@ -1,10 +1,24 @@
1
- import { Config } from '../types';
1
+ import { Comment, Config } from '../types';
2
2
  import { TaskProvider } from '../providers';
3
+ /**
4
+ * Stable phrase embedded in the conflict comment so we can detect a previously
5
+ * posted notice on later cron ticks and avoid spamming the ticket. Changing
6
+ * this phrase will cause one duplicate notice on tickets that already received
7
+ * a notice from a previous version.
8
+ */
9
+ export declare const ACCEPTED_CONFLICT_MARKER = "has merge conflicts and cannot be auto-merged";
3
10
  /**
4
11
  * Comment posted on the task immediately before merging an accepted PR (so the
5
12
  * ticket records that aidev is performing the merge).
6
13
  */
7
14
  export declare function buildAcceptedMergeComment(config: Config, branchName: string): string;
15
+ /**
16
+ * One-time notice posted when an accepted PR cannot be merged because of
17
+ * conflicts. Phrased so {@link hasAlreadyNotifiedConflict} can detect it on
18
+ * later runs.
19
+ */
20
+ export declare function buildAcceptedConflictComment(config: Config, branchName: string, baseBranch: string): string;
21
+ export declare function hasAlreadyNotifiedConflict(comments: Comment[], commentPrefix: string): boolean;
8
22
  /**
9
23
  * Pick the configured done status, otherwise probe the board for one of the
10
24
  * common "done" names (done / closed / finish / success / prod). Returns null
@@ -1 +1 @@
1
- {"version":3,"file":"accepted.d.ts","sourceRoot":"","sources":["../../src/commands/accepted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ5C;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBxB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAsFf"}
1
+ {"version":3,"file":"accepted.d.ts","sourceRoot":"","sources":["../../src/commands/accepted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAa5C;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,kDAAkD,CAAC;AAExF;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,CAMR;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAIT;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBxB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAwHf"}
@@ -33,7 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ACCEPTED_CONFLICT_MARKER = void 0;
36
37
  exports.buildAcceptedMergeComment = buildAcceptedMergeComment;
38
+ exports.buildAcceptedConflictComment = buildAcceptedConflictComment;
39
+ exports.hasAlreadyNotifiedConflict = hasAlreadyNotifiedConflict;
37
40
  exports.resolveDoneStatus = resolveDoneStatus;
38
41
  exports.acceptedCommand = acceptedCommand;
39
42
  const logger_1 = require("../logger");
@@ -41,6 +44,13 @@ const github_1 = require("../github");
41
44
  const git = __importStar(require("../git"));
42
45
  const run_1 = require("./run");
43
46
  const DONE_STATUS_CANDIDATES = ['done', 'closed', 'finish', 'success', 'prod'];
47
+ /**
48
+ * Stable phrase embedded in the conflict comment so we can detect a previously
49
+ * posted notice on later cron ticks and avoid spamming the ticket. Changing
50
+ * this phrase will cause one duplicate notice on tickets that already received
51
+ * a notice from a previous version.
52
+ */
53
+ exports.ACCEPTED_CONFLICT_MARKER = 'has merge conflicts and cannot be auto-merged';
44
54
  /**
45
55
  * Comment posted on the task immediately before merging an accepted PR (so the
46
56
  * ticket records that aidev is performing the merge).
@@ -48,6 +58,19 @@ const DONE_STATUS_CANDIDATES = ['done', 'closed', 'finish', 'success', 'prod'];
48
58
  function buildAcceptedMergeComment(config, branchName) {
49
59
  return `${config.commentPrefix} Merging the accepted pull request for branch \`${branchName}\`.`;
50
60
  }
61
+ /**
62
+ * One-time notice posted when an accepted PR cannot be merged because of
63
+ * conflicts. Phrased so {@link hasAlreadyNotifiedConflict} can detect it on
64
+ * later runs.
65
+ */
66
+ function buildAcceptedConflictComment(config, branchName, baseBranch) {
67
+ return (`${config.commentPrefix} Cannot merge accepted pull request for branch \`${branchName}\` — ` +
68
+ `the PR ${exports.ACCEPTED_CONFLICT_MARKER} with \`${baseBranch}\`. Resolve the conflicts ` +
69
+ `(or retrigger the task to let aidev attempt resolution) before this can be merged.`);
70
+ }
71
+ function hasAlreadyNotifiedConflict(comments, commentPrefix) {
72
+ return comments.some((c) => c.text.startsWith(commentPrefix) && c.text.includes(exports.ACCEPTED_CONFLICT_MARKER));
73
+ }
51
74
  /**
52
75
  * Pick the configured done status, otherwise probe the board for one of the
53
76
  * common "done" names (done / closed / finish / success / prod). Returns null
@@ -115,6 +138,28 @@ async function acceptedCommand(config, provider) {
115
138
  for (const task of acceptedTasks) {
116
139
  const branchName = `${task.id}/${git.slugify(task.name)}`;
117
140
  logger_1.logger.task(`[${task.id}] "${task.name}" — merging branch ${branchName}`);
141
+ const mergeability = (0, github_1.getPullRequestMergeability)(branchName);
142
+ if (mergeability === 'CONFLICTING') {
143
+ let existingComments = [];
144
+ try {
145
+ existingComments = await provider.getComments(task.id);
146
+ }
147
+ catch (err) {
148
+ logger_1.logger.warn(`[${task.id}] Failed to fetch comments to check for prior conflict notice: ${err instanceof Error ? err.message : String(err)}`);
149
+ }
150
+ if (hasAlreadyNotifiedConflict(existingComments, config.commentPrefix)) {
151
+ logger_1.logger.info(`[${task.id}] Skipping — PR has merge conflicts and the ticket was already notified.`);
152
+ continue;
153
+ }
154
+ try {
155
+ await provider.postComment(task.id, buildAcceptedConflictComment(config, branchName, config.githubBaseBranch));
156
+ logger_1.logger.warn(`[${task.id}] PR has merge conflicts with ${config.githubBaseBranch} — posted notice and skipping.`);
157
+ }
158
+ catch (err) {
159
+ logger_1.logger.warn(`[${task.id}] Failed to post conflict notice: ${err instanceof Error ? err.message : String(err)}`);
160
+ }
161
+ continue;
162
+ }
118
163
  try {
119
164
  await provider.postComment(task.id, buildAcceptedMergeComment(config, branchName));
120
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"accepted.js","sourceRoot":"","sources":["../../src/commands/accepted.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accepted.js","sourceRoot":"","sources":["../../src/commands/accepted.ts"],"names":[],"mappings":"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"}
@@ -46,86 +46,86 @@ function windowsCursorAgentLine(opts) {
46
46
  ` ${y('!')} Cursor runner needs the Agent CLI. Install: ${c("irm 'https://cursor.com/install?win32=true' | iex")}\n`;
47
47
  }
48
48
  function helpCommand() {
49
- console.log(`
50
- ${b('aidev')} ${d('v0.1.0')} — AI-powered task executor
51
-
52
- ${b('USAGE')}
53
- ${c('aidev')} ${d('[command]')}
54
-
55
- ${b('COMMANDS')}
56
- ${c('init')} Interactive setup — create ${d('.env.aidev')}
57
- ${c('run')} Process all open + pending-with-replies tasks
58
- ${c('run open')} Only open (non-pending) tasks
59
- ${c('run pending')} Only pending tasks — check for human replies
60
- ${c('run tasks')} Publish queued ${d('aidev.tasks.json')} entries and exit
61
- ${c('tasks add')} Queue a new task in ${d('aidev.tasks.json')} (interactive)
62
- ${c('tasks ls')} List queued tasks
63
- ${c('tasks update')} ${d('[id]')} Edit a queued task
64
- ${c('tasks remove')} ${d('[id]')} Delete a queued task
65
- ${c('tasks push')} Publish all queued tasks now (same as ${c('run tasks')})
66
- ${c('schedule set')} ${d('<cron>')} Set cron schedule for this directory
67
- ${c('schedule get')} Show current cron schedule
68
- ${c('help')} Show this help message
69
-
70
- ${b('TRIGGER WORD')}
71
- When a task is skipped (branch exists or pending with no reply), post a comment
72
- containing the trigger word ${d('(default: aidev-continue)')} to re-trigger processing.
73
- The existing branch will be reused. Set ${c('AIDEV_TRIGGER_WORD')} to customise.
74
-
75
- ${b('HOOKS')}
76
- Set ${c('AIDEV_HOOKS_PATH')} to a ${d('.ts')} or ${d('.js')} file to run optional async hooks
77
- ${d('(beforeRun, beforeEachTask, beforeResolveConflicts, …)')}. ${c('aidev init')} creates
78
- ${d('.aidev/aidev.hooks.ts')} and points this variable at it. Throw from a hook to abort that step.
79
-
80
- ${b('LOCAL PROVIDER')}
81
- Set ${c('PROVIDER=local')} in ${d('.env.aidev')} to use file-based task management.
82
- Tasks live in ${d('.aidev/tasks/')} under status folders: ${c('open')}, ${c('pending')},
83
- ${c('progress')}, ${c('review')}, ${c('done')}.
84
-
85
- Each task is a markdown file with YAML frontmatter (title, priority, tags, etc.)
86
- and a description body. Comments are stored in a ${d('.session.md')} companion file.
87
- To add a comment, append a ${d('## your-name')} section to the session file.
88
- Add ${c('type: non-code')} to frontmatter for tasks that skip git branching.
89
- Run ${c('aidev init')} with provider ${c('local')} to create the folder structure.
90
-
91
- ${b('LOCAL TASKS FILE')}
92
- ${d('aidev.tasks.json')} queues tasks to publish to your remote provider. Each entry
93
- has a title, description, type (${c('code')} | ${c('non-code')}), optional priority, tags, and cron.
94
- Every ${c('aidev run')} publishes pending entries; one-shot entries are removed after
95
- publishing, cron entries stay and re-publish on schedule. Manage with ${c('aidev tasks')}
96
- ${d('(add / ls / update / remove / push)')} or edit the JSON file directly.
97
-
98
- ${b('NON-CODE TASKS')}
99
- Tasks tagged with the ${c('NON_CODE_TAG')} are executed without git branching —
100
- no checkout, commit, push, or PR creation. The AI agent runs the task directly
101
- in the current working directory. Useful for research, documentation, or tasks
102
- that don't produce code changes requiring review.
103
- Optionally use a different ClickUp team (${c('NON_CODE_CLICKUP_TEAM_ID')}) or
104
- Jira project (${c('NON_CODE_JIRA_PROJECT')}) for non-code tasks.
105
- If ${c('NON_CODE_TAG')} is not set, it defaults to ${d('<folder-name>-other')}.
106
-
107
- ${b('EXAMPLES')}
108
- ${d('$')} ${g('aidev init')}
109
- ${d('$')} ${g('aidev run')}
110
- ${d('$')} ${g('aidev run open')}
111
- ${d('$')} ${g('aidev schedule set "*/30 * * * *"')}
112
- ${d('$')} ${g('aidev schedule get')}
113
-
114
- ${b('CONFIG')} ${d('.env.aidev in your project directory')}
115
- ${d('PROVIDER')} ${c('clickup')} ${d('(default) | jira | linear | local | monday | notion | trello')}
116
- ${d('CLICKUP_API_KEY')} ClickUp personal API token
117
- ${d('CLICKUP_TEAM_ID')} Workspace / team ID
118
- ${d('CLICKUP_TAG')} Tag used to filter tasks ${d('(default: folder name)')}
119
- ${d('AGENTS')} Agent order: ${c('claude,cursor')} ${d('| antigravity | cursor | windsurf | …')}
120
- ${d('DEV_NOTES_MODE')} ${c('smart')} ${d('(default) | always')}
121
- ${d('AIDEV_TRIGGER_WORD')} Trigger word to re-process a skipped task ${d('(default: aidev-continue)')}
122
- ${d('AIDEV_HOOKS_PATH')} Optional hooks module ${d('(default from init: .aidev/aidev.hooks.ts)')}
123
- ${d('NON_CODE_TAG')} Tag for non-code tasks ${d('(default: <folder-name>-other)')}
124
- ${d('GIT_REMOTE')} Remote name ${d('(auto-detected if unset)')}
125
- ${d('GITHUB_BASE_BRANCH')} Base branch ${d('(default: main)')}
126
- ${d('GITHUB_REPO')} ${d('owner/repo')} for PR links
127
- ${ghStatusLine()}${windowsCursorAgentLine()}
128
- Run ${c('aidev init')} to configure interactively.
49
+ console.log(`
50
+ ${b('aidev')} ${d('v0.1.0')} — AI-powered task executor
51
+
52
+ ${b('USAGE')}
53
+ ${c('aidev')} ${d('[command]')}
54
+
55
+ ${b('COMMANDS')}
56
+ ${c('init')} Interactive setup — create ${d('.env.aidev')}
57
+ ${c('run')} Process all open + pending-with-replies tasks
58
+ ${c('run open')} Only open (non-pending) tasks
59
+ ${c('run pending')} Only pending tasks — check for human replies
60
+ ${c('run tasks')} Publish queued ${d('aidev.tasks.json')} entries and exit
61
+ ${c('tasks add')} Queue a new task in ${d('aidev.tasks.json')} (interactive)
62
+ ${c('tasks ls')} List queued tasks
63
+ ${c('tasks update')} ${d('[id]')} Edit a queued task
64
+ ${c('tasks remove')} ${d('[id]')} Delete a queued task
65
+ ${c('tasks push')} Publish all queued tasks now (same as ${c('run tasks')})
66
+ ${c('schedule set')} ${d('<cron>')} Set cron schedule for this directory
67
+ ${c('schedule get')} Show current cron schedule
68
+ ${c('help')} Show this help message
69
+
70
+ ${b('TRIGGER WORD')}
71
+ When a task is skipped (branch exists or pending with no reply), post a comment
72
+ containing the trigger word ${d('(default: aidev-continue)')} to re-trigger processing.
73
+ The existing branch will be reused. Set ${c('AIDEV_TRIGGER_WORD')} to customise.
74
+
75
+ ${b('HOOKS')}
76
+ Set ${c('AIDEV_HOOKS_PATH')} to a ${d('.ts')} or ${d('.js')} file to run optional async hooks
77
+ ${d('(beforeRun, beforeEachTask, beforeResolveConflicts, …)')}. ${c('aidev init')} creates
78
+ ${d('.aidev/aidev.hooks.ts')} and points this variable at it. Throw from a hook to abort that step.
79
+
80
+ ${b('LOCAL PROVIDER')}
81
+ Set ${c('PROVIDER=local')} in ${d('.env.aidev')} to use file-based task management.
82
+ Tasks live in ${d('.aidev/tasks/')} under status folders: ${c('open')}, ${c('pending')},
83
+ ${c('progress')}, ${c('review')}, ${c('done')}.
84
+
85
+ Each task is a markdown file with YAML frontmatter (title, priority, tags, etc.)
86
+ and a description body. Comments are stored in a ${d('.session.md')} companion file.
87
+ To add a comment, append a ${d('## your-name')} section to the session file.
88
+ Add ${c('type: non-code')} to frontmatter for tasks that skip git branching.
89
+ Run ${c('aidev init')} with provider ${c('local')} to create the folder structure.
90
+
91
+ ${b('LOCAL TASKS FILE')}
92
+ ${d('aidev.tasks.json')} queues tasks to publish to your remote provider. Each entry
93
+ has a title, description, type (${c('code')} | ${c('non-code')}), optional priority, tags, and cron.
94
+ Every ${c('aidev run')} publishes pending entries; one-shot entries are removed after
95
+ publishing, cron entries stay and re-publish on schedule. Manage with ${c('aidev tasks')}
96
+ ${d('(add / ls / update / remove / push)')} or edit the JSON file directly.
97
+
98
+ ${b('NON-CODE TASKS')}
99
+ Tasks tagged with the ${c('NON_CODE_TAG')} are executed without git branching —
100
+ no checkout, commit, push, or PR creation. The AI agent runs the task directly
101
+ in the current working directory. Useful for research, documentation, or tasks
102
+ that don't produce code changes requiring review.
103
+ Optionally use a different ClickUp team (${c('NON_CODE_CLICKUP_TEAM_ID')}) or
104
+ Jira project (${c('NON_CODE_JIRA_PROJECT')}) for non-code tasks.
105
+ If ${c('NON_CODE_TAG')} is not set, it defaults to ${d('<folder-name>-other')}.
106
+
107
+ ${b('EXAMPLES')}
108
+ ${d('$')} ${g('aidev init')}
109
+ ${d('$')} ${g('aidev run')}
110
+ ${d('$')} ${g('aidev run open')}
111
+ ${d('$')} ${g('aidev schedule set "*/30 * * * *"')}
112
+ ${d('$')} ${g('aidev schedule get')}
113
+
114
+ ${b('CONFIG')} ${d('.env.aidev in your project directory')}
115
+ ${d('PROVIDER')} ${c('clickup')} ${d('(default) | jira | linear | local | monday | notion | trello')}
116
+ ${d('CLICKUP_API_KEY')} ClickUp personal API token
117
+ ${d('CLICKUP_TEAM_ID')} Workspace / team ID
118
+ ${d('CLICKUP_TAG')} Tag used to filter tasks ${d('(default: folder name)')}
119
+ ${d('AGENTS')} Agent order: ${c('claude,cursor')} ${d('| antigravity | cursor | windsurf | …')}
120
+ ${d('DEV_NOTES_MODE')} ${c('smart')} ${d('(default) | always')}
121
+ ${d('AIDEV_TRIGGER_WORD')} Trigger word to re-process a skipped task ${d('(default: aidev-continue)')}
122
+ ${d('AIDEV_HOOKS_PATH')} Optional hooks module ${d('(default from init: .aidev/aidev.hooks.ts)')}
123
+ ${d('NON_CODE_TAG')} Tag for non-code tasks ${d('(default: <folder-name>-other)')}
124
+ ${d('GIT_REMOTE')} Remote name ${d('(auto-detected if unset)')}
125
+ ${d('GITHUB_BASE_BRANCH')} Base branch ${d('(default: main)')}
126
+ ${d('GITHUB_REPO')} ${d('owner/repo')} for PR links
127
+ ${ghStatusLine()}${windowsCursorAgentLine()}
128
+ Run ${c('aidev init')} to configure interactively.
129
129
  `);
130
130
  }
131
131
  //# sourceMappingURL=help.js.map
@@ -9,7 +9,7 @@ export declare function getWindowsCursorInitMessage(agents: string, platform?: {
9
9
  }): string | null;
10
10
  export declare function ensureGitignore(dir?: string): void;
11
11
  export interface Answers {
12
- provider: 'clickup' | 'jira' | 'linear' | 'local' | 'monday';
12
+ provider: 'clickup' | 'jira' | 'linear' | 'local' | 'monday' | 'trello';
13
13
  clickupApiKey: string;
14
14
  clickupTeamId: string;
15
15
  clickupTag: string;
@@ -31,6 +31,17 @@ export interface Answers {
31
31
  mondayBoardId: string;
32
32
  mondayStatusColumnId: string;
33
33
  mondayGroupId: string;
34
+ trelloApiKey: string;
35
+ trelloToken: string;
36
+ trelloBoardId: string;
37
+ trelloLabel: string;
38
+ trelloOpenList: string;
39
+ trelloPendingList: string;
40
+ trelloInProgressList: string;
41
+ trelloInReviewList: string;
42
+ trelloOpenStatus: string;
43
+ trelloPendingStatus: string;
44
+ trelloInReviewStatus: string;
34
45
  nonCodeTag: string;
35
46
  nonCodeClickupTeamId: string;
36
47
  nonCodeJiraProject: string;
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA0BA;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GACzE,MAAM,GAAG,IAAI,CAiBf;AAED,wBAAgB,eAAe,CAAC,GAAG,SAAgB,GAAG,IAAI,CAyBzD;AAuCD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAE7D,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAE3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAE7B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAE5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAqHD,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAMD,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CA0F5C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA4BtD;AA6GD,wBAAgB,sBAAsB,CAAC,GAAG,SAAgB,GAAG,IAAI,CAchE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAkXjD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA0BA;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GACzE,MAAM,GAAG,IAAI,CAiBf;AAED,wBAAgB,eAAe,CAAC,GAAG,SAAgB,GAAG,IAAI,CAyBzD;AAuCD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAExE,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAE3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAE7B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IAEtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAE7B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAE5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAqHD,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAMD,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAyG5C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA4BtD;AA6GD,wBAAgB,sBAAsB,CAAC,GAAG,SAAgB,GAAG,IAAI,CAchE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsajD"}