@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.
Files changed (82) hide show
  1. package/README.md +200 -157
  2. package/bin/git-ai.cjs +57 -0
  3. package/install.cjs +50 -0
  4. package/package.json +27 -28
  5. package/.claude/settings.local.json +0 -17
  6. package/CHANGELOG.md +0 -46
  7. package/README_EN.md +0 -264
  8. package/dist/cli.d.ts +0 -3
  9. package/dist/cli.d.ts.map +0 -1
  10. package/dist/cli.js +0 -17
  11. package/dist/cli.js.map +0 -1
  12. package/dist/cli_main.d.ts +0 -2
  13. package/dist/cli_main.d.ts.map +0 -1
  14. package/dist/cli_main.js +0 -255
  15. package/dist/cli_main.js.map +0 -1
  16. package/dist/commands/branch.d.ts +0 -11
  17. package/dist/commands/branch.d.ts.map +0 -1
  18. package/dist/commands/branch.js +0 -279
  19. package/dist/commands/branch.js.map +0 -1
  20. package/dist/commands/commit.d.ts +0 -9
  21. package/dist/commands/commit.d.ts.map +0 -1
  22. package/dist/commands/commit.js +0 -326
  23. package/dist/commands/commit.js.map +0 -1
  24. package/dist/commands/config.d.ts +0 -2
  25. package/dist/commands/config.d.ts.map +0 -1
  26. package/dist/commands/config.js +0 -164
  27. package/dist/commands/config.js.map +0 -1
  28. package/dist/commands/config_manage.d.ts +0 -14
  29. package/dist/commands/config_manage.d.ts.map +0 -1
  30. package/dist/commands/config_manage.js +0 -394
  31. package/dist/commands/config_manage.js.map +0 -1
  32. package/dist/commands/hook.d.ts +0 -5
  33. package/dist/commands/hook.d.ts.map +0 -1
  34. package/dist/commands/hook.js +0 -528
  35. package/dist/commands/hook.js.map +0 -1
  36. package/dist/commands/msg.d.ts +0 -20
  37. package/dist/commands/msg.d.ts.map +0 -1
  38. package/dist/commands/msg.js +0 -148
  39. package/dist/commands/msg.js.map +0 -1
  40. package/dist/commands/pr.d.ts +0 -8
  41. package/dist/commands/pr.d.ts.map +0 -1
  42. package/dist/commands/pr.js +0 -96
  43. package/dist/commands/pr.js.map +0 -1
  44. package/dist/commands/release.d.ts +0 -8
  45. package/dist/commands/release.d.ts.map +0 -1
  46. package/dist/commands/release.js +0 -95
  47. package/dist/commands/release.js.map +0 -1
  48. package/dist/commands/report.d.ts +0 -9
  49. package/dist/commands/report.d.ts.map +0 -1
  50. package/dist/commands/report.js +0 -162
  51. package/dist/commands/report.js.map +0 -1
  52. package/dist/types.d.ts +0 -46
  53. package/dist/types.d.ts.map +0 -1
  54. package/dist/types.js +0 -86
  55. package/dist/types.js.map +0 -1
  56. package/dist/utils/agent.d.ts +0 -5
  57. package/dist/utils/agent.d.ts.map +0 -1
  58. package/dist/utils/agent.js +0 -308
  59. package/dist/utils/agent.js.map +0 -1
  60. package/dist/utils/agent_lite.d.ts +0 -5
  61. package/dist/utils/agent_lite.d.ts.map +0 -1
  62. package/dist/utils/agent_lite.js +0 -263
  63. package/dist/utils/agent_lite.js.map +0 -1
  64. package/dist/utils/ai.d.ts +0 -43
  65. package/dist/utils/ai.d.ts.map +0 -1
  66. package/dist/utils/ai.js +0 -1103
  67. package/dist/utils/ai.js.map +0 -1
  68. package/dist/utils/config.d.ts +0 -11
  69. package/dist/utils/config.d.ts.map +0 -1
  70. package/dist/utils/config.js +0 -239
  71. package/dist/utils/config.js.map +0 -1
  72. package/dist/utils/git.d.ts +0 -42
  73. package/dist/utils/git.d.ts.map +0 -1
  74. package/dist/utils/git.js +0 -456
  75. package/dist/utils/git.js.map +0 -1
  76. package/dist/utils/update.d.ts +0 -4
  77. package/dist/utils/update.d.ts.map +0 -1
  78. package/dist/utils/update.js +0 -122
  79. package/dist/utils/update.js.map +0 -1
  80. package/release_notes.md +0 -9
  81. package/scripts/release.sh +0 -34
  82. package/test_agent_feature.ts +0 -1
@@ -1,164 +0,0 @@
1
- import inquirer from 'inquirer';
2
- import chalk from 'chalk';
3
- import { setConfig, getConfigPath } from '../utils/config.js';
4
- import { PROVIDER_PRESETS } from '../types.js';
5
- export async function runConfig() {
6
- console.log(chalk.cyan('\nšŸ”§ Git AI Configuration\n'));
7
- const providerChoices = Object.entries(PROVIDER_PRESETS).map(([key, preset]) => ({
8
- name: preset.name,
9
- value: key,
10
- }));
11
- const { provider } = await inquirer.prompt([
12
- {
13
- type: 'list',
14
- name: 'provider',
15
- message: 'Select your AI provider:',
16
- choices: providerChoices,
17
- },
18
- ]);
19
- const preset = PROVIDER_PRESETS[provider];
20
- let baseUrl = preset.baseUrl;
21
- let apiKey = '';
22
- if (provider === 'custom') {
23
- const customAnswers = await inquirer.prompt([
24
- {
25
- type: 'input',
26
- name: 'baseUrl',
27
- message: 'Enter the API base URL:',
28
- validate: (input) => input.trim() ? true : 'Base URL is required',
29
- },
30
- ]);
31
- baseUrl = customAnswers.baseUrl;
32
- }
33
- if (preset.requiresKey) {
34
- const keyAnswer = await inquirer.prompt([
35
- {
36
- type: 'password',
37
- name: 'apiKey',
38
- message: 'Enter your API Key:',
39
- mask: '*',
40
- validate: (input) => input.trim() ? true : 'API Key is required',
41
- },
42
- ]);
43
- apiKey = keyAnswer.apiKey;
44
- }
45
- let model;
46
- let modelChoices = [];
47
- // Auto-detect Ollama models
48
- if (provider === 'ollama') {
49
- try {
50
- // Remove /v1 if present to access the tags endpoint
51
- const base = baseUrl.replace(/\/v1\/?$/, '');
52
- const response = await fetch(`${base}/api/tags`);
53
- if (response.ok) {
54
- const data = (await response.json());
55
- if (data.models && Array.isArray(data.models)) {
56
- modelChoices = data.models.map((m) => m.name);
57
- }
58
- }
59
- }
60
- catch {
61
- // Fallback to manual input if connection fails
62
- }
63
- }
64
- if (modelChoices.length > 0) {
65
- const answer = await inquirer.prompt([
66
- {
67
- type: 'list',
68
- name: 'model',
69
- message: 'Select a local model:',
70
- choices: modelChoices,
71
- },
72
- ]);
73
- model = answer.model;
74
- }
75
- else {
76
- const answer = await inquirer.prompt([
77
- {
78
- type: 'input',
79
- name: 'model',
80
- message: 'Enter the model name:',
81
- default: preset.defaultModel,
82
- },
83
- ]);
84
- model = answer.model;
85
- }
86
- // Optional: separate model for Agent mode (tool calling)
87
- const modelLower = model.trim().toLowerCase();
88
- const suggestToolModel = provider === 'deepseek' && modelLower.includes('reasoner');
89
- const { useAgentModel } = await inquirer.prompt([
90
- {
91
- type: 'confirm',
92
- name: 'useAgentModel',
93
- message: suggestToolModel
94
- ? 'Agent mode needs tool calling. Use a tool-capable model for Agent mode?'
95
- : 'Use a separate model for Agent mode (tool calling)?',
96
- default: suggestToolModel,
97
- },
98
- ]);
99
- let agentModel = '';
100
- if (useAgentModel) {
101
- const agentAnswer = await inquirer.prompt([
102
- {
103
- type: 'input',
104
- name: 'agentModel',
105
- message: 'Enter the Agent mode model name:',
106
- default: suggestToolModel ? 'deepseek-chat' : model,
107
- },
108
- ]);
109
- agentModel = agentAnswer.agentModel.trim();
110
- }
111
- const { locale } = await inquirer.prompt([
112
- {
113
- type: 'list',
114
- name: 'locale',
115
- message: 'Select output language for commit messages:',
116
- choices: [
117
- { name: 'English', value: 'en' },
118
- { name: 'äø­ę–‡', value: 'zh' },
119
- ],
120
- },
121
- ]);
122
- const { configurePrompt } = await inquirer.prompt([
123
- {
124
- type: 'confirm',
125
- name: 'configurePrompt',
126
- message: 'Would you like to configure a custom system prompt?',
127
- default: false,
128
- },
129
- ]);
130
- let customPrompt;
131
- if (configurePrompt) {
132
- const promptAnswer = await inquirer.prompt([
133
- {
134
- type: 'editor',
135
- name: 'customPrompt',
136
- message: 'Enter your custom system prompt:',
137
- },
138
- ]);
139
- customPrompt = promptAnswer.customPrompt.trim() || undefined;
140
- }
141
- const { enableFooter } = await inquirer.prompt([
142
- {
143
- type: 'confirm',
144
- name: 'enableFooter',
145
- message: 'Enable "Generated by git-ai" footer?',
146
- default: true,
147
- },
148
- ]);
149
- const config = {
150
- provider,
151
- apiKey,
152
- baseUrl,
153
- model,
154
- agentModel,
155
- locale,
156
- customPrompt,
157
- enableFooter,
158
- };
159
- setConfig(config);
160
- console.log(chalk.green('\nāœ… Configuration saved successfully!'));
161
- console.log(chalk.gray(` Config file: ${getConfigPath()}`));
162
- console.log(chalk.cyan('\nšŸ’” You can now use `git-ai` to generate commit messages.\n'));
163
- }
164
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export interface ConfigGetOptions {
2
- json?: boolean;
3
- local?: boolean;
4
- }
5
- export interface ConfigSetOptions {
6
- local?: boolean;
7
- json?: boolean;
8
- }
9
- export declare function runConfigDescribe(options?: {
10
- json?: boolean;
11
- }): void;
12
- export declare function runConfigGet(options?: ConfigGetOptions): void;
13
- export declare function runConfigSet(key: string, value: string, options?: ConfigSetOptions): void;
14
- //# sourceMappingURL=config_manage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config_manage.d.ts","sourceRoot":"","sources":["../../src/commands/config_manage.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAyKD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAmExE;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,IAAI,CA+CjE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI,CA8F7F"}
@@ -1,394 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"config_manage.js","sourceRoot":"","sources":["../../src/commands/config_manage.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export interface HookOptions {
2
- global?: boolean;
3
- }
4
- export declare function runHook(action: string, options?: HookOptions): Promise<void>;
5
- //# sourceMappingURL=hook.d.ts.map
@@ -1 +0,0 @@
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"}