@dongowu/git-ai-cli 1.0.19 → 1.0.21

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 (63) hide show
  1. package/README.md +171 -94
  2. package/README_EN.md +179 -84
  3. package/dist/cli.js +2 -135
  4. package/dist/cli.js.map +1 -1
  5. package/dist/cli_main.d.ts +2 -0
  6. package/dist/cli_main.d.ts.map +1 -0
  7. package/dist/cli_main.js +255 -0
  8. package/dist/cli_main.js.map +1 -0
  9. package/dist/commands/branch.d.ts +11 -0
  10. package/dist/commands/branch.d.ts.map +1 -0
  11. package/dist/commands/branch.js +279 -0
  12. package/dist/commands/branch.js.map +1 -0
  13. package/dist/commands/commit.d.ts.map +1 -1
  14. package/dist/commands/commit.js +52 -9
  15. package/dist/commands/commit.js.map +1 -1
  16. package/dist/commands/config_manage.d.ts +14 -0
  17. package/dist/commands/config_manage.d.ts.map +1 -0
  18. package/dist/commands/config_manage.js +394 -0
  19. package/dist/commands/config_manage.js.map +1 -0
  20. package/dist/commands/hook.d.ts.map +1 -1
  21. package/dist/commands/hook.js +124 -6
  22. package/dist/commands/hook.js.map +1 -1
  23. package/dist/commands/msg.d.ts +1 -0
  24. package/dist/commands/msg.d.ts.map +1 -1
  25. package/dist/commands/msg.js +40 -6
  26. package/dist/commands/msg.js.map +1 -1
  27. package/dist/commands/pr.d.ts +8 -0
  28. package/dist/commands/pr.d.ts.map +1 -0
  29. package/dist/commands/pr.js +96 -0
  30. package/dist/commands/pr.js.map +1 -0
  31. package/dist/commands/release.d.ts +8 -0
  32. package/dist/commands/release.d.ts.map +1 -0
  33. package/dist/commands/release.js +95 -0
  34. package/dist/commands/release.js.map +1 -0
  35. package/dist/commands/report.d.ts +7 -2
  36. package/dist/commands/report.d.ts.map +1 -1
  37. package/dist/commands/report.js +99 -15
  38. package/dist/commands/report.js.map +1 -1
  39. package/dist/types.d.ts +26 -0
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/types.js.map +1 -1
  42. package/dist/utils/agent_lite.d.ts +5 -0
  43. package/dist/utils/agent_lite.d.ts.map +1 -0
  44. package/dist/utils/agent_lite.js +263 -0
  45. package/dist/utils/agent_lite.js.map +1 -0
  46. package/dist/utils/ai.d.ts +22 -0
  47. package/dist/utils/ai.d.ts.map +1 -1
  48. package/dist/utils/ai.js +852 -37
  49. package/dist/utils/ai.js.map +1 -1
  50. package/dist/utils/config.d.ts +5 -0
  51. package/dist/utils/config.d.ts.map +1 -1
  52. package/dist/utils/config.js +157 -5
  53. package/dist/utils/config.js.map +1 -1
  54. package/dist/utils/git.d.ts +17 -0
  55. package/dist/utils/git.d.ts.map +1 -1
  56. package/dist/utils/git.js +275 -49
  57. package/dist/utils/git.js.map +1 -1
  58. package/dist/utils/update.d.ts +3 -1
  59. package/dist/utils/update.d.ts.map +1 -1
  60. package/dist/utils/update.js +53 -2
  61. package/dist/utils/update.js.map +1 -1
  62. package/package.json +1 -1
  63. package/release_notes.md +3 -2
@@ -0,0 +1,394 @@
1
+ import chalk from 'chalk';
2
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { getConfigPath, getMergedConfig, getLocalConfigError, setConfig } from '../utils/config.js';
5
+ import { validateCommitRules } from '../utils/ai.js';
6
+ function getLocalConfigPath() {
7
+ return join(process.cwd(), '.git-ai.json');
8
+ }
9
+ function safeReadLocalConfig() {
10
+ const localPath = getLocalConfigPath();
11
+ if (!existsSync(localPath))
12
+ return {};
13
+ try {
14
+ const raw = readFileSync(localPath, 'utf-8');
15
+ const parsed = JSON.parse(raw);
16
+ if (parsed && typeof parsed === 'object')
17
+ return parsed;
18
+ return {};
19
+ }
20
+ catch {
21
+ return {};
22
+ }
23
+ }
24
+ function safeWriteLocalConfig(data) {
25
+ const localPath = getLocalConfigPath();
26
+ const json = JSON.stringify(data, null, 2) + '\n';
27
+ writeFileSync(localPath, json, 'utf-8');
28
+ }
29
+ function maskSecret(secret) {
30
+ if (typeof secret !== 'string')
31
+ return '';
32
+ const s = secret.trim();
33
+ if (!s)
34
+ return '';
35
+ if (s.length <= 8)
36
+ return '********';
37
+ return `${s.slice(0, 2)}****${s.slice(-2)}`;
38
+ }
39
+ function parseValue(key, value) {
40
+ if (key === 'rules') {
41
+ const trimmed = value.trim();
42
+ let raw = trimmed;
43
+ if (trimmed.startsWith('@')) {
44
+ const filePath = trimmed.slice(1);
45
+ if (!filePath)
46
+ return value;
47
+ try {
48
+ raw = readFileSync(filePath, 'utf-8');
49
+ }
50
+ catch {
51
+ return value;
52
+ }
53
+ }
54
+ try {
55
+ const parsed = JSON.parse(raw);
56
+ const { errors } = validateCommitRules(parsed);
57
+ if (errors.length)
58
+ return value;
59
+ return parsed;
60
+ }
61
+ catch {
62
+ return value;
63
+ }
64
+ }
65
+ if (key === 'policy') {
66
+ const trimmed = value.trim();
67
+ let raw = trimmed;
68
+ if (trimmed.startsWith('@')) {
69
+ const filePath = trimmed.slice(1);
70
+ if (!filePath)
71
+ return value;
72
+ try {
73
+ raw = readFileSync(filePath, 'utf-8');
74
+ }
75
+ catch {
76
+ return value;
77
+ }
78
+ }
79
+ try {
80
+ const parsed = JSON.parse(raw);
81
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
82
+ return value;
83
+ if ('strict' in parsed && typeof parsed.strict !== 'boolean')
84
+ return value;
85
+ return parsed;
86
+ }
87
+ catch {
88
+ return value;
89
+ }
90
+ }
91
+ if (key === 'fallbackModels') {
92
+ const trimmed = value.trim();
93
+ let raw = trimmed;
94
+ if (trimmed.startsWith('@')) {
95
+ const filePath = trimmed.slice(1);
96
+ if (!filePath)
97
+ return value;
98
+ try {
99
+ raw = readFileSync(filePath, 'utf-8');
100
+ }
101
+ catch {
102
+ return value;
103
+ }
104
+ }
105
+ if (raw.startsWith('[')) {
106
+ try {
107
+ const parsed = JSON.parse(raw);
108
+ if (Array.isArray(parsed)) {
109
+ return parsed.filter((m) => typeof m === 'string' && m.trim()).map((m) => m.trim());
110
+ }
111
+ }
112
+ catch {
113
+ return value;
114
+ }
115
+ }
116
+ return raw
117
+ .split(',')
118
+ .map((m) => m.trim())
119
+ .filter(Boolean);
120
+ }
121
+ if (key === 'branch') {
122
+ const trimmed = value.trim();
123
+ let raw = trimmed;
124
+ if (trimmed.startsWith('@')) {
125
+ const filePath = trimmed.slice(1);
126
+ if (!filePath)
127
+ return value;
128
+ try {
129
+ raw = readFileSync(filePath, 'utf-8');
130
+ }
131
+ catch {
132
+ return value;
133
+ }
134
+ }
135
+ try {
136
+ const parsed = JSON.parse(raw);
137
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
138
+ return value;
139
+ if ('types' in parsed &&
140
+ (!Array.isArray(parsed.types) ||
141
+ parsed.types.some((t) => typeof t !== 'string' || !t.trim()))) {
142
+ return value;
143
+ }
144
+ if ('pattern' in parsed && typeof parsed.pattern !== 'string')
145
+ return value;
146
+ if ('issueSeparator' in parsed && typeof parsed.issueSeparator !== 'string')
147
+ return value;
148
+ if ('nameMaxLength' in parsed) {
149
+ if (typeof parsed.nameMaxLength !== 'number' || !Number.isFinite(parsed.nameMaxLength))
150
+ return value;
151
+ }
152
+ return parsed;
153
+ }
154
+ catch {
155
+ return value;
156
+ }
157
+ }
158
+ if (key === 'enableFooter') {
159
+ const normalized = value.trim().toLowerCase();
160
+ if (['1', 'true', 'yes', 'y', 'on'].includes(normalized))
161
+ return true;
162
+ if (['0', 'false', 'no', 'n', 'off'].includes(normalized))
163
+ return false;
164
+ return value;
165
+ }
166
+ return value;
167
+ }
168
+ function isValidKey(key) {
169
+ return (key === 'provider' ||
170
+ key === 'apiKey' ||
171
+ key === 'baseUrl' ||
172
+ key === 'model' ||
173
+ key === 'agentModel' ||
174
+ key === 'locale' ||
175
+ key === 'customPrompt' ||
176
+ key === 'enableFooter' ||
177
+ key === 'outputFormat' ||
178
+ key === 'rules' ||
179
+ key === 'rulesPreset' ||
180
+ key === 'fallbackModels' ||
181
+ key === 'policy' ||
182
+ key === 'branch');
183
+ }
184
+ function redactConfigForDisplay(cfg) {
185
+ const out = { ...cfg };
186
+ if ('apiKey' in out)
187
+ out.apiKey = maskSecret(out.apiKey);
188
+ return out;
189
+ }
190
+ export function runConfigDescribe(options = {}) {
191
+ const payload = {
192
+ configPath: getConfigPath(),
193
+ localConfigPath: getLocalConfigPath(),
194
+ keys: [
195
+ 'provider',
196
+ 'apiKey',
197
+ 'baseUrl',
198
+ 'model',
199
+ 'agentModel',
200
+ 'locale',
201
+ 'customPrompt',
202
+ 'enableFooter',
203
+ 'outputFormat',
204
+ 'rules',
205
+ 'rulesPreset',
206
+ 'fallbackModels',
207
+ 'policy',
208
+ 'branch',
209
+ ],
210
+ env: {
211
+ provider: ['GIT_AI_PROVIDER', 'OCO_AI_PROVIDER'],
212
+ apiKey: ['GIT_AI_API_KEY', 'OCO_API_KEY', 'OPENAI_API_KEY', 'DEEPSEEK_API_KEY'],
213
+ baseUrl: ['GIT_AI_BASE_URL'],
214
+ model: ['GIT_AI_MODEL', 'OCO_MODEL'],
215
+ agentModel: ['GIT_AI_AGENT_MODEL'],
216
+ locale: ['GIT_AI_LOCALE'],
217
+ enableFooter: ['GIT_AI_ENABLE_FOOTER'],
218
+ customPrompt: ['GIT_AI_CUSTOM_PROMPT'],
219
+ outputFormat: ['GIT_AI_OUTPUT_FORMAT'],
220
+ rulesPreset: ['GIT_AI_RULES_PRESET'],
221
+ fallbackModels: ['GIT_AI_FALLBACK_MODELS'],
222
+ policy: ['GIT_AI_POLICY_STRICT'],
223
+ issue: ['GIT_AI_ISSUE_PATTERN', 'GIT_AI_ISSUE_PLACEMENT', 'GIT_AI_REQUIRE_ISSUE'],
224
+ branch: [
225
+ 'GIT_AI_BRANCH_PATTERN',
226
+ 'GIT_AI_BRANCH_TYPES',
227
+ 'GIT_AI_BRANCH_ISSUE_SEPARATOR',
228
+ 'GIT_AI_BRANCH_NAME_MAXLEN',
229
+ ],
230
+ maxDiffChars: ['GIT_AI_MAX_DIFF_CHARS', 'OCO_TOKENS_MAX_INPUT (approx)'],
231
+ maxOutputTokens: ['GIT_AI_MAX_OUTPUT_TOKENS', 'OCO_TOKENS_MAX_OUTPUT'],
232
+ timeoutMs: ['GIT_AI_TIMEOUT_MS'],
233
+ debug: ['GIT_AI_DEBUG'],
234
+ autoAgent: ['GIT_AI_AUTO_AGENT', 'GIT_AI_DISABLE_AGENT', 'GIT_AI_AGENT_STRATEGY'],
235
+ recentCommits: ['GIT_AI_RECENT_COMMITS_ALL', 'GIT_AI_RECENT_COMMITS_FALLBACK'],
236
+ updateCheck: ['GIT_AI_DISABLE_UPDATE', 'GIT_AI_NO_UPDATE', 'GIT_AI_UPDATE_INTERVAL_HOURS'],
237
+ msgDelimiter: ['GIT_AI_MSG_DELIM'],
238
+ hook: ['GIT_AI_HOOK_STRICT', 'GIT_AI_HOOK_FALLBACK', 'GIT_AI_DISABLED'],
239
+ },
240
+ };
241
+ if (options.json) {
242
+ console.log(JSON.stringify(payload, null, 2));
243
+ return;
244
+ }
245
+ console.log(chalk.cyan('\n🛠️ git-ai configuration (describe)\n'));
246
+ console.log(chalk.gray(`Global config path: ${payload.configPath}`));
247
+ console.log(chalk.gray(`Local config path : ${payload.localConfigPath}`));
248
+ console.log(chalk.cyan('\nKeys:'));
249
+ payload.keys.forEach((k) => console.log(chalk.gray(` - ${k}`)));
250
+ console.log(chalk.cyan('\nEnvironment overrides:'));
251
+ Object.entries(payload.env).forEach(([k, vars]) => {
252
+ console.log(chalk.gray(` - ${k}: ${vars.join(', ')}`));
253
+ });
254
+ console.log('');
255
+ }
256
+ export function runConfigGet(options = {}) {
257
+ const effective = getMergedConfig();
258
+ const local = safeReadLocalConfig();
259
+ const localError = getLocalConfigError();
260
+ const payload = {
261
+ configPath: getConfigPath(),
262
+ localConfigPath: getLocalConfigPath(),
263
+ effective: redactConfigForDisplay(effective),
264
+ local: options.local ? local : undefined,
265
+ localError: localError ? { path: localError.path, error: localError.error } : undefined,
266
+ };
267
+ if (options.json) {
268
+ console.log(JSON.stringify(payload, null, 2));
269
+ return;
270
+ }
271
+ console.log(chalk.cyan('\n🔧 git-ai configuration\n'));
272
+ console.log(chalk.gray(`Global config path: ${payload.configPath}`));
273
+ console.log(chalk.gray(`Local config path : ${payload.localConfigPath}`));
274
+ if (payload.localError) {
275
+ console.log(chalk.yellow(`⚠️ Failed to parse ${payload.localError.path}: ${payload.localError.error}`));
276
+ }
277
+ console.log(chalk.cyan('\nEffective config:'));
278
+ Object.entries(payload.effective).forEach(([k, v]) => {
279
+ if (v === undefined || v === '')
280
+ return;
281
+ const rendered = v && typeof v === 'object' ? JSON.stringify(v, null, 2).replace(/\n/g, '\n ') : String(v);
282
+ console.log(chalk.gray(` ${k}: ${rendered}`));
283
+ });
284
+ if (options.local) {
285
+ console.log(chalk.cyan('\nLocal .git-ai.json:'));
286
+ if (Object.keys(local).length === 0) {
287
+ console.log(chalk.gray(' (not set)'));
288
+ }
289
+ else {
290
+ Object.entries(local).forEach(([k, v]) => {
291
+ const rendered = v && typeof v === 'object' ? JSON.stringify(v, null, 2).replace(/\n/g, '\n ') : String(v);
292
+ console.log(chalk.gray(` ${k}: ${rendered}`));
293
+ });
294
+ }
295
+ }
296
+ console.log('');
297
+ }
298
+ export function runConfigSet(key, value, options = {}) {
299
+ if (!isValidKey(key)) {
300
+ const msg = `Unknown config key: ${key}`;
301
+ if (options.json) {
302
+ console.log(JSON.stringify({ success: false, error: msg }, null, 2));
303
+ }
304
+ else {
305
+ console.error(chalk.red(`✗ ${msg}`));
306
+ }
307
+ process.exit(1);
308
+ }
309
+ const parsedValue = parseValue(key, value);
310
+ if (key === 'rules') {
311
+ if (typeof parsedValue === 'string') {
312
+ const msg = 'Invalid rules JSON. Use: git-ai config set rules \'{"types":["feat","fix"]}\' or @path/to/rules.json';
313
+ if (options.json) {
314
+ console.log(JSON.stringify({ success: false, error: msg }, null, 2));
315
+ }
316
+ else {
317
+ console.error(chalk.red(`✗ ${msg}`));
318
+ }
319
+ process.exit(1);
320
+ }
321
+ const { errors, warnings } = validateCommitRules(parsedValue);
322
+ if (errors.length) {
323
+ const msg = `Invalid rules: ${errors.join('; ')}`;
324
+ if (options.json) {
325
+ console.log(JSON.stringify({ success: false, error: msg }, null, 2));
326
+ }
327
+ else {
328
+ console.error(chalk.red(`✗ ${msg}`));
329
+ }
330
+ process.exit(1);
331
+ }
332
+ if (warnings.length && !options.json) {
333
+ console.log(chalk.yellow(`⚠️ Rules warnings: ${warnings.join('; ')}`));
334
+ }
335
+ }
336
+ if (key === 'policy') {
337
+ if (typeof parsedValue === 'string') {
338
+ const msg = 'Invalid policy JSON. Use: git-ai config set policy \'{"strict":true}\'';
339
+ if (options.json) {
340
+ console.log(JSON.stringify({ success: false, error: msg }, null, 2));
341
+ }
342
+ else {
343
+ console.error(chalk.red(`✗ ${msg}`));
344
+ }
345
+ process.exit(1);
346
+ }
347
+ }
348
+ if (key === 'fallbackModels') {
349
+ if (typeof parsedValue === 'string') {
350
+ const msg = 'Invalid fallbackModels. Use: git-ai config set fallbackModels "modelA,modelB" or @path/to/list.json';
351
+ if (options.json) {
352
+ console.log(JSON.stringify({ success: false, error: msg }, null, 2));
353
+ }
354
+ else {
355
+ console.error(chalk.red(`✗ ${msg}`));
356
+ }
357
+ process.exit(1);
358
+ }
359
+ }
360
+ if (key === 'branch') {
361
+ if (typeof parsedValue === 'string') {
362
+ const msg = 'Invalid branch JSON. Use: git-ai config set branch \'{"types":["feat","fix"],"pattern":"{type}/{name}"}\'';
363
+ if (options.json) {
364
+ console.log(JSON.stringify({ success: false, error: msg }, null, 2));
365
+ }
366
+ else {
367
+ console.error(chalk.red(`✗ ${msg}`));
368
+ }
369
+ process.exit(1);
370
+ }
371
+ }
372
+ if (options.local) {
373
+ const data = safeReadLocalConfig();
374
+ data[key] = parsedValue;
375
+ safeWriteLocalConfig(data);
376
+ if (options.json) {
377
+ console.log(JSON.stringify({ success: true, scope: 'local', key, value: parsedValue }, null, 2));
378
+ }
379
+ else {
380
+ console.log(chalk.green(`✓ Set local ${key}`));
381
+ console.log(chalk.gray(` ${getLocalConfigPath()}`));
382
+ }
383
+ return;
384
+ }
385
+ setConfig({ [key]: parsedValue });
386
+ if (options.json) {
387
+ console.log(JSON.stringify({ success: true, scope: 'global', key, value: parsedValue }, null, 2));
388
+ }
389
+ else {
390
+ console.log(chalk.green(`✓ Set ${key}`));
391
+ console.log(chalk.gray(` ${getConfigPath()}`));
392
+ }
393
+ }
394
+ //# sourceMappingURL=config_manage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config_manage.js","sourceRoot":"","sources":["../../src/commands/config_manage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"AA4KA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCtF"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"AAkSA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCtF"}
@@ -40,12 +40,30 @@ if [ -s "$COMMIT_MSG_FILE" ]; then
40
40
  fi
41
41
  fi
42
42
 
43
- # Generate commit message using git-ai msg
43
+ # Generate commit message using git-ai msg (JSON to avoid spinner)
44
44
  if command -v git-ai >/dev/null 2>&1; then
45
- MSG=$(git-ai msg --quiet 2>/dev/null)
45
+ OUTPUT=$(GIT_AI_ENABLE_FOOTER="\${GIT_AI_ENABLE_FOOTER:-0}" git-ai msg --json 2>/dev/null)
46
46
  EXIT_CODE=$?
47
47
 
48
- if [ $EXIT_CODE -eq 0 ] && [ -n "$MSG" ]; then
48
+ MSG=""
49
+ ERR=""
50
+
51
+ if command -v node >/dev/null 2>&1; then
52
+ if [ $EXIT_CODE -eq 0 ]; then
53
+ MSG=$(printf '%s' "$OUTPUT" | node -e "const fs=require('fs');let input='';try{input=fs.readFileSync(0,'utf8');const data=JSON.parse(input||'{}');const msg=data.message||(Array.isArray(data.messages)?data.messages[0]:null);if(msg)process.stdout.write(msg);}catch{}")
54
+ else
55
+ ERR=$(printf '%s' "$OUTPUT" | node -e "const fs=require('fs');let input='';try{input=fs.readFileSync(0,'utf8');const data=JSON.parse(input||'{}');if(data&&data.error)process.stdout.write(String(data.error));}catch{}")
56
+ fi
57
+ fi
58
+
59
+ if [ -z "$MSG" ] && [ -z "$ERR" ]; then
60
+ MSG=$(printf '%s' "$OUTPUT" | sed -n 's/.*\"message\"[ ]*:[ ]*\"\\(.*\\)\".*/\\1/p' | head -1)
61
+ if [ -z "$MSG" ]; then
62
+ ERR=$(printf '%s' "$OUTPUT" | sed -n 's/.*\"error\"[ ]*:[ ]*\"\\(.*\\)\".*/\\1/p' | head -1)
63
+ fi
64
+ fi
65
+
66
+ if [ -n "$MSG" ]; then
49
67
  # Preserve existing comments, prepend AI message
50
68
  if [ -f "$COMMIT_MSG_FILE" ]; then
51
69
  COMMENTS=$(grep "^#" "$COMMIT_MSG_FILE" || true)
@@ -53,6 +71,47 @@ if command -v git-ai >/dev/null 2>&1; then
53
71
  else
54
72
  printf '%s\\n' "$MSG" > "$COMMIT_MSG_FILE"
55
73
  fi
74
+ elif [ -n "$ERR" ]; then
75
+ ERR=$(printf '%s' "$ERR" | tr '\\n' ' ' | sed -e 's/[[:space:]]\\+/ /g' -e 's/^ *//' -e 's/ *$//' | cut -c1-180)
76
+ if [ "$GIT_AI_HOOK_STRICT" = "1" ]; then
77
+ if [ -f "$COMMIT_MSG_FILE" ]; then
78
+ COMMENTS=$(grep "^#" "$COMMIT_MSG_FILE" || true)
79
+ printf '# git-ai: failed to generate commit message\\n# %s\\n\\n%s\\n' "$ERR" "$COMMENTS" > "$COMMIT_MSG_FILE"
80
+ else
81
+ printf '# git-ai: failed to generate commit message\\n# %s\\n' "$ERR" > "$COMMIT_MSG_FILE"
82
+ fi
83
+ exit 1
84
+ fi
85
+
86
+ FALLBACK=""
87
+ if [ "\${GIT_AI_HOOK_FALLBACK:-1}" = "1" ]; then
88
+ FILES=$(git diff --cached --name-only 2>/dev/null)
89
+ COUNT=$(printf '%s\\n' "$FILES" | grep -c .)
90
+ if [ "$COUNT" -gt 0 ]; then
91
+ if [ "$COUNT" -le 3 ]; then
92
+ SHORT=$(printf '%s\\n' "$FILES" | head -n 3 | awk 'BEGIN{ORS="";} {printf "%s%s", (NR==1?"":", "), $0} END{print ""}')
93
+ FALLBACK="chore: update \${SHORT}"
94
+ else
95
+ FALLBACK="chore: update \${COUNT} files"
96
+ fi
97
+ fi
98
+ fi
99
+
100
+ if [ -n "$FALLBACK" ]; then
101
+ if [ -f "$COMMIT_MSG_FILE" ]; then
102
+ COMMENTS=$(grep "^#" "$COMMIT_MSG_FILE" || true)
103
+ printf '%s\\n\\n%s\\n' "$FALLBACK" "$COMMENTS" > "$COMMIT_MSG_FILE"
104
+ else
105
+ printf '%s\\n' "$FALLBACK" > "$COMMIT_MSG_FILE"
106
+ fi
107
+ else
108
+ if [ -f "$COMMIT_MSG_FILE" ]; then
109
+ COMMENTS=$(grep "^#" "$COMMIT_MSG_FILE" || true)
110
+ printf '# git-ai: failed to generate commit message\\n# %s\\n\\n%s\\n' "$ERR" "$COMMENTS" > "$COMMIT_MSG_FILE"
111
+ else
112
+ printf '# git-ai: failed to generate commit message\\n# %s\\n' "$ERR" > "$COMMIT_MSG_FILE"
113
+ fi
114
+ fi
56
115
  fi
57
116
  fi
58
117
  ${HOOK_END_MARKER}
@@ -103,18 +162,77 @@ if [ -s "$COMMIT_MSG_FILE" ]; then
103
162
  fi
104
163
  fi
105
164
 
106
- # Generate commit message using git-ai msg
165
+ # Generate commit message using git-ai msg (JSON to avoid spinner)
107
166
  if command -v git-ai >/dev/null 2>&1; then
108
- MSG=$(git-ai msg --quiet 2>/dev/null)
167
+ OUTPUT=$(GIT_AI_ENABLE_FOOTER="\${GIT_AI_ENABLE_FOOTER:-0}" git-ai msg --json 2>/dev/null)
109
168
  EXIT_CODE=$?
110
169
 
111
- if [ $EXIT_CODE -eq 0 ] && [ -n "$MSG" ]; then
170
+ MSG=""
171
+ ERR=""
172
+
173
+ if command -v node >/dev/null 2>&1; then
174
+ if [ $EXIT_CODE -eq 0 ]; then
175
+ MSG=$(printf '%s' "$OUTPUT" | node -e "const fs=require('fs');let input='';try{input=fs.readFileSync(0,'utf8');const data=JSON.parse(input||'{}');const msg=data.message||(Array.isArray(data.messages)?data.messages[0]:null);if(msg)process.stdout.write(msg);}catch{}")
176
+ else
177
+ ERR=$(printf '%s' "$OUTPUT" | node -e "const fs=require('fs');let input='';try{input=fs.readFileSync(0,'utf8');const data=JSON.parse(input||'{}');if(data&&data.error)process.stdout.write(String(data.error));}catch{}")
178
+ fi
179
+ fi
180
+
181
+ if [ -z "$MSG" ] && [ -z "$ERR" ]; then
182
+ MSG=$(printf '%s' "$OUTPUT" | sed -n 's/.*\"message\"[ ]*:[ ]*\"\\(.*\\)\".*/\\1/p' | head -1)
183
+ if [ -z "$MSG" ]; then
184
+ ERR=$(printf '%s' "$OUTPUT" | sed -n 's/.*\"error\"[ ]*:[ ]*\"\\(.*\\)\".*/\\1/p' | head -1)
185
+ fi
186
+ fi
187
+
188
+ if [ -n "$MSG" ]; then
112
189
  if [ -f "$COMMIT_MSG_FILE" ]; then
113
190
  COMMENTS=$(grep "^#" "$COMMIT_MSG_FILE" || true)
114
191
  printf '%s\\n\\n%s\\n' "$MSG" "$COMMENTS" > "$COMMIT_MSG_FILE"
115
192
  else
116
193
  printf '%s\\n' "$MSG" > "$COMMIT_MSG_FILE"
117
194
  fi
195
+ elif [ -n "$ERR" ]; then
196
+ ERR=$(printf '%s' "$ERR" | tr '\\n' ' ' | sed -e 's/[[:space:]]\\+/ /g' -e 's/^ *//' -e 's/ *$//' | cut -c1-180)
197
+ if [ "$GIT_AI_HOOK_STRICT" = "1" ]; then
198
+ if [ -f "$COMMIT_MSG_FILE" ]; then
199
+ COMMENTS=$(grep "^#" "$COMMIT_MSG_FILE" || true)
200
+ printf '# git-ai: failed to generate commit message\\n# %s\\n\\n%s\\n' "$ERR" "$COMMENTS" > "$COMMIT_MSG_FILE"
201
+ else
202
+ printf '# git-ai: failed to generate commit message\\n# %s\\n' "$ERR" > "$COMMIT_MSG_FILE"
203
+ fi
204
+ exit 1
205
+ fi
206
+
207
+ FALLBACK=""
208
+ if [ "\${GIT_AI_HOOK_FALLBACK:-1}" = "1" ]; then
209
+ FILES=$(git diff --cached --name-only 2>/dev/null)
210
+ COUNT=$(printf '%s\\n' "$FILES" | grep -c .)
211
+ if [ "$COUNT" -gt 0 ]; then
212
+ if [ "$COUNT" -le 3 ]; then
213
+ SHORT=$(printf '%s\\n' "$FILES" | head -n 3 | awk 'BEGIN{ORS="";} {printf "%s%s", (NR==1?"":", "), $0} END{print ""}')
214
+ FALLBACK="chore: update \${SHORT}"
215
+ else
216
+ FALLBACK="chore: update \${COUNT} files"
217
+ fi
218
+ fi
219
+ fi
220
+
221
+ if [ -n "$FALLBACK" ]; then
222
+ if [ -f "$COMMIT_MSG_FILE" ]; then
223
+ COMMENTS=$(grep "^#" "$COMMIT_MSG_FILE" || true)
224
+ printf '%s\\n\\n%s\\n' "$FALLBACK" "$COMMENTS" > "$COMMIT_MSG_FILE"
225
+ else
226
+ printf '%s\\n' "$FALLBACK" > "$COMMIT_MSG_FILE"
227
+ fi
228
+ else
229
+ if [ -f "$COMMIT_MSG_FILE" ]; then
230
+ COMMENTS=$(grep "^#" "$COMMIT_MSG_FILE" || true)
231
+ printf '# git-ai: failed to generate commit message\\n# %s\\n\\n%s\\n' "$ERR" "$COMMENTS" > "$COMMIT_MSG_FILE"
232
+ else
233
+ printf '# git-ai: failed to generate commit message\\n# %s\\n' "$ERR" > "$COMMIT_MSG_FILE"
234
+ fi
235
+ fi
118
236
  fi
119
237
  fi
120
238
 
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export interface MsgResult {
9
9
  message?: string;
10
10
  messages?: string[];
11
11
  error?: string;
12
+ warnings?: string[];
12
13
  metadata?: {
13
14
  stagedFiles: string[];
14
15
  truncated: boolean;
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"msg.d.ts","sourceRoot":"","sources":["../../src/commands/msg.ts"],"names":[],"mappings":"AAkBA,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,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH;AAiBD,wBAAsB,MAAM,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA+IpE"}