@dongowu/git-ai-cli 1.0.21 → 2.0.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 (82) hide show
  1. package/README.md +200 -157
  2. package/bin/git-ai.cjs +57 -0
  3. package/install.cjs +50 -0
  4. package/package.json +27 -28
  5. package/.claude/settings.local.json +0 -17
  6. package/CHANGELOG.md +0 -46
  7. package/README_EN.md +0 -264
  8. package/dist/cli.d.ts +0 -3
  9. package/dist/cli.d.ts.map +0 -1
  10. package/dist/cli.js +0 -17
  11. package/dist/cli.js.map +0 -1
  12. package/dist/cli_main.d.ts +0 -2
  13. package/dist/cli_main.d.ts.map +0 -1
  14. package/dist/cli_main.js +0 -255
  15. package/dist/cli_main.js.map +0 -1
  16. package/dist/commands/branch.d.ts +0 -11
  17. package/dist/commands/branch.d.ts.map +0 -1
  18. package/dist/commands/branch.js +0 -279
  19. package/dist/commands/branch.js.map +0 -1
  20. package/dist/commands/commit.d.ts +0 -9
  21. package/dist/commands/commit.d.ts.map +0 -1
  22. package/dist/commands/commit.js +0 -326
  23. package/dist/commands/commit.js.map +0 -1
  24. package/dist/commands/config.d.ts +0 -2
  25. package/dist/commands/config.d.ts.map +0 -1
  26. package/dist/commands/config.js +0 -164
  27. package/dist/commands/config.js.map +0 -1
  28. package/dist/commands/config_manage.d.ts +0 -14
  29. package/dist/commands/config_manage.d.ts.map +0 -1
  30. package/dist/commands/config_manage.js +0 -394
  31. package/dist/commands/config_manage.js.map +0 -1
  32. package/dist/commands/hook.d.ts +0 -5
  33. package/dist/commands/hook.d.ts.map +0 -1
  34. package/dist/commands/hook.js +0 -528
  35. package/dist/commands/hook.js.map +0 -1
  36. package/dist/commands/msg.d.ts +0 -20
  37. package/dist/commands/msg.d.ts.map +0 -1
  38. package/dist/commands/msg.js +0 -148
  39. package/dist/commands/msg.js.map +0 -1
  40. package/dist/commands/pr.d.ts +0 -8
  41. package/dist/commands/pr.d.ts.map +0 -1
  42. package/dist/commands/pr.js +0 -96
  43. package/dist/commands/pr.js.map +0 -1
  44. package/dist/commands/release.d.ts +0 -8
  45. package/dist/commands/release.d.ts.map +0 -1
  46. package/dist/commands/release.js +0 -95
  47. package/dist/commands/release.js.map +0 -1
  48. package/dist/commands/report.d.ts +0 -9
  49. package/dist/commands/report.d.ts.map +0 -1
  50. package/dist/commands/report.js +0 -162
  51. package/dist/commands/report.js.map +0 -1
  52. package/dist/types.d.ts +0 -46
  53. package/dist/types.d.ts.map +0 -1
  54. package/dist/types.js +0 -86
  55. package/dist/types.js.map +0 -1
  56. package/dist/utils/agent.d.ts +0 -5
  57. package/dist/utils/agent.d.ts.map +0 -1
  58. package/dist/utils/agent.js +0 -308
  59. package/dist/utils/agent.js.map +0 -1
  60. package/dist/utils/agent_lite.d.ts +0 -5
  61. package/dist/utils/agent_lite.d.ts.map +0 -1
  62. package/dist/utils/agent_lite.js +0 -263
  63. package/dist/utils/agent_lite.js.map +0 -1
  64. package/dist/utils/ai.d.ts +0 -43
  65. package/dist/utils/ai.d.ts.map +0 -1
  66. package/dist/utils/ai.js +0 -1103
  67. package/dist/utils/ai.js.map +0 -1
  68. package/dist/utils/config.d.ts +0 -11
  69. package/dist/utils/config.d.ts.map +0 -1
  70. package/dist/utils/config.js +0 -239
  71. package/dist/utils/config.js.map +0 -1
  72. package/dist/utils/git.d.ts +0 -42
  73. package/dist/utils/git.d.ts.map +0 -1
  74. package/dist/utils/git.js +0 -456
  75. package/dist/utils/git.js.map +0 -1
  76. package/dist/utils/update.d.ts +0 -4
  77. package/dist/utils/update.d.ts.map +0 -1
  78. package/dist/utils/update.js +0 -122
  79. package/dist/utils/update.js.map +0 -1
  80. package/release_notes.md +0 -9
  81. package/scripts/release.sh +0 -34
  82. package/test_agent_feature.ts +0 -1
@@ -1,279 +0,0 @@
1
- import inquirer from 'inquirer';
2
- import chalk from 'chalk';
3
- import { getMergedConfig, getLocalConfigError } from '../utils/config.js';
4
- import { isGitInstalled, isInGitRepo, isValidBranchName, branchExists, checkoutBranch, createBranch, } from '../utils/git.js';
5
- const DEFAULT_BRANCH_TYPES = ['feat', 'fix', 'docs', 'refactor', 'perf', 'test', 'chore', 'build', 'ci'];
6
- const DEFAULT_PATTERN = '{type}/{issue?}{name}';
7
- const DEFAULT_ISSUE_SEPARATOR = '-';
8
- const DEFAULT_NAME_MAXLEN = 50;
9
- function normalizeType(input) {
10
- const trimmed = input.trim().toLowerCase();
11
- if (trimmed === 'doc')
12
- return 'docs';
13
- return trimmed;
14
- }
15
- function extractIssue(input, pattern) {
16
- if (!input)
17
- return null;
18
- const match = input.match(pattern);
19
- return match ? match[0] : null;
20
- }
21
- function stripIssueFromName(name, issue) {
22
- const escaped = issue.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
23
- return name
24
- .replace(new RegExp(escaped, 'g'), '')
25
- .replace(/[-_]+/g, ' ')
26
- .replace(/\s+/g, ' ')
27
- .trim();
28
- }
29
- function sanitizeName(input, maxLen) {
30
- let out = input.trim();
31
- out = out.replace(/\s+/g, '-');
32
- out = out.replace(/[~^:?*[\]\\]/g, '-');
33
- out = out.replace(/@{/g, '-');
34
- out = out.replace(/\.{2,}/g, '.');
35
- out = out.replace(/\/{2,}/g, '/');
36
- out = out.replace(/^-+/, '').replace(/-+$/, '');
37
- if (out.length > maxLen) {
38
- out = out.slice(0, maxLen).replace(/-+$/g, '');
39
- }
40
- return out;
41
- }
42
- function renderPattern(pattern, tokens, sep) {
43
- let out = pattern;
44
- const issuePrefix = tokens.issue ? `${tokens.issue}${sep}` : '';
45
- out = out.replace('{issue?}', issuePrefix);
46
- out = out.replace('{issue}', tokens.issue || '');
47
- out = out.replace('{type}', tokens.type);
48
- out = out.replace('{name}', tokens.name);
49
- out = out.replace(/\/{2,}/g, '/');
50
- out = out.replace(/-+/g, '-');
51
- return out.replace(/\/$/, '');
52
- }
53
- function buildBranchName(input) {
54
- const type = normalizeType(input.type);
55
- const name = sanitizeName(input.name, input.maxLen);
56
- const issue = input.issue ? input.issue.trim() : '';
57
- return renderPattern(input.pattern, { type, name, issue: issue || undefined }, input.issueSeparator);
58
- }
59
- function resolveBranchTypes(config) {
60
- const branchTypes = Array.isArray(config.branch?.types) && config.branch?.types?.length
61
- ? config.branch.types
62
- : Array.isArray(config.rules?.types) && config.rules?.types?.length
63
- ? config.rules.types
64
- : DEFAULT_BRANCH_TYPES;
65
- return branchTypes.map((t) => normalizeType(String(t))).filter(Boolean);
66
- }
67
- export async function runBranch(options = {}) {
68
- if (!(await isGitInstalled())) {
69
- const msg = 'Git is not installed.';
70
- if (options.json) {
71
- console.log(JSON.stringify({ success: false, error: msg }, null, 2));
72
- return;
73
- }
74
- console.error(chalk.red(`❌ ${msg}`));
75
- process.exit(1);
76
- }
77
- if (!(await isInGitRepo())) {
78
- const msg = 'Not in a git repository.';
79
- if (options.json) {
80
- console.log(JSON.stringify({ success: false, error: msg }, null, 2));
81
- return;
82
- }
83
- console.error(chalk.red(`❌ ${msg}`));
84
- process.exit(1);
85
- }
86
- const config = getMergedConfig();
87
- const warnings = [];
88
- const localConfigError = getLocalConfigError();
89
- if (localConfigError) {
90
- const warning = `Failed to parse ${localConfigError.path}: ${localConfigError.error}`;
91
- warnings.push(warning);
92
- if (!options.json) {
93
- console.log(chalk.yellow(`⚠️ ${warning}`));
94
- }
95
- }
96
- const branchTypes = resolveBranchTypes(config);
97
- const issuePatternRaw = typeof config.rules?.issuePattern === 'string' && config.rules.issuePattern.trim()
98
- ? config.rules.issuePattern.trim()
99
- : '[A-Z]+-\\d+|#\\d+';
100
- let issuePattern = /([A-Z]+-\d+|#\d+)/;
101
- try {
102
- issuePattern = new RegExp(issuePatternRaw);
103
- }
104
- catch {
105
- // keep default
106
- }
107
- const pattern = options.pattern || config.branch?.pattern || DEFAULT_PATTERN;
108
- const issueSeparator = config.branch?.issueSeparator || DEFAULT_ISSUE_SEPARATOR;
109
- const maxLen = config.branch?.nameMaxLength || DEFAULT_NAME_MAXLEN;
110
- let type = options.type ? normalizeType(options.type) : '';
111
- let name = options.name || '';
112
- let issue = options.issue || '';
113
- if (options.json && (!type || !name)) {
114
- const msg = 'Missing required options for JSON mode. Provide --type and --name.';
115
- console.log(JSON.stringify({ success: false, error: msg, warnings }, null, 2));
116
- return;
117
- }
118
- if (!type) {
119
- const answer = await inquirer.prompt([
120
- {
121
- type: 'list',
122
- name: 'type',
123
- message: 'Select branch type:',
124
- choices: branchTypes,
125
- },
126
- ]);
127
- type = normalizeType(answer.type);
128
- }
129
- else if (!branchTypes.includes(type)) {
130
- const msg = `Invalid branch type: ${type}`;
131
- if (options.json) {
132
- console.log(JSON.stringify({ success: false, error: msg, warnings }, null, 2));
133
- return;
134
- }
135
- console.error(chalk.red(`❌ ${msg}`));
136
- process.exit(1);
137
- }
138
- if (!name) {
139
- const answer = await inquirer.prompt([
140
- {
141
- type: 'input',
142
- name: 'name',
143
- message: 'Enter feature/module name:',
144
- validate: (input) => (input.trim() ? true : 'Name is required'),
145
- },
146
- ]);
147
- name = answer.name;
148
- }
149
- const issueFromName = extractIssue(name, issuePattern);
150
- if (!issue && issueFromName) {
151
- issue = issueFromName;
152
- name = stripIssueFromName(name, issueFromName);
153
- }
154
- if (!issue && !options.json) {
155
- const answer = await inquirer.prompt([
156
- {
157
- type: 'input',
158
- name: 'issue',
159
- message: 'Issue ID (optional, e.g. PROJ-123):',
160
- },
161
- ]);
162
- issue = answer.issue.trim();
163
- }
164
- if (issue) {
165
- const issueMatch = extractIssue(issue, issuePattern);
166
- if (!issueMatch) {
167
- const msg = `Issue ID does not match pattern: ${issuePatternRaw}`;
168
- if (options.json) {
169
- console.log(JSON.stringify({ success: false, error: msg, warnings }, null, 2));
170
- return;
171
- }
172
- console.error(chalk.red(`❌ ${msg}`));
173
- process.exit(1);
174
- }
175
- issue = issueMatch;
176
- }
177
- let branchName = buildBranchName({
178
- type,
179
- name,
180
- issue: issue || undefined,
181
- pattern,
182
- issueSeparator,
183
- maxLen,
184
- });
185
- if (branchName.includes('/')) {
186
- const prefix = branchName.split('/')[0];
187
- if (prefix && (await branchExists(prefix))) {
188
- const altName = buildBranchName({
189
- type,
190
- name,
191
- issue: issue || undefined,
192
- pattern: '{type}-{issue?}{name}',
193
- issueSeparator,
194
- maxLen,
195
- });
196
- const msg = `Branch prefix '${prefix}' already exists.`;
197
- if (options.json) {
198
- console.log(JSON.stringify({
199
- success: false,
200
- error: `${msg} Try --pattern \"{type}-{issue?}{name}\" (e.g., ${altName}).`,
201
- warnings,
202
- }, null, 2));
203
- return;
204
- }
205
- const { useAlt } = await inquirer.prompt([
206
- {
207
- type: 'confirm',
208
- name: 'useAlt',
209
- message: `${msg} Use alternative '${altName}'?`,
210
- default: true,
211
- },
212
- ]);
213
- if (useAlt) {
214
- branchName = altName;
215
- }
216
- else {
217
- console.log(chalk.gray('Skipped.'));
218
- return;
219
- }
220
- }
221
- }
222
- if (!(await isValidBranchName(branchName))) {
223
- const msg = `Invalid branch name: ${branchName}`;
224
- if (options.json) {
225
- console.log(JSON.stringify({ success: false, error: msg, warnings }, null, 2));
226
- return;
227
- }
228
- console.error(chalk.red(`❌ ${msg}`));
229
- process.exit(1);
230
- }
231
- if (options.dryRun) {
232
- const result = { success: true, branch: branchName, action: 'dry_run', warnings };
233
- if (options.json) {
234
- console.log(JSON.stringify(result, null, 2));
235
- }
236
- else {
237
- console.log(chalk.green(`✅ Branch preview: ${branchName}`));
238
- }
239
- return;
240
- }
241
- const exists = await branchExists(branchName);
242
- if (exists) {
243
- if (options.json) {
244
- const result = {
245
- success: true,
246
- branch: branchName,
247
- action: 'checked_out',
248
- warnings,
249
- };
250
- await checkoutBranch(branchName);
251
- console.log(JSON.stringify(result, null, 2));
252
- return;
253
- }
254
- const { checkout } = await inquirer.prompt([
255
- {
256
- type: 'confirm',
257
- name: 'checkout',
258
- message: `Branch already exists. Checkout ${branchName}?`,
259
- default: true,
260
- },
261
- ]);
262
- if (checkout) {
263
- await checkoutBranch(branchName);
264
- console.log(chalk.green(`✅ Switched to existing branch: ${branchName}`));
265
- }
266
- else {
267
- console.log(chalk.gray('Skipped.'));
268
- }
269
- return;
270
- }
271
- await createBranch(branchName);
272
- if (options.json) {
273
- const result = { success: true, branch: branchName, action: 'created', warnings };
274
- console.log(JSON.stringify(result, null, 2));
275
- return;
276
- }
277
- console.log(chalk.green(`✅ Created and switched to branch: ${branchName}`));
278
- }
279
- //# sourceMappingURL=branch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../src/commands/branch.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export interface CommitOptions {
2
- autoCommit?: boolean;
3
- numChoices?: number;
4
- hookMode?: boolean;
5
- locale?: string;
6
- agentMode?: boolean;
7
- }
8
- export declare function runCommit(options?: CommitOptions): Promise<void>;
9
- //# sourceMappingURL=commit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAYD,wBAAsB,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsQ1E"}
@@ -1,326 +0,0 @@
1
- import inquirer from 'inquirer';
2
- import chalk from 'chalk';
3
- import ora from 'ora';
4
- import { getConfig, getLocalConfigError } from '../utils/config.js';
5
- import { isGitInstalled, isInGitRepo, getStagedFiles, getFilteredDiff, commit, getBranchName, getRecentCommits, getUnstagedFileEntries, addFiles, } from '../utils/git.js';
6
- import { createAIClient, generateCommitMessage, validateCommitRules, validateCommitMessage, } from '../utils/ai.js';
7
- function exitWithError(message, hint, silent = false) {
8
- if (!silent) {
9
- console.error(chalk.red(`❌ ${message}`));
10
- if (hint) {
11
- console.log(chalk.gray(` ${hint}`));
12
- }
13
- }
14
- process.exit(1);
15
- }
16
- export async function runCommit(options = {}) {
17
- const { autoCommit = false, numChoices = 1, hookMode = false, locale } = options;
18
- // Recursion guard - prevent hook from triggering another git-ai
19
- if (process.env.GIT_AI_RUNNING === '1') {
20
- if (!hookMode) {
21
- console.log(chalk.yellow('⚠️ git-ai is already running (recursion prevented)'));
22
- }
23
- process.exit(0);
24
- }
25
- process.env.GIT_AI_RUNNING = '1';
26
- // Environment checks
27
- if (!(await isGitInstalled())) {
28
- exitWithError('Git is not installed. Please install git first.', undefined, hookMode);
29
- }
30
- if (!(await isInGitRepo())) {
31
- exitWithError('Not in a git repository.', undefined, hookMode);
32
- }
33
- let stagedFiles = await getStagedFiles();
34
- if (stagedFiles.length === 0) {
35
- // Interactive add
36
- const unstagedEntries = await getUnstagedFileEntries();
37
- if (unstagedEntries.length > 0 && !hookMode) {
38
- console.log(chalk.yellow('⚠️ No staged changes found.'));
39
- const allPaths = unstagedEntries.map((entry) => entry.path);
40
- const choices = [
41
- { name: '✅ Stage all files', value: '__ALL__' },
42
- ...unstagedEntries.map((entry) => ({
43
- name: `${entry.status.replace(/ /g, '.')} ${entry.path}`,
44
- value: entry.path,
45
- })),
46
- ];
47
- const { selectedFiles } = await inquirer.prompt([
48
- {
49
- type: 'checkbox',
50
- name: 'selectedFiles',
51
- message: 'Select files to stage:',
52
- choices,
53
- pageSize: 15,
54
- },
55
- ]);
56
- if (selectedFiles.length > 0) {
57
- const finalSelection = selectedFiles.includes('__ALL__') ? allPaths : selectedFiles;
58
- await addFiles(finalSelection);
59
- stagedFiles = await getStagedFiles();
60
- console.log(chalk.green(`✅ Staged ${finalSelection.length} files.`));
61
- }
62
- else {
63
- console.log(chalk.gray('No files selected. Exiting.'));
64
- process.exit(0);
65
- }
66
- }
67
- else {
68
- exitWithError('No staged changes found.', 'Use `git add <files>` to stage your changes first.', hookMode);
69
- }
70
- }
71
- // Check config
72
- const config = getConfig();
73
- if (!config) {
74
- const localError = getLocalConfigError();
75
- const hint = localError
76
- ? `Invalid local config at ${localError.path}: ${localError.error}`
77
- : 'Run `git-ai config` to set up your AI provider.';
78
- exitWithError('Configuration not found.', hint);
79
- }
80
- const localConfigError = getLocalConfigError();
81
- if (localConfigError && !hookMode) {
82
- console.log(chalk.yellow(`⚠️ Failed to parse ${localConfigError.path}: ${localConfigError.error}`));
83
- }
84
- const rulesIssues = validateCommitRules(config.rules);
85
- if ((rulesIssues.errors.length || rulesIssues.warnings.length) && !hookMode) {
86
- const combined = [...rulesIssues.errors, ...rulesIssues.warnings];
87
- console.log(chalk.yellow(`⚠️ Rules config issues: ${combined.join('; ')}`));
88
- }
89
- // Override locale if provided
90
- if (locale && (locale === 'zh' || locale === 'en')) {
91
- config.locale = locale;
92
- }
93
- // Show staged files (skip in hook mode)
94
- if (!hookMode) {
95
- console.log(chalk.cyan('\n📁 Staged files:'));
96
- stagedFiles.forEach((file) => {
97
- console.log(chalk.gray(` ${file}`));
98
- });
99
- }
100
- const branchName = await getBranchName();
101
- const recentCommits = await getRecentCommits(10); // Get last 10 commits for style reference
102
- const policyStrict = config.policy?.strict === true;
103
- let diffCache = null;
104
- let diffInfoPrinted = false;
105
- const maybePrintDiffInfo = (ignoredFiles, truncated) => {
106
- if (hookMode || diffInfoPrinted)
107
- return;
108
- if (ignoredFiles.length > 0) {
109
- const preview = ignoredFiles.slice(0, 8).join(', ');
110
- const more = ignoredFiles.length > 8 ? ` (+${ignoredFiles.length - 8} more)` : '';
111
- console.log(chalk.gray(`\n📦 Ignored from diff (token optimization): ${preview}${more}`));
112
- }
113
- if (truncated) {
114
- console.log(chalk.yellow('\n⚠️ Diff was truncated due to size limits.'));
115
- console.log(chalk.gray(' Tip: add large files to .git-aiignore or set GIT_AI_MAX_DIFF_CHARS / OCO_TOKENS_MAX_INPUT.'));
116
- }
117
- diffInfoPrinted = true;
118
- };
119
- const loadDiff = async () => {
120
- if (!diffCache) {
121
- diffCache = await getFilteredDiff(stagedFiles);
122
- maybePrintDiffInfo(diffCache.ignoredFiles, diffCache.truncated);
123
- }
124
- return diffCache;
125
- };
126
- const shouldLazyDiff = options.agentMode && numChoices === 1;
127
- let diff;
128
- let ignoredFiles;
129
- let truncated;
130
- let diffLoader;
131
- if (shouldLazyDiff) {
132
- diffLoader = loadDiff;
133
- }
134
- else {
135
- const loaded = await loadDiff();
136
- diff = loaded.diff;
137
- ignoredFiles = loaded.ignoredFiles;
138
- truncated = loaded.truncated;
139
- }
140
- // Create AI client
141
- const client = createAIClient(config);
142
- const input = {
143
- diff,
144
- diffLoader,
145
- stagedFiles,
146
- ignoredFiles,
147
- truncated,
148
- branchName,
149
- recentCommits,
150
- forceAgent: options.agentMode,
151
- };
152
- // Generate commit message(s)
153
- let commitMessage;
154
- if (hookMode) {
155
- // Hook mode: silent generation, output only the message
156
- try {
157
- const messages = await generateCommitMessage(client, input, config);
158
- commitMessage = messages[0];
159
- console.log(commitMessage);
160
- return;
161
- }
162
- catch {
163
- process.exit(1);
164
- }
165
- }
166
- if (numChoices > 1) {
167
- // Generate multiple choices
168
- const messages = await generateMultipleWithSpinner(client, input, config, numChoices);
169
- if (autoCommit) {
170
- // Auto mode: use first message
171
- commitMessage = messages[0];
172
- }
173
- else {
174
- commitMessage = await selectFromChoices(messages);
175
- }
176
- }
177
- else {
178
- commitMessage = await generateWithSpinner(client, input, config);
179
- }
180
- // Auto commit mode
181
- if (autoCommit) {
182
- console.log(chalk.green('\n✨ Generated commit message:\n'));
183
- console.log(chalk.white.bold(` ${commitMessage.split('\n').join('\n ')}`));
184
- const validation = validateCommitMessage(commitMessage, config, { branchName, stagedFiles });
185
- if (validation.errors.length) {
186
- const msg = `Commit policy violation: ${validation.errors.join('; ')}`;
187
- if (policyStrict) {
188
- exitWithError(msg);
189
- }
190
- else {
191
- console.log(chalk.yellow(`⚠️ ${msg}`));
192
- }
193
- }
194
- await performCommit(commitMessage);
195
- return;
196
- }
197
- // Interactive loop
198
- while (true) {
199
- console.log(chalk.green('\n✨ Generated commit message:\n'));
200
- console.log(chalk.white.bold(` ${commitMessage.split('\n').join('\n ')}`));
201
- console.log('');
202
- const { action } = await inquirer.prompt([
203
- {
204
- type: 'list',
205
- name: 'action',
206
- message: 'What would you like to do?',
207
- choices: [
208
- { name: '🚀 Commit', value: 'commit' },
209
- { name: '📝 Edit', value: 'edit' },
210
- { name: '🔄 Regenerate', value: 'regenerate' },
211
- { name: '❌ Cancel', value: 'cancel' },
212
- ],
213
- },
214
- ]);
215
- if (action === 'commit') {
216
- const validation = validateCommitMessage(commitMessage, config, { branchName, stagedFiles });
217
- if (validation.errors.length) {
218
- const msg = `Commit policy violation: ${validation.errors.join('; ')}`;
219
- if (policyStrict) {
220
- console.log(chalk.red(`❌ ${msg}`));
221
- continue;
222
- }
223
- console.log(chalk.yellow(`⚠️ ${msg}`));
224
- }
225
- await performCommit(commitMessage);
226
- break;
227
- }
228
- else if (action === 'edit') {
229
- const { editedMessage } = await inquirer.prompt([
230
- {
231
- type: 'editor',
232
- name: 'editedMessage',
233
- message: 'Edit your commit message:',
234
- default: commitMessage,
235
- },
236
- ]);
237
- commitMessage = editedMessage.trim();
238
- if (!commitMessage) {
239
- console.log(chalk.yellow('⚠️ Commit message cannot be empty.'));
240
- continue;
241
- }
242
- }
243
- else if (action === 'regenerate') {
244
- if (numChoices > 1) {
245
- const messages = await generateMultipleWithSpinner(client, input, config, numChoices);
246
- commitMessage = await selectFromChoices(messages);
247
- }
248
- else {
249
- commitMessage = await generateWithSpinner(client, input, config);
250
- }
251
- }
252
- else {
253
- console.log(chalk.gray('\n👋 Commit cancelled.\n'));
254
- break;
255
- }
256
- }
257
- }
258
- async function selectFromChoices(messages) {
259
- if (messages.length === 1) {
260
- return messages[0];
261
- }
262
- const { selected } = await inquirer.prompt([
263
- {
264
- type: 'list',
265
- name: 'selected',
266
- message: 'Select a commit message:',
267
- choices: messages.map((msg, i) => ({
268
- name: `${i + 1}. ${msg.split('\n')[0]}`,
269
- value: msg,
270
- })),
271
- },
272
- ]);
273
- return selected;
274
- }
275
- async function generateWithSpinner(client, input, config) {
276
- const spinner = ora({
277
- text: 'Generating commit message...',
278
- color: 'cyan',
279
- }).start();
280
- try {
281
- const messages = await generateCommitMessage(client, input, config);
282
- spinner.succeed('Commit message generated!');
283
- return messages[0];
284
- }
285
- catch (error) {
286
- spinner.fail('Failed to generate commit message');
287
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
288
- exitWithError(errorMessage);
289
- }
290
- }
291
- async function generateMultipleWithSpinner(client, input, config, count) {
292
- const spinner = ora({
293
- text: `Generating ${count} commit messages...`,
294
- color: 'cyan',
295
- }).start();
296
- try {
297
- // Optimized: Single request for multiple choices
298
- const messages = await generateCommitMessage(client, input, config, count);
299
- // Dedupe
300
- const unique = [...new Set(messages)];
301
- spinner.succeed(`Generated ${unique.length} commit message(s)!`);
302
- return unique;
303
- }
304
- catch (error) {
305
- spinner.fail('Failed to generate commit messages');
306
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
307
- exitWithError(errorMessage);
308
- }
309
- }
310
- async function performCommit(message) {
311
- const spinner = ora({
312
- text: 'Creating commit...',
313
- color: 'cyan',
314
- }).start();
315
- try {
316
- await commit(message);
317
- spinner.succeed('Commit created successfully!');
318
- console.log(chalk.green('\n🎉 Done!\n'));
319
- }
320
- catch (error) {
321
- spinner.fail('Failed to create commit');
322
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
323
- exitWithError(errorMessage);
324
- }
325
- }
326
- //# sourceMappingURL=commit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function runConfig(): Promise<void>;
2
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAgL/C"}