@335g/pi-git 0.0.2 → 0.0.4

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 (75) hide show
  1. package/README.ja.md +3 -30
  2. package/README.md +3 -30
  3. package/dist/commands/agg-commit.d.ts.map +1 -1
  4. package/dist/commands/agg-commit.js +27 -38
  5. package/dist/commands/agg-commit.js.map +1 -1
  6. package/dist/commands/auto-agg-commit.d.ts.map +1 -1
  7. package/dist/commands/auto-agg-commit.js +11 -68
  8. package/dist/commands/auto-agg-commit.js.map +1 -1
  9. package/dist/commands/config.d.ts +1 -1
  10. package/dist/commands/config.d.ts.map +1 -1
  11. package/dist/commands/config.js +55 -70
  12. package/dist/commands/config.js.map +1 -1
  13. package/dist/commands/diagnostics.d.ts +12 -0
  14. package/dist/commands/diagnostics.d.ts.map +1 -0
  15. package/dist/commands/diagnostics.js +59 -0
  16. package/dist/commands/diagnostics.js.map +1 -0
  17. package/dist/core/auto-commit-message.d.ts +2 -2
  18. package/dist/core/auto-commit-message.d.ts.map +1 -1
  19. package/dist/core/auto-commit-message.js +239 -58
  20. package/dist/core/auto-commit-message.js.map +1 -1
  21. package/dist/core/auto-commit.d.ts.map +1 -1
  22. package/dist/core/auto-commit.js +4 -8
  23. package/dist/core/auto-commit.js.map +1 -1
  24. package/dist/core/commit-message.d.ts.map +1 -1
  25. package/dist/core/commit-message.js +3 -0
  26. package/dist/core/commit-message.js.map +1 -1
  27. package/dist/core/diff-analyzer.d.ts +1 -9
  28. package/dist/core/diff-analyzer.d.ts.map +1 -1
  29. package/dist/core/diff-analyzer.js +75 -75
  30. package/dist/core/diff-analyzer.js.map +1 -1
  31. package/dist/core/git.d.ts +5 -28
  32. package/dist/core/git.d.ts.map +1 -1
  33. package/dist/core/git.js +19 -68
  34. package/dist/core/git.js.map +1 -1
  35. package/dist/i18n/messages.d.ts +107 -0
  36. package/dist/i18n/messages.d.ts.map +1 -0
  37. package/dist/i18n/messages.js +135 -0
  38. package/dist/i18n/messages.js.map +1 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +18 -22
  41. package/dist/index.js.map +1 -1
  42. package/dist/types.d.ts +0 -2
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/utils/diagnostics.d.ts +33 -0
  45. package/dist/utils/diagnostics.d.ts.map +1 -0
  46. package/dist/utils/diagnostics.js +32 -0
  47. package/dist/utils/diagnostics.js.map +1 -0
  48. package/dist/utils/footer-manager.d.ts.map +1 -1
  49. package/dist/utils/footer-manager.js +6 -9
  50. package/dist/utils/footer-manager.js.map +1 -1
  51. package/dist/utils/lang.d.ts +13 -7
  52. package/dist/utils/lang.d.ts.map +1 -1
  53. package/dist/utils/lang.js +21 -10
  54. package/dist/utils/lang.js.map +1 -1
  55. package/dist/utils/settings.d.ts +13 -5
  56. package/dist/utils/settings.d.ts.map +1 -1
  57. package/dist/utils/settings.js +65 -13
  58. package/dist/utils/settings.js.map +1 -1
  59. package/package.json +6 -2
  60. package/dist/commands/branch.d.ts +0 -8
  61. package/dist/commands/branch.d.ts.map +0 -1
  62. package/dist/commands/branch.js +0 -197
  63. package/dist/commands/branch.js.map +0 -1
  64. package/dist/commands/git-diff.d.ts +0 -10
  65. package/dist/commands/git-diff.d.ts.map +0 -1
  66. package/dist/commands/git-diff.js +0 -228
  67. package/dist/commands/git-diff.js.map +0 -1
  68. package/dist/commands/git-log.d.ts +0 -8
  69. package/dist/commands/git-log.d.ts.map +0 -1
  70. package/dist/commands/git-log.js +0 -100
  71. package/dist/commands/git-log.js.map +0 -1
  72. package/dist/tui/hunk-review.d.ts +0 -51
  73. package/dist/tui/hunk-review.d.ts.map +0 -1
  74. package/dist/tui/hunk-review.js +0 -296
  75. package/dist/tui/hunk-review.js.map +0 -1
@@ -2,36 +2,183 @@
2
2
  * Auto-commit message generation from conversation history.
3
3
  *
4
4
  * When auto-agg-commit triggers after agent_end, skips hunk analysis
5
- * and instead generates a commit message from the user's prompt
6
- * and assistant's response for speed.
5
+ * and instead generates a commit message from the user's prompts
6
+ * and assistant's responses.
7
7
  */
8
8
  import { completeSimple } from "@earendil-works/pi-ai";
9
- import { isJapanese } from "../utils/lang.js";
9
+ import { diagIncr } from "../utils/diagnostics.js";
10
+ import { t } from "../utils/lang.js";
10
11
  import { getLanguage } from "../utils/settings.js";
11
12
  import { sanitizeCommitMessage } from "./commit-message.js";
12
13
  import { resolveModel } from "./resolve-model.js";
13
- function getSystemPrompt(lang) {
14
- if (isJapanese(lang)) {
15
- return `あなたはコミットメッセージ生成ツールです。ユーザーのリクエストとアシスタントの応答内容から、変更の意図を推測して Conventional Commit メッセージを1つ生成してください。
16
-
17
- ルール:
18
- - type feat, fix, docs, style, refactor, test, chore から選択
19
- - サブジェクトは50文字以内
20
- - 命令形を使用する
21
- - スコープは推測できる場合のみ含める
22
- - 日本語で記述
23
-
24
- 返答はメッセージ文字列のみ。説明やコードフェンスは不要。`;
14
+ /** Truncate text to approximately maxChars, keeping whole words at boundaries */
15
+ function truncate(text, maxChars) {
16
+ if (text.length <= maxChars)
17
+ return text;
18
+ const slice = text.substring(0, maxChars);
19
+ const lastSpace = slice.lastIndexOf(" ");
20
+ // If no space found within reasonable range, just cut at maxChars
21
+ if (lastSpace > maxChars * 0.7)
22
+ return slice.substring(0, lastSpace) + "...";
23
+ return slice + "...";
24
+ }
25
+ /** Generic commit message patterns — messages matching these lack specificity */
26
+ const GENERIC_MESSAGE_PATTERNS = [
27
+ /^chore:\s*apply\s*changes?\s*$/i,
28
+ /^chore:\s*update\s*(files?)?\s*$/i,
29
+ /^chore:\s*commit\s*changes?\s*$/i,
30
+ /^chore:\s*modify\s*(files?)?\s*$/i,
31
+ /^chore:\s*update\s+\S+\s*$/i,
32
+ /^(feat|fix|chore|docs|style|refactor|test):\s*.{0,10}$/i,
33
+ ];
34
+ /** Heuristic: is this commit message too generic to be useful? */
35
+ function isGenericMessage(message) {
36
+ const m = message.trim();
37
+ if (m.length < 12)
38
+ return true;
39
+ return GENERIC_MESSAGE_PATTERNS.some((p) => p.test(m));
40
+ }
41
+ /** Derive a commit-message candidate from the user's last message. */
42
+ function userMessageToCandidate(userMessage) {
43
+ let text = userMessage
44
+ .replace(/[。.!!??]$/, "")
45
+ .replace(/お願いします$/, "")
46
+ .replace(/してください$/, "")
47
+ .replace(/して$/, "")
48
+ .replace(/\bplease\b/gi, "")
49
+ .replace(/\n/g, " ")
50
+ .replace(/\s+/g, " ")
51
+ .trim();
52
+ if (!text)
53
+ return "";
54
+ // Infer Conventional Commit type from keywords
55
+ let type = "chore";
56
+ if (/修正|fix|bug|バグ|不具合|error|エラー|直[しす]|訂正/i.test(text))
57
+ type = "fix";
58
+ else if (/追加|add|feature|機能|実装|implement|作[ってり]|作成|新規/i.test(text))
59
+ type = "feat";
60
+ else if (/docs|ドキュメント|readme|資料|文書/i.test(text))
61
+ type = "docs";
62
+ else if (/refactor|リファクタ|整理|改善|改修/i.test(text))
63
+ type = "refactor";
64
+ else if (/test|テスト|spec/i.test(text))
65
+ type = "test";
66
+ else if (/削除|remove|delete|消[しす]/i.test(text))
67
+ type = "chore";
68
+ const prefix = `${type}: `;
69
+ const maxBody = 50 - prefix.length;
70
+ if (text.length > maxBody) {
71
+ const cut = text.substring(0, maxBody - 1);
72
+ const lastBoundary = Math.max(cut.lastIndexOf("、"), cut.lastIndexOf(","), cut.lastIndexOf(" "));
73
+ text =
74
+ lastBoundary > maxBody * 0.5
75
+ ? cut.substring(0, lastBoundary) + "…"
76
+ : cut + "…";
25
77
  }
26
- return `You are a commit message generator. Based on the user's request and the assistant's response, infer the intent of the changes and generate a single Conventional Commit message.
27
-
28
- Rules:
29
- - Choose type from: feat, fix, docs, style, refactor, test, chore
30
- - Keep subject under 50 characters
31
- - Use imperative mood
32
- - Include scope only if clearly inferable
33
-
34
- Return ONLY the commit message string. No explanations or code fences.`;
78
+ return `${prefix}${text}`;
79
+ }
80
+ /** Heuristic specificity score for a commit message. Higher = more specific. */
81
+ function specificityScore(message) {
82
+ let score = 0;
83
+ const m = message.replace(/^(feat|fix|chore|docs|style|refactor|test|perf|ci|build|revert)(\(.+?\))?!?:\s*/i, "");
84
+ // Length contributes (up to a point)
85
+ score += Math.min(m.length, 30) * 0.3;
86
+ // Penalize generic words
87
+ const genericWords = /\b(change|update|modify|fix|apply|commit|files?|stuff|things?)\b/gi;
88
+ const genericCount = (m.match(genericWords) || []).length;
89
+ score -= genericCount * 2;
90
+ // Reward specific nouns (CamelCase, ALL_CAPS, or mixed-case words)
91
+ const specificTerms = m.match(/[A-Z][a-z]+|[a-z]+[A-Z]|[A-Z]{2,}/g);
92
+ score += (specificTerms || []).length * 3;
93
+ // Reward concrete action verbs
94
+ const concreteVerbs = /\b(add|implement|create|remove|refactor|extract|rename|optimize|migrate|configure|integrate|replace|split|merge|enhance|introduce|deprecate|upgrade|downgrade|support|handle|prevent|allow|restrict|validate|sanitize|normalize|format|generate|bump|release|deploy|fix|resolve|address|correct|adjust|tweak|improve|streamline|simplify|reduce|increase|enable|disable|expose|hide|export|import|wire|connect|disconnect|setup|teardown)\b/gi;
95
+ score += (m.match(concreteVerbs) || []).length * 2;
96
+ return score;
97
+ }
98
+ /**
99
+ * If the generated message is generic, compare it against a candidate derived
100
+ * from the user's last message and return the more specific one.
101
+ *
102
+ * Uses AI comparison when available; falls back to heuristic scoring.
103
+ */
104
+ async function refineMessageIfGeneric(model, auth, ctx, generatedMessage, messages, changedFiles, lang) {
105
+ // Only refine if the generated message seems generic
106
+ if (!isGenericMessage(generatedMessage)) {
107
+ return generatedMessage;
108
+ }
109
+ diagIncr("msgIsGeneric");
110
+ // Get the last user message
111
+ const userMessages = collectMessagesByRole(messages, "user");
112
+ if (userMessages.length === 0) {
113
+ return generatedMessage;
114
+ }
115
+ const lastUserMessage = userMessages[0]; // newest first
116
+ const userCandidate = userMessageToCandidate(lastUserMessage);
117
+ if (!userCandidate) {
118
+ return generatedMessage;
119
+ }
120
+ // Quick heuristic guard: skip AI if one candidate is clearly better
121
+ const genScore = specificityScore(generatedMessage);
122
+ const userScore = specificityScore(userCandidate);
123
+ if (userScore > genScore + 5)
124
+ return userCandidate;
125
+ if (genScore > userScore + 5)
126
+ return generatedMessage;
127
+ // Scores are close — ask AI to decide
128
+ diagIncr("msgRefineUsedAI");
129
+ try {
130
+ const comparisonPrompt = t(lang, "autoCommitMsg.comparePrompt", {
131
+ candidateA: generatedMessage,
132
+ candidateB: userCandidate,
133
+ files: changedFiles.join(", "),
134
+ });
135
+ const context = {
136
+ systemPrompt: t(lang, "autoCommitMsg.compareSystemPrompt"),
137
+ messages: [
138
+ {
139
+ role: "user",
140
+ content: comparisonPrompt,
141
+ timestamp: Date.now(),
142
+ },
143
+ ],
144
+ };
145
+ const result = await completeSimple(model, context, {
146
+ apiKey: auth.apiKey,
147
+ headers: auth.headers,
148
+ signal: ctx.signal,
149
+ reasoning: "minimal",
150
+ temperature: 0,
151
+ maxTokens: 100,
152
+ });
153
+ const text = result.content
154
+ .filter((c) => c.type === "text")
155
+ .map((c) => c.text)
156
+ .join("")
157
+ .trim()
158
+ // Strip code fences if the model wraps the message
159
+ .replace(/^```[a-z]*\n?/i, "")
160
+ .replace(/\n?```$/i, "")
161
+ .trim();
162
+ // Validate the AI's choice: if it contains the user candidate, prefer that
163
+ if (userCandidate.length >= 15 &&
164
+ text.includes(userCandidate.substring(0, 15))) {
165
+ return userCandidate;
166
+ }
167
+ // If it contains the generated message's subject, keep it
168
+ if (generatedMessage.length >= 15 &&
169
+ text.includes(generatedMessage.substring(0, 15))) {
170
+ return generatedMessage;
171
+ }
172
+ // Fallback: use heuristic scores
173
+ return userScore > genScore ? userCandidate : generatedMessage;
174
+ }
175
+ catch {
176
+ // AI failed — fall back to heuristic scoring
177
+ return userScore > genScore ? userCandidate : generatedMessage;
178
+ }
179
+ }
180
+ function getSystemPrompt(lang) {
181
+ return t(lang, "autoCommitMsg.systemPrompt");
35
182
  }
36
183
  function extractTextContent(content) {
37
184
  if (typeof content === "string")
@@ -40,55 +187,85 @@ function extractTextContent(content) {
40
187
  return content
41
188
  .filter((c) => typeof c === "object" && c !== null)
42
189
  .map((c) => c.text || "")
43
- .join("");
190
+ .join("\n");
44
191
  }
45
192
  return "";
46
193
  }
47
- function findLastMessageByRole(messages, role) {
194
+ /** Collect all messages of a given role, newest first */
195
+ function collectMessagesByRole(messages, role) {
196
+ const result = [];
48
197
  for (let i = messages.length - 1; i >= 0; i--) {
49
198
  if (messages[i].role === role) {
50
- return extractTextContent(messages[i].content);
199
+ const text = extractTextContent(messages[i].content);
200
+ if (text.trim()) {
201
+ result.push(text);
202
+ }
51
203
  }
52
204
  }
53
- return "";
205
+ return result;
206
+ }
207
+ /**
208
+ * Count total characters across all collected messages for truncation budgeting.
209
+ */
210
+ function totalChars(collected) {
211
+ return collected.reduce((sum, s) => sum + s.length, 0);
54
212
  }
55
- function buildPrompt(lastUserMessage, lastAssistantMessage, changedFiles, lang) {
56
- const filesStr = changedFiles.join(", ");
57
- if (isJapanese(lang)) {
58
- return `ユーザーのリクエスト:
59
- ${lastUserMessage}
60
-
61
- アシスタントの応答:
62
- ${lastAssistantMessage}
63
-
64
- 変更されたファイル: ${filesStr}
65
-
66
- 上記から変更の意図を推測し、Conventional Commit メッセージを1つ生成してください。`;
213
+ function buildPrompt(userMessages, assistantMessages, changedFiles, lang) {
214
+ // Budget: keep the whole prompt under ~4000 chars to leave room for system prompt + response
215
+ const MAX_USER_CHARS = 2000;
216
+ const MAX_ASSISTANT_CHARS = 800;
217
+ const MAX_FILES_CHARS = 800;
218
+ // Build user messages section (newest first, most relevant last in display)
219
+ const userLines = [];
220
+ let userBudget = MAX_USER_CHARS;
221
+ for (const msg of userMessages.reverse()) {
222
+ if (userBudget <= 0)
223
+ break;
224
+ const truncated = truncate(msg, userBudget);
225
+ userLines.push(truncated);
226
+ userBudget -= truncated.length;
227
+ }
228
+ const userStr = userLines.reverse().join("\n---\n");
229
+ const noData = t(lang, "autoCommitMsg.noData");
230
+ const userSection = userStr || noData;
231
+ // Build assistant messages section
232
+ const assistantLines = [];
233
+ let assistantBudget = MAX_ASSISTANT_CHARS;
234
+ for (const msg of assistantMessages.reverse()) {
235
+ if (assistantBudget <= 0)
236
+ break;
237
+ const truncated = truncate(msg, assistantBudget);
238
+ assistantLines.push(truncated);
239
+ assistantBudget -= truncated.length;
67
240
  }
68
- return `User request:
69
- ${lastUserMessage}
70
-
71
- Assistant response:
72
- ${lastAssistantMessage}
73
-
74
- Changed files: ${filesStr}
75
-
76
- Based on the above, infer the intent of the changes and generate a single Conventional Commit message.`;
241
+ const assistantStr = assistantLines.reverse().join("\n---\n");
242
+ const assistantSection = assistantStr || noData;
243
+ // Build files section
244
+ const filesStr = truncate(changedFiles.join(", "), MAX_FILES_CHARS);
245
+ const filesSection = filesStr || noData;
246
+ const examples = t(lang, "autoCommitMsg.examples");
247
+ return t(lang, "autoCommitMsg.buildPrompt", {
248
+ userSection,
249
+ assistantSection,
250
+ filesSection,
251
+ examples,
252
+ });
77
253
  }
78
254
  export async function generateAutoCommitMessage(_pi, ctx, messages, changedFiles) {
255
+ const lang = getLanguage(ctx.cwd);
79
256
  const model = resolveModel(ctx);
80
257
  if (!model) {
81
- return sanitizeCommitMessage("chore: apply changes", changedFiles);
258
+ return sanitizeCommitMessage(t(lang, "core.applyChanges"), changedFiles);
82
259
  }
83
260
  const auth = await ctx.modelRegistry.getApiKeyAndHeaders(model);
84
261
  if (!auth.ok) {
85
- return sanitizeCommitMessage("chore: apply changes", changedFiles);
262
+ return sanitizeCommitMessage(t(lang, "core.applyChanges"), changedFiles);
86
263
  }
87
- const lang = getLanguage(ctx.cwd);
88
- const lastUserMessage = findLastMessageByRole(messages, "user");
89
- const lastAssistantMessage = findLastMessageByRole(messages, "assistant");
90
- if (!lastUserMessage) {
91
- return sanitizeCommitMessage("chore: apply changes", changedFiles);
264
+ // Collect ALL user messages and assistant messages for rich context
265
+ const userMessages = collectMessagesByRole(messages, "user");
266
+ const assistantMessages = collectMessagesByRole(messages, "assistant");
267
+ if (userMessages.length === 0) {
268
+ return sanitizeCommitMessage(t(lang, "core.applyChanges"), changedFiles);
92
269
  }
93
270
  try {
94
271
  const promptContext = {
@@ -96,7 +273,7 @@ export async function generateAutoCommitMessage(_pi, ctx, messages, changedFiles
96
273
  messages: [
97
274
  {
98
275
  role: "user",
99
- content: buildPrompt(lastUserMessage, lastAssistantMessage, changedFiles, lang),
276
+ content: buildPrompt(userMessages, assistantMessages, changedFiles, lang),
100
277
  timestamp: Date.now(),
101
278
  },
102
279
  ],
@@ -112,7 +289,11 @@ export async function generateAutoCommitMessage(_pi, ctx, messages, changedFiles
112
289
  .map((c) => c.text)
113
290
  .join("")
114
291
  .trim();
115
- return sanitizeCommitMessage(text || "chore: apply changes", changedFiles);
292
+ const commitMessage = sanitizeCommitMessage(text || t(lang, "core.applyChanges"), changedFiles);
293
+ // If the generated message is too generic, compare with a user-message
294
+ // candidate and pick the more specific one (heuristic → AI comparison)
295
+ diagIncr("msgRefineTriggered");
296
+ return await refineMessageIfGeneric(model, auth, ctx, commitMessage, messages, changedFiles, lang);
116
297
  }
117
298
  catch {
118
299
  return sanitizeCommitMessage("chore: apply changes", changedFiles);
@@ -1 +1 @@
1
- {"version":3,"file":"auto-commit-message.js","sourceRoot":"","sources":["../../src/core/auto-commit-message.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;;;;;;;;;6BASkB,CAAC;IAC5B,CAAC;IAED,OAAO;;;;;;;;uEAQ8D,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAyB;IACnD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO;aACX,MAAM,CACL,CAAC,CAAC,EAAwC,EAAE,CAC1C,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CACtC;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;aACxB,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAyB,EACzB,IAAY;IAEZ,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9B,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAClB,eAAuB,EACvB,oBAA4B,EAC5B,YAAsB,EACtB,IAAY;IAEZ,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;EACT,eAAe;;;EAGf,oBAAoB;;aAET,QAAQ;;oDAE+B,CAAC;IACnD,CAAC;IAED,OAAO;EACP,eAAe;;;EAGf,oBAAoB;;iBAEL,QAAQ;;uGAE8E,CAAC;AACxG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAiB,EACjB,GAAqB,EACrB,QAAyB,EACzB,YAAsB;IAEtB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,qBAAqB,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,qBAAqB,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE1E,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,qBAAqB,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAY;YAC7B,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC;YACnC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,WAAW,CAClB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,IAAI,CACL;oBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE;YACxD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO;aACxB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,EAAE,CAAC;aACR,IAAI,EAAE,CAAC;QAEV,OAAO,qBAAqB,CAAC,IAAI,IAAI,sBAAsB,EAAE,YAAY,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,qBAAqB,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"auto-commit-message.js","sourceRoot":"","sources":["../../src/core/auto-commit-message.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,iFAAiF;AACjF,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAgB;IAC9C,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,kEAAkE;IAClE,IAAI,SAAS,GAAG,QAAQ,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;IAC7E,OAAO,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,iFAAiF;AACjF,MAAM,wBAAwB,GAAa;IACzC,iCAAiC;IACjC,mCAAmC;IACnC,kCAAkC;IAClC,mCAAmC;IACnC,6BAA6B;IAC7B,yDAAyD;CAC1D,CAAC;AAEF,kEAAkE;AAClE,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,sEAAsE;AACtE,SAAS,sBAAsB,CAAC,WAAmB;IACjD,IAAI,IAAI,GAAG,WAAW;SACnB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IAEV,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,+CAA+C;IAC/C,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,KAAK,CAAC;SAChE,IAAI,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,MAAM,CAAC;SAC7E,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,MAAM,CAAC;SAC1D,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,UAAU,CAAC;SAC7D,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,MAAM,CAAC;SAC/C,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,OAAO,CAAC;IAE9D,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC;IAC3B,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EACpB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EACpB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CACrB,CAAC;QACF,IAAI;YACF,YAAY,GAAG,OAAO,GAAG,GAAG;gBAC1B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,GAAG;gBACtC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,gFAAgF;AAChF,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CACvB,kFAAkF,EAClF,EAAE,CACH,CAAC;IAEF,qCAAqC;IACrC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAEtC,yBAAyB;IACzB,MAAM,YAAY,GAAG,oEAAoE,CAAC;IAC1F,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC1D,KAAK,IAAI,YAAY,GAAG,CAAC,CAAC;IAE1B,mEAAmE;IACnE,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpE,KAAK,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1C,+BAA+B;IAC/B,MAAM,aAAa,GACjB,+aAA+a,CAAC;IAClb,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,sBAAsB,CACnC,KAAiB,EACjB,IAA2D,EAC3D,GAAqB,EACrB,gBAAwB,EACxB,QAAyB,EACzB,YAAsB,EACtB,IAAY;IAEZ,qDAAqD;IACrD,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEzB,4BAA4B;IAC5B,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;IACxD,MAAM,aAAa,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,oEAAoE;IACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,SAAS,GAAG,QAAQ,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC;IACnD,IAAI,QAAQ,GAAG,SAAS,GAAG,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAEtD,sCAAsC;IACtC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,CAAC,CACxB,IAAI,EACJ,6BAA6B,EAC7B;YACE,UAAU,EAAE,gBAAgB;YAC5B,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/B,CACF,CAAC;QAEF,MAAM,OAAO,GAAY;YACvB,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,mCAAmC,CAAC;YAC1D,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,gBAAgB;oBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;YAClD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO;aACxB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,EAAE,CAAC;aACR,IAAI,EAAE;YACP,mDAAmD;aAClD,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;aAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,IAAI,EAAE,CAAC;QAEV,2EAA2E;QAC3E,IACE,aAAa,CAAC,MAAM,IAAI,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAC7C,CAAC;YACD,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,0DAA0D;QAC1D,IACE,gBAAgB,CAAC,MAAM,IAAI,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAChD,CAAC;YACD,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,iCAAiC;QACjC,OAAO,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;QAC7C,OAAO,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,CAAC,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAyB;IACnD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO;aACX,MAAM,CACL,CAAC,CAAC,EAAwC,EAAE,CAC1C,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CACtC;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;aACxB,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,yDAAyD;AACzD,SAAS,qBAAqB,CAC5B,QAAyB,EACzB,IAAY;IAEZ,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,SAAmB;IACrC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,WAAW,CAClB,YAAsB,EACtB,iBAA2B,EAC3B,YAAsB,EACtB,IAAY;IAEZ,6FAA6F;IAC7F,MAAM,cAAc,GAAG,IAAI,CAAC;IAC5B,MAAM,mBAAmB,GAAG,GAAG,CAAC;IAChC,MAAM,eAAe,GAAG,GAAG,CAAC;IAE5B,4EAA4E;IAC5E,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,UAAU,GAAG,cAAc,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACzC,IAAI,UAAU,IAAI,CAAC;YAAE,MAAM;QAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC5C,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,OAAO,IAAI,MAAM,CAAC;IAEtC,mCAAmC;IACnC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,eAAe,GAAG,mBAAmB,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,IAAI,eAAe,IAAI,CAAC;YAAE,MAAM;QAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACjD,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,eAAe,IAAI,SAAS,CAAC,MAAM,CAAC;IACtC,CAAC;IACD,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,YAAY,IAAI,MAAM,CAAC;IAEhD,sBAAsB;IACtB,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,QAAQ,IAAI,MAAM,CAAC;IAExC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IACnD,OAAO,CAAC,CAAC,IAAI,EAAE,2BAA2B,EAAE;QAC1C,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAiB,EACjB,GAAqB,EACrB,QAAyB,EACzB,YAAsB;IAEtB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,qBAAqB,CAAC,CAAC,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,qBAAqB,CAAC,CAAC,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED,oEAAoE;IACpE,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEvE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,qBAAqB,CAAC,CAAC,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAY;YAC7B,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC;YACnC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,WAAW,CAClB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,IAAI,CACL;oBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE;YACxD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO;aACxB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,EAAE,CAAC;aACR,IAAI,EAAE,CAAC;QAEV,MAAM,aAAa,GAAG,qBAAqB,CACzC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,mBAAmB,CAAC,EACpC,YAAY,CACb,CAAC;QAEF,uEAAuE;QACvE,uEAAuE;QACvE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC/B,OAAO,MAAM,sBAAsB,CACjC,KAAK,EACL,IAAI,EACJ,GAAG,EACH,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,IAAI,CACL,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,qBAAqB,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-commit.d.ts","sourceRoot":"","sources":["../../src/core/auto-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYjD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAoFf"}
1
+ {"version":3,"file":"auto-commit.d.ts","sourceRoot":"","sources":["../../src/core/auto-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYjD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAsFf"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Automatically commits changes after assistant response when enabled.
5
5
  */
6
- import { isJapanese } from "../utils/lang.js";
6
+ import { t } from "../utils/lang.js";
7
7
  import { getAutoAggCommit, getLanguage } from "../utils/settings.js";
8
8
  import { footerManager } from "../utils/footer-manager.js";
9
9
  import { generateAutoCommitMessage } from "./auto-commit-message.js";
@@ -32,9 +32,8 @@ export async function handleAutoCommit(pi, ctx, event) {
32
32
  return;
33
33
  }
34
34
  const lang = getLanguage(ctx.cwd);
35
- const ja = isJapanese(lang);
36
- await footerManager.setRunning("auto-commit", "generateMessage");
37
35
  try {
36
+ await footerManager.setRunning("auto-commit", "generateMessage");
38
37
  const { stdout: statusOutput } = await pi.exec("git", ["status", "--short"], { cwd: ctx.cwd });
39
38
  const changedFiles = statusOutput
40
39
  .split("\n")
@@ -42,7 +41,6 @@ export async function handleAutoCommit(pi, ctx, event) {
42
41
  .map((line) => line.slice(3).trim())
43
42
  .filter(Boolean);
44
43
  if (changedFiles.length === 0) {
45
- await footerManager.clearRunning();
46
44
  return;
47
45
  }
48
46
  const messages = event.messages || [];
@@ -52,12 +50,10 @@ export async function handleAutoCommit(pi, ctx, event) {
52
50
  const { code: exitCode, stderr } = await pi.exec("git", ["commit", "-m", commitMessage], { cwd: ctx.cwd });
53
51
  if (exitCode !== 0) {
54
52
  await resetStaging(pi, ctx.cwd);
55
- ctx.ui.notify(ja ? `コミットに失敗しました: ${stderr}` : `Commit failed: ${stderr}`, "warning");
53
+ ctx.ui.notify(t(lang, "autoCommit.commitFailed", { error: stderr }), "warning");
56
54
  }
57
55
  else {
58
- ctx.ui.notify(ja
59
- ? `コミットを作成しました: ${commitMessage}`
60
- : `Created commit: ${commitMessage}`, "info");
56
+ ctx.ui.notify(t(lang, "autoCommit.commitCreated", { message: commitMessage }), "info");
61
57
  }
62
58
  }
63
59
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"auto-commit.js","sourceRoot":"","sources":["../../src/core/auto-commit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-commit.js","sourceRoot":"","sources":["../../src/core/auto-commit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commit-message.d.ts","sourceRoot":"","sources":["../../src/core/commit-message.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAsBxC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK7D;AAuCD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,MAAM,CAgDR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAO/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAK7C"}
1
+ {"version":3,"file":"commit-message.d.ts","sourceRoot":"","sources":["../../src/core/commit-message.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAsBxC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK7D;AAuCD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,MAAM,CAkDR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAO/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAK7C"}
@@ -4,6 +4,7 @@
4
4
  * Since diff-analyzer.ts already generates Conventional Commits messages via AI,
5
5
  * this module focuses on post-processing: validation, cleanup, and fallback.
6
6
  */
7
+ import { diagIncr } from "../utils/diagnostics.js";
7
8
  /** Valid Conventional Commits types */
8
9
  const VALID_TYPES = [
9
10
  "feat",
@@ -64,6 +65,7 @@ function inferTypeFromFiles(files) {
64
65
  * Returns a clean, valid Conventional Commits message.
65
66
  */
66
67
  export function sanitizeCommitMessage(message, files) {
68
+ diagIncr("msgSanitized");
67
69
  let sanitized = message.trim();
68
70
  // Remove trailing period from subject
69
71
  sanitized = sanitized.replace(/\.$/, "");
@@ -89,6 +91,7 @@ export function sanitizeCommitMessage(message, files) {
89
91
  }
90
92
  // Not a conventional commit - try to fix or fallback
91
93
  // If it has a colon, maybe it's an unknown format
94
+ diagIncr("msgSanitizeChanged");
92
95
  const colonIndex = sanitized.indexOf(":");
93
96
  if (colonIndex > 0) {
94
97
  const possibleSubject = sanitized.slice(colonIndex + 1).trim();
@@ -1 +1 @@
1
- {"version":3,"file":"commit-message.js","sourceRoot":"","sources":["../../src/core/commit-message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit-message.js","sourceRoot":"","sources":["../../src/core/commit-message.ts"],"names":[],"mappings":"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"}
@@ -5,19 +5,11 @@
5
5
  * logical hunks with Conventional Commits messages.
6
6
  */
7
7
  import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
8
- import type { FileStats, Hunk } from "../types.js";
8
+ import type { Hunk } from "../types.js";
9
9
  export declare function analyzeDiff(_pi: ExtensionAPI, ctx: ExtensionContext, diff: string, langOverride?: string): Promise<Hunk[]>;
10
10
  /**
11
11
  * Post-process AI-generated hunks: sanitize commit messages, deduplicate files
12
12
  * across hunks (each file belongs only to its first hunk), and remove empty hunks.
13
13
  */
14
14
  export declare function processHunks(hunks: Hunk[]): Hunk[];
15
- /**
16
- * Split a full diff into per-file diff line arrays, keyed by file path.
17
- */
18
- export declare function splitDiffByFile(fullDiff: string): Map<string, string[]>;
19
- /**
20
- * Parse addition/deletion counts for each file from a full diff.
21
- */
22
- export declare function parseDiffStats(fullDiff: string): Map<string, FileStats>;
23
15
  //# sourceMappingURL=diff-analyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-analyzer.d.ts","sourceRoot":"","sources":["../../src/core/diff-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AA0QnD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,EAAE,CAAC,CAwDjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAalD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA0BvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CA8BvE"}
1
+ {"version":3,"file":"diff-analyzer.d.ts","sourceRoot":"","sources":["../../src/core/diff-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAa,IAAI,EAAE,MAAM,aAAa,CAAC;AA2QnD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,EAAE,CAAC,CAmDjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAalD"}