@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.
- package/README.md +75 -27
- 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 -240
- 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 -189
- package/dist/cli_main.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 -301
- 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 -185
- 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 -462
- 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 -137
- package/dist/commands/msg.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 -154
- package/dist/commands/report.js.map +0 -1
- package/dist/types.d.ts +0 -20
- 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 -21
- package/dist/utils/ai.d.ts.map +0 -1
- package/dist/utils/ai.js +0 -437
- 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 -146
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/git.d.ts +0 -34
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js +0 -368
- 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 -10
- package/scripts/release.sh +0 -34
- package/test_agent_feature.ts +0 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<strong>🤖 AI-Powered Git Assistant: Commit, Context & Report</strong>
|
|
5
5
|
</p>
|
|
6
6
|
<p align="center">
|
|
7
|
-
🚀 <strong>DeepSeek</strong> 深度优化 | 🏠 <strong>Ollama</strong> 隐私优先 | 🧠 <strong>分支感知</strong> | 📊 <strong>智能周报</strong>
|
|
7
|
+
🚀 <strong>DeepSeek</strong> 深度优化 | 🏠 <strong>Ollama</strong> 隐私优先 | 🧠 <strong>分支感知</strong> | 🛡️ <strong>Copilot 守护</strong> | 📊 <strong>智能周报</strong>
|
|
8
8
|
</p>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
@@ -29,6 +29,18 @@
|
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
+
## 🦀 Rust 版说明(当前默认发布)
|
|
33
|
+
|
|
34
|
+
从 **2.x** 开始,`git-ai-cli` 默认发布 **Rust 版**(更快、单文件二进制)。推荐通过 npm 安装(会自动下载对应平台的二进制):
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install -g @dongowu/git-ai-cli
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
> Rust 版目前包含 **agent-lite**(影响分析/符号搜索),增强安全/性能分析功能仍在迁移中。
|
|
41
|
+
|
|
42
|
+
> 如需旧版 TypeScript(1.x)请自行固定版本号安装。
|
|
43
|
+
|
|
32
44
|
## 🚀 快速开始
|
|
33
45
|
|
|
34
46
|
```bash
|
|
@@ -36,7 +48,7 @@
|
|
|
36
48
|
npm install -g @dongowu/git-ai-cli
|
|
37
49
|
|
|
38
50
|
# 2. 初始化 (自动探测本地模型或配置 API)
|
|
39
|
-
git-ai
|
|
51
|
+
git-ai config
|
|
40
52
|
|
|
41
53
|
# 3. 使用
|
|
42
54
|
git add .
|
|
@@ -55,23 +67,31 @@ git-ai
|
|
|
55
67
|
- **风格学习**:自动分析您最近的 10 次提交记录,模仿您的语气、格式(如 Emoji 使用习惯)和语言风格。
|
|
56
68
|
- **分支感知**:读取当前分支名(如 `feat/user-login`, `fix/JIRA-123`),生成包含 Issue ID 或功能模块的规范提交信息。
|
|
57
69
|
|
|
58
|
-
### 3. 🤖 Agent 智能体
|
|
59
|
-
|
|
70
|
+
### 3. 🤖 Agent 智能体
|
|
71
|
+
从单纯的"文本生成"进化为"智能代码专家"。
|
|
60
72
|
- **Smart Diff**: 遇到超大变更不再瞎编。Agent 会自动分析统计数据,只读取核心文件的代码,大幅降低 Token 限制带来的影响。
|
|
61
73
|
- **影响分析 (Impact Analysis)**: 修改了核心 API?Agent 会主动**搜索整个代码库**(`git grep`),检查调用方是否同步修改,并在 Commit Body 中提示潜在风险。
|
|
62
74
|
- **Git Flow 护航**: 在 `release/*` 或 `hotfix/*` 分支上自动开启深度检查,守卫生产环境。
|
|
63
75
|
|
|
64
|
-
### 4.
|
|
76
|
+
### 4. 🛡️ GitHub Copilot CLI 智能守护 (New)
|
|
77
|
+
双层 AI 架构:专业 Commit 生成 + 深度代码分析。
|
|
78
|
+
- **代码影响分析**: 使用 GitHub Copilot CLI 深度分析代码变更的影响范围和潜在风险
|
|
79
|
+
- **风险检测**: 自动识别破坏性变更、潜在 Bug 和安全隐患
|
|
80
|
+
- **测试建议**: 智能推荐需要测试的场景和用例
|
|
81
|
+
- **受影响区域**: 分析哪些模块和文件可能受到影响
|
|
82
|
+
- **可选启用**: 通过 `--copilot` 参数按需启用,不强制依赖
|
|
83
|
+
|
|
84
|
+
### 5. ⚙️ 工程化配置 (Project Config)
|
|
65
85
|
- **项目级配置**:支持在项目根目录创建 `.git-ai.json`,团队统一共享模型和 Prompt 配置(优先级 > 全局配置)。
|
|
66
86
|
- **智能忽略**:支持 `.git-aiignore` 文件,排除自动生成文件(如 `package-lock.json`)或大文件,节省 Token 并提高准确性。
|
|
67
87
|
|
|
68
|
-
###
|
|
88
|
+
### 6. 🪝 无感集成 (Git Hook)
|
|
69
89
|
- **零打扰**:安装 Hook 后,只需执行 `git commit`(不带 `-m`),AI 自动填充消息并打开编辑器。
|
|
70
90
|
- **兼容性**:完美兼容现有 Git 工作流,支持 `git commit --no-verify` 跳过。
|
|
71
91
|
|
|
72
|
-
###
|
|
92
|
+
### 7. 📊 智能周报 (AI Report)
|
|
73
93
|
- **一键生成**:`git-ai report` 自动分析你最近的代码提交。
|
|
74
|
-
- **价值导向**:将零碎的 Commit
|
|
94
|
+
- **价值导向**:将零碎的 Commit 转化为结构化的"核心产出"、"问题修复"和"技术优化"报告。
|
|
75
95
|
|
|
76
96
|
---
|
|
77
97
|
|
|
@@ -121,13 +141,6 @@ git-ai config describe
|
|
|
121
141
|
- `GIT_AI_TIMEOUT_MS`(请求超时,默认 120000)
|
|
122
142
|
- `GIT_AI_MAX_DIFF_CHARS`(控制 diff 截断长度)
|
|
123
143
|
- `GIT_AI_MAX_OUTPUT_TOKENS`(控制输出 token 上限)
|
|
124
|
-
- `GIT_AI_AUTO_AGENT=0`(关闭自动 Agent;仍可用 `-a` 强制开启)
|
|
125
|
-
- `GIT_AI_DISABLE_AGENT=1`(完全禁用 Agent)
|
|
126
|
-
- `GIT_AI_RECENT_COMMITS_ALL=1`(Recent Commits 不限制作者)
|
|
127
|
-
- `GIT_AI_RECENT_COMMITS_FALLBACK=0`(禁用“无作者回退”)
|
|
128
|
-
- `GIT_AI_DISABLE_UPDATE=1`(关闭更新检查)
|
|
129
|
-
- `GIT_AI_UPDATE_INTERVAL_HOURS=24`(更新检查间隔,单位小时)
|
|
130
|
-
- `GIT_AI_MSG_DELIM=<<<GIT_AI_END>>>`(`git-ai msg -n` 多候选分隔符)
|
|
131
144
|
- `GIT_AI_DEBUG=1`(打印更详细错误)
|
|
132
145
|
|
|
133
146
|
OpenCommit 兼容变量(可直接复用):
|
|
@@ -169,7 +182,42 @@ git add .
|
|
|
169
182
|
git-ai
|
|
170
183
|
```
|
|
171
184
|
|
|
172
|
-
### 场景二:
|
|
185
|
+
### 场景二:Copilot 智能守护模式 🌟 推荐
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
git add .
|
|
189
|
+
git-ai --copilot
|
|
190
|
+
# 1. 使用 DeepSeek/Ollama 生成专业 commit message
|
|
191
|
+
# 2. GitHub Copilot CLI 深度分析代码影响
|
|
192
|
+
# 3. 展示风险提示和测试建议
|
|
193
|
+
# 4. 确认后提交
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**输出示例:**
|
|
197
|
+
```
|
|
198
|
+
✨ Generated commit message(s):
|
|
199
|
+
|
|
200
|
+
feat(auth): implement JWT token refresh mechanism
|
|
201
|
+
|
|
202
|
+
📊 Impact Analysis:
|
|
203
|
+
Modified authentication flow to support automatic token refresh
|
|
204
|
+
|
|
205
|
+
⚠️ Potential Risks:
|
|
206
|
+
• Breaking change: Old tokens will be invalidated
|
|
207
|
+
• Session management logic needs update
|
|
208
|
+
|
|
209
|
+
🔗 Affected Areas:
|
|
210
|
+
• Login component
|
|
211
|
+
• API middleware
|
|
212
|
+
• User session store
|
|
213
|
+
|
|
214
|
+
✅ Test Recommendations:
|
|
215
|
+
• Test token expiration handling
|
|
216
|
+
• Verify refresh token rotation
|
|
217
|
+
• Check concurrent request handling
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### 场景三:Git Flow 最佳实践 (Hook)
|
|
173
221
|
|
|
174
222
|
这是最流畅的体验。你不需要改变任何习惯,只需一次安装:
|
|
175
223
|
|
|
@@ -189,7 +237,7 @@ git add .
|
|
|
189
237
|
git commit # ✨ AI 自动帮你写好了 "feat(login): implement awesome login logic"
|
|
190
238
|
```
|
|
191
239
|
|
|
192
|
-
###
|
|
240
|
+
### 场景四:生成周报 (Report)
|
|
193
241
|
|
|
194
242
|
每逢周五不想写周报?
|
|
195
243
|
|
|
@@ -200,11 +248,11 @@ git-ai report
|
|
|
200
248
|
# 生成最近 30 天的汇报
|
|
201
249
|
git-ai report --days 30
|
|
202
250
|
|
|
203
|
-
#
|
|
204
|
-
git-ai report --from
|
|
251
|
+
# 从“上次 tag”到当前代码生成版本功能描述
|
|
252
|
+
git-ai report --from-last-tag
|
|
205
253
|
|
|
206
|
-
#
|
|
207
|
-
git-ai report --
|
|
254
|
+
# 指定 tag 范围生成发布说明(例如 v1.0.21 -> v2.0.0)
|
|
255
|
+
git-ai report --from-tag v1.0.21 --to-ref v2.0.0
|
|
208
256
|
```
|
|
209
257
|
|
|
210
258
|
---
|
|
@@ -213,29 +261,29 @@ git-ai report --days 7 --json
|
|
|
213
261
|
|
|
214
262
|
| 命令 | 别名 | 说明 |
|
|
215
263
|
|------|------|------|
|
|
216
|
-
| `git-ai
|
|
264
|
+
| `git-ai config` | `config` | **初始化配置**(设置模型、Key、语言) |
|
|
217
265
|
| `git-ai config get` | | 查看当前生效配置(支持 `--json` / `--local`) |
|
|
218
266
|
| `git-ai config set <key> <value>` | | 设置配置(支持 `--local` / `--json`) |
|
|
219
267
|
| `git-ai config describe` | | 查看可配置项与环境变量覆盖 |
|
|
220
268
|
| `git-ai` | | 交互式生成并提交 |
|
|
269
|
+
| `git-ai --copilot` | | **Copilot 守护模式** (代码影响分析 & 风险检测) |
|
|
221
270
|
| `git-ai -a` | | **Agent 模式** (深度分析 & 影响检查) |
|
|
271
|
+
| `git-ai -a --copilot` | | **终极模式** (Agent + Copilot 双重保障) |
|
|
222
272
|
| `git-ai -y` | | 跳过确认直接提交 |
|
|
223
273
|
| `git-ai -n 3` | | 生成 3 条候选消息 |
|
|
224
274
|
| `git-ai -l en` | | 强制输出语言(en/zh) |
|
|
225
275
|
| `git-ai hook install` | | **安装 Git Hook** (支持 `--global`) |
|
|
226
276
|
| `git-ai hook remove` | | 移除 Git Hook |
|
|
227
|
-
| `git-ai report` | | **生成 AI
|
|
277
|
+
| `git-ai report` | | **生成 AI 周报 / 版本说明** (支持 `--days` / `--from-last-tag` / `--from-tag --to-ref`) |
|
|
228
278
|
| `git-ai msg` | | 仅输出消息(供脚本调用) |
|
|
229
279
|
|
|
230
280
|
---
|
|
231
281
|
|
|
232
|
-
**提示**:`git-ai msg -n` 默认使用分隔符 `<<<GIT_AI_END>>>`;脚本场景建议使用 `--json`。
|
|
233
|
-
|
|
234
282
|
## 🤖 支持的模型
|
|
235
283
|
|
|
236
284
|
| 类型 | 服务商 | 优势 | 配置方式 |
|
|
237
285
|
|------|--------|------|----------|
|
|
238
|
-
| **本地隐私** | **Ollama** | 免费、离线、绝对隐私 | `git-ai
|
|
286
|
+
| **本地隐私** | **Ollama** | 免费、离线、绝对隐私 | `git-ai config` 自动探测 |
|
|
239
287
|
| | **LM Studio** | 兼容性好 | 手动输入 URL |
|
|
240
288
|
| **国内高速** | **DeepSeek** | **性价比之王**,代码能力极强 | API Key |
|
|
241
289
|
| | **通义千问** | 阿里生态,长文本能力强 | API Key |
|
|
@@ -248,7 +296,7 @@ git-ai report --days 7 --json
|
|
|
248
296
|
|
|
249
297
|
## 📄 License
|
|
250
298
|
|
|
251
|
-
[
|
|
299
|
+
[Apache 2.0](LICENSE)
|
|
252
300
|
|
|
253
301
|
---
|
|
254
302
|
|
package/bin/git-ai.cjs
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const os = require('os');
|
|
6
|
+
const { spawn } = require('child_process');
|
|
7
|
+
|
|
8
|
+
// Detect platform and architecture
|
|
9
|
+
const platform = os.platform();
|
|
10
|
+
const arch = os.arch();
|
|
11
|
+
|
|
12
|
+
// Map Node.js platform/arch to our naming convention
|
|
13
|
+
const platformMap = {
|
|
14
|
+
'linux-x64': 'linux-x64',
|
|
15
|
+
'linux-arm64': 'linux-arm64',
|
|
16
|
+
'darwin-x64': 'darwin-x64',
|
|
17
|
+
'darwin-arm64': 'darwin-arm64',
|
|
18
|
+
'win32-x64': 'win32-x64',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const key = `${platform}-${arch}`;
|
|
22
|
+
const platformKey = platformMap[key];
|
|
23
|
+
|
|
24
|
+
if (!platformKey) {
|
|
25
|
+
console.error(`Error: Unsupported platform: ${platform} ${arch}`);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Find the binary from the platform-specific package
|
|
30
|
+
const packageName = `@dongowu/git-ai-cli-${platformKey}`;
|
|
31
|
+
const nodeModulesPath = path.join(__dirname, '..', 'node_modules');
|
|
32
|
+
const binaryName = platform === 'win32' ? 'git-ai.exe' : 'git-ai';
|
|
33
|
+
const binaryPath = path.join(nodeModulesPath, packageName, 'bin', binaryName);
|
|
34
|
+
|
|
35
|
+
// Check if binary exists
|
|
36
|
+
if (!fs.existsSync(binaryPath)) {
|
|
37
|
+
console.error(`Error: Binary not found at ${binaryPath}`);
|
|
38
|
+
console.error(`Please ensure the ${packageName} package is installed.`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Spawn the binary with all arguments
|
|
43
|
+
const child = spawn(binaryPath, process.argv.slice(2), {
|
|
44
|
+
stdio: 'inherit',
|
|
45
|
+
shell: false,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// Forward exit code
|
|
49
|
+
child.on('exit', (code) => {
|
|
50
|
+
process.exit(code || 0);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// Handle errors
|
|
54
|
+
child.on('error', (err) => {
|
|
55
|
+
console.error(`Error executing binary: ${err.message}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
});
|
package/install.cjs
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const os = require('os');
|
|
6
|
+
|
|
7
|
+
// Detect platform and architecture
|
|
8
|
+
const platform = os.platform();
|
|
9
|
+
const arch = os.arch();
|
|
10
|
+
|
|
11
|
+
// Map Node.js platform/arch to our naming convention
|
|
12
|
+
const platformMap = {
|
|
13
|
+
'linux-x64': 'linux-x64',
|
|
14
|
+
'linux-arm64': 'linux-arm64',
|
|
15
|
+
'darwin-x64': 'darwin-x64',
|
|
16
|
+
'darwin-arm64': 'darwin-arm64',
|
|
17
|
+
'win32-x64': 'win32-x64',
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const key = `${platform}-${arch}`;
|
|
21
|
+
const platformKey = platformMap[key];
|
|
22
|
+
|
|
23
|
+
if (!platformKey) {
|
|
24
|
+
console.error(`Unsupported platform: ${platform} ${arch}`);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Try to find the binary from the platform-specific package
|
|
29
|
+
const packageName = `@dongowu/git-ai-cli-${platformKey}`;
|
|
30
|
+
const nodeModulesPath = path.join(__dirname, 'node_modules');
|
|
31
|
+
const binaryName = platform === 'win32' ? 'git-ai.exe' : 'git-ai';
|
|
32
|
+
const binaryPath = path.join(nodeModulesPath, packageName, 'bin', binaryName);
|
|
33
|
+
|
|
34
|
+
// Check if binary exists
|
|
35
|
+
if (!fs.existsSync(binaryPath)) {
|
|
36
|
+
console.warn(`Warning: Binary not found at ${binaryPath}`);
|
|
37
|
+
console.warn(`Please ensure the ${packageName} package is installed.`);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Make binary executable on Unix-like systems
|
|
42
|
+
if (process.platform !== 'win32') {
|
|
43
|
+
try {
|
|
44
|
+
fs.chmodSync(binaryPath, 0o755);
|
|
45
|
+
} catch (err) {
|
|
46
|
+
console.warn(`Warning: Could not make binary executable: ${err.message}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
console.log(`✅ git-ai binary installed for ${platformKey}`);
|
package/package.json
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dongowu/git-ai-cli",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
"main": "dist/cli.js",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Generate git commit messages using AI - Rust Edition",
|
|
5
|
+
"main": "bin/git-ai.cjs",
|
|
7
6
|
"bin": {
|
|
8
|
-
"git-ai": "
|
|
7
|
+
"git-ai": "bin/git-ai.cjs"
|
|
9
8
|
},
|
|
10
9
|
"scripts": {
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"prepublishOnly": "npm run build",
|
|
10
|
+
"postinstall": "node install.cjs",
|
|
11
|
+
"build:rust": "cargo build --release",
|
|
12
|
+
"test": "cargo test",
|
|
15
13
|
"release": "npm version patch && git push --follow-tags",
|
|
16
14
|
"release:minor": "npm version minor && git push --follow-tags",
|
|
17
|
-
"release:major": "npm version major && git push --follow-tags"
|
|
18
|
-
"tag": "npm version patch && git push && git push --tags",
|
|
19
|
-
"tag:minor": "npm version minor && git push && git push --tags",
|
|
20
|
-
"tag:major": "npm version major && git push && git push --tags"
|
|
15
|
+
"release:major": "npm version major && git push --follow-tags"
|
|
21
16
|
},
|
|
22
17
|
"keywords": [
|
|
23
18
|
"git",
|
|
@@ -27,27 +22,31 @@
|
|
|
27
22
|
"openai",
|
|
28
23
|
"deepseek",
|
|
29
24
|
"ollama",
|
|
25
|
+
"rust",
|
|
30
26
|
"style-learning",
|
|
31
27
|
"git-hook",
|
|
32
28
|
"productivity"
|
|
33
29
|
],
|
|
34
|
-
"author": "",
|
|
30
|
+
"author": "dongowu <dongowu@gmail.com>",
|
|
35
31
|
"license": "MIT",
|
|
36
|
-
"
|
|
37
|
-
"
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "https://github.com/dongowu/git-ai-cli"
|
|
38
35
|
},
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"chalk": "^5.3.0",
|
|
42
|
-
"conf": "^12.0.0",
|
|
43
|
-
"execa": "^8.0.1",
|
|
44
|
-
"inquirer": "^9.2.12",
|
|
45
|
-
"openai": "^4.28.0",
|
|
46
|
-
"ora": "^8.0.1"
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=14.0.0"
|
|
47
38
|
},
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
39
|
+
"files": [
|
|
40
|
+
"bin/git-ai.cjs",
|
|
41
|
+
"install.cjs",
|
|
42
|
+
"README.md",
|
|
43
|
+
"LICENSE"
|
|
44
|
+
],
|
|
45
|
+
"optionalDependencies": {
|
|
46
|
+
"@dongowu/git-ai-cli-linux-x64": "2.0.0",
|
|
47
|
+
"@dongowu/git-ai-cli-linux-arm64": "2.0.0",
|
|
48
|
+
"@dongowu/git-ai-cli-darwin-x64": "2.0.0",
|
|
49
|
+
"@dongowu/git-ai-cli-darwin-arm64": "2.0.0",
|
|
50
|
+
"@dongowu/git-ai-cli-win32-x64": "2.0.0"
|
|
52
51
|
}
|
|
53
52
|
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(git-ai msg:*)",
|
|
5
|
-
"Bash(git-ai hook:*)",
|
|
6
|
-
"Bash(npm run build:*)",
|
|
7
|
-
"Bash(npm install:*)",
|
|
8
|
-
"Bash(node dist/cli.js hook status:*)",
|
|
9
|
-
"Bash(node dist/cli.js:*)",
|
|
10
|
-
"Bash(git config:*)",
|
|
11
|
-
"Bash(git add:*)",
|
|
12
|
-
"Bash(where:*)",
|
|
13
|
-
"Bash(GIT_EDITOR=\"cat\" git commit:*)",
|
|
14
|
-
"Bash(git reset:*)"
|
|
15
|
-
]
|
|
16
|
-
}
|
|
17
|
-
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
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.
|