@dongowu/git-ai-cli 1.0.15 → 1.0.17
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/CHANGELOG.md +46 -0
- package/README.md +41 -45
- package/README_EN.md +169 -0
- package/dist/cli.js +11 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/commit.d.ts +2 -0
- package/dist/commands/commit.d.ts.map +1 -1
- package/dist/commands/commit.js +49 -10
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/msg.d.ts +1 -0
- package/dist/commands/msg.d.ts.map +1 -1
- package/dist/commands/msg.js +19 -6
- package/dist/commands/msg.js.map +1 -1
- package/dist/utils/agent.d.ts +5 -0
- package/dist/utils/agent.d.ts.map +1 -0
- package/dist/utils/agent.js +135 -0
- package/dist/utils/agent.js.map +1 -0
- package/dist/utils/ai.d.ts +4 -1
- package/dist/utils/ai.d.ts.map +1 -1
- package/dist/utils/ai.js +79 -6
- package/dist/utils/ai.js.map +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +24 -5
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/git.d.ts +10 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +89 -1
- package/dist/utils/git.js.map +1 -1
- package/package.json +5 -2
- package/release_notes.md +3 -2
- package/test_agent_feature.ts +1 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.1.0] - 2026-01-16
|
|
6
|
+
|
|
7
|
+
### 🚀 Agent & Intelligence (Major Update)
|
|
8
|
+
|
|
9
|
+
- **🤖 Agent Mode**: Introduced a powerful Agent Loop capable of using tools.
|
|
10
|
+
- **Smart Diff**: No more truncated diffs! If a change is too large, the Agent automatically requests specific file contents to understand the core logic.
|
|
11
|
+
- **Impact Analysis**: The Agent can now search the codebase (`git grep`) to find usages of changed functions/APIs, actively looking for potential breaking changes.
|
|
12
|
+
- **Auto-Activation**: Automatically triggers Agent Mode when diffs are truncated or when working on critical branches (`release/*`, `hotfix/*`, `main`).
|
|
13
|
+
- **cli**: Added `-a, --agent` flag to manually force Agent Mode for deep analysis.
|
|
14
|
+
|
|
15
|
+
### ✨ Features
|
|
16
|
+
|
|
17
|
+
- **Git Flow Integration**: Enhanced logic to perform stricter checks on production-bound branches.
|
|
18
|
+
- **Hook Stability**: Improved Git Hook performance with "Quiet Agent" mode, ensuring no console noise during `git commit`.
|
|
19
|
+
|
|
20
|
+
### ⚡ Improvements
|
|
21
|
+
|
|
22
|
+
- **Reliability**: Better handling of large repositories and massive refactors.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## [1.0.16] - 2026-01-14
|
|
27
|
+
|
|
28
|
+
### ✨ Features
|
|
29
|
+
|
|
30
|
+
- **Style Learning**: Automatically analyzes your recent 10 commits to mimic your personal style (emojis, casing, format).
|
|
31
|
+
- **Project Config**: Added support for `.git-ai.json` in project root for team-wide configuration.
|
|
32
|
+
- **Smart Ignore**: Added support for `.git-aiignore` to exclude specific files from AI analysis.
|
|
33
|
+
- **Batch Optimization**: Optimized `git-ai -n <count>` to use a single API request for multiple choices, reducing token usage.
|
|
34
|
+
|
|
35
|
+
### ⚡ Improvements
|
|
36
|
+
|
|
37
|
+
- **Performance**: Reduced API latency for multi-choice generation.
|
|
38
|
+
- **Docs**: Updated README with comprehensive guides for new features.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## [1.0.15]
|
|
43
|
+
|
|
44
|
+
- Initial release of stable features.
|
|
45
|
+
- Support for DeepSeek, OpenAI, and Ollama.
|
|
46
|
+
- Interactive mode and Git Hook integration.
|
package/README.md
CHANGED
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
|
+
<a href="./README_EN.md">English</a> •
|
|
19
20
|
<a href="#-快速开始">快速开始</a> •
|
|
20
21
|
<a href="#-核心特性">核心特性</a> •
|
|
21
22
|
<a href="#-git-flow-最佳实践">Git Flow</a> •
|
|
22
|
-
<a href="#-智能周报">智能周报</a>
|
|
23
|
-
<a href="#english">English</a>
|
|
23
|
+
<a href="#-智能周报">智能周报</a>
|
|
24
24
|
</p>
|
|
25
25
|
|
|
26
26
|
---
|
|
@@ -52,10 +52,20 @@ git-ai
|
|
|
52
52
|
- **Ollama 零配置**:自动探测本地运行的 Ollama 模型(如 `llama3`, `deepseek-coder`),无需手动输入模型名。数据完全不出网,绝对安全。
|
|
53
53
|
|
|
54
54
|
### 2. 🧠 上下文感知 (Context Aware)
|
|
55
|
-
-
|
|
56
|
-
-
|
|
55
|
+
- **风格学习**:自动分析您最近的 10 次提交记录,模仿您的语气、格式(如 Emoji 使用习惯)和语言风格。
|
|
56
|
+
- **分支感知**:读取当前分支名(如 `feat/user-login`, `fix/JIRA-123`),生成包含 Issue ID 或功能模块的规范提交信息。
|
|
57
57
|
|
|
58
|
-
### 3.
|
|
58
|
+
### 3. 🤖 Agent 智能体 (New)
|
|
59
|
+
从单纯的“文本生成”进化为“智能代码专家”。
|
|
60
|
+
- **Smart Diff**: 遇到超大变更不再瞎编。Agent 会自动分析统计数据,只读取核心文件的代码,彻底解决 Token 限制问题。
|
|
61
|
+
- **影响分析 (Impact Analysis)**: 修改了核心 API?Agent 会主动**搜索整个代码库**(`git grep`),检查调用方是否同步修改,并在 Commit Body 中提示潜在风险。
|
|
62
|
+
- **Git Flow 护航**: 在 `release/*` 或 `hotfix/*` 分支上自动开启深度检查,守卫生产环境。
|
|
63
|
+
|
|
64
|
+
### 4. ⚙️ 工程化配置 (Project Config)
|
|
65
|
+
- **项目级配置**:支持在项目根目录创建 `.git-ai.json`,团队统一共享模型和 Prompt 配置(优先级 > 全局配置)。
|
|
66
|
+
- **智能忽略**:支持 `.git-aiignore` 文件,排除自动生成文件(如 `package-lock.json`)或大文件,节省 Token 并提高准确性。
|
|
67
|
+
|
|
68
|
+
### 4. 🪝 无感集成 (Git Hook)
|
|
59
69
|
- **零打扰**:安装 Hook 后,只需执行 `git commit`(不带 `-m`),AI 自动填充消息并打开编辑器。
|
|
60
70
|
- **兼容性**:完美兼容现有 Git 工作流,支持 `git commit --no-verify` 跳过。
|
|
61
71
|
|
|
@@ -65,6 +75,31 @@ git-ai
|
|
|
65
75
|
|
|
66
76
|
---
|
|
67
77
|
|
|
78
|
+
## ⚙️ 高级配置
|
|
79
|
+
|
|
80
|
+
### 项目级配置文件 `.git-ai.json`
|
|
81
|
+
在项目根目录创建此文件,可覆盖全局设置,方便团队统一规范:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"model": "deepseek-coder",
|
|
86
|
+
"temperature": 0.5,
|
|
87
|
+
"locale": "zh-CN",
|
|
88
|
+
"customPrompt": "Always start with an emoji."
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 忽略文件 `.git-aiignore`
|
|
93
|
+
在项目根目录创建,用于排除不想发送给 AI 的文件(语法同 `.gitignore`):
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
package-lock.json
|
|
97
|
+
dist/
|
|
98
|
+
*.min.js
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
68
103
|
## 📖 使用方式
|
|
69
104
|
|
|
70
105
|
### 场景一:交互式提交 (Interactive)
|
|
@@ -114,6 +149,7 @@ git-ai report --days 30
|
|
|
114
149
|
|------|------|------|
|
|
115
150
|
| `git-ai init` | `config` | **初始化配置**(设置模型、Key、语言) |
|
|
116
151
|
| `git-ai` | | 交互式生成并提交 |
|
|
152
|
+
| `git-ai -a` | | **Agent 模式** (深度分析 & 影响检查) |
|
|
117
153
|
| `git-ai -y` | | 跳过确认直接提交 |
|
|
118
154
|
| `git-ai -n 3` | | 生成 3 条候选消息 |
|
|
119
155
|
| `git-ai hook install` | | **安装 Git Hook** (支持 `--global`) |
|
|
@@ -136,47 +172,7 @@ git-ai report --days 30
|
|
|
136
172
|
|
|
137
173
|
---
|
|
138
174
|
|
|
139
|
-
## English
|
|
140
|
-
|
|
141
|
-
### Installation
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
npm install -g @dongowu/git-ai-cli
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### Features
|
|
148
|
-
|
|
149
|
-
- **Context Aware**: Understands your Git branch (e.g., `feat/login`) to generate semantically correct commits.
|
|
150
|
-
- **Privacy First**: Seamless support for local **Ollama** models.
|
|
151
|
-
- **Git Hooks**: `git-ai hook install` integrates AI directly into your `git commit` workflow.
|
|
152
|
-
- **AI Reports**: `git-ai report` turns your commit history into professional weekly reports.
|
|
153
|
-
|
|
154
|
-
### Usage
|
|
155
175
|
|
|
156
|
-
**1. Setup**
|
|
157
|
-
```bash
|
|
158
|
-
git-ai init
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
**2. Commit**
|
|
162
|
-
```bash
|
|
163
|
-
git add .
|
|
164
|
-
git-ai
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
**3. Generate Report**
|
|
168
|
-
```bash
|
|
169
|
-
git-ai report
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Git Hook Integration (Recommended)
|
|
173
|
-
|
|
174
|
-
```bash
|
|
175
|
-
git-ai hook install --global
|
|
176
|
-
```
|
|
177
|
-
Now just run `git commit` as usual, and AI will handle the rest!
|
|
178
|
-
|
|
179
|
-
---
|
|
180
176
|
|
|
181
177
|
## 📄 License
|
|
182
178
|
|
package/README_EN.md
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<h1 align="center">git-ai-cli</h1>
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>🤖 AI-Powered Git Assistant: Commit, Context & Report</strong>
|
|
5
|
+
</p>
|
|
6
|
+
<p align="center">
|
|
7
|
+
🚀 <strong>DeepSeek</strong> Optimized | 🏠 <strong>Ollama</strong> Privacy First | 🧠 <strong>Context Aware</strong> | 📊 <strong>AI Reports</strong>
|
|
8
|
+
</p>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/@dongowu/git-ai-cli"><img src="https://img.shields.io/npm/v/@dongowu/git-ai-cli.svg?style=flat-square" alt="npm version"></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/@dongowu/git-ai-cli"><img src="https://img.shields.io/npm/dm/@dongowu/git-ai-cli.svg?style=flat-square" alt="npm downloads"></a>
|
|
14
|
+
<a href="https://github.com/dongowu/git-ai-cli/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@dongowu/git-ai-cli.svg?style=flat-square" alt="license"></a>
|
|
15
|
+
<a href="https://nodejs.org"><img src="https://img.shields.io/node/v/@dongowu/git-ai-cli.svg?style=flat-square" alt="node version"></a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p align="center">
|
|
19
|
+
<a href="./README.md">中文文档</a> •
|
|
20
|
+
<a href="#-quick-start">Quick Start</a> •
|
|
21
|
+
<a href="#-features">Features</a> •
|
|
22
|
+
<a href="#-usage">Usage</a> •
|
|
23
|
+
<a href="#-configuration">Configuration</a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
**git-ai-cli** is more than just a commit message generator. It's your **AI Development Assistant**. It understands your code diffs, recognizes your branch intent, and even writes your weekly reports.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 🚀 Quick Start
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# 1. Install
|
|
36
|
+
npm install -g @dongowu/git-ai-cli
|
|
37
|
+
|
|
38
|
+
# 2. Initialize (Auto-detects local models or configures API)
|
|
39
|
+
git-ai init
|
|
40
|
+
|
|
41
|
+
# 3. Use
|
|
42
|
+
git add .
|
|
43
|
+
git-ai
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## ✨ Features
|
|
49
|
+
|
|
50
|
+
### 1. 🔒 Privacy First & Local Models
|
|
51
|
+
- **Ollama Zero-Config**: Automatically detects locally running Ollama models (like `llama3`, `deepseek-coder`). No manual setup required. Your data never leaves your machine.
|
|
52
|
+
- **DeepSeek/OpenAI**: Built-in support for popular API providers with optimized prompts.
|
|
53
|
+
|
|
54
|
+
### 2. 🧠 Context Aware
|
|
55
|
+
- **Style Learning**: Automatically analyzes your recent 10 commits to mimic your personal tone, format (e.g., emojis), and language style.
|
|
56
|
+
- **Branch Awareness**: Reads your current branch name (e.g., `feat/user-login`, `fix/JIRA-123`) to generate semantic commits with Issue IDs or scopes.
|
|
57
|
+
|
|
58
|
+
### 3. 🤖 Agent Intelligence (New)
|
|
59
|
+
Evolving from a text generator to a code expert.
|
|
60
|
+
- **Smart Diff**: No more truncated diffs. The Agent automatically analyzes file stats and reads only the critical source code, solving token limits for large refactors.
|
|
61
|
+
- **Impact Analysis**: Changing a core API? The Agent proactively searches your codebase (`git grep`) to find usages and warns you about potential breaking changes in the commit body.
|
|
62
|
+
- **Git Flow Guard**: Automatically enables deep analysis on `release/*` or `hotfix/*` branches to protect production code.
|
|
63
|
+
|
|
64
|
+
### 4. ⚙️ Engineering Ready
|
|
65
|
+
- **Project Config**: Create a `.git-ai.json` in your project root to share settings (model, prompts) with your team.
|
|
66
|
+
- **Smart Ignore**: Use `.git-aiignore` to exclude auto-generated files (like `package-lock.json`) or large files to save tokens and improve accuracy.
|
|
67
|
+
|
|
68
|
+
### 4. 🪝 Seamless Integration (Git Hook)
|
|
69
|
+
- **Zero Distraction**: After installing the hook, just run `git commit` (without `-m`). AI automatically fills in the message and opens your editor.
|
|
70
|
+
- **Compatibility**: Perfectly compatible with existing Git workflows. Supports `git commit --no-verify`.
|
|
71
|
+
|
|
72
|
+
### 5. 📊 AI Reports
|
|
73
|
+
- **One-Click Generation**: `git-ai report` analyzes your recent commits.
|
|
74
|
+
- **Value Driven**: Transforms fragmented commits into structured reports highlighting "Core Outputs", "Bug Fixes", and "Technical Improvements".
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## ⚙️ Configuration
|
|
79
|
+
|
|
80
|
+
### Project-Level Config `.git-ai.json`
|
|
81
|
+
Create this file in your project root to override global settings:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"model": "deepseek-coder",
|
|
86
|
+
"temperature": 0.5,
|
|
87
|
+
"locale": "en",
|
|
88
|
+
"customPrompt": "Always start with an emoji."
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Ignore File `.git-aiignore`
|
|
93
|
+
Exclude specific files from AI analysis (syntax similar to `.gitignore`):
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
package-lock.json
|
|
97
|
+
dist/
|
|
98
|
+
*.min.js
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 📖 Usage
|
|
104
|
+
|
|
105
|
+
### Scenario 1: Interactive
|
|
106
|
+
```bash
|
|
107
|
+
git add .
|
|
108
|
+
git-ai
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Scenario 2: Git Hook (Recommended) 🌟
|
|
112
|
+
The smoothest experience. Install once, use forever.
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# Install for current project
|
|
116
|
+
git-ai hook install
|
|
117
|
+
|
|
118
|
+
# Or install globally (for all projects)
|
|
119
|
+
git-ai hook install --global
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Then just run:**
|
|
123
|
+
```bash
|
|
124
|
+
git checkout -b feature/awesome-login
|
|
125
|
+
# ... write code ...
|
|
126
|
+
git add .
|
|
127
|
+
git commit # ✨ AI generates "feat(login): implement awesome login logic"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Scenario 3: Generate Reports
|
|
131
|
+
Hate writing weekly reports?
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Generate report for this week
|
|
135
|
+
git-ai report
|
|
136
|
+
|
|
137
|
+
# Generate report for the last 30 days
|
|
138
|
+
git-ai report --days 30
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 🛠 Command Reference
|
|
144
|
+
|
|
145
|
+
| Command | Alias | Description |
|
|
146
|
+
|---------|-------|-------------|
|
|
147
|
+
| `git-ai init` | `config` | **Initialize Config** (Provider, Key, Language) |
|
|
148
|
+
| `git-ai` | | Interactive generation & commit |
|
|
149
|
+
| `git-ai -a` | | **Agent Mode** (Deep analysis & Impact check) |
|
|
150
|
+
| `git-ai -y` | | Skip confirmation and commit directly |
|
|
151
|
+
| `git-ai -n 3` | | Generate 3 options to choose from |
|
|
152
|
+
| `git-ai -l en` | | Force language (en/zh) |
|
|
153
|
+
| `git-ai hook install` | | **Install Git Hook** (supports `--global`) |
|
|
154
|
+
| `git-ai report` | | **Generate AI Report** (supports `--days`) |
|
|
155
|
+
| `git-ai msg` | | Generate message only (stdout for scripts) |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 📄 License
|
|
160
|
+
|
|
161
|
+
[MIT](LICENSE)
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
<p align="center">
|
|
166
|
+
Made with ❤️ by git-ai team
|
|
167
|
+
<br>
|
|
168
|
+
<sub>🤖 Generated by git-ai 🚀</sub>
|
|
169
|
+
</p>
|
package/dist/cli.js
CHANGED
|
@@ -29,18 +29,22 @@ cli
|
|
|
29
29
|
.command('', 'Generate AI-powered commit message (interactive)')
|
|
30
30
|
.option('-y, --yes', 'Skip confirmation and commit directly')
|
|
31
31
|
.option('-n, --num <count>', 'Generate multiple commit messages to choose from', { default: 1 })
|
|
32
|
+
.option('-l, --locale <locale>', 'Override locale (zh/en)')
|
|
33
|
+
.option('-a, --agent', 'Use Agent mode for deep analysis and impact checking')
|
|
32
34
|
.option('--hook', '[deprecated] Use `git-ai msg` instead')
|
|
33
35
|
.action(async (options) => {
|
|
34
36
|
try {
|
|
35
37
|
// Deprecated --hook redirects to msg command behavior
|
|
36
38
|
if (options.hook) {
|
|
37
39
|
const { runMsg } = await import('./commands/msg.js');
|
|
38
|
-
await runMsg({ quiet: true });
|
|
40
|
+
await runMsg({ quiet: true, locale: options.locale });
|
|
39
41
|
return;
|
|
40
42
|
}
|
|
41
43
|
await runCommit({
|
|
42
44
|
autoCommit: options.yes ?? false,
|
|
43
45
|
numChoices: Math.min(Math.max(Number(options.num) || 1, 1), 5),
|
|
46
|
+
locale: options.locale,
|
|
47
|
+
agentMode: options.agent,
|
|
44
48
|
});
|
|
45
49
|
}
|
|
46
50
|
catch (error) {
|
|
@@ -54,11 +58,15 @@ cli
|
|
|
54
58
|
.command('commit', 'Generate and commit with AI message (interactive)')
|
|
55
59
|
.option('-y, --yes', 'Skip confirmation and commit directly')
|
|
56
60
|
.option('-n, --num <count>', 'Generate multiple commit messages to choose from', { default: 1 })
|
|
61
|
+
.option('-l, --locale <locale>', 'Override locale (zh/en)')
|
|
62
|
+
.option('-a, --agent', 'Use Agent mode for deep analysis and impact checking')
|
|
57
63
|
.action(async (options) => {
|
|
58
64
|
try {
|
|
59
65
|
await runCommit({
|
|
60
66
|
autoCommit: options.yes ?? false,
|
|
61
67
|
numChoices: Math.min(Math.max(Number(options.num) || 1, 1), 5),
|
|
68
|
+
locale: options.locale,
|
|
69
|
+
agentMode: options.agent,
|
|
62
70
|
});
|
|
63
71
|
}
|
|
64
72
|
catch (error) {
|
|
@@ -73,12 +81,14 @@ cli
|
|
|
73
81
|
.option('-n, --num <count>', 'Generate multiple messages', { default: 1 })
|
|
74
82
|
.option('--json', 'Output as JSON')
|
|
75
83
|
.option('--quiet', 'Suppress spinner and colors')
|
|
84
|
+
.option('-l, --locale <locale>', 'Override locale (zh/en)')
|
|
76
85
|
.action(async (options) => {
|
|
77
86
|
try {
|
|
78
87
|
await runMsg({
|
|
79
88
|
num: Math.min(Math.max(Number(options.num) || 1, 1), 5),
|
|
80
89
|
json: options.json ?? false,
|
|
81
90
|
quiet: options.quiet ?? false,
|
|
91
|
+
locale: options.locale,
|
|
82
92
|
});
|
|
83
93
|
}
|
|
84
94
|
catch (error) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,mDAAmD;AACnD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;AAClC,8DAA8D;AAC9D,OAAO,CAAC,IAAI,GAAG,UAAU,IAAS,EAAE,IAAS,EAAE,GAAG,IAAW;IAC3D,IACE,IAAI,KAAK,SAAS;QAClB,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,EAAE,IAAI,KAAK,oBAAoB;QACnC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,8DAA8D;IAC9D,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAQ,CAAC,CAAC;AACnE,CAAQ,CAAC;AAET,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAyB,CAAC;AAE/D,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE1B,6DAA6D;AAC7D,GAAG;KACA,OAAO,CAAC,EAAE,EAAE,kDAAkD,CAAC;KAC/D,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;KAC5D,MAAM,CAAC,mBAAmB,EAAE,kDAAkD,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KAC/F,MAAM,CAAC,QAAQ,EAAE,uCAAuC,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"AAwBA,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,CA6L1E"}
|
package/dist/commands/commit.js
CHANGED
|
@@ -2,7 +2,7 @@ import inquirer from 'inquirer';
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import ora from 'ora';
|
|
4
4
|
import { getConfig } from '../utils/config.js';
|
|
5
|
-
import { isGitInstalled, isInGitRepo, getStagedFiles, getFilteredDiff, commit, getBranchName, } from '../utils/git.js';
|
|
5
|
+
import { isGitInstalled, isInGitRepo, getStagedFiles, getFilteredDiff, commit, getBranchName, getRecentCommits, getUnstagedFiles, addFiles, } from '../utils/git.js';
|
|
6
6
|
import { createAIClient, generateCommitMessage, } from '../utils/ai.js';
|
|
7
7
|
function exitWithError(message, hint, silent = false) {
|
|
8
8
|
if (!silent) {
|
|
@@ -14,7 +14,7 @@ function exitWithError(message, hint, silent = false) {
|
|
|
14
14
|
process.exit(1);
|
|
15
15
|
}
|
|
16
16
|
export async function runCommit(options = {}) {
|
|
17
|
-
const { autoCommit = false, numChoices = 1, hookMode = false } = options;
|
|
17
|
+
const { autoCommit = false, numChoices = 1, hookMode = false, locale } = options;
|
|
18
18
|
// Recursion guard - prevent hook from triggering another git-ai
|
|
19
19
|
if (process.env.GIT_AI_RUNNING === '1') {
|
|
20
20
|
if (!hookMode) {
|
|
@@ -30,15 +30,44 @@ export async function runCommit(options = {}) {
|
|
|
30
30
|
if (!(await isInGitRepo())) {
|
|
31
31
|
exitWithError('Not in a git repository.', undefined, hookMode);
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
let stagedFiles = await getStagedFiles();
|
|
34
34
|
if (stagedFiles.length === 0) {
|
|
35
|
-
|
|
35
|
+
// Interactive add
|
|
36
|
+
const unstagedFiles = await getUnstagedFiles();
|
|
37
|
+
if (unstagedFiles.length > 0 && !hookMode) {
|
|
38
|
+
console.log(chalk.yellow('⚠️ No staged changes found.'));
|
|
39
|
+
const { selectedFiles } = await inquirer.prompt([
|
|
40
|
+
{
|
|
41
|
+
type: 'checkbox',
|
|
42
|
+
name: 'selectedFiles',
|
|
43
|
+
message: 'Select files to stage:',
|
|
44
|
+
choices: unstagedFiles,
|
|
45
|
+
pageSize: 15,
|
|
46
|
+
},
|
|
47
|
+
]);
|
|
48
|
+
if (selectedFiles.length > 0) {
|
|
49
|
+
await addFiles(selectedFiles);
|
|
50
|
+
stagedFiles = await getStagedFiles();
|
|
51
|
+
console.log(chalk.green(`✅ Staged ${selectedFiles.length} files.`));
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.log(chalk.gray('No files selected. Exiting.'));
|
|
55
|
+
process.exit(0);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
exitWithError('No staged changes found.', 'Use `git add <files>` to stage your changes first.', hookMode);
|
|
60
|
+
}
|
|
36
61
|
}
|
|
37
62
|
// Check config
|
|
38
63
|
const config = getConfig();
|
|
39
64
|
if (!config) {
|
|
40
65
|
exitWithError('Configuration not found.', 'Run `git-ai config` to set up your AI provider.');
|
|
41
66
|
}
|
|
67
|
+
// Override locale if provided
|
|
68
|
+
if (locale && (locale === 'zh' || locale === 'en')) {
|
|
69
|
+
config.locale = locale;
|
|
70
|
+
}
|
|
42
71
|
// Show staged files (skip in hook mode)
|
|
43
72
|
if (!hookMode) {
|
|
44
73
|
console.log(chalk.cyan('\n📁 Staged files:'));
|
|
@@ -49,6 +78,7 @@ export async function runCommit(options = {}) {
|
|
|
49
78
|
// Get filtered diff
|
|
50
79
|
const { diff, truncated, ignoredFiles } = await getFilteredDiff(stagedFiles);
|
|
51
80
|
const branchName = await getBranchName();
|
|
81
|
+
const recentCommits = await getRecentCommits(10); // Get last 10 commits for style reference
|
|
52
82
|
if (!hookMode) {
|
|
53
83
|
if (ignoredFiles.length > 0) {
|
|
54
84
|
const preview = ignoredFiles.slice(0, 8).join(', ');
|
|
@@ -61,13 +91,22 @@ export async function runCommit(options = {}) {
|
|
|
61
91
|
}
|
|
62
92
|
// Create AI client
|
|
63
93
|
const client = createAIClient(config);
|
|
64
|
-
const input = {
|
|
94
|
+
const input = {
|
|
95
|
+
diff,
|
|
96
|
+
stagedFiles,
|
|
97
|
+
ignoredFiles,
|
|
98
|
+
truncated,
|
|
99
|
+
branchName,
|
|
100
|
+
recentCommits,
|
|
101
|
+
forceAgent: options.agentMode,
|
|
102
|
+
};
|
|
65
103
|
// Generate commit message(s)
|
|
66
104
|
let commitMessage;
|
|
67
105
|
if (hookMode) {
|
|
68
106
|
// Hook mode: silent generation, output only the message
|
|
69
107
|
try {
|
|
70
|
-
|
|
108
|
+
const messages = await generateCommitMessage(client, input, config);
|
|
109
|
+
commitMessage = messages[0];
|
|
71
110
|
console.log(commitMessage);
|
|
72
111
|
return;
|
|
73
112
|
}
|
|
@@ -171,9 +210,9 @@ async function generateWithSpinner(client, input, config) {
|
|
|
171
210
|
color: 'cyan',
|
|
172
211
|
}).start();
|
|
173
212
|
try {
|
|
174
|
-
const
|
|
213
|
+
const messages = await generateCommitMessage(client, input, config);
|
|
175
214
|
spinner.succeed('Commit message generated!');
|
|
176
|
-
return
|
|
215
|
+
return messages[0];
|
|
177
216
|
}
|
|
178
217
|
catch (error) {
|
|
179
218
|
spinner.fail('Failed to generate commit message');
|
|
@@ -187,8 +226,8 @@ async function generateMultipleWithSpinner(client, input, config, count) {
|
|
|
187
226
|
color: 'cyan',
|
|
188
227
|
}).start();
|
|
189
228
|
try {
|
|
190
|
-
|
|
191
|
-
const messages = await
|
|
229
|
+
// Optimized: Single request for multiple choices
|
|
230
|
+
const messages = await generateCommitMessage(client, input, config, count);
|
|
192
231
|
// Dedupe
|
|
193
232
|
const unique = [...new Set(messages)];
|
|
194
233
|
spinner.succeed(`Generated ${unique.length} commit message(s)!`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,MAAM,EACN,aAAa,
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/msg.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msg.d.ts","sourceRoot":"","sources":["../../src/commands/msg.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"msg.d.ts","sourceRoot":"","sources":["../../src/commands/msg.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH;AAYD,wBAAsB,MAAM,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA2GpE"}
|