@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
@@ -1,8 +1,12 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import { getConfig } from '../utils/config.js';
3
+ import { getConfig, getLocalConfigError } from '../utils/config.js';
4
4
  import { isGitInstalled, isInGitRepo, getStagedFiles, getFilteredDiff, getBranchName, getRecentCommits, } from '../utils/git.js';
5
- import { createAIClient, generateCommitMessage, } from '../utils/ai.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
+ }
6
10
  function exitWithError(message, options) {
7
11
  if (options.json) {
8
12
  const result = { success: false, error: message };
@@ -29,12 +33,36 @@ export async function runMsg(options = {}) {
29
33
  // Check config
30
34
  const config = getConfig();
31
35
  if (!config) {
32
- exitWithError('Configuration not found. Run `git-ai config` first.', options);
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
+ }
33
58
  }
34
59
  // Override locale if provided
35
60
  if (locale && (locale === 'zh' || locale === 'en')) {
36
61
  config.locale = locale;
37
62
  }
63
+ if (json && process.env.GIT_AI_ENABLE_FOOTER === undefined) {
64
+ config.enableFooter = false;
65
+ }
38
66
  // Get filtered diff
39
67
  const { diff, truncated, ignoredFiles } = await getFilteredDiff(stagedFiles);
40
68
  const branchName = await getBranchName();
@@ -70,17 +98,22 @@ export async function runMsg(options = {}) {
70
98
  const result = {
71
99
  success: true,
72
100
  messages: unique,
101
+ warnings: warnings.length ? warnings : undefined,
73
102
  metadata: { stagedFiles, truncated, ignoredFiles },
74
103
  };
75
104
  console.log(JSON.stringify(result, null, 2));
76
105
  }
77
106
  else {
78
- // Plain output: use delimiter for multi-line message safety
79
- // Each message separated by ---END---
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
+ }
80
113
  unique.forEach((msg, i) => {
81
114
  console.log(msg);
82
115
  if (i < unique.length - 1) {
83
- console.log('---END---');
116
+ console.log(delimiter);
84
117
  }
85
118
  });
86
119
  }
@@ -96,6 +129,7 @@ export async function runMsg(options = {}) {
96
129
  const result = {
97
130
  success: true,
98
131
  message,
132
+ warnings: warnings.length ? warnings : undefined,
99
133
  metadata: { stagedFiles, truncated, ignoredFiles },
100
134
  };
101
135
  console.log(JSON.stringify(result, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"msg.js","sourceRoot":"","sources":["../../src/commands/msg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,cAAc,EACd,qBAAqB,GAEtB,MAAM,gBAAgB,CAAC;AAqBxB,SAAS,aAAa,CAAC,OAAe,EAAE,OAAmB;IACzD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,MAAM,GAAc,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAsB,EAAE;IACnD,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEjE,qBAAqB;IACrB,IAAI,CAAC,CAAC,MAAM,cAAc,EAAE,CAAC,EAAE,CAAC;QAC9B,aAAa,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,EAAE,CAAC;QAC3B,aAAa,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,aAAa,CAAC,uDAAuD,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,aAAa,CAAC,qDAAqD,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,8BAA8B;IAC9B,IAAI,MAAM,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,MAAM,GAAG,MAAqB,CAAC;IACxC,CAAC;IAED,oBAAoB;IACpB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;IACzC,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEjD,mBAAmB;IACnB,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,KAAK,GAAiC;QAC1C,IAAI;QACJ,WAAW;QACX,YAAY;QACZ,SAAS;QACT,UAAU;QACV,aAAa;QACb,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;IAEF,sBAAsB;IACtB,IAAI,CAAC;QACH,IAAI,OAAO,GAAkC,IAAI,CAAC;QAElD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,GAAG,GAAG,CAAC;gBACZ,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,8BAA8B;gBACvF,KAAK,EAAE,MAAM;aACd,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QAED,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEtC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,MAAM,GAAc;oBACxB,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,MAAM;oBAChB,QAAQ,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE;iBACnD,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,4DAA4D;gBAC5D,sCAAsC;gBACtC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACjB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,MAAM,GAAc;oBACxB,OAAO,EAAE,IAAI;oBACb,OAAO;oBACP,QAAQ,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE;iBACnD,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,eAAe;gBACf,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9E,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"msg.js","sourceRoot":"","sources":["../../src/commands/msg.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,96 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,95 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
- export declare function runReport(options?: {
1
+ type ReportOptions = {
2
2
  days?: number;
3
- }): Promise<void>;
3
+ from?: string;
4
+ to?: string;
5
+ json?: boolean;
6
+ };
7
+ export declare function runReport(options?: ReportOptions): Promise<void>;
8
+ export {};
4
9
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"AAOA,wBAAsB,SAAS,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkF9E"}
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,9 +1,15 @@
1
1
  import inquirer from 'inquirer';
2
2
  import chalk from 'chalk';
3
3
  import ora from 'ora';
4
- import { getConfig } from '../utils/config.js';
5
- import { isGitInstalled, isInGitRepo, getRecentCommits } from '../utils/git.js';
6
- import { createAIClient, generateWeeklyReport } from '../utils/ai.js';
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
+ }
7
13
  export async function runReport(options = {}) {
8
14
  // Environment checks
9
15
  if (!(await isGitInstalled())) {
@@ -16,11 +22,52 @@ export async function runReport(options = {}) {
16
22
  }
17
23
  const config = getConfig();
18
24
  if (!config) {
19
- console.error(chalk.red('❌ Configuration not found. Run `git-ai config` first.'));
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}`));
20
30
  process.exit(1);
21
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
+ }
22
49
  let days = options.days;
23
- if (!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) {
24
71
  const { range } = await inquirer.prompt([
25
72
  {
26
73
  type: 'list',
@@ -49,29 +96,66 @@ export async function runReport(options = {}) {
49
96
  days = Number(range);
50
97
  }
51
98
  }
52
- const spinner = ora({
53
- text: `Fetching git commits for the last ${days} days...`,
54
- color: 'cyan',
55
- }).start();
56
- const commits = await getRecentCommits(days);
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);
57
111
  if (commits.length === 0) {
58
- spinner.fail('No commits found for the selected period.');
59
- console.log(chalk.gray(' Try selecting a wider date range or check your user.name config.'));
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
+ }
60
124
  return;
61
125
  }
62
- spinner.text = `Analyzing ${commits.length} commits with ${config.model}...`;
126
+ if (spinner) {
127
+ spinner.text = `Analyzing ${commits.length} commits with ${config.model}...`;
128
+ }
63
129
  try {
64
130
  const client = createAIClient(config);
65
131
  const report = await generateWeeklyReport(client, commits, config);
66
- spinner.succeed('Report generated!');
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
+ }
67
145
  console.log(chalk.gray('\n──────────────────────────────────────────────────────────'));
68
146
  console.log(report);
69
147
  console.log(chalk.gray('──────────────────────────────────────────────────────────\n'));
70
148
  console.log(chalk.green('✨ Tip: You can copy the text above to your weekly report tool.'));
71
149
  }
72
150
  catch (error) {
73
- spinner.fail('Failed to generate report');
151
+ if (spinner) {
152
+ spinner.fail('Failed to generate report');
153
+ }
74
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
+ }
75
159
  console.error(chalk.red(`❌ ${errorMessage}`));
76
160
  }
77
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,6 +7,32 @@ export interface AIConfig {
7
7
  locale: 'zh' | 'en';
8
8
  customPrompt?: string;
9
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;
10
36
  }
11
37
  export interface ProviderPreset {
12
38
  name: string;
@@ -1 +1 @@
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;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"}
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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,aAAa;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,6BAA6B;QACtC,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,IAAI;KAClB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,mDAAmD;QAC5D,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,IAAI;KAClB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,sCAAsC;QAC/C,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,IAAI;KAClB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,4BAA4B;QACrC,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,IAAI;KAClB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,gCAAgC;QACzC,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,IAAI;KAClB;IACD,EAAE,EAAE;QACF,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,gCAAgC;QACzC,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,IAAI;KAClB;IACD,QAAQ;IACR,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,IAAI;KAClB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,+BAA+B;QACxC,YAAY,EAAE,0BAA0B;QACxC,WAAW,EAAE,IAAI;KAClB;IACD,OAAO;IACP,MAAM,EAAE;QACN,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,0BAA0B;QACnC,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,KAAK;KACnB;IACD,MAAM;IACN,MAAM,EAAE;QACN,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,mBAAmB;IACnB,WAAW;IACX,gBAAgB;IAChB,WAAW;IACX,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA+CA,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,aAAa;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,6BAA6B;QACtC,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,IAAI;KAClB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,mDAAmD;QAC5D,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,IAAI;KAClB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,sCAAsC;QAC/C,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,IAAI;KAClB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,4BAA4B;QACrC,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,IAAI;KAClB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,gCAAgC;QACzC,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,IAAI;KAClB;IACD,EAAE,EAAE;QACF,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,gCAAgC;QACzC,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,IAAI;KAClB;IACD,QAAQ;IACR,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,IAAI;KAClB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,+BAA+B;QACxC,YAAY,EAAE,0BAA0B;QACxC,WAAW,EAAE,IAAI;KAClB;IACD,OAAO;IACP,MAAM,EAAE;QACN,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,0BAA0B;QACnC,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,KAAK;KACnB;IACD,MAAM;IACN,MAAM,EAAE;QACN,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,mBAAmB;IACnB,WAAW;IACX,gBAAgB;IAChB,WAAW;IACX,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC"}
@@ -0,0 +1,5 @@
1
+ import OpenAI from 'openai';
2
+ import { FileStat } from './git.js';
3
+ import { AIConfig } from '../types.js';
4
+ export declare function runAgentLite(client: OpenAI, config: AIConfig, stats: FileStat[], branchName?: string, quiet?: boolean, modelOverride?: string): Promise<string>;
5
+ //# sourceMappingURL=agent_lite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent_lite.d.ts","sourceRoot":"","sources":["../../src/utils/agent_lite.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAe,QAAQ,EAAiB,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAoMvC,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,QAAQ,EAAE,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,UAAQ,EACb,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAwGjB"}