@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.
- package/README.md +200 -157
- package/bin/git-ai.cjs +57 -0
- package/install.cjs +107 -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/commands/msg.js
DELETED
|
@@ -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
|
package/dist/commands/msg.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"msg.js","sourceRoot":"","sources":["../../src/commands/msg.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/pr.d.ts
DELETED
|
@@ -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"}
|
package/dist/commands/pr.js
DELETED
|
@@ -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
|
package/dist/commands/pr.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
package/dist/commands/release.js
DELETED
|
@@ -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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAItE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAA0B,EAAE;IAC3D,IAAI,CAAC,CAAC,MAAM,cAAc,EAAE,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,UAAU;YACvB,CAAC,CAAC,4BAA4B,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE;YACpE,CAAC,CAAC,6BAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,mBAAmB,gBAAgB,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACtF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC;IAExC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,qDAAqD,CAAC;QAClE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI;QAC3B,CAAC,CAAC,GAAG,CAAC;YACF,IAAI,EAAE,0BAA0B,IAAI,KAAK,EAAE,KAAK;YAChD,KAAK,EAAE,MAAM;SACd,CAAC,CAAC,KAAK,EAAE;QACZ,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAElD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,0CAA0C,CAAC;QACvD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,IAAI,OAAO;QAAE,OAAO,CAAC,IAAI,GAAG,iCAAiC,MAAM,CAAC,KAAK,KAAK,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAEhF,IAAI,OAAO;YAAE,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAEzD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;gBACE,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAChD,IAAI;gBACJ,EAAE;gBACF,WAAW,EAAE,OAAO,CAAC,MAAM;aAC5B,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;IAC1F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
|
|
@@ -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"}
|
package/dist/commands/report.js
DELETED
|
@@ -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
|
package/dist/types.d.ts.map
DELETED
|
@@ -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"}
|