@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.
- package/README.md +200 -157
- package/bin/git-ai.cjs +57 -0
- package/install.cjs +50 -0
- package/package.json +27 -28
- package/.claude/settings.local.json +0 -17
- package/CHANGELOG.md +0 -46
- package/README_EN.md +0 -264
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -17
- package/dist/cli.js.map +0 -1
- package/dist/cli_main.d.ts +0 -2
- package/dist/cli_main.d.ts.map +0 -1
- package/dist/cli_main.js +0 -255
- package/dist/cli_main.js.map +0 -1
- package/dist/commands/branch.d.ts +0 -11
- package/dist/commands/branch.d.ts.map +0 -1
- package/dist/commands/branch.js +0 -279
- package/dist/commands/branch.js.map +0 -1
- package/dist/commands/commit.d.ts +0 -9
- package/dist/commands/commit.d.ts.map +0 -1
- package/dist/commands/commit.js +0 -326
- package/dist/commands/commit.js.map +0 -1
- package/dist/commands/config.d.ts +0 -2
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -164
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/config_manage.d.ts +0 -14
- package/dist/commands/config_manage.d.ts.map +0 -1
- package/dist/commands/config_manage.js +0 -394
- package/dist/commands/config_manage.js.map +0 -1
- package/dist/commands/hook.d.ts +0 -5
- package/dist/commands/hook.d.ts.map +0 -1
- package/dist/commands/hook.js +0 -528
- package/dist/commands/hook.js.map +0 -1
- package/dist/commands/msg.d.ts +0 -20
- package/dist/commands/msg.d.ts.map +0 -1
- package/dist/commands/msg.js +0 -148
- package/dist/commands/msg.js.map +0 -1
- package/dist/commands/pr.d.ts +0 -8
- package/dist/commands/pr.d.ts.map +0 -1
- package/dist/commands/pr.js +0 -96
- package/dist/commands/pr.js.map +0 -1
- package/dist/commands/release.d.ts +0 -8
- package/dist/commands/release.d.ts.map +0 -1
- package/dist/commands/release.js +0 -95
- package/dist/commands/release.js.map +0 -1
- package/dist/commands/report.d.ts +0 -9
- package/dist/commands/report.d.ts.map +0 -1
- package/dist/commands/report.js +0 -162
- package/dist/commands/report.js.map +0 -1
- package/dist/types.d.ts +0 -46
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -86
- package/dist/types.js.map +0 -1
- package/dist/utils/agent.d.ts +0 -5
- package/dist/utils/agent.d.ts.map +0 -1
- package/dist/utils/agent.js +0 -308
- package/dist/utils/agent.js.map +0 -1
- package/dist/utils/agent_lite.d.ts +0 -5
- package/dist/utils/agent_lite.d.ts.map +0 -1
- package/dist/utils/agent_lite.js +0 -263
- package/dist/utils/agent_lite.js.map +0 -1
- package/dist/utils/ai.d.ts +0 -43
- package/dist/utils/ai.d.ts.map +0 -1
- package/dist/utils/ai.js +0 -1103
- package/dist/utils/ai.js.map +0 -1
- package/dist/utils/config.d.ts +0 -11
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -239
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/git.d.ts +0 -42
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js +0 -456
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/update.d.ts +0 -4
- package/dist/utils/update.d.ts.map +0 -1
- package/dist/utils/update.js +0 -122
- package/dist/utils/update.js.map +0 -1
- package/release_notes.md +0 -9
- package/scripts/release.sh +0 -34
- package/test_agent_feature.ts +0 -1
package/dist/commands/branch.js
DELETED
|
@@ -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 +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"}
|
package/dist/commands/commit.js
DELETED
|
@@ -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 +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"}
|