@dongowu/git-ai-cli 1.0.20 → 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 (70) hide show
  1. package/README.md +75 -27
  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 -240
  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 -189
  15. package/dist/cli_main.js.map +0 -1
  16. package/dist/commands/commit.d.ts +0 -9
  17. package/dist/commands/commit.d.ts.map +0 -1
  18. package/dist/commands/commit.js +0 -301
  19. package/dist/commands/commit.js.map +0 -1
  20. package/dist/commands/config.d.ts +0 -2
  21. package/dist/commands/config.d.ts.map +0 -1
  22. package/dist/commands/config.js +0 -164
  23. package/dist/commands/config.js.map +0 -1
  24. package/dist/commands/config_manage.d.ts +0 -14
  25. package/dist/commands/config_manage.d.ts.map +0 -1
  26. package/dist/commands/config_manage.js +0 -185
  27. package/dist/commands/config_manage.js.map +0 -1
  28. package/dist/commands/hook.d.ts +0 -5
  29. package/dist/commands/hook.d.ts.map +0 -1
  30. package/dist/commands/hook.js +0 -462
  31. package/dist/commands/hook.js.map +0 -1
  32. package/dist/commands/msg.d.ts +0 -20
  33. package/dist/commands/msg.d.ts.map +0 -1
  34. package/dist/commands/msg.js +0 -137
  35. package/dist/commands/msg.js.map +0 -1
  36. package/dist/commands/report.d.ts +0 -9
  37. package/dist/commands/report.d.ts.map +0 -1
  38. package/dist/commands/report.js +0 -154
  39. package/dist/commands/report.js.map +0 -1
  40. package/dist/types.d.ts +0 -20
  41. package/dist/types.d.ts.map +0 -1
  42. package/dist/types.js +0 -86
  43. package/dist/types.js.map +0 -1
  44. package/dist/utils/agent.d.ts +0 -5
  45. package/dist/utils/agent.d.ts.map +0 -1
  46. package/dist/utils/agent.js +0 -308
  47. package/dist/utils/agent.js.map +0 -1
  48. package/dist/utils/agent_lite.d.ts +0 -5
  49. package/dist/utils/agent_lite.d.ts.map +0 -1
  50. package/dist/utils/agent_lite.js +0 -263
  51. package/dist/utils/agent_lite.js.map +0 -1
  52. package/dist/utils/ai.d.ts +0 -21
  53. package/dist/utils/ai.d.ts.map +0 -1
  54. package/dist/utils/ai.js +0 -437
  55. package/dist/utils/ai.js.map +0 -1
  56. package/dist/utils/config.d.ts +0 -11
  57. package/dist/utils/config.d.ts.map +0 -1
  58. package/dist/utils/config.js +0 -146
  59. package/dist/utils/config.js.map +0 -1
  60. package/dist/utils/git.d.ts +0 -34
  61. package/dist/utils/git.d.ts.map +0 -1
  62. package/dist/utils/git.js +0 -368
  63. package/dist/utils/git.js.map +0 -1
  64. package/dist/utils/update.d.ts +0 -4
  65. package/dist/utils/update.d.ts.map +0 -1
  66. package/dist/utils/update.js +0 -122
  67. package/dist/utils/update.js.map +0 -1
  68. package/release_notes.md +0 -10
  69. package/scripts/release.sh +0 -34
  70. package/test_agent_feature.ts +0 -1
@@ -1,301 +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, } 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
- // Override locale if provided
85
- if (locale && (locale === 'zh' || locale === 'en')) {
86
- config.locale = locale;
87
- }
88
- // Show staged files (skip in hook mode)
89
- if (!hookMode) {
90
- console.log(chalk.cyan('\n📁 Staged files:'));
91
- stagedFiles.forEach((file) => {
92
- console.log(chalk.gray(` ${file}`));
93
- });
94
- }
95
- const branchName = await getBranchName();
96
- const recentCommits = await getRecentCommits(10); // Get last 10 commits for style reference
97
- let diffCache = null;
98
- let diffInfoPrinted = false;
99
- const maybePrintDiffInfo = (ignoredFiles, truncated) => {
100
- if (hookMode || diffInfoPrinted)
101
- return;
102
- if (ignoredFiles.length > 0) {
103
- const preview = ignoredFiles.slice(0, 8).join(', ');
104
- const more = ignoredFiles.length > 8 ? ` (+${ignoredFiles.length - 8} more)` : '';
105
- console.log(chalk.gray(`\n📦 Ignored from diff (token optimization): ${preview}${more}`));
106
- }
107
- if (truncated) {
108
- console.log(chalk.yellow('\n⚠️ Diff was truncated due to size limits.'));
109
- console.log(chalk.gray(' Tip: add large files to .git-aiignore or set GIT_AI_MAX_DIFF_CHARS / OCO_TOKENS_MAX_INPUT.'));
110
- }
111
- diffInfoPrinted = true;
112
- };
113
- const loadDiff = async () => {
114
- if (!diffCache) {
115
- diffCache = await getFilteredDiff(stagedFiles);
116
- maybePrintDiffInfo(diffCache.ignoredFiles, diffCache.truncated);
117
- }
118
- return diffCache;
119
- };
120
- const shouldLazyDiff = options.agentMode && numChoices === 1;
121
- let diff;
122
- let ignoredFiles;
123
- let truncated;
124
- let diffLoader;
125
- if (shouldLazyDiff) {
126
- diffLoader = loadDiff;
127
- }
128
- else {
129
- const loaded = await loadDiff();
130
- diff = loaded.diff;
131
- ignoredFiles = loaded.ignoredFiles;
132
- truncated = loaded.truncated;
133
- }
134
- // Create AI client
135
- const client = createAIClient(config);
136
- const input = {
137
- diff,
138
- diffLoader,
139
- stagedFiles,
140
- ignoredFiles,
141
- truncated,
142
- branchName,
143
- recentCommits,
144
- forceAgent: options.agentMode,
145
- };
146
- // Generate commit message(s)
147
- let commitMessage;
148
- if (hookMode) {
149
- // Hook mode: silent generation, output only the message
150
- try {
151
- const messages = await generateCommitMessage(client, input, config);
152
- commitMessage = messages[0];
153
- console.log(commitMessage);
154
- return;
155
- }
156
- catch {
157
- process.exit(1);
158
- }
159
- }
160
- if (numChoices > 1) {
161
- // Generate multiple choices
162
- const messages = await generateMultipleWithSpinner(client, input, config, numChoices);
163
- if (autoCommit) {
164
- // Auto mode: use first message
165
- commitMessage = messages[0];
166
- }
167
- else {
168
- commitMessage = await selectFromChoices(messages);
169
- }
170
- }
171
- else {
172
- commitMessage = await generateWithSpinner(client, input, config);
173
- }
174
- // Auto commit mode
175
- if (autoCommit) {
176
- console.log(chalk.green('\n✨ Generated commit message:\n'));
177
- console.log(chalk.white.bold(` ${commitMessage.split('\n').join('\n ')}`));
178
- await performCommit(commitMessage);
179
- return;
180
- }
181
- // Interactive loop
182
- while (true) {
183
- console.log(chalk.green('\n✨ Generated commit message:\n'));
184
- console.log(chalk.white.bold(` ${commitMessage.split('\n').join('\n ')}`));
185
- console.log('');
186
- const { action } = await inquirer.prompt([
187
- {
188
- type: 'list',
189
- name: 'action',
190
- message: 'What would you like to do?',
191
- choices: [
192
- { name: '🚀 Commit', value: 'commit' },
193
- { name: '📝 Edit', value: 'edit' },
194
- { name: '🔄 Regenerate', value: 'regenerate' },
195
- { name: '❌ Cancel', value: 'cancel' },
196
- ],
197
- },
198
- ]);
199
- if (action === 'commit') {
200
- await performCommit(commitMessage);
201
- break;
202
- }
203
- else if (action === 'edit') {
204
- const { editedMessage } = await inquirer.prompt([
205
- {
206
- type: 'editor',
207
- name: 'editedMessage',
208
- message: 'Edit your commit message:',
209
- default: commitMessage,
210
- },
211
- ]);
212
- commitMessage = editedMessage.trim();
213
- if (!commitMessage) {
214
- console.log(chalk.yellow('⚠️ Commit message cannot be empty.'));
215
- continue;
216
- }
217
- }
218
- else if (action === 'regenerate') {
219
- if (numChoices > 1) {
220
- const messages = await generateMultipleWithSpinner(client, input, config, numChoices);
221
- commitMessage = await selectFromChoices(messages);
222
- }
223
- else {
224
- commitMessage = await generateWithSpinner(client, input, config);
225
- }
226
- }
227
- else {
228
- console.log(chalk.gray('\n👋 Commit cancelled.\n'));
229
- break;
230
- }
231
- }
232
- }
233
- async function selectFromChoices(messages) {
234
- if (messages.length === 1) {
235
- return messages[0];
236
- }
237
- const { selected } = await inquirer.prompt([
238
- {
239
- type: 'list',
240
- name: 'selected',
241
- message: 'Select a commit message:',
242
- choices: messages.map((msg, i) => ({
243
- name: `${i + 1}. ${msg.split('\n')[0]}`,
244
- value: msg,
245
- })),
246
- },
247
- ]);
248
- return selected;
249
- }
250
- async function generateWithSpinner(client, input, config) {
251
- const spinner = ora({
252
- text: 'Generating commit message...',
253
- color: 'cyan',
254
- }).start();
255
- try {
256
- const messages = await generateCommitMessage(client, input, config);
257
- spinner.succeed('Commit message generated!');
258
- return messages[0];
259
- }
260
- catch (error) {
261
- spinner.fail('Failed to generate commit message');
262
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
263
- exitWithError(errorMessage);
264
- }
265
- }
266
- async function generateMultipleWithSpinner(client, input, config, count) {
267
- const spinner = ora({
268
- text: `Generating ${count} commit messages...`,
269
- color: 'cyan',
270
- }).start();
271
- try {
272
- // Optimized: Single request for multiple choices
273
- const messages = await generateCommitMessage(client, input, config, count);
274
- // Dedupe
275
- const unique = [...new Set(messages)];
276
- spinner.succeed(`Generated ${unique.length} commit message(s)!`);
277
- return unique;
278
- }
279
- catch (error) {
280
- spinner.fail('Failed to generate commit messages');
281
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
282
- exitWithError(errorMessage);
283
- }
284
- }
285
- async function performCommit(message) {
286
- const spinner = ora({
287
- text: 'Creating commit...',
288
- color: 'cyan',
289
- }).start();
290
- try {
291
- await commit(message);
292
- spinner.succeed('Commit created successfully!');
293
- console.log(chalk.green('\n🎉 Done!\n'));
294
- }
295
- catch (error) {
296
- spinner.fail('Failed to create commit');
297
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
298
- exitWithError(errorMessage);
299
- }
300
- }
301
- //# 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"}
@@ -1,164 +0,0 @@
1
- import inquirer from 'inquirer';
2
- import chalk from 'chalk';
3
- import { setConfig, getConfigPath } from '../utils/config.js';
4
- import { PROVIDER_PRESETS } from '../types.js';
5
- export async function runConfig() {
6
- console.log(chalk.cyan('\n🔧 Git AI Configuration\n'));
7
- const providerChoices = Object.entries(PROVIDER_PRESETS).map(([key, preset]) => ({
8
- name: preset.name,
9
- value: key,
10
- }));
11
- const { provider } = await inquirer.prompt([
12
- {
13
- type: 'list',
14
- name: 'provider',
15
- message: 'Select your AI provider:',
16
- choices: providerChoices,
17
- },
18
- ]);
19
- const preset = PROVIDER_PRESETS[provider];
20
- let baseUrl = preset.baseUrl;
21
- let apiKey = '';
22
- if (provider === 'custom') {
23
- const customAnswers = await inquirer.prompt([
24
- {
25
- type: 'input',
26
- name: 'baseUrl',
27
- message: 'Enter the API base URL:',
28
- validate: (input) => input.trim() ? true : 'Base URL is required',
29
- },
30
- ]);
31
- baseUrl = customAnswers.baseUrl;
32
- }
33
- if (preset.requiresKey) {
34
- const keyAnswer = await inquirer.prompt([
35
- {
36
- type: 'password',
37
- name: 'apiKey',
38
- message: 'Enter your API Key:',
39
- mask: '*',
40
- validate: (input) => input.trim() ? true : 'API Key is required',
41
- },
42
- ]);
43
- apiKey = keyAnswer.apiKey;
44
- }
45
- let model;
46
- let modelChoices = [];
47
- // Auto-detect Ollama models
48
- if (provider === 'ollama') {
49
- try {
50
- // Remove /v1 if present to access the tags endpoint
51
- const base = baseUrl.replace(/\/v1\/?$/, '');
52
- const response = await fetch(`${base}/api/tags`);
53
- if (response.ok) {
54
- const data = (await response.json());
55
- if (data.models && Array.isArray(data.models)) {
56
- modelChoices = data.models.map((m) => m.name);
57
- }
58
- }
59
- }
60
- catch {
61
- // Fallback to manual input if connection fails
62
- }
63
- }
64
- if (modelChoices.length > 0) {
65
- const answer = await inquirer.prompt([
66
- {
67
- type: 'list',
68
- name: 'model',
69
- message: 'Select a local model:',
70
- choices: modelChoices,
71
- },
72
- ]);
73
- model = answer.model;
74
- }
75
- else {
76
- const answer = await inquirer.prompt([
77
- {
78
- type: 'input',
79
- name: 'model',
80
- message: 'Enter the model name:',
81
- default: preset.defaultModel,
82
- },
83
- ]);
84
- model = answer.model;
85
- }
86
- // Optional: separate model for Agent mode (tool calling)
87
- const modelLower = model.trim().toLowerCase();
88
- const suggestToolModel = provider === 'deepseek' && modelLower.includes('reasoner');
89
- const { useAgentModel } = await inquirer.prompt([
90
- {
91
- type: 'confirm',
92
- name: 'useAgentModel',
93
- message: suggestToolModel
94
- ? 'Agent mode needs tool calling. Use a tool-capable model for Agent mode?'
95
- : 'Use a separate model for Agent mode (tool calling)?',
96
- default: suggestToolModel,
97
- },
98
- ]);
99
- let agentModel = '';
100
- if (useAgentModel) {
101
- const agentAnswer = await inquirer.prompt([
102
- {
103
- type: 'input',
104
- name: 'agentModel',
105
- message: 'Enter the Agent mode model name:',
106
- default: suggestToolModel ? 'deepseek-chat' : model,
107
- },
108
- ]);
109
- agentModel = agentAnswer.agentModel.trim();
110
- }
111
- const { locale } = await inquirer.prompt([
112
- {
113
- type: 'list',
114
- name: 'locale',
115
- message: 'Select output language for commit messages:',
116
- choices: [
117
- { name: 'English', value: 'en' },
118
- { name: '中文', value: 'zh' },
119
- ],
120
- },
121
- ]);
122
- const { configurePrompt } = await inquirer.prompt([
123
- {
124
- type: 'confirm',
125
- name: 'configurePrompt',
126
- message: 'Would you like to configure a custom system prompt?',
127
- default: false,
128
- },
129
- ]);
130
- let customPrompt;
131
- if (configurePrompt) {
132
- const promptAnswer = await inquirer.prompt([
133
- {
134
- type: 'editor',
135
- name: 'customPrompt',
136
- message: 'Enter your custom system prompt:',
137
- },
138
- ]);
139
- customPrompt = promptAnswer.customPrompt.trim() || undefined;
140
- }
141
- const { enableFooter } = await inquirer.prompt([
142
- {
143
- type: 'confirm',
144
- name: 'enableFooter',
145
- message: 'Enable "Generated by git-ai" footer?',
146
- default: true,
147
- },
148
- ]);
149
- const config = {
150
- provider,
151
- apiKey,
152
- baseUrl,
153
- model,
154
- agentModel,
155
- locale,
156
- customPrompt,
157
- enableFooter,
158
- };
159
- setConfig(config);
160
- console.log(chalk.green('\n✅ Configuration saved successfully!'));
161
- console.log(chalk.gray(` Config file: ${getConfigPath()}`));
162
- console.log(chalk.cyan('\n💡 You can now use `git-ai` to generate commit messages.\n'));
163
- }
164
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export interface ConfigGetOptions {
2
- json?: boolean;
3
- local?: boolean;
4
- }
5
- export interface ConfigSetOptions {
6
- local?: boolean;
7
- json?: boolean;
8
- }
9
- export declare function runConfigDescribe(options?: {
10
- json?: boolean;
11
- }): void;
12
- export declare function runConfigGet(options?: ConfigGetOptions): void;
13
- export declare function runConfigSet(key: string, value: string, options?: ConfigSetOptions): void;
14
- //# sourceMappingURL=config_manage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config_manage.d.ts","sourceRoot":"","sources":["../../src/commands/config_manage.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA8DD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAiDxE;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAyCjE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAkC7F"}