@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/utils/git.js
DELETED
|
@@ -1,456 +0,0 @@
|
|
|
1
|
-
import { execa } from 'execa';
|
|
2
|
-
import { readFileSync, existsSync } from 'node:fs';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { DIFF_BLACKLIST, MAX_DIFF_LENGTH } from '../types.js';
|
|
5
|
-
let cachedIgnoreRules = null;
|
|
6
|
-
const MAX_SEARCH_RESULTS = 50;
|
|
7
|
-
const MAX_SEARCH_OUTPUT_CHARS = 4000;
|
|
8
|
-
function parseBooleanEnv(value) {
|
|
9
|
-
if (!value)
|
|
10
|
-
return undefined;
|
|
11
|
-
const normalized = value.trim().toLowerCase();
|
|
12
|
-
if (['1', 'true', 'yes', 'y', 'on'].includes(normalized))
|
|
13
|
-
return true;
|
|
14
|
-
if (['0', 'false', 'no', 'n', 'off'].includes(normalized))
|
|
15
|
-
return false;
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
function getMaxDiffLengthChars() {
|
|
19
|
-
const rawChars = process.env.GIT_AI_MAX_DIFF_CHARS;
|
|
20
|
-
const parsedChars = rawChars ? Number.parseInt(rawChars, 10) : Number.NaN;
|
|
21
|
-
if (Number.isFinite(parsedChars) && parsedChars > 0)
|
|
22
|
-
return parsedChars;
|
|
23
|
-
// OpenCommit compatibility: approximate tokens -> chars (roughly 4 chars per token).
|
|
24
|
-
const rawTokens = process.env.OCO_TOKENS_MAX_INPUT;
|
|
25
|
-
const parsedTokens = rawTokens ? Number.parseInt(rawTokens, 10) : Number.NaN;
|
|
26
|
-
if (Number.isFinite(parsedTokens) && parsedTokens > 0)
|
|
27
|
-
return parsedTokens * 4;
|
|
28
|
-
return MAX_DIFF_LENGTH;
|
|
29
|
-
}
|
|
30
|
-
function normalizePath(path) {
|
|
31
|
-
return path.replace(/\\/g, '/');
|
|
32
|
-
}
|
|
33
|
-
function escapeRegexChar(char) {
|
|
34
|
-
return /[.*+?^${}()|[\]\\]/.test(char) ? `\\${char}` : char;
|
|
35
|
-
}
|
|
36
|
-
function globToRegex(pattern) {
|
|
37
|
-
let out = '';
|
|
38
|
-
for (let i = 0; i < pattern.length; i++) {
|
|
39
|
-
const ch = pattern[i];
|
|
40
|
-
if (ch === '*') {
|
|
41
|
-
const next = pattern[i + 1];
|
|
42
|
-
if (next === '*') {
|
|
43
|
-
// Collapse consecutive ** into one.
|
|
44
|
-
while (pattern[i + 1] === '*')
|
|
45
|
-
i++;
|
|
46
|
-
out += '.*';
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
out += '[^/]*';
|
|
50
|
-
}
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
if (ch === '?') {
|
|
54
|
-
out += '[^/]';
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
out += escapeRegexChar(ch);
|
|
58
|
-
}
|
|
59
|
-
return out;
|
|
60
|
-
}
|
|
61
|
-
function compileIgnoreRule(rawPattern) {
|
|
62
|
-
let pattern = rawPattern.trim();
|
|
63
|
-
if (!pattern)
|
|
64
|
-
return null;
|
|
65
|
-
// Comment handling (support escaped # and !).
|
|
66
|
-
if (pattern.startsWith('\\#')) {
|
|
67
|
-
pattern = pattern.slice(1);
|
|
68
|
-
}
|
|
69
|
-
else if (pattern.startsWith('#')) {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
let negate = false;
|
|
73
|
-
if (pattern.startsWith('\\!')) {
|
|
74
|
-
pattern = pattern.slice(1);
|
|
75
|
-
}
|
|
76
|
-
else if (pattern.startsWith('!')) {
|
|
77
|
-
negate = true;
|
|
78
|
-
pattern = pattern.slice(1).trim();
|
|
79
|
-
if (!pattern)
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
let anchored = false;
|
|
83
|
-
if (pattern.startsWith('/')) {
|
|
84
|
-
anchored = true;
|
|
85
|
-
pattern = pattern.slice(1);
|
|
86
|
-
}
|
|
87
|
-
if (pattern.endsWith('/')) {
|
|
88
|
-
pattern = pattern.slice(0, -1);
|
|
89
|
-
}
|
|
90
|
-
const normalized = normalizePath(pattern);
|
|
91
|
-
const body = globToRegex(normalized);
|
|
92
|
-
const prefix = anchored ? '^' : '(^|.*/)';
|
|
93
|
-
const suffix = '(/.*)?$';
|
|
94
|
-
try {
|
|
95
|
-
return {
|
|
96
|
-
raw: rawPattern,
|
|
97
|
-
regex: new RegExp(prefix + body + suffix),
|
|
98
|
-
negate,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
catch {
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
function getIgnoreRules() {
|
|
106
|
-
if (cachedIgnoreRules)
|
|
107
|
-
return cachedIgnoreRules;
|
|
108
|
-
const patterns = [...DIFF_BLACKLIST];
|
|
109
|
-
const ignorePaths = [
|
|
110
|
-
join(process.cwd(), '.git-aiignore'),
|
|
111
|
-
// OpenCommit compatibility
|
|
112
|
-
join(process.cwd(), '.opencommitignore'),
|
|
113
|
-
];
|
|
114
|
-
for (const ignorePath of ignorePaths) {
|
|
115
|
-
if (!existsSync(ignorePath))
|
|
116
|
-
continue;
|
|
117
|
-
try {
|
|
118
|
-
const content = readFileSync(ignorePath, 'utf-8');
|
|
119
|
-
const lines = content.split('\n').map((l) => l.trim());
|
|
120
|
-
patterns.push(...lines);
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
// ignore error
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
cachedIgnoreRules = patterns
|
|
127
|
-
.map((pattern) => compileIgnoreRule(pattern))
|
|
128
|
-
.filter(Boolean);
|
|
129
|
-
return cachedIgnoreRules;
|
|
130
|
-
}
|
|
131
|
-
export async function isGitInstalled() {
|
|
132
|
-
try {
|
|
133
|
-
await execa('git', ['--version']);
|
|
134
|
-
return true;
|
|
135
|
-
}
|
|
136
|
-
catch {
|
|
137
|
-
return false;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
export async function isInGitRepo() {
|
|
141
|
-
try {
|
|
142
|
-
await execa('git', ['rev-parse', '--is-inside-work-tree']);
|
|
143
|
-
return true;
|
|
144
|
-
}
|
|
145
|
-
catch {
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
export async function getBranchName() {
|
|
150
|
-
try {
|
|
151
|
-
const { stdout } = await execa('git', ['symbolic-ref', '--short', 'HEAD']);
|
|
152
|
-
return stdout.trim();
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
return '';
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
export async function getStagedDiff() {
|
|
159
|
-
const { stdout } = await execa('git', ['diff', '--cached']);
|
|
160
|
-
return stdout;
|
|
161
|
-
}
|
|
162
|
-
export async function getStagedFiles() {
|
|
163
|
-
const { stdout } = await execa('git', ['diff', '--cached', '--name-only']);
|
|
164
|
-
return stdout.split('\n').filter(Boolean);
|
|
165
|
-
}
|
|
166
|
-
export async function getFileStats() {
|
|
167
|
-
try {
|
|
168
|
-
const { stdout } = await execa('git', ['diff', '--cached', '--numstat']);
|
|
169
|
-
return stdout
|
|
170
|
-
.split('\n')
|
|
171
|
-
.filter(Boolean)
|
|
172
|
-
.map((line) => {
|
|
173
|
-
const [insertions, deletions, file] = line.split('\t');
|
|
174
|
-
return {
|
|
175
|
-
file,
|
|
176
|
-
insertions: parseInt(insertions) || 0,
|
|
177
|
-
deletions: parseInt(deletions) || 0,
|
|
178
|
-
};
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
catch {
|
|
182
|
-
return [];
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
export async function getFileDiff(file) {
|
|
186
|
-
try {
|
|
187
|
-
const { stdout } = await execa('git', ['diff', '--cached', '--', file]);
|
|
188
|
-
return stdout;
|
|
189
|
-
}
|
|
190
|
-
catch {
|
|
191
|
-
return '';
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
export function isBlacklisted(filename) {
|
|
195
|
-
const rules = getIgnoreRules();
|
|
196
|
-
const target = normalizePath(filename);
|
|
197
|
-
let ignored = false;
|
|
198
|
-
for (const rule of rules) {
|
|
199
|
-
if (rule.regex.test(target)) {
|
|
200
|
-
ignored = !rule.negate;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return ignored;
|
|
204
|
-
}
|
|
205
|
-
function chunkArgsByLength(args, options) {
|
|
206
|
-
const batches = [];
|
|
207
|
-
let current = [];
|
|
208
|
-
let currentChars = 0;
|
|
209
|
-
for (const arg of args) {
|
|
210
|
-
const argLen = arg.length + 1;
|
|
211
|
-
const shouldStartNewBatch = current.length >= options.maxItems || currentChars + argLen > options.maxChars;
|
|
212
|
-
if (shouldStartNewBatch) {
|
|
213
|
-
if (current.length > 0) {
|
|
214
|
-
batches.push(current);
|
|
215
|
-
}
|
|
216
|
-
current = [];
|
|
217
|
-
currentChars = 0;
|
|
218
|
-
}
|
|
219
|
-
current.push(arg);
|
|
220
|
-
currentChars += argLen;
|
|
221
|
-
}
|
|
222
|
-
if (current.length > 0) {
|
|
223
|
-
batches.push(current);
|
|
224
|
-
}
|
|
225
|
-
return batches;
|
|
226
|
-
}
|
|
227
|
-
export async function getFilteredDiff(files) {
|
|
228
|
-
const ignoredFiles = files.filter(isBlacklisted);
|
|
229
|
-
const allowedFiles = files.filter((file) => !isBlacklisted(file));
|
|
230
|
-
const diffParts = [];
|
|
231
|
-
const fileBatches = chunkArgsByLength(allowedFiles, { maxItems: 50, maxChars: 6000 });
|
|
232
|
-
for (const batch of fileBatches) {
|
|
233
|
-
try {
|
|
234
|
-
const { stdout } = await execa('git', ['diff', '--cached', '--', ...batch]);
|
|
235
|
-
if (stdout) {
|
|
236
|
-
diffParts.push(stdout);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
catch {
|
|
240
|
-
diffParts.push(`[Diff unavailable for ${batch.length} file(s)]`);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
let fullDiff = diffParts.join('\n');
|
|
244
|
-
let truncated = false;
|
|
245
|
-
const maxLen = getMaxDiffLengthChars();
|
|
246
|
-
if (fullDiff.length > maxLen) {
|
|
247
|
-
fullDiff = fullDiff.slice(0, maxLen) + '\n\n...[Diff Truncated]';
|
|
248
|
-
truncated = true;
|
|
249
|
-
}
|
|
250
|
-
return { diff: fullDiff, truncated, ignoredFiles };
|
|
251
|
-
}
|
|
252
|
-
export async function commit(message) {
|
|
253
|
-
await execa('git', ['commit', '-m', message]);
|
|
254
|
-
}
|
|
255
|
-
export async function getUserName() {
|
|
256
|
-
try {
|
|
257
|
-
const { stdout } = await execa('git', ['config', 'user.name']);
|
|
258
|
-
return stdout.trim();
|
|
259
|
-
}
|
|
260
|
-
catch {
|
|
261
|
-
return '';
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
export async function getRecentCommits(days) {
|
|
265
|
-
return getCommitsInRange({ since: `${days} days ago` });
|
|
266
|
-
}
|
|
267
|
-
export async function getCommitsInRange(options) {
|
|
268
|
-
try {
|
|
269
|
-
const author = await getUserName();
|
|
270
|
-
const includeAll = parseBooleanEnv(process.env.GIT_AI_RECENT_COMMITS_ALL) === true;
|
|
271
|
-
const allowFallback = parseBooleanEnv(process.env.GIT_AI_RECENT_COMMITS_FALLBACK) !== false;
|
|
272
|
-
const buildArgs = (withAuthor) => {
|
|
273
|
-
const args = [
|
|
274
|
-
'log',
|
|
275
|
-
'--pretty=format:%h %cd %s', // Hash Date Subject
|
|
276
|
-
'--date=short',
|
|
277
|
-
'--no-merges', // Exclude merge commits
|
|
278
|
-
];
|
|
279
|
-
if (options.since)
|
|
280
|
-
args.push(`--since=${options.since}`);
|
|
281
|
-
if (options.until)
|
|
282
|
-
args.push(`--until=${options.until}`);
|
|
283
|
-
if (withAuthor) {
|
|
284
|
-
args.push(`--author=${withAuthor}`);
|
|
285
|
-
}
|
|
286
|
-
return args;
|
|
287
|
-
};
|
|
288
|
-
const useAuthor = author && !includeAll ? author : undefined;
|
|
289
|
-
let stdout = '';
|
|
290
|
-
if (useAuthor) {
|
|
291
|
-
const result = await execa('git', buildArgs(useAuthor));
|
|
292
|
-
stdout = result.stdout;
|
|
293
|
-
if (!stdout && allowFallback) {
|
|
294
|
-
const fallback = await execa('git', buildArgs(undefined));
|
|
295
|
-
stdout = fallback.stdout;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
const result = await execa('git', buildArgs(undefined));
|
|
300
|
-
stdout = result.stdout;
|
|
301
|
-
}
|
|
302
|
-
return stdout.split('\n').filter((line) => line.trim());
|
|
303
|
-
}
|
|
304
|
-
catch {
|
|
305
|
-
return [];
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
export async function getCommitsBetween(base, head) {
|
|
309
|
-
try {
|
|
310
|
-
const range = `${base}..${head}`;
|
|
311
|
-
const { stdout } = await execa('git', [
|
|
312
|
-
'log',
|
|
313
|
-
'--pretty=format:%h %cd %s',
|
|
314
|
-
'--date=short',
|
|
315
|
-
'--no-merges',
|
|
316
|
-
range,
|
|
317
|
-
]);
|
|
318
|
-
return stdout.split('\n').filter((line) => line.trim());
|
|
319
|
-
}
|
|
320
|
-
catch {
|
|
321
|
-
return [];
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
export async function getDiffStat(base, head) {
|
|
325
|
-
try {
|
|
326
|
-
const range = `${base}..${head}`;
|
|
327
|
-
const { stdout } = await execa('git', ['diff', '--stat', range]);
|
|
328
|
-
return stdout.trim();
|
|
329
|
-
}
|
|
330
|
-
catch {
|
|
331
|
-
return '';
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
async function refExists(ref) {
|
|
335
|
-
try {
|
|
336
|
-
await execa('git', ['show-ref', '--verify', '--quiet', ref]);
|
|
337
|
-
return true;
|
|
338
|
-
}
|
|
339
|
-
catch {
|
|
340
|
-
return false;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
export async function getDefaultBaseBranch() {
|
|
344
|
-
try {
|
|
345
|
-
const { stdout } = await execa('git', ['symbolic-ref', '--quiet', 'refs/remotes/origin/HEAD']);
|
|
346
|
-
const ref = stdout.trim();
|
|
347
|
-
if (ref.startsWith('refs/remotes/origin/')) {
|
|
348
|
-
return ref.replace('refs/remotes/origin/', 'origin/');
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
catch {
|
|
352
|
-
// ignore
|
|
353
|
-
}
|
|
354
|
-
const candidates = ['main', 'master'];
|
|
355
|
-
for (const name of candidates) {
|
|
356
|
-
if (await refExists(`refs/heads/${name}`))
|
|
357
|
-
return name;
|
|
358
|
-
if (await refExists(`refs/remotes/origin/${name}`))
|
|
359
|
-
return `origin/${name}`;
|
|
360
|
-
}
|
|
361
|
-
return null;
|
|
362
|
-
}
|
|
363
|
-
export async function getLastTag() {
|
|
364
|
-
try {
|
|
365
|
-
const { stdout } = await execa('git', ['describe', '--tags', '--abbrev=0']);
|
|
366
|
-
return stdout.trim() || null;
|
|
367
|
-
}
|
|
368
|
-
catch {
|
|
369
|
-
return null;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
export async function isValidBranchName(name) {
|
|
373
|
-
try {
|
|
374
|
-
await execa('git', ['check-ref-format', '--branch', name]);
|
|
375
|
-
return true;
|
|
376
|
-
}
|
|
377
|
-
catch {
|
|
378
|
-
return false;
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
export async function branchExists(name) {
|
|
382
|
-
try {
|
|
383
|
-
await execa('git', ['show-ref', '--verify', '--quiet', `refs/heads/${name}`]);
|
|
384
|
-
return true;
|
|
385
|
-
}
|
|
386
|
-
catch {
|
|
387
|
-
return false;
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
export async function checkoutBranch(name) {
|
|
391
|
-
await execa('git', ['checkout', name]);
|
|
392
|
-
}
|
|
393
|
-
export async function createBranch(name) {
|
|
394
|
-
await execa('git', ['checkout', '-b', name]);
|
|
395
|
-
}
|
|
396
|
-
export async function searchCode(pattern) {
|
|
397
|
-
try {
|
|
398
|
-
// Use git grep to search in tracked files (it's faster and respects .gitignore)
|
|
399
|
-
const { stdout } = await execa('git', ['grep', '-n', '-e', pattern]);
|
|
400
|
-
if (!stdout)
|
|
401
|
-
return 'No matches found.';
|
|
402
|
-
const lines = stdout.split('\n').filter(Boolean);
|
|
403
|
-
let output = lines.join('\n');
|
|
404
|
-
if (lines.length > MAX_SEARCH_RESULTS) {
|
|
405
|
-
output =
|
|
406
|
-
lines.slice(0, MAX_SEARCH_RESULTS).join('\n') +
|
|
407
|
-
`\n...[${lines.length - MAX_SEARCH_RESULTS} more matches]`;
|
|
408
|
-
}
|
|
409
|
-
if (output.length > MAX_SEARCH_OUTPUT_CHARS) {
|
|
410
|
-
output = output.slice(0, MAX_SEARCH_OUTPUT_CHARS) + '\n...[Search output truncated]';
|
|
411
|
-
}
|
|
412
|
-
return output;
|
|
413
|
-
}
|
|
414
|
-
catch {
|
|
415
|
-
return 'No matches found.';
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
export async function getUnstagedFiles() {
|
|
419
|
-
const entries = await getUnstagedFileEntries();
|
|
420
|
-
return entries.map((entry) => entry.path);
|
|
421
|
-
}
|
|
422
|
-
export async function addFiles(files) {
|
|
423
|
-
if (files.length === 0)
|
|
424
|
-
return;
|
|
425
|
-
await execa('git', ['add', ...files]);
|
|
426
|
-
}
|
|
427
|
-
export async function getUnstagedFileEntries() {
|
|
428
|
-
try {
|
|
429
|
-
const { stdout } = await execa('git', ['status', '--porcelain', '-z']);
|
|
430
|
-
if (!stdout)
|
|
431
|
-
return [];
|
|
432
|
-
const parts = stdout.split('\0').filter(Boolean);
|
|
433
|
-
const entries = [];
|
|
434
|
-
for (let i = 0; i < parts.length; i++) {
|
|
435
|
-
const item = parts[i];
|
|
436
|
-
if (item.length < 3)
|
|
437
|
-
continue;
|
|
438
|
-
const status = item.slice(0, 2);
|
|
439
|
-
let path = item.slice(3);
|
|
440
|
-
// Renames/copies include an extra path field.
|
|
441
|
-
if ((status[0] === 'R' || status[0] === 'C') && parts[i + 1]) {
|
|
442
|
-
path = parts[i + 1];
|
|
443
|
-
i += 1;
|
|
444
|
-
}
|
|
445
|
-
// Unstaged changes: worktree status not blank, or untracked.
|
|
446
|
-
if (status === '??' || status[1] !== ' ') {
|
|
447
|
-
entries.push({ path, status });
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
return entries;
|
|
451
|
-
}
|
|
452
|
-
catch {
|
|
453
|
-
return [];
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
//# sourceMappingURL=git.js.map
|
package/dist/utils/git.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/update.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/utils/update.ts"],"names":[],"mappings":"AAoDA,wBAAsB,WAAW,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDlF"}
|
package/dist/utils/update.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import https from 'node:https';
|
|
2
|
-
import { createRequire } from 'node:module';
|
|
3
|
-
import chalk from 'chalk';
|
|
4
|
-
import Conf from 'conf';
|
|
5
|
-
const require = createRequire(import.meta.url);
|
|
6
|
-
const packageJson = require('../../package.json');
|
|
7
|
-
const REGISTRY_URL = 'https://registry.npmjs.org/@dongowu/git-ai-cli/latest';
|
|
8
|
-
const DEFAULT_CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24h
|
|
9
|
-
const updateCache = new Conf({
|
|
10
|
-
projectName: 'git-ai-cli',
|
|
11
|
-
configName: 'update',
|
|
12
|
-
});
|
|
13
|
-
function parseBooleanEnv(value) {
|
|
14
|
-
if (!value)
|
|
15
|
-
return undefined;
|
|
16
|
-
const normalized = value.trim().toLowerCase();
|
|
17
|
-
if (['1', 'true', 'yes', 'y', 'on'].includes(normalized))
|
|
18
|
-
return true;
|
|
19
|
-
if (['0', 'false', 'no', 'n', 'off'].includes(normalized))
|
|
20
|
-
return false;
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
function getCheckIntervalMs() {
|
|
24
|
-
const rawHours = process.env.GIT_AI_UPDATE_INTERVAL_HOURS;
|
|
25
|
-
const parsed = rawHours ? Number.parseInt(rawHours, 10) : Number.NaN;
|
|
26
|
-
if (Number.isFinite(parsed) && parsed > 0) {
|
|
27
|
-
return parsed * 60 * 60 * 1000;
|
|
28
|
-
}
|
|
29
|
-
return DEFAULT_CHECK_INTERVAL_MS;
|
|
30
|
-
}
|
|
31
|
-
function shouldSkipUpdateCheck() {
|
|
32
|
-
const disabled = parseBooleanEnv(process.env.GIT_AI_DISABLE_UPDATE) ??
|
|
33
|
-
parseBooleanEnv(process.env.GIT_AI_NO_UPDATE);
|
|
34
|
-
if (disabled)
|
|
35
|
-
return true;
|
|
36
|
-
if (process.env.CI)
|
|
37
|
-
return true;
|
|
38
|
-
// Avoid noisy output in non-interactive contexts (hooks, pipes, CI).
|
|
39
|
-
if (!process.stdout.isTTY)
|
|
40
|
-
return true;
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
export async function checkUpdate(options = {}) {
|
|
44
|
-
if (options.allow === false)
|
|
45
|
-
return;
|
|
46
|
-
if (shouldSkipUpdateCheck())
|
|
47
|
-
return;
|
|
48
|
-
const now = Date.now();
|
|
49
|
-
const intervalMs = getCheckIntervalMs();
|
|
50
|
-
const lastChecked = updateCache.get('lastChecked');
|
|
51
|
-
if (lastChecked && now - lastChecked < intervalMs)
|
|
52
|
-
return;
|
|
53
|
-
// Mark as checked before the network call to avoid repeated attempts on failure.
|
|
54
|
-
updateCache.set('lastChecked', now);
|
|
55
|
-
return new Promise((resolve) => {
|
|
56
|
-
const req = https.get(REGISTRY_URL, { timeout: 1000 }, (res) => {
|
|
57
|
-
if (res.statusCode !== 200) {
|
|
58
|
-
resolve();
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
let data = '';
|
|
62
|
-
res.on('data', (chunk) => (data += chunk));
|
|
63
|
-
res.on('end', () => {
|
|
64
|
-
try {
|
|
65
|
-
const { version: latest } = JSON.parse(data);
|
|
66
|
-
const current = packageJson.version;
|
|
67
|
-
if (latest && current && latest !== current) {
|
|
68
|
-
// Simple semantic version check (naive but works for distinct releases)
|
|
69
|
-
if (isNewer(latest, current)) {
|
|
70
|
-
const lastNotified = updateCache.get('lastNotifiedVersion');
|
|
71
|
-
if (lastNotified !== latest) {
|
|
72
|
-
printUpdateMessage(current, latest);
|
|
73
|
-
updateCache.set('lastNotifiedVersion', latest);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
// Ignore parsing errors
|
|
80
|
-
}
|
|
81
|
-
resolve();
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
req.on('error', () => resolve());
|
|
85
|
-
req.on('timeout', () => {
|
|
86
|
-
req.destroy();
|
|
87
|
-
resolve();
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
function isNewer(latest, current) {
|
|
92
|
-
const l = latest.split('.').map(Number);
|
|
93
|
-
const c = current.split('.').map(Number);
|
|
94
|
-
for (let i = 0; i < 3; i++) {
|
|
95
|
-
if (l[i] > c[i])
|
|
96
|
-
return true;
|
|
97
|
-
if (l[i] < c[i])
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
function printUpdateMessage(current, latest) {
|
|
103
|
-
const boxWidth = 50;
|
|
104
|
-
const msg = `Update available ${chalk.gray(current)} → ${chalk.green(latest)}`;
|
|
105
|
-
const cmd = `npm install -g @dongowu/git-ai-cli`;
|
|
106
|
-
console.log('\n' + chalk.yellow('┌' + '─'.repeat(boxWidth) + '┐'));
|
|
107
|
-
console.log(chalk.yellow('│') + center(' ', boxWidth) + chalk.yellow('│'));
|
|
108
|
-
console.log(chalk.yellow('│') + center(msg, boxWidth) + chalk.yellow('│'));
|
|
109
|
-
console.log(chalk.yellow('│') + center('Run ' + chalk.cyan(cmd) + ' to update', boxWidth) + chalk.yellow('│'));
|
|
110
|
-
console.log(chalk.yellow('│') + center(' ', boxWidth) + chalk.yellow('│'));
|
|
111
|
-
console.log(chalk.yellow('└' + '─'.repeat(boxWidth) + '┘') + '\n');
|
|
112
|
-
}
|
|
113
|
-
function center(str, width) {
|
|
114
|
-
// Strip ansi codes for length calculation
|
|
115
|
-
// eslint-disable-next-line no-control-regex
|
|
116
|
-
const visibleLen = str.replace(new RegExp('\\x1b\\[\\d+m', 'g'), '').length;
|
|
117
|
-
const padding = Math.max(0, width - visibleLen);
|
|
118
|
-
const left = Math.floor(padding / 2);
|
|
119
|
-
const right = padding - left;
|
|
120
|
-
return ' '.repeat(left) + str + ' '.repeat(right);
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=update.js.map
|
package/dist/utils/update.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/utils/update.ts"],"names":[],"mappings":"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"}
|
package/release_notes.md
DELETED
package/scripts/release.sh
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# release.sh - 自动发布脚本
|
|
3
|
-
|
|
4
|
-
set -e
|
|
5
|
-
|
|
6
|
-
# 颜色
|
|
7
|
-
GREEN='\033[0;32m'
|
|
8
|
-
YELLOW='\033[1;33m'
|
|
9
|
-
NC='\033[0m'
|
|
10
|
-
|
|
11
|
-
# 获取版本类型
|
|
12
|
-
VERSION_TYPE=${1:-patch}
|
|
13
|
-
|
|
14
|
-
echo -e "${GREEN}🚀 Starting release...${NC}"
|
|
15
|
-
|
|
16
|
-
# 1. 构建
|
|
17
|
-
echo -e "${YELLOW}📦 Building...${NC}"
|
|
18
|
-
npm run build
|
|
19
|
-
|
|
20
|
-
# 2. 更新版本
|
|
21
|
-
echo -e "${YELLOW}📝 Bumping ${VERSION_TYPE} version...${NC}"
|
|
22
|
-
npm version $VERSION_TYPE
|
|
23
|
-
|
|
24
|
-
# 3. 推送到 GitHub
|
|
25
|
-
echo -e "${YELLOW}📤 Pushing to GitHub...${NC}"
|
|
26
|
-
git push
|
|
27
|
-
git push --tags
|
|
28
|
-
|
|
29
|
-
# 4. 发布到 npm
|
|
30
|
-
echo -e "${YELLOW}📦 Publishing to npm...${NC}"
|
|
31
|
-
read -p "Enter OTP code: " OTP
|
|
32
|
-
npm publish --access=public --otp=$OTP
|
|
33
|
-
|
|
34
|
-
echo -e "${GREEN}✅ Release complete!${NC}"
|
package/test_agent_feature.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
console.log('test agent');
|