@dongowu/git-ai-cli 1.0.21 → 2.0.1

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 +107 -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,148 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import { getConfig, getLocalConfigError } from '../utils/config.js';
4
- import { isGitInstalled, isInGitRepo, getStagedFiles, getFilteredDiff, getBranchName, getRecentCommits, } from '../utils/git.js';
5
- import { createAIClient, generateCommitMessage, validateCommitRules, } from '../utils/ai.js';
6
- function getMsgDelimiter() {
7
- const raw = (process.env.GIT_AI_MSG_DELIM || '').trim();
8
- return raw || '<<<GIT_AI_END>>>';
9
- }
10
- function exitWithError(message, options) {
11
- if (options.json) {
12
- const result = { success: false, error: message };
13
- console.log(JSON.stringify(result, null, 2));
14
- }
15
- else if (!options.quiet) {
16
- console.error(chalk.red(`❌ ${message}`));
17
- }
18
- process.exit(1);
19
- }
20
- export async function runMsg(options = {}) {
21
- const { json = false, quiet = false, num = 1, locale } = options;
22
- // Environment checks
23
- if (!(await isGitInstalled())) {
24
- exitWithError('Git is not installed.', options);
25
- }
26
- if (!(await isInGitRepo())) {
27
- exitWithError('Not in a git repository.', options);
28
- }
29
- const stagedFiles = await getStagedFiles();
30
- if (stagedFiles.length === 0) {
31
- exitWithError('No staged changes found. Use `git add <files>` first.', options);
32
- }
33
- // Check config
34
- const config = getConfig();
35
- if (!config) {
36
- const localError = getLocalConfigError();
37
- const suffix = localError
38
- ? ` Invalid local config at ${localError.path}: ${localError.error}`
39
- : ' Run `git-ai config` first.';
40
- exitWithError(`Configuration not found.${suffix}`, options);
41
- }
42
- const localConfigError = getLocalConfigError();
43
- const warnings = [];
44
- if (localConfigError) {
45
- const warning = `Failed to parse ${localConfigError.path}: ${localConfigError.error}`;
46
- warnings.push(warning);
47
- if (!json && !quiet) {
48
- console.log(chalk.yellow(`⚠️ ${warning}`));
49
- }
50
- }
51
- const rulesIssues = validateCommitRules(config.rules);
52
- if (rulesIssues.errors.length || rulesIssues.warnings.length) {
53
- const warning = `Rules config issues: ${[...rulesIssues.errors, ...rulesIssues.warnings].join('; ')}`;
54
- warnings.push(warning);
55
- if (!json && !quiet) {
56
- console.log(chalk.yellow(`⚠️ ${warning}`));
57
- }
58
- }
59
- // Override locale if provided
60
- if (locale && (locale === 'zh' || locale === 'en')) {
61
- config.locale = locale;
62
- }
63
- if (json && process.env.GIT_AI_ENABLE_FOOTER === undefined) {
64
- config.enableFooter = false;
65
- }
66
- // Get filtered diff
67
- const { diff, truncated, ignoredFiles } = await getFilteredDiff(stagedFiles);
68
- const branchName = await getBranchName();
69
- const recentCommits = await getRecentCommits(10);
70
- // Create AI client
71
- const client = createAIClient(config);
72
- const input = {
73
- diff,
74
- stagedFiles,
75
- ignoredFiles,
76
- truncated,
77
- branchName,
78
- recentCommits,
79
- quiet: options.quiet,
80
- };
81
- // Generate message(s)
82
- try {
83
- let spinner = null;
84
- if (!quiet && !json) {
85
- spinner = ora({
86
- text: num > 1 ? `Generating ${num} commit messages...` : 'Generating commit message...',
87
- color: 'cyan',
88
- }).start();
89
- }
90
- if (num > 1) {
91
- // Generate multiple messages
92
- const messages = await generateCommitMessage(client, input, config, num);
93
- const unique = [...new Set(messages)];
94
- if (spinner) {
95
- spinner.stop();
96
- }
97
- if (json) {
98
- const result = {
99
- success: true,
100
- messages: unique,
101
- warnings: warnings.length ? warnings : undefined,
102
- metadata: { stagedFiles, truncated, ignoredFiles },
103
- };
104
- console.log(JSON.stringify(result, null, 2));
105
- }
106
- else {
107
- // Plain output: use a safer delimiter for multi-line messages
108
- const delimiter = getMsgDelimiter();
109
- const hasDelimiter = unique.some((msg) => msg.includes(delimiter));
110
- if (hasDelimiter) {
111
- console.error(chalk.yellow(`⚠️ Message contains delimiter "${delimiter}". Use --json for safe parsing.`));
112
- }
113
- unique.forEach((msg, i) => {
114
- console.log(msg);
115
- if (i < unique.length - 1) {
116
- console.log(delimiter);
117
- }
118
- });
119
- }
120
- }
121
- else {
122
- // Single message
123
- const messages = await generateCommitMessage(client, input, config);
124
- const message = messages[0];
125
- if (spinner) {
126
- spinner.stop();
127
- }
128
- if (json) {
129
- const result = {
130
- success: true,
131
- message,
132
- warnings: warnings.length ? warnings : undefined,
133
- metadata: { stagedFiles, truncated, ignoredFiles },
134
- };
135
- console.log(JSON.stringify(result, null, 2));
136
- }
137
- else {
138
- // Plain output
139
- console.log(message);
140
- }
141
- }
142
- }
143
- catch (error) {
144
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
145
- exitWithError(errorMessage, options);
146
- }
147
- }
148
- //# sourceMappingURL=msg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"msg.js","sourceRoot":"","sources":["../../src/commands/msg.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- type PrOptions = {
2
- base?: string;
3
- head?: string;
4
- json?: boolean;
5
- };
6
- export declare function runPr(options?: PrOptions): Promise<void>;
7
- export {};
8
- //# sourceMappingURL=pr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAMA,KAAK,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAElE,wBAAsB,KAAK,CAAC,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA2GlE"}
@@ -1,96 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import { getConfig, getLocalConfigError } from '../utils/config.js';
4
- import { isGitInstalled, isInGitRepo, getCommitsBetween, getDiffStat, getDefaultBaseBranch } from '../utils/git.js';
5
- import { createAIClient, generatePullRequestDescription } from '../utils/ai.js';
6
- export async function runPr(options = {}) {
7
- if (!(await isGitInstalled())) {
8
- console.error(chalk.red('❌ Git is not installed.'));
9
- process.exit(1);
10
- }
11
- if (!(await isInGitRepo())) {
12
- console.error(chalk.red('❌ Not in a git repository.'));
13
- process.exit(1);
14
- }
15
- const config = getConfig();
16
- if (!config) {
17
- const localError = getLocalConfigError();
18
- const suffix = localError
19
- ? ` Invalid local config at ${localError.path}: ${localError.error}`
20
- : ' Run `git-ai config` first.';
21
- console.error(chalk.red(`❌ Configuration not found.${suffix}`));
22
- process.exit(1);
23
- }
24
- const warnings = [];
25
- const localConfigError = getLocalConfigError();
26
- if (localConfigError) {
27
- const warning = `Failed to parse ${localConfigError.path}: ${localConfigError.error}`;
28
- warnings.push(warning);
29
- if (!options.json) {
30
- console.log(chalk.yellow(`⚠️ ${warning}`));
31
- }
32
- }
33
- const base = options.base?.trim() || (await getDefaultBaseBranch());
34
- const head = options.head?.trim() || 'HEAD';
35
- if (!base) {
36
- const msg = 'Unable to determine base branch. Use --base <branch>.';
37
- if (options.json) {
38
- console.log(JSON.stringify({ success: false, error: msg, warnings }, null, 2));
39
- return;
40
- }
41
- console.error(chalk.red(`❌ ${msg}`));
42
- process.exit(1);
43
- }
44
- const spinner = !options.json
45
- ? ora({
46
- text: `Collecting commits for ${base}..${head}...`,
47
- color: 'cyan',
48
- }).start()
49
- : null;
50
- const commits = await getCommitsBetween(base, head);
51
- const diffStat = await getDiffStat(base, head);
52
- if (commits.length === 0) {
53
- if (spinner)
54
- spinner.fail('No commits found for the selected range.');
55
- const msg = 'No commits found for the selected range.';
56
- if (options.json) {
57
- console.log(JSON.stringify({ success: false, error: msg, warnings, base, head }, null, 2));
58
- return;
59
- }
60
- console.error(chalk.red(`❌ ${msg}`));
61
- return;
62
- }
63
- if (spinner)
64
- spinner.text = `Generating PR description with ${config.model}...`;
65
- try {
66
- const client = createAIClient(config);
67
- const description = await generatePullRequestDescription(client, { commits, diffStat: diffStat || undefined, base, head }, config);
68
- if (spinner)
69
- spinner.succeed('PR description generated!');
70
- if (options.json) {
71
- console.log(JSON.stringify({
72
- success: true,
73
- description,
74
- warnings: warnings.length ? warnings : undefined,
75
- base,
76
- head,
77
- commitCount: commits.length,
78
- }, null, 2));
79
- return;
80
- }
81
- console.log(chalk.gray('\n──────────────────────────────────────────────────────────'));
82
- console.log(description);
83
- console.log(chalk.gray('──────────────────────────────────────────────────────────\n'));
84
- }
85
- catch (error) {
86
- if (spinner)
87
- spinner.fail('Failed to generate PR description');
88
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
89
- if (options.json) {
90
- console.log(JSON.stringify({ success: false, error: errorMessage, warnings }, null, 2));
91
- return;
92
- }
93
- console.error(chalk.red(`❌ ${errorMessage}`));
94
- }
95
- }
96
- //# sourceMappingURL=pr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- type ReleaseOptions = {
2
- from?: string;
3
- to?: string;
4
- json?: boolean;
5
- };
6
- export declare function runRelease(options?: ReleaseOptions): Promise<void>;
7
- export {};
8
- //# sourceMappingURL=release.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"AAMA,KAAK,cAAc,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAErE,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG5E"}
@@ -1,95 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import { getConfig, getLocalConfigError } from '../utils/config.js';
4
- import { isGitInstalled, isInGitRepo, getCommitsBetween, getLastTag } from '../utils/git.js';
5
- import { createAIClient, generateReleaseNotes } from '../utils/ai.js';
6
- export async function runRelease(options = {}) {
7
- if (!(await isGitInstalled())) {
8
- console.error(chalk.red('❌ Git is not installed.'));
9
- process.exit(1);
10
- }
11
- if (!(await isInGitRepo())) {
12
- console.error(chalk.red('❌ Not in a git repository.'));
13
- process.exit(1);
14
- }
15
- const config = getConfig();
16
- if (!config) {
17
- const localError = getLocalConfigError();
18
- const suffix = localError
19
- ? ` Invalid local config at ${localError.path}: ${localError.error}`
20
- : ' Run `git-ai config` first.';
21
- console.error(chalk.red(`❌ Configuration not found.${suffix}`));
22
- process.exit(1);
23
- }
24
- const warnings = [];
25
- const localConfigError = getLocalConfigError();
26
- if (localConfigError) {
27
- const warning = `Failed to parse ${localConfigError.path}: ${localConfigError.error}`;
28
- warnings.push(warning);
29
- if (!options.json) {
30
- console.log(chalk.yellow(`⚠️ ${warning}`));
31
- }
32
- }
33
- const from = options.from?.trim() || (await getLastTag());
34
- const to = options.to?.trim() || 'HEAD';
35
- if (!from) {
36
- const msg = 'Unable to determine previous tag. Use --from <ref>.';
37
- if (options.json) {
38
- console.log(JSON.stringify({ success: false, error: msg, warnings }, null, 2));
39
- return;
40
- }
41
- console.error(chalk.red(`❌ ${msg}`));
42
- process.exit(1);
43
- }
44
- const spinner = !options.json
45
- ? ora({
46
- text: `Collecting commits for ${from}..${to}...`,
47
- color: 'cyan',
48
- }).start()
49
- : null;
50
- const commits = await getCommitsBetween(from, to);
51
- if (commits.length === 0) {
52
- if (spinner)
53
- spinner.fail('No commits found for the selected range.');
54
- const msg = 'No commits found for the selected range.';
55
- if (options.json) {
56
- console.log(JSON.stringify({ success: false, error: msg, warnings, from, to }, null, 2));
57
- return;
58
- }
59
- console.error(chalk.red(`❌ ${msg}`));
60
- return;
61
- }
62
- if (spinner)
63
- spinner.text = `Generating release notes with ${config.model}...`;
64
- try {
65
- const client = createAIClient(config);
66
- const notes = await generateReleaseNotes(client, { commits, from, to }, config);
67
- if (spinner)
68
- spinner.succeed('Release notes generated!');
69
- if (options.json) {
70
- console.log(JSON.stringify({
71
- success: true,
72
- notes,
73
- warnings: warnings.length ? warnings : undefined,
74
- from,
75
- to,
76
- commitCount: commits.length,
77
- }, null, 2));
78
- return;
79
- }
80
- console.log(chalk.gray('\n──────────────────────────────────────────────────────────'));
81
- console.log(notes);
82
- console.log(chalk.gray('──────────────────────────────────────────────────────────\n'));
83
- }
84
- catch (error) {
85
- if (spinner)
86
- spinner.fail('Failed to generate release notes');
87
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
88
- if (options.json) {
89
- console.log(JSON.stringify({ success: false, error: errorMessage, warnings }, null, 2));
90
- return;
91
- }
92
- console.error(chalk.red(`❌ ${errorMessage}`));
93
- }
94
- }
95
- //# sourceMappingURL=release.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- type ReportOptions = {
2
- days?: number;
3
- from?: string;
4
- to?: string;
5
- json?: boolean;
6
- };
7
- export declare function runReport(options?: ReportOptions): Promise<void>;
8
- export {};
9
- //# sourceMappingURL=report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"AAOA,KAAK,aAAa,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAQnF,wBAAsB,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0L1E"}
@@ -1,162 +0,0 @@
1
- import inquirer from 'inquirer';
2
- import chalk from 'chalk';
3
- import ora from 'ora';
4
- import { getConfig, getLocalConfigError } from '../utils/config.js';
5
- import { isGitInstalled, isInGitRepo, getRecentCommits, getCommitsInRange } from '../utils/git.js';
6
- import { createAIClient, generateWeeklyReport, validateCommitRules } from '../utils/ai.js';
7
- function isValidDate(value) {
8
- if (!/^\d{4}-\d{2}-\d{2}$/.test(value))
9
- return false;
10
- const t = Date.parse(`${value}T00:00:00Z`);
11
- return Number.isFinite(t);
12
- }
13
- export async function runReport(options = {}) {
14
- // Environment checks
15
- if (!(await isGitInstalled())) {
16
- console.error(chalk.red('❌ Git is not installed.'));
17
- process.exit(1);
18
- }
19
- if (!(await isInGitRepo())) {
20
- console.error(chalk.red('❌ Not in a git repository.'));
21
- process.exit(1);
22
- }
23
- const config = getConfig();
24
- if (!config) {
25
- const localError = getLocalConfigError();
26
- const suffix = localError
27
- ? ` Invalid local config at ${localError.path}: ${localError.error}`
28
- : ' Run `git-ai config` first.';
29
- console.error(chalk.red(`❌ Configuration not found.${suffix}`));
30
- process.exit(1);
31
- }
32
- const localConfigError = getLocalConfigError();
33
- const warnings = [];
34
- if (localConfigError) {
35
- const warning = `Failed to parse ${localConfigError.path}: ${localConfigError.error}`;
36
- warnings.push(warning);
37
- if (!options.json) {
38
- console.log(chalk.yellow(`⚠️ ${warning}`));
39
- }
40
- }
41
- const rulesIssues = validateCommitRules(config.rules);
42
- if (rulesIssues.errors.length || rulesIssues.warnings.length) {
43
- const warning = `Rules config issues: ${[...rulesIssues.errors, ...rulesIssues.warnings].join('; ')}`;
44
- warnings.push(warning);
45
- if (!options.json) {
46
- console.log(chalk.yellow(`⚠️ ${warning}`));
47
- }
48
- }
49
- let days = options.days;
50
- const from = options.from?.trim();
51
- const to = options.to?.trim();
52
- if (from && !isValidDate(from)) {
53
- const msg = `Invalid --from date: ${from} (expected YYYY-MM-DD)`;
54
- if (options.json) {
55
- console.log(JSON.stringify({ success: false, error: msg, warnings }, null, 2));
56
- return;
57
- }
58
- console.error(chalk.red(`❌ ${msg}`));
59
- process.exit(1);
60
- }
61
- if (to && !isValidDate(to)) {
62
- const msg = `Invalid --to date: ${to} (expected YYYY-MM-DD)`;
63
- if (options.json) {
64
- console.log(JSON.stringify({ success: false, error: msg, warnings }, null, 2));
65
- return;
66
- }
67
- console.error(chalk.red(`❌ ${msg}`));
68
- process.exit(1);
69
- }
70
- if (!from && !to && !days) {
71
- const { range } = await inquirer.prompt([
72
- {
73
- type: 'list',
74
- name: 'range',
75
- message: 'Select report time range:',
76
- choices: [
77
- { name: '📅 This Week (Last 7 days)', value: '7' },
78
- { name: '🗓️ This Month (Last 30 days)', value: '30' },
79
- { name: '⏪ Yesterday (Last 1 day)', value: '1' },
80
- { name: '🔢 Custom', value: 'custom' },
81
- ],
82
- },
83
- ]);
84
- if (range === 'custom') {
85
- const { customDays } = await inquirer.prompt([
86
- {
87
- type: 'input',
88
- name: 'customDays',
89
- message: 'Enter number of days:',
90
- validate: (input) => (!isNaN(Number(input)) ? true : 'Please enter a number'),
91
- },
92
- ]);
93
- days = Number(customDays);
94
- }
95
- else {
96
- days = Number(range);
97
- }
98
- }
99
- const rangeLabel = from || to
100
- ? `range ${from || '...'} → ${to || 'today'}`
101
- : `last ${days} days`;
102
- const spinner = !options.json
103
- ? ora({
104
- text: `Fetching git commits for the ${rangeLabel}...`,
105
- color: 'cyan',
106
- }).start()
107
- : null;
108
- const commits = from || to
109
- ? await getCommitsInRange({ since: from, until: to })
110
- : await getRecentCommits(days);
111
- if (commits.length === 0) {
112
- if (spinner) {
113
- spinner.fail('No commits found for the selected period.');
114
- console.log(chalk.gray(' Try selecting a wider date range or check your user.name config.'));
115
- }
116
- if (options.json) {
117
- console.log(JSON.stringify({
118
- success: false,
119
- error: 'No commits found for the selected period.',
120
- warnings: warnings.length ? warnings : undefined,
121
- range: { from: from || null, to: to || null, days: from || to ? null : days },
122
- }, null, 2));
123
- }
124
- return;
125
- }
126
- if (spinner) {
127
- spinner.text = `Analyzing ${commits.length} commits with ${config.model}...`;
128
- }
129
- try {
130
- const client = createAIClient(config);
131
- const report = await generateWeeklyReport(client, commits, config);
132
- if (spinner) {
133
- spinner.succeed('Report generated!');
134
- }
135
- if (options.json) {
136
- console.log(JSON.stringify({
137
- success: true,
138
- report,
139
- warnings: warnings.length ? warnings : undefined,
140
- range: { from: from || null, to: to || null, days: from || to ? null : days },
141
- commitCount: commits.length,
142
- }, null, 2));
143
- return;
144
- }
145
- console.log(chalk.gray('\n──────────────────────────────────────────────────────────'));
146
- console.log(report);
147
- console.log(chalk.gray('──────────────────────────────────────────────────────────\n'));
148
- console.log(chalk.green('✨ Tip: You can copy the text above to your weekly report tool.'));
149
- }
150
- catch (error) {
151
- if (spinner) {
152
- spinner.fail('Failed to generate report');
153
- }
154
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
155
- if (options.json) {
156
- console.log(JSON.stringify({ success: false, error: errorMessage, warnings: warnings.length ? warnings : undefined }, null, 2));
157
- return;
158
- }
159
- console.error(chalk.red(`❌ ${errorMessage}`));
160
- }
161
- }
162
- //# sourceMappingURL=report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts DELETED
@@ -1,46 +0,0 @@
1
- export interface AIConfig {
2
- provider: string;
3
- apiKey: string;
4
- baseUrl: string;
5
- model: string;
6
- agentModel?: string;
7
- locale: 'zh' | 'en';
8
- customPrompt?: string;
9
- enableFooter?: boolean;
10
- outputFormat?: 'text' | 'json';
11
- rules?: CommitRules;
12
- rulesPreset?: string;
13
- fallbackModels?: string[];
14
- policy?: CommitPolicy;
15
- branch?: BranchConfig;
16
- }
17
- export interface CommitRules {
18
- types?: string[];
19
- scopes?: string[];
20
- scopeMap?: Record<string, string>;
21
- maxSubjectLength?: number;
22
- requireScope?: boolean;
23
- issuePattern?: string;
24
- issuePlacement?: 'scope' | 'subject' | 'footer';
25
- issueFooterPrefix?: string;
26
- requireIssue?: boolean;
27
- }
28
- export interface CommitPolicy {
29
- strict?: boolean;
30
- }
31
- export interface BranchConfig {
32
- types?: string[];
33
- pattern?: string;
34
- issueSeparator?: string;
35
- nameMaxLength?: number;
36
- }
37
- export interface ProviderPreset {
38
- name: string;
39
- baseUrl: string;
40
- defaultModel: string;
41
- requiresKey: boolean;
42
- }
43
- export declare const PROVIDER_PRESETS: Record<string, ProviderPreset>;
44
- export declare const DIFF_BLACKLIST: string[];
45
- export declare const MAX_DIFF_LENGTH = 5000;
46
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAuE3D,CAAC;AAEF,eAAO,MAAM,cAAc,UAW1B,CAAC;AAEF,eAAO,MAAM,eAAe,OAAO,CAAC"}