@335g/pi-git 0.0.2 → 0.0.3

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 (54) hide show
  1. package/README.ja.md +0 -27
  2. package/README.md +0 -27
  3. package/dist/commands/agg-commit.d.ts.map +1 -1
  4. package/dist/commands/agg-commit.js +7 -14
  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 +36 -68
  8. package/dist/commands/auto-agg-commit.js.map +1 -1
  9. package/dist/commands/config.d.ts.map +1 -1
  10. package/dist/commands/config.js +46 -69
  11. package/dist/commands/config.js.map +1 -1
  12. package/dist/core/auto-commit-message.d.ts +2 -2
  13. package/dist/core/auto-commit-message.d.ts.map +1 -1
  14. package/dist/core/auto-commit-message.js +259 -34
  15. package/dist/core/auto-commit-message.js.map +1 -1
  16. package/dist/core/auto-commit.d.ts.map +1 -1
  17. package/dist/core/auto-commit.js +3 -6
  18. package/dist/core/auto-commit.js.map +1 -1
  19. package/dist/core/diff-analyzer.d.ts +1 -9
  20. package/dist/core/diff-analyzer.d.ts.map +1 -1
  21. package/dist/core/diff-analyzer.js +9 -21
  22. package/dist/core/diff-analyzer.js.map +1 -1
  23. package/dist/core/git.d.ts +0 -25
  24. package/dist/core/git.d.ts.map +1 -1
  25. package/dist/core/git.js +0 -65
  26. package/dist/core/git.js.map +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +0 -21
  29. package/dist/index.js.map +1 -1
  30. package/dist/types.d.ts +0 -2
  31. package/dist/types.d.ts.map +1 -1
  32. package/dist/utils/footer-manager.js +6 -9
  33. package/dist/utils/footer-manager.js.map +1 -1
  34. package/dist/utils/lang.d.ts +3 -2
  35. package/dist/utils/lang.d.ts.map +1 -1
  36. package/dist/utils/lang.js +3 -2
  37. package/dist/utils/lang.js.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/commands/branch.d.ts +0 -8
  40. package/dist/commands/branch.d.ts.map +0 -1
  41. package/dist/commands/branch.js +0 -197
  42. package/dist/commands/branch.js.map +0 -1
  43. package/dist/commands/git-diff.d.ts +0 -10
  44. package/dist/commands/git-diff.d.ts.map +0 -1
  45. package/dist/commands/git-diff.js +0 -228
  46. package/dist/commands/git-diff.js.map +0 -1
  47. package/dist/commands/git-log.d.ts +0 -8
  48. package/dist/commands/git-log.d.ts.map +0 -1
  49. package/dist/commands/git-log.js +0 -100
  50. package/dist/commands/git-log.js.map +0 -1
  51. package/dist/tui/hunk-review.d.ts +0 -51
  52. package/dist/tui/hunk-review.d.ts.map +0 -1
  53. package/dist/tui/hunk-review.js +0 -296
  54. package/dist/tui/hunk-review.js.map +0 -1
@@ -2,17 +2,201 @@
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 { t } from "../utils/lang.js";
10
10
  import { getLanguage } from "../utils/settings.js";
11
11
  import { sanitizeCommitMessage } from "./commit-message.js";
12
12
  import { resolveModel } from "./resolve-model.js";
13
+ /** Truncate text to approximately maxChars, keeping whole words at boundaries */
14
+ function truncate(text, maxChars) {
15
+ if (text.length <= maxChars)
16
+ return text;
17
+ const slice = text.substring(0, maxChars);
18
+ const lastSpace = slice.lastIndexOf(" ");
19
+ // If no space found within reasonable range, just cut at maxChars
20
+ if (lastSpace > maxChars * 0.7)
21
+ return slice.substring(0, lastSpace) + "...";
22
+ return slice + "...";
23
+ }
24
+ /** Generic commit message patterns — messages matching these lack specificity */
25
+ const GENERIC_MESSAGE_PATTERNS = [
26
+ /^chore:\s*apply\s*changes?\s*$/i,
27
+ /^chore:\s*update\s*(files?)?\s*$/i,
28
+ /^chore:\s*commit\s*changes?\s*$/i,
29
+ /^chore:\s*modify\s*(files?)?\s*$/i,
30
+ /^chore:\s*update\s+\S+\s*$/i,
31
+ /^(feat|fix|chore|docs|style|refactor|test):\s*.{0,10}$/i,
32
+ ];
33
+ /** Heuristic: is this commit message too generic to be useful? */
34
+ function isGenericMessage(message) {
35
+ const m = message.trim();
36
+ if (m.length < 12)
37
+ return true;
38
+ return GENERIC_MESSAGE_PATTERNS.some((p) => p.test(m));
39
+ }
40
+ /** Derive a commit-message candidate from the user's last message. */
41
+ function userMessageToCandidate(userMessage) {
42
+ let text = userMessage
43
+ .replace(/[。.!!??]$/, "")
44
+ .replace(/お願いします$/, "")
45
+ .replace(/してください$/, "")
46
+ .replace(/して$/, "")
47
+ .replace(/\bplease\b/gi, "")
48
+ .replace(/\n/g, " ")
49
+ .replace(/\s+/g, " ")
50
+ .trim();
51
+ if (!text)
52
+ return "";
53
+ // Infer Conventional Commit type from keywords
54
+ let type = "chore";
55
+ if (/修正|fix|bug|バグ|不具合|error|エラー|直[しす]|訂正/i.test(text))
56
+ type = "fix";
57
+ else if (/追加|add|feature|機能|実装|implement|作[ってり]|作成|新規/i.test(text))
58
+ type = "feat";
59
+ else if (/docs|ドキュメント|readme|資料|文書/i.test(text))
60
+ type = "docs";
61
+ else if (/refactor|リファクタ|整理|改善|改修/i.test(text))
62
+ type = "refactor";
63
+ else if (/test|テスト|spec/i.test(text))
64
+ type = "test";
65
+ else if (/削除|remove|delete|消[しす]/i.test(text))
66
+ type = "chore";
67
+ const prefix = `${type}: `;
68
+ const maxBody = 50 - prefix.length;
69
+ if (text.length > maxBody) {
70
+ const cut = text.substring(0, maxBody - 1);
71
+ const lastBoundary = Math.max(cut.lastIndexOf("、"), cut.lastIndexOf(","), cut.lastIndexOf(" "));
72
+ text =
73
+ lastBoundary > maxBody * 0.5
74
+ ? cut.substring(0, lastBoundary) + "…"
75
+ : cut + "…";
76
+ }
77
+ return `${prefix}${text}`;
78
+ }
79
+ /** Heuristic specificity score for a commit message. Higher = more specific. */
80
+ function specificityScore(message) {
81
+ let score = 0;
82
+ const m = message.replace(/^(feat|fix|chore|docs|style|refactor|test|perf|ci|build|revert)(\(.+?\))?!?:\s*/i, "");
83
+ // Length contributes (up to a point)
84
+ score += Math.min(m.length, 30) * 0.3;
85
+ // Penalize generic words
86
+ const genericWords = /\b(change|update|modify|fix|apply|commit|files?|stuff|things?)\b/gi;
87
+ const genericCount = (m.match(genericWords) || []).length;
88
+ score -= genericCount * 2;
89
+ // Reward specific nouns (CamelCase, ALL_CAPS, or mixed-case words)
90
+ const specificTerms = m.match(/[A-Z][a-z]+|[a-z]+[A-Z]|[A-Z]{2,}/g);
91
+ score += (specificTerms || []).length * 3;
92
+ // Reward concrete action verbs
93
+ 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;
94
+ score += (m.match(concreteVerbs) || []).length * 2;
95
+ return score;
96
+ }
97
+ /**
98
+ * If the generated message is generic, compare it against a candidate derived
99
+ * from the user's last message and return the more specific one.
100
+ *
101
+ * Uses AI comparison when available; falls back to heuristic scoring.
102
+ */
103
+ async function refineMessageIfGeneric(model, auth, ctx, generatedMessage, messages, changedFiles, lang) {
104
+ // Only refine if the generated message seems generic
105
+ if (!isGenericMessage(generatedMessage)) {
106
+ return generatedMessage;
107
+ }
108
+ // Get the last user message
109
+ const userMessages = collectMessagesByRole(messages, "user");
110
+ if (userMessages.length === 0) {
111
+ return generatedMessage;
112
+ }
113
+ const lastUserMessage = userMessages[0]; // newest first
114
+ const userCandidate = userMessageToCandidate(lastUserMessage);
115
+ if (!userCandidate) {
116
+ return generatedMessage;
117
+ }
118
+ // Quick heuristic guard: skip AI if one candidate is clearly better
119
+ const genScore = specificityScore(generatedMessage);
120
+ const userScore = specificityScore(userCandidate);
121
+ if (userScore > genScore + 5)
122
+ return userCandidate;
123
+ if (genScore > userScore + 5)
124
+ return generatedMessage;
125
+ // Scores are close — ask AI to decide
126
+ try {
127
+ const comparisonPrompt = t(lang, [
128
+ "あなたはコミットメッセージの品質評価ツールです。",
129
+ "同じ変更セットに対する2つの候補メッセージがあります。",
130
+ "",
131
+ `候補A(会話分析から生成): "${generatedMessage}"`,
132
+ `候補B(ユーザーの依頼から抽出): "${userCandidate}"`,
133
+ "",
134
+ `変更ファイル: ${changedFiles.join(", ")}`,
135
+ "",
136
+ "より**具体的で**、変更内容を正確に表している方を選び、",
137
+ "そのメッセージ文字列だけを返してください。",
138
+ "説明や補足は一切不要です。",
139
+ ].join("\n"), [
140
+ "You are a commit message quality evaluator.",
141
+ "Two candidate messages exist for the same set of changes.",
142
+ "",
143
+ `Candidate A (generated from analysis): "${generatedMessage}"`,
144
+ `Candidate B (derived from user request): "${userCandidate}"`,
145
+ "",
146
+ `Changed files: ${changedFiles.join(", ")}`,
147
+ "",
148
+ "Choose the one that is MORE SPECIFIC and accurately describes the changes.",
149
+ "Return ONLY the chosen message string. No explanations.",
150
+ ].join("\n"));
151
+ const context = {
152
+ systemPrompt: t(lang, "コミットメッセージ候補から最も具体的なものを選び、その文字列のみを返してください。", "Choose the most specific commit message candidate. Return only the chosen message string."),
153
+ messages: [
154
+ {
155
+ role: "user",
156
+ content: comparisonPrompt,
157
+ timestamp: Date.now(),
158
+ },
159
+ ],
160
+ };
161
+ const result = await completeSimple(model, context, {
162
+ apiKey: auth.apiKey,
163
+ headers: auth.headers,
164
+ signal: ctx.signal,
165
+ reasoning: "minimal",
166
+ temperature: 0,
167
+ maxTokens: 100,
168
+ });
169
+ const text = result.content
170
+ .filter((c) => c.type === "text")
171
+ .map((c) => c.text)
172
+ .join("")
173
+ .trim()
174
+ // Strip code fences if the model wraps the message
175
+ .replace(/^```[a-z]*\n?/i, "")
176
+ .replace(/\n?```$/i, "")
177
+ .trim();
178
+ // Validate the AI's choice: if it contains the user candidate, prefer that
179
+ if (userCandidate.length >= 15 &&
180
+ text.includes(userCandidate.substring(0, 15))) {
181
+ return userCandidate;
182
+ }
183
+ // If it contains the generated message's subject, keep it
184
+ if (generatedMessage.length >= 15 &&
185
+ text.includes(generatedMessage.substring(0, 15))) {
186
+ return generatedMessage;
187
+ }
188
+ // Fallback: use heuristic scores
189
+ return userScore > genScore ? userCandidate : generatedMessage;
190
+ }
191
+ catch {
192
+ // AI failed — fall back to heuristic scoring
193
+ return userScore > genScore ? userCandidate : generatedMessage;
194
+ }
195
+ }
13
196
  function getSystemPrompt(lang) {
14
- if (isJapanese(lang)) {
15
- return `あなたはコミットメッセージ生成ツールです。ユーザーのリクエストとアシスタントの応答内容から、変更の意図を推測して Conventional Commit メッセージを1つ生成してください。
197
+ return t(lang, `あなたはコミットメッセージ生成ツールです。以下の情報から、ユーザーが**何を依頼し、その結果どのような変更が行われたか**を読み取り、Conventional Commit メッセージを1つ生成してください。
198
+
199
+ 最も重要なのは「ユーザーのリクエスト」です。ユーザーが何を求めていたのかを主軸に、コミットメッセージを決定してください。アシスタントの応答と変更ファイル一覧は、そのリクエストがどのように実現されたかを補完する情報です。
16
200
 
17
201
  ルール:
18
202
  - type は feat, fix, docs, style, refactor, test, chore から選択
@@ -21,9 +205,9 @@ function getSystemPrompt(lang) {
21
205
  - スコープは推測できる場合のみ含める
22
206
  - 日本語で記述
23
207
 
24
- 返答はメッセージ文字列のみ。説明やコードフェンスは不要。`;
25
- }
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.
208
+ 返答はメッセージ文字列のみ。説明やコードフェンスは不要。`, `You are a commit message generator. From the following information, understand what the user requested and what changes were made as a result, then generate a single Conventional Commit message.
209
+
210
+ The most important input is the "user's request". Use it as the primary driver for the commit message. The assistant's response and changed files list are supplementary - they describe how the request was fulfilled.
27
211
 
28
212
  Rules:
29
213
  - Choose type from: feat, fix, docs, style, refactor, test, chore
@@ -31,7 +215,7 @@ Rules:
31
215
  - Use imperative mood
32
216
  - Include scope only if clearly inferable
33
217
 
34
- Return ONLY the commit message string. No explanations or code fences.`;
218
+ Return ONLY the commit message string. No explanations or code fences.`);
35
219
  }
36
220
  function extractTextContent(content) {
37
221
  if (typeof content === "string")
@@ -40,40 +224,77 @@ function extractTextContent(content) {
40
224
  return content
41
225
  .filter((c) => typeof c === "object" && c !== null)
42
226
  .map((c) => c.text || "")
43
- .join("");
227
+ .join("\n");
44
228
  }
45
229
  return "";
46
230
  }
47
- function findLastMessageByRole(messages, role) {
231
+ /** Collect all messages of a given role, newest first */
232
+ function collectMessagesByRole(messages, role) {
233
+ const result = [];
48
234
  for (let i = messages.length - 1; i >= 0; i--) {
49
235
  if (messages[i].role === role) {
50
- return extractTextContent(messages[i].content);
236
+ const text = extractTextContent(messages[i].content);
237
+ if (text.trim()) {
238
+ result.push(text);
239
+ }
51
240
  }
52
241
  }
53
- return "";
242
+ return result;
54
243
  }
55
- function buildPrompt(lastUserMessage, lastAssistantMessage, changedFiles, lang) {
56
- const filesStr = changedFiles.join(", ");
57
- if (isJapanese(lang)) {
58
- return `ユーザーのリクエスト:
59
- ${lastUserMessage}
244
+ /**
245
+ * Count total characters across all collected messages for truncation budgeting.
246
+ */
247
+ function totalChars(collected) {
248
+ return collected.reduce((sum, s) => sum + s.length, 0);
249
+ }
250
+ function buildPrompt(userMessages, assistantMessages, changedFiles, lang) {
251
+ // Budget: keep the whole prompt under ~4000 chars to leave room for system prompt + response
252
+ const MAX_USER_CHARS = 2000;
253
+ const MAX_ASSISTANT_CHARS = 800;
254
+ const MAX_FILES_CHARS = 800;
255
+ // Build user messages section (newest first, most relevant last in display)
256
+ const userLines = [];
257
+ let userBudget = MAX_USER_CHARS;
258
+ for (const msg of userMessages.reverse()) {
259
+ if (userBudget <= 0)
260
+ break;
261
+ const truncated = truncate(msg, userBudget);
262
+ userLines.push(truncated);
263
+ userBudget -= truncated.length;
264
+ }
265
+ const userSection = userLines.reverse().join("\n---\n");
266
+ // Build assistant messages section
267
+ const assistantLines = [];
268
+ let assistantBudget = MAX_ASSISTANT_CHARS;
269
+ for (const msg of assistantMessages.reverse()) {
270
+ if (assistantBudget <= 0)
271
+ break;
272
+ const truncated = truncate(msg, assistantBudget);
273
+ assistantLines.push(truncated);
274
+ assistantBudget -= truncated.length;
275
+ }
276
+ const assistantSection = assistantLines.reverse().join("\n---\n");
277
+ // Build files section
278
+ const filesStr = truncate(changedFiles.join(", "), MAX_FILES_CHARS);
279
+ return t(lang, `=== ユーザーのリクエスト(最重要) ===
280
+ ${userSection || "(なし)"}
60
281
 
61
- アシスタントの応答:
62
- ${lastAssistantMessage}
282
+ === アシスタントの応答(参考) ===
283
+ ${assistantSection || "(なし)"}
63
284
 
64
- 変更されたファイル: ${filesStr}
285
+ === 変更されたファイル ===
286
+ ${filesStr || "(なし)"}
65
287
 
66
- 上記から変更の意図を推測し、Conventional Commit メッセージを1つ生成してください。`;
67
- }
68
- return `User request:
69
- ${lastUserMessage}
288
+ 上記の「ユーザーのリクエスト」を主軸に、変更の意図を最もよく表す Conventional Commit メッセージを1つ生成してください。`, `=== USER REQUEST (primary) ===
289
+ ${userSection || "(none)"}
70
290
 
71
- Assistant response:
72
- ${lastAssistantMessage}
291
+ === ASSISTANT RESPONSE (reference) ===
292
+ ${assistantSection || "(none)"}
73
293
 
74
- Changed files: ${filesStr}
294
+ === CHANGED FILES ===
295
+ ${filesStr || "(none)"}
75
296
 
76
- Based on the above, infer the intent of the changes and generate a single Conventional Commit message.`;
297
+ Based primarily on the USER REQUEST above, generate a single Conventional Commit message that best captures the intent of the changes.`);
77
298
  }
78
299
  export async function generateAutoCommitMessage(_pi, ctx, messages, changedFiles) {
79
300
  const model = resolveModel(ctx);
@@ -85,9 +306,10 @@ export async function generateAutoCommitMessage(_pi, ctx, messages, changedFiles
85
306
  return sanitizeCommitMessage("chore: apply changes", changedFiles);
86
307
  }
87
308
  const lang = getLanguage(ctx.cwd);
88
- const lastUserMessage = findLastMessageByRole(messages, "user");
89
- const lastAssistantMessage = findLastMessageByRole(messages, "assistant");
90
- if (!lastUserMessage) {
309
+ // Collect ALL user messages and assistant messages for rich context
310
+ const userMessages = collectMessagesByRole(messages, "user");
311
+ const assistantMessages = collectMessagesByRole(messages, "assistant");
312
+ if (userMessages.length === 0) {
91
313
  return sanitizeCommitMessage("chore: apply changes", changedFiles);
92
314
  }
93
315
  try {
@@ -96,7 +318,7 @@ export async function generateAutoCommitMessage(_pi, ctx, messages, changedFiles
96
318
  messages: [
97
319
  {
98
320
  role: "user",
99
- content: buildPrompt(lastUserMessage, lastAssistantMessage, changedFiles, lang),
321
+ content: buildPrompt(userMessages, assistantMessages, changedFiles, lang),
100
322
  timestamp: Date.now(),
101
323
  },
102
324
  ],
@@ -112,7 +334,10 @@ export async function generateAutoCommitMessage(_pi, ctx, messages, changedFiles
112
334
  .map((c) => c.text)
113
335
  .join("")
114
336
  .trim();
115
- return sanitizeCommitMessage(text || "chore: apply changes", changedFiles);
337
+ const commitMessage = sanitizeCommitMessage(text || "chore: apply changes", changedFiles);
338
+ // If the generated message is too generic, compare with a user-message
339
+ // candidate and pick the more specific one (heuristic → AI comparison)
340
+ return await refineMessageIfGeneric(model, auth, ctx, commitMessage, messages, changedFiles, lang);
116
341
  }
117
342
  catch {
118
343
  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":"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"}
1
+ {"version":3,"file":"auto-commit-message.js","sourceRoot":"","sources":["../../src/core/auto-commit-message.ts"],"names":[],"mappings":"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"}
@@ -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,CAuFf"}
@@ -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,7 +32,6 @@ 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
35
  await footerManager.setRunning("auto-commit", "generateMessage");
37
36
  try {
38
37
  const { stdout: statusOutput } = await pi.exec("git", ["status", "--short"], { cwd: ctx.cwd });
@@ -52,12 +51,10 @@ export async function handleAutoCommit(pi, ctx, event) {
52
51
  const { code: exitCode, stderr } = await pi.exec("git", ["commit", "-m", commitMessage], { cwd: ctx.cwd });
53
52
  if (exitCode !== 0) {
54
53
  await resetStaging(pi, ctx.cwd);
55
- ctx.ui.notify(ja ? `コミットに失敗しました: ${stderr}` : `Commit failed: ${stderr}`, "warning");
54
+ ctx.ui.notify(t(lang, `コミットに失敗しました: ${stderr}`, `Commit failed: ${stderr}`), "warning");
56
55
  }
57
56
  else {
58
- ctx.ui.notify(ja
59
- ? `コミットを作成しました: ${commitMessage}`
60
- : `Created commit: ${commitMessage}`, "info");
57
+ ctx.ui.notify(t(lang, `コミットを作成しました: ${commitMessage}`, `Created commit: ${commitMessage}`), "info");
61
58
  }
62
59
  }
63
60
  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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"}
@@ -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;AAqQnD,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"}
@@ -6,21 +6,18 @@
6
6
  */
7
7
  import { completeSimple } from "@earendil-works/pi-ai";
8
8
  import { footerManager } from "../utils/footer-manager.js";
9
- import { isJapanese } from "../utils/lang.js";
9
+ import { t } from "../utils/lang.js";
10
10
  import { getLanguage } from "../utils/settings.js";
11
11
  import { sanitizeHunk } from "./commit-message.js";
12
12
  import { resolveModel } from "./resolve-model.js";
13
13
  /** Maximum diff bytes to send to the AI (truncated if larger) */
14
14
  const MAX_DIFF_BYTES = 30_000;
15
- /** Files threshold: skip AI analysis when ≤ this many files changed */
16
- const FAST_PATH_FILE_LIMIT = 5;
17
15
  /** Max files per AI analysis batch (split large diffs for progress visibility) */
18
16
  const FILES_PER_BATCH = 8;
19
17
  /** Maximum output tokens for the AI completion (hunk JSON is small) */
20
18
  const MAX_OUTPUT_TOKENS = 1024;
21
19
  function getSystemPrompt(lang) {
22
- if (isJapanese(lang)) {
23
- return `git diffを論理的なhunkに分割してください。
20
+ return t(lang, `git diffを論理的なhunkに分割してください。
24
21
 
25
22
  ルール:
26
23
  - 各hunk = 単一の論理的な変更(例:「機能Xを追加」「バグYを修正」)
@@ -34,9 +31,7 @@ function getSystemPrompt(lang) {
34
31
  ]
35
32
 
36
33
  メッセージ形式: Conventional Commits (feat, fix, docs, style, refactor, test, chore)。
37
- サブジェクトは50文字以内。日本語で記述。`;
38
- }
39
- return `Split git diff into logical hunks.
34
+ サブジェクトは50文字以内。日本語で記述。`, `Split git diff into logical hunks.
40
35
 
41
36
  Rules:
42
37
  - Each hunk = single logical change (e.g., "add feature X", "fix bug Y")
@@ -50,25 +45,22 @@ Return ONLY a JSON array:
50
45
  ]
51
46
 
52
47
  Message format: Conventional Commits (feat, fix, docs, style, refactor, test, chore).
53
- Keep subject under 50 chars. Use imperative mood.`;
48
+ Keep subject under 50 chars. Use imperative mood.`);
54
49
  }
55
50
  function buildPrompt(diff, lang) {
56
- if (isJapanese(lang)) {
57
- return `以下のgit diffを分析し、論理的なhunkに分割してください:
51
+ return t(lang, `以下のgit diffを分析し、論理的なhunkに分割してください:
58
52
 
59
53
  \`\`\`diff
60
54
  ${diff}
61
55
  \`\`\`
62
56
 
63
- 指定された形式のJSON配列のみを返してください。`;
64
- }
65
- return `Here is the git diff to analyze. Split it into logical hunks:
57
+ 指定された形式のJSON配列のみを返してください。`, `Here is the git diff to analyze. Split it into logical hunks:
66
58
 
67
59
  \`\`\`diff
68
60
  ${diff}
69
61
  \`\`\`
70
62
 
71
- Respond with ONLY a JSON array of hunks as specified.`;
63
+ Respond with ONLY a JSON array of hunks as specified.`);
72
64
  }
73
65
  function parseHunks(text) {
74
66
  // Extract JSON from the response (handle code fences)
@@ -244,10 +236,6 @@ async function callAIForDiff(model, auth, ctx, diff, langOverride) {
244
236
  export async function analyzeDiff(_pi, ctx, diff, langOverride) {
245
237
  const fileCount = countFilesInDiff(diff);
246
238
  const lang = langOverride ?? getLanguage(ctx.cwd);
247
- // Fast path: few files → instant fallback, skip AI call entirely
248
- if (fileCount <= FAST_PATH_FILE_LIMIT) {
249
- return fallbackFileBasedHunks(diff);
250
- }
251
239
  const model = resolveModel(ctx);
252
240
  if (!model) {
253
241
  return fallbackFileBasedHunks(diff);
@@ -315,7 +303,7 @@ export function processHunks(hunks) {
315
303
  /**
316
304
  * Split a full diff into per-file diff line arrays, keyed by file path.
317
305
  */
318
- export function splitDiffByFile(fullDiff) {
306
+ function splitDiffByFile(fullDiff) {
319
307
  const result = new Map();
320
308
  const lines = fullDiff.split("\n");
321
309
  let currentFile = null;
@@ -343,7 +331,7 @@ export function splitDiffByFile(fullDiff) {
343
331
  /**
344
332
  * Parse addition/deletion counts for each file from a full diff.
345
333
  */
346
- export function parseDiffStats(fullDiff) {
334
+ function parseDiffStats(fullDiff) {
347
335
  const result = new Map();
348
336
  const lines = fullDiff.split("\n");
349
337
  let currentFile = null;
@@ -1 +1 @@
1
- {"version":3,"file":"diff-analyzer.js","sourceRoot":"","sources":["../../src/core/diff-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-analyzer.js","sourceRoot":"","sources":["../../src/core/diff-analyzer.ts"],"names":[],"mappings":"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"}