@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.
- package/README.ja.md +3 -30
- package/README.md +3 -30
- package/dist/commands/agg-commit.d.ts.map +1 -1
- package/dist/commands/agg-commit.js +27 -38
- package/dist/commands/agg-commit.js.map +1 -1
- package/dist/commands/auto-agg-commit.d.ts.map +1 -1
- package/dist/commands/auto-agg-commit.js +11 -68
- package/dist/commands/auto-agg-commit.js.map +1 -1
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +55 -70
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/diagnostics.d.ts +12 -0
- package/dist/commands/diagnostics.d.ts.map +1 -0
- package/dist/commands/diagnostics.js +59 -0
- package/dist/commands/diagnostics.js.map +1 -0
- package/dist/core/auto-commit-message.d.ts +2 -2
- package/dist/core/auto-commit-message.d.ts.map +1 -1
- package/dist/core/auto-commit-message.js +239 -58
- package/dist/core/auto-commit-message.js.map +1 -1
- package/dist/core/auto-commit.d.ts.map +1 -1
- package/dist/core/auto-commit.js +4 -8
- package/dist/core/auto-commit.js.map +1 -1
- package/dist/core/commit-message.d.ts.map +1 -1
- package/dist/core/commit-message.js +3 -0
- package/dist/core/commit-message.js.map +1 -1
- package/dist/core/diff-analyzer.d.ts +1 -9
- package/dist/core/diff-analyzer.d.ts.map +1 -1
- package/dist/core/diff-analyzer.js +75 -75
- package/dist/core/diff-analyzer.js.map +1 -1
- package/dist/core/git.d.ts +5 -28
- package/dist/core/git.d.ts.map +1 -1
- package/dist/core/git.js +19 -68
- package/dist/core/git.js.map +1 -1
- package/dist/i18n/messages.d.ts +107 -0
- package/dist/i18n/messages.d.ts.map +1 -0
- package/dist/i18n/messages.js +135 -0
- package/dist/i18n/messages.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -22
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +0 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/diagnostics.d.ts +33 -0
- package/dist/utils/diagnostics.d.ts.map +1 -0
- package/dist/utils/diagnostics.js +32 -0
- package/dist/utils/diagnostics.js.map +1 -0
- package/dist/utils/footer-manager.d.ts.map +1 -1
- package/dist/utils/footer-manager.js +6 -9
- package/dist/utils/footer-manager.js.map +1 -1
- package/dist/utils/lang.d.ts +13 -7
- package/dist/utils/lang.d.ts.map +1 -1
- package/dist/utils/lang.js +21 -10
- package/dist/utils/lang.js.map +1 -1
- package/dist/utils/settings.d.ts +13 -5
- package/dist/utils/settings.d.ts.map +1 -1
- package/dist/utils/settings.js +65 -13
- package/dist/utils/settings.js.map +1 -1
- package/package.json +6 -2
- package/dist/commands/branch.d.ts +0 -8
- package/dist/commands/branch.d.ts.map +0 -1
- package/dist/commands/branch.js +0 -197
- package/dist/commands/branch.js.map +0 -1
- package/dist/commands/git-diff.d.ts +0 -10
- package/dist/commands/git-diff.d.ts.map +0 -1
- package/dist/commands/git-diff.js +0 -228
- package/dist/commands/git-diff.js.map +0 -1
- package/dist/commands/git-log.d.ts +0 -8
- package/dist/commands/git-log.d.ts.map +0 -1
- package/dist/commands/git-log.js +0 -100
- package/dist/commands/git-log.js.map +0 -1
- package/dist/tui/hunk-review.d.ts +0 -51
- package/dist/tui/hunk-review.d.ts.map +0 -1
- package/dist/tui/hunk-review.js +0 -296
- package/dist/tui/hunk-review.js.map +0 -1
|
@@ -5,98 +5,102 @@
|
|
|
5
5
|
* logical hunks with Conventional Commits messages.
|
|
6
6
|
*/
|
|
7
7
|
import { completeSimple } from "@earendil-works/pi-ai";
|
|
8
|
+
import { diagIncr } from "../utils/diagnostics.js";
|
|
8
9
|
import { footerManager } from "../utils/footer-manager.js";
|
|
9
|
-
import {
|
|
10
|
+
import { t } from "../utils/lang.js";
|
|
10
11
|
import { getLanguage } from "../utils/settings.js";
|
|
11
12
|
import { sanitizeHunk } from "./commit-message.js";
|
|
12
13
|
import { resolveModel } from "./resolve-model.js";
|
|
13
14
|
/** Maximum diff bytes to send to the AI (truncated if larger) */
|
|
14
15
|
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
16
|
/** Max files per AI analysis batch (split large diffs for progress visibility) */
|
|
18
17
|
const FILES_PER_BATCH = 8;
|
|
19
18
|
/** Maximum output tokens for the AI completion (hunk JSON is small) */
|
|
20
19
|
const MAX_OUTPUT_TOKENS = 1024;
|
|
21
20
|
function getSystemPrompt(lang) {
|
|
22
|
-
|
|
23
|
-
return `git diffを論理的なhunkに分割してください。
|
|
24
|
-
|
|
25
|
-
ルール:
|
|
26
|
-
- 各hunk = 単一の論理的な変更(例:「機能Xを追加」「バグYを修正」)
|
|
27
|
-
- 関連するファイル変更はグループ化する
|
|
28
|
-
- 1ファイルに独立した複数の変更がある場合は分割する
|
|
29
|
-
|
|
30
|
-
以下のJSON配列のみを返してください:
|
|
31
|
-
[
|
|
32
|
-
{"files": ["path/to/file1.ts", "path/to/file2.ts"], "message": "feat: 機能を追加"},
|
|
33
|
-
{"files": ["path/to/file3.ts"], "message": "fix: バグを修正"}
|
|
34
|
-
]
|
|
35
|
-
|
|
36
|
-
メッセージ形式: Conventional Commits (feat, fix, docs, style, refactor, test, chore)。
|
|
37
|
-
サブジェクトは50文字以内。日本語で記述。`;
|
|
38
|
-
}
|
|
39
|
-
return `Split git diff into logical hunks.
|
|
40
|
-
|
|
41
|
-
Rules:
|
|
42
|
-
- Each hunk = single logical change (e.g., "add feature X", "fix bug Y")
|
|
43
|
-
- Group related file changes together
|
|
44
|
-
- Split independent changes within one file into separate hunks
|
|
45
|
-
|
|
46
|
-
Return ONLY a JSON array:
|
|
47
|
-
[
|
|
48
|
-
{"files": ["path/to/file1.ts", "path/to/file2.ts"], "message": "feat(scope): add feature"},
|
|
49
|
-
{"files": ["path/to/file3.ts"], "message": "fix: resolve null check"}
|
|
50
|
-
]
|
|
51
|
-
|
|
52
|
-
Message format: Conventional Commits (feat, fix, docs, style, refactor, test, chore).
|
|
53
|
-
Keep subject under 50 chars. Use imperative mood.`;
|
|
21
|
+
return t(lang, "diffAnalyzer.systemPrompt");
|
|
54
22
|
}
|
|
55
23
|
function buildPrompt(diff, lang) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
24
|
+
const examples = t(lang, "diffAnalyzer.examples");
|
|
25
|
+
return t(lang, "diffAnalyzer.buildPrompt", { diff, examples });
|
|
26
|
+
}
|
|
27
|
+
/** Pattern to extract {files, message} pairs from broken JSON */
|
|
28
|
+
const HUNK_PAIR_PATTERN = /\{\s*"files"\s*:\s*\[([^\]]*)\]\s*,?\s*"message"\s*:\s*"((?:[^"\\]|\\.)*)"\s*\}/gs;
|
|
29
|
+
/** Try JSON.parse and return typed Hunks, or null on any failure */
|
|
30
|
+
function tryParseHunkJSON(text) {
|
|
31
|
+
try {
|
|
32
|
+
const parsed = JSON.parse(text);
|
|
33
|
+
if (!Array.isArray(parsed))
|
|
34
|
+
return null;
|
|
35
|
+
return parsed
|
|
36
|
+
.map((item) => {
|
|
37
|
+
if (typeof item !== "object" || item === null)
|
|
38
|
+
return null;
|
|
39
|
+
const hunk = item;
|
|
40
|
+
const files = Array.isArray(hunk.files)
|
|
41
|
+
? hunk.files.filter((f) => typeof f === "string")
|
|
42
|
+
: [];
|
|
43
|
+
const message = typeof hunk.message === "string"
|
|
44
|
+
? hunk.message
|
|
45
|
+
: "chore: update files";
|
|
46
|
+
return { files, message };
|
|
47
|
+
})
|
|
48
|
+
.filter((h) => h !== null);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Regex-based extraction of hunk pairs from broken JSON */
|
|
55
|
+
function tryRegexExtractHunks(text) {
|
|
56
|
+
const hunks = [];
|
|
57
|
+
const pattern = new RegExp(HUNK_PAIR_PATTERN.source, "gs");
|
|
58
|
+
let match;
|
|
59
|
+
while ((match = pattern.exec(text)) !== null) {
|
|
60
|
+
const filesStr = match[1];
|
|
61
|
+
const message = match[2].replace(/\\"/g, '"');
|
|
62
|
+
// Parse file paths from the captured array segment
|
|
63
|
+
const fileMatches = filesStr.match(/"((?:[^"\\]|\\.)*)"/g);
|
|
64
|
+
const files = fileMatches
|
|
65
|
+
? fileMatches.map((f) => f.slice(1, -1).replace(/\\"/g, '"'))
|
|
66
|
+
: [];
|
|
67
|
+
if (files.length > 0 && message.length > 0) {
|
|
68
|
+
hunks.push({ files, message });
|
|
69
|
+
}
|
|
64
70
|
}
|
|
65
|
-
return
|
|
66
|
-
|
|
67
|
-
\`\`\`diff
|
|
68
|
-
${diff}
|
|
69
|
-
\`\`\`
|
|
70
|
-
|
|
71
|
-
Respond with ONLY a JSON array of hunks as specified.`;
|
|
71
|
+
return hunks;
|
|
72
72
|
}
|
|
73
73
|
function parseHunks(text) {
|
|
74
|
-
// Extract JSON from the response (handle code fences)
|
|
75
74
|
let jsonText = text.trim();
|
|
75
|
+
// Layer 1: Extract JSON from code fences
|
|
76
76
|
const codeFenceMatch = jsonText.match(/```(?:json)?\s*([\s\S]*?)```/);
|
|
77
77
|
if (codeFenceMatch) {
|
|
78
78
|
jsonText = codeFenceMatch[1].trim();
|
|
79
79
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
// Layer 2: Direct JSON.parse
|
|
81
|
+
const direct = tryParseHunkJSON(jsonText);
|
|
82
|
+
if (direct) {
|
|
83
|
+
diagIncr("parseLayer2_directJSON");
|
|
84
|
+
return direct;
|
|
85
|
+
}
|
|
86
|
+
// Layer 3: Strip trailing non-JSON text and retry
|
|
87
|
+
const lastBracket = jsonText.lastIndexOf("]");
|
|
88
|
+
if (lastBracket > 0) {
|
|
89
|
+
const trimmed = jsonText.substring(0, lastBracket + 1).trim();
|
|
90
|
+
const trimmedResult = tryParseHunkJSON(trimmed);
|
|
91
|
+
if (trimmedResult) {
|
|
92
|
+
diagIncr("parseLayer3_trailingStrip");
|
|
93
|
+
return trimmedResult;
|
|
84
94
|
}
|
|
85
|
-
return parsed.map((item) => {
|
|
86
|
-
if (typeof item !== "object" || item === null) {
|
|
87
|
-
throw new Error("Invalid hunk item");
|
|
88
|
-
}
|
|
89
|
-
const hunk = item;
|
|
90
|
-
const files = Array.isArray(hunk.files)
|
|
91
|
-
? hunk.files.filter((f) => typeof f === "string")
|
|
92
|
-
: [];
|
|
93
|
-
const message = typeof hunk.message === "string" ? hunk.message : "chore: update files";
|
|
94
|
-
return { files, message };
|
|
95
|
-
});
|
|
96
95
|
}
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
// Layer 4: Regex pair extraction from malformed JSON
|
|
97
|
+
const regexResult = tryRegexExtractHunks(jsonText);
|
|
98
|
+
if (regexResult.length > 0) {
|
|
99
|
+
diagIncr("parseLayer4_regexExtract");
|
|
100
|
+
return regexResult;
|
|
99
101
|
}
|
|
102
|
+
diagIncr("parseFallback_fileBased");
|
|
103
|
+
return [];
|
|
100
104
|
}
|
|
101
105
|
function fallbackFileBasedHunks(diff) {
|
|
102
106
|
// Parse diff to extract file paths
|
|
@@ -244,10 +248,6 @@ async function callAIForDiff(model, auth, ctx, diff, langOverride) {
|
|
|
244
248
|
export async function analyzeDiff(_pi, ctx, diff, langOverride) {
|
|
245
249
|
const fileCount = countFilesInDiff(diff);
|
|
246
250
|
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
251
|
const model = resolveModel(ctx);
|
|
252
252
|
if (!model) {
|
|
253
253
|
return fallbackFileBasedHunks(diff);
|
|
@@ -261,7 +261,7 @@ export async function analyzeDiff(_pi, ctx, diff, langOverride) {
|
|
|
261
261
|
const batches = splitDiffIntoBatches(diff, FILES_PER_BATCH);
|
|
262
262
|
const allHunks = [];
|
|
263
263
|
for (let i = 0; i < batches.length; i++) {
|
|
264
|
-
|
|
264
|
+
await footerManager.setCommitProgress(i + 1, batches.length);
|
|
265
265
|
try {
|
|
266
266
|
const hunks = await callAIForDiff(model, auth, ctx, batches[i], lang);
|
|
267
267
|
if (hunks.length > 0) {
|
|
@@ -315,7 +315,7 @@ export function processHunks(hunks) {
|
|
|
315
315
|
/**
|
|
316
316
|
* Split a full diff into per-file diff line arrays, keyed by file path.
|
|
317
317
|
*/
|
|
318
|
-
|
|
318
|
+
function splitDiffByFile(fullDiff) {
|
|
319
319
|
const result = new Map();
|
|
320
320
|
const lines = fullDiff.split("\n");
|
|
321
321
|
let currentFile = null;
|
|
@@ -343,7 +343,7 @@ export function splitDiffByFile(fullDiff) {
|
|
|
343
343
|
/**
|
|
344
344
|
* Parse addition/deletion counts for each file from a full diff.
|
|
345
345
|
*/
|
|
346
|
-
|
|
346
|
+
function parseDiffStats(fullDiff) {
|
|
347
347
|
const result = new Map();
|
|
348
348
|
const lines = fullDiff.split("\n");
|
|
349
349
|
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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"}
|
package/dist/core/git.d.ts
CHANGED
|
@@ -4,47 +4,24 @@
|
|
|
4
4
|
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
5
5
|
export declare function isGitRepository(pi: ExtensionAPI, cwd?: string): Promise<boolean>;
|
|
6
6
|
export declare function getStatus(pi: ExtensionAPI, cwd?: string): Promise<string>;
|
|
7
|
+
/** Check for unmerged paths (merge conflicts) */
|
|
8
|
+
export declare function hasUnmergedPaths(pi: ExtensionAPI, cwd?: string): Promise<boolean>;
|
|
7
9
|
export declare function hasChanges(pi: ExtensionAPI, cwd?: string): Promise<boolean>;
|
|
8
10
|
export declare function stageFiles(pi: ExtensionAPI, files: string[], cwd?: string): Promise<void>;
|
|
9
11
|
export declare function resetStaging(pi: ExtensionAPI, cwd?: string): Promise<void>;
|
|
10
|
-
export declare function getCurrentBranch(pi: ExtensionAPI, cwd?: string): Promise<string>;
|
|
11
|
-
export declare function getBranches(pi: ExtensionAPI, cwd?: string): Promise<{
|
|
12
|
-
name: string;
|
|
13
|
-
isRemote: boolean;
|
|
14
|
-
}[]>;
|
|
15
|
-
export declare function switchBranch(pi: ExtensionAPI, branch: string, cwd?: string): Promise<{
|
|
16
|
-
success: boolean;
|
|
17
|
-
message: string;
|
|
18
|
-
}>;
|
|
19
|
-
export declare function createAndSwitchBranch(pi: ExtensionAPI, branch: string, cwd?: string): Promise<{
|
|
20
|
-
success: boolean;
|
|
21
|
-
message: string;
|
|
22
|
-
}>;
|
|
23
|
-
export declare function deleteBranch(pi: ExtensionAPI, branch: string, cwd?: string): Promise<{
|
|
24
|
-
success: boolean;
|
|
25
|
-
message: string;
|
|
26
|
-
}>;
|
|
27
12
|
/**
|
|
28
13
|
* Check that the working directory is a git repository with pending changes.
|
|
29
14
|
* Returns null if ready, or a failure reason string.
|
|
30
15
|
*/
|
|
31
|
-
export declare function ensureReadyToCommit(pi: ExtensionAPI, cwd?: string): Promise<"not_git_repo" | "no_changes" | null>;
|
|
32
|
-
/**
|
|
33
|
-
* Get git log with specified options
|
|
34
|
-
*/
|
|
35
|
-
export declare function getLog(pi: ExtensionAPI, options: {
|
|
36
|
-
maxCount?: number | "all";
|
|
37
|
-
all?: boolean;
|
|
38
|
-
graph?: boolean;
|
|
39
|
-
}, cwd?: string): Promise<string>;
|
|
16
|
+
export declare function ensureReadyToCommit(pi: ExtensionAPI, cwd?: string): Promise<"not_git_repo" | "merge_conflict" | "no_changes" | null>;
|
|
40
17
|
/**
|
|
41
18
|
* Collect the full working tree diff by stashing changes (including untracked
|
|
42
19
|
* files), capturing the stash diff, and popping the stash to restore the
|
|
43
20
|
* working tree. This "freezes" the diff so concurrent edits do not affect
|
|
44
21
|
* analysis.
|
|
45
22
|
*
|
|
46
|
-
* @returns The diff string, or `null` if the stash operation failed
|
|
47
|
-
* An empty string means there are no effective changes.
|
|
23
|
+
* @returns The diff string, or `null` if the stash operation failed
|
|
24
|
+
* (push or show). An empty string means there are no effective changes.
|
|
48
25
|
*/
|
|
49
26
|
export declare function collectDiff(pi: ExtensionAPI, cwd?: string): Promise<string | null>;
|
|
50
27
|
//# sourceMappingURL=git.d.ts.map
|
package/dist/core/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAapE,wBAAsB,eAAe,CACnC,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,SAAS,CAC7B,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAYjB;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAapE,wBAAsB,eAAe,CACnC,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,SAAS,CAC7B,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAYjB;AAKD,iDAAiD;AACjD,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,GAAG,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAAC,CAWlE;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoCxB"}
|
package/dist/core/git.js
CHANGED
|
@@ -24,6 +24,16 @@ export async function getStatus(pi, cwd) {
|
|
|
24
24
|
}
|
|
25
25
|
return stdout;
|
|
26
26
|
}
|
|
27
|
+
/** Unmerged path status codes in git status --porcelain XY format */
|
|
28
|
+
const UNMERGED_CODES = ["DD", "AU", "UD", "UA", "DU", "AA", "UU"];
|
|
29
|
+
/** Check for unmerged paths (merge conflicts) */
|
|
30
|
+
export async function hasUnmergedPaths(pi, cwd) {
|
|
31
|
+
const status = await getStatus(pi, cwd);
|
|
32
|
+
return status.split("\n").some((line) => {
|
|
33
|
+
const xy = line.substring(0, 2);
|
|
34
|
+
return UNMERGED_CODES.includes(xy);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
27
37
|
export async function hasChanges(pi, cwd) {
|
|
28
38
|
const status = await getStatus(pi, cwd);
|
|
29
39
|
return status.trim().length > 0;
|
|
@@ -42,51 +52,6 @@ export async function resetStaging(pi, cwd) {
|
|
|
42
52
|
throw new GitError("Failed to reset staging area", "git reset", code);
|
|
43
53
|
}
|
|
44
54
|
}
|
|
45
|
-
export async function getCurrentBranch(pi, cwd) {
|
|
46
|
-
const { stdout, code } = await pi.exec("git", ["branch", "--show-current"], {
|
|
47
|
-
cwd,
|
|
48
|
-
});
|
|
49
|
-
if (code !== 0) {
|
|
50
|
-
throw new GitError("Failed to get current branch", "git branch --show-current", code);
|
|
51
|
-
}
|
|
52
|
-
return stdout.trim();
|
|
53
|
-
}
|
|
54
|
-
export async function getBranches(pi, cwd) {
|
|
55
|
-
const { stdout, code } = await pi.exec("git", ["branch", "-a", "--format=%(refname:short)"], { cwd });
|
|
56
|
-
if (code !== 0) {
|
|
57
|
-
throw new GitError("Failed to get branches", "git branch -a", code);
|
|
58
|
-
}
|
|
59
|
-
return stdout
|
|
60
|
-
.split("\n")
|
|
61
|
-
.filter((line) => line.trim())
|
|
62
|
-
.map((name) => ({
|
|
63
|
-
name: name.trim(),
|
|
64
|
-
isRemote: name.startsWith("origin/"),
|
|
65
|
-
}));
|
|
66
|
-
}
|
|
67
|
-
export async function switchBranch(pi, branch, cwd) {
|
|
68
|
-
const { stdout, stderr, code } = await pi.exec("git", ["switch", branch], {
|
|
69
|
-
cwd,
|
|
70
|
-
});
|
|
71
|
-
if (code !== 0) {
|
|
72
|
-
return { success: false, message: stderr || stdout };
|
|
73
|
-
}
|
|
74
|
-
return { success: true, message: stdout };
|
|
75
|
-
}
|
|
76
|
-
export async function createAndSwitchBranch(pi, branch, cwd) {
|
|
77
|
-
const { stdout, stderr, code } = await pi.exec("git", ["switch", "-c", branch], { cwd });
|
|
78
|
-
if (code !== 0) {
|
|
79
|
-
return { success: false, message: stderr || stdout };
|
|
80
|
-
}
|
|
81
|
-
return { success: true, message: stdout };
|
|
82
|
-
}
|
|
83
|
-
export async function deleteBranch(pi, branch, cwd) {
|
|
84
|
-
const { stdout, stderr, code } = await pi.exec("git", ["branch", "-d", branch], { cwd });
|
|
85
|
-
if (code !== 0) {
|
|
86
|
-
return { success: false, message: stderr || stdout };
|
|
87
|
-
}
|
|
88
|
-
return { success: true, message: stdout };
|
|
89
|
-
}
|
|
90
55
|
/**
|
|
91
56
|
* Check that the working directory is a git repository with pending changes.
|
|
92
57
|
* Returns null if ready, or a failure reason string.
|
|
@@ -95,39 +60,22 @@ export async function ensureReadyToCommit(pi, cwd) {
|
|
|
95
60
|
if (!(await isGitRepository(pi, cwd))) {
|
|
96
61
|
return "not_git_repo";
|
|
97
62
|
}
|
|
63
|
+
if (await hasUnmergedPaths(pi, cwd)) {
|
|
64
|
+
return "merge_conflict";
|
|
65
|
+
}
|
|
98
66
|
if (!(await hasChanges(pi, cwd))) {
|
|
99
67
|
return "no_changes";
|
|
100
68
|
}
|
|
101
69
|
return null;
|
|
102
70
|
}
|
|
103
|
-
/**
|
|
104
|
-
* Get git log with specified options
|
|
105
|
-
*/
|
|
106
|
-
export async function getLog(pi, options, cwd) {
|
|
107
|
-
const args = ["log", "--oneline", "--decorate", "--color=always"];
|
|
108
|
-
if (options.maxCount !== "all" && options.maxCount !== undefined) {
|
|
109
|
-
args.push(`-n`, String(options.maxCount));
|
|
110
|
-
}
|
|
111
|
-
if (options.all) {
|
|
112
|
-
args.push("--all");
|
|
113
|
-
}
|
|
114
|
-
if (options.graph) {
|
|
115
|
-
args.push("--graph");
|
|
116
|
-
}
|
|
117
|
-
const { stdout, code } = await pi.exec("git", args, { cwd });
|
|
118
|
-
if (code !== 0) {
|
|
119
|
-
throw new GitError("Failed to get git log", `git ${args.join(" ")}`, code);
|
|
120
|
-
}
|
|
121
|
-
return stdout;
|
|
122
|
-
}
|
|
123
71
|
/**
|
|
124
72
|
* Collect the full working tree diff by stashing changes (including untracked
|
|
125
73
|
* files), capturing the stash diff, and popping the stash to restore the
|
|
126
74
|
* working tree. This "freezes" the diff so concurrent edits do not affect
|
|
127
75
|
* analysis.
|
|
128
76
|
*
|
|
129
|
-
* @returns The diff string, or `null` if the stash operation failed
|
|
130
|
-
* An empty string means there are no effective changes.
|
|
77
|
+
* @returns The diff string, or `null` if the stash operation failed
|
|
78
|
+
* (push or show). An empty string means there are no effective changes.
|
|
131
79
|
*/
|
|
132
80
|
export async function collectDiff(pi, cwd) {
|
|
133
81
|
const { code: stashCode } = await pi.exec("git", ["stash", "push", "-u", "-m", "pi-git"], { cwd });
|
|
@@ -136,7 +84,10 @@ export async function collectDiff(pi, cwd) {
|
|
|
136
84
|
}
|
|
137
85
|
let diff = "";
|
|
138
86
|
try {
|
|
139
|
-
const { stdout: stashDiff } = await pi.exec("git", ["stash", "show", "-p", "stash@{0}"], { cwd });
|
|
87
|
+
const { stdout: stashDiff, code: showCode } = await pi.exec("git", ["stash", "show", "-p", "stash@{0}"], { cwd });
|
|
88
|
+
if (showCode !== 0) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
140
91
|
diff = stashDiff;
|
|
141
92
|
// stash@{0}^3 contains untracked files when -u was used
|
|
142
93
|
const { stdout: untrackedDiff, code: untrackedCode } = await pi.exec("git", ["diff", "HEAD", "stash@{0}^3"], { cwd });
|
package/dist/core/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,QAAS,SAAQ,KAAK;IAGR;IACA;IAHlB,YACE,OAAe,EACC,OAAe,EACf,IAAY;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAQ;QAG5B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAgB,EAChB,GAAY;IAEZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3E,OAAO,IAAI,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAgB,EAChB,GAAY;IAEZ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;QACvE,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAChB,0BAA0B,EAC1B,wBAAwB,EACxB,IAAI,CACL,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n message catalog for pi-git.
|
|
3
|
+
*
|
|
4
|
+
* All user-facing strings live here, keyed by domain.
|
|
5
|
+
* The `t()` function in lang.ts resolves keys against this catalog.
|
|
6
|
+
*
|
|
7
|
+
* To add a language: add a new top-level key with the same MessageKey set.
|
|
8
|
+
*/
|
|
9
|
+
export declare const messages: {
|
|
10
|
+
readonly en: {
|
|
11
|
+
readonly "footer.prepare": "{prefix} Preparing...";
|
|
12
|
+
readonly "footer.collectDiff": "{prefix} Collecting diff...";
|
|
13
|
+
readonly "footer.analyze": "{prefix} Analyzing hunks...";
|
|
14
|
+
readonly "footer.generateMessage": "{prefix} Generating messages...";
|
|
15
|
+
readonly "footer.commit": "{prefix} Committing...";
|
|
16
|
+
readonly "aggCommit.help": "/git-agg-commit [--lang=<lang>] [--help]\n\nOptions:\n --lang=<lang> Temporarily override language (not saved)\n --help Show this help message";
|
|
17
|
+
readonly "aggCommit.alreadyRunning": "git-agg-commit is already running. Please wait for it to complete.";
|
|
18
|
+
readonly "autoAggCommit.help": "/git-auto-agg-commit [on|off|toggle] [--help]\n\nSubcommands:\n on Enable auto git-agg-commit\n off Disable auto git-agg-commit\n toggle Toggle auto git-agg-commit\n\nFlags:\n --help Show this help message\n\nWhen called without arguments, shows the current status.";
|
|
19
|
+
readonly "autoAggCommit.status": "[pi-git] Auto git-agg-commit is {status}";
|
|
20
|
+
readonly "autoAggCommit.enabled": "enabled";
|
|
21
|
+
readonly "autoAggCommit.disabled": "disabled";
|
|
22
|
+
readonly "autoAggCommit.invalidArg": "[pi-git] Invalid argument. Use \"on\", \"off\", or \"toggle\"";
|
|
23
|
+
readonly "autoAggCommit.enabledLocal": "[pi-git] Auto git-agg-commit {status} (local config)";
|
|
24
|
+
readonly "autoAggCommit.enabledGlobal": "[pi-git] Auto git-agg-commit {status} (global config — outside git repo)";
|
|
25
|
+
readonly "config.help": "/git-config <key> [value] [--global] [--list] [--show-origin] [--keys] [--models] [--init] [--force] [--help]\n\nSubcommands:\n <key> Get the value of a setting\n <key> <value> Set the value of a setting\n\nFlags:\n --global Operate on global settings\n --list List all configured values\n --show-origin Show value origin (default/global/local)\n --keys Show valid keys with descriptions\n --models Show available models for analysis_model\n --init Create default pi-git.toml in the repository root\n --force Force overwrite when used with --init\n --help Show this help message";
|
|
26
|
+
readonly "config.noModels": "No available models found";
|
|
27
|
+
readonly "config.modelsHeader": "Available models for analysis_model:";
|
|
28
|
+
readonly "config.noSettings": "No settings configured";
|
|
29
|
+
readonly "config.usageHint": "Usage: /git-config <key> [value] [--global] [--list] [--show-origin] [--keys]";
|
|
30
|
+
readonly "config.unknownKey": "[pi-git] Unknown config key: {key}";
|
|
31
|
+
readonly "config.notSet": "[pi-git] {key} is not set";
|
|
32
|
+
readonly "config.savedToGlobal": "[pi-git] Saved {key}={value} to global config";
|
|
33
|
+
readonly "config.savedToLocal": "[pi-git] Saved {key}={value} to local config";
|
|
34
|
+
readonly "config.savedToLocalInit": "[pi-git] Saved {key}={value} to local config (initialized with defaults)";
|
|
35
|
+
readonly "config.savedToGlobalFallback": "[pi-git] Saved {key}={value} to global config (outside git repo)";
|
|
36
|
+
readonly "config.saveFailed": "[pi-git] Failed to save: {error}";
|
|
37
|
+
readonly "config.initCreated": "[pi-git] Created default pi-git.toml in the repository root.";
|
|
38
|
+
readonly "config.initAlreadyExists": "[pi-git] pi-git.toml already exists. Use --init --force to overwrite.";
|
|
39
|
+
readonly "config.initOverwritten": "[pi-git] Overwritten pi-git.toml with default settings.";
|
|
40
|
+
readonly "config.initNotInRepo": "[pi-git] Not inside a git repository. Cannot create pi-git.toml.";
|
|
41
|
+
readonly "config.keyDesc.lang": "Display and commit message language";
|
|
42
|
+
readonly "config.keyDesc.auto_agg_commit": "Whether to automatically run git-agg-commit after assistant response";
|
|
43
|
+
readonly "config.keyDesc.analysis_model": "AI model to use for diff analysis (format: provider/model-id)";
|
|
44
|
+
readonly "autoCommit.commitFailed": "Commit failed: {error}";
|
|
45
|
+
readonly "autoCommit.commitCreated": "Created commit: {message}";
|
|
46
|
+
readonly "diffAnalyzer.systemPrompt": "Split git diff into logical hunks.\n\nRules:\n- Each hunk = single logical change (e.g., \"add feature X\", \"fix bug Y\")\n- Group related file changes together\n- Split independent changes within one file into separate hunks\n- Write commit message subjects in English\n\nReturn ONLY a JSON array:\n[\n {\"files\": [\"path/to/file1.ts\", \"path/to/file2.ts\"], \"message\": \"feat(scope): add feature\"},\n {\"files\": [\"path/to/file3.ts\"], \"message\": \"fix: resolve null check\"}\n]\n\nMessage format: Conventional Commits (feat, fix, docs, style, refactor, test, chore).\nKeep subject under 50 chars. Use imperative mood. Write in English.";
|
|
47
|
+
readonly "diffAnalyzer.examples": "Examples of correct output:\n\nInput: diff with src/auth/login.ts (added login function), src/auth/types.ts (added User type)\nOutput: [{\"files\": [\"src/auth/login.ts\", \"src/auth/types.ts\"], \"message\": \"feat(auth): add login functionality\"}]\n\nInput: diff with README.md (fixed typo in installation section), package.json (version bump)\nOutput: [{\"files\": [\"README.md\"], \"message\": \"docs: fix typo in README\"}, {\"files\": [\"package.json\"], \"message\": \"chore: bump version to 1.2.0\"}]";
|
|
48
|
+
readonly "diffAnalyzer.buildPrompt": "{examples}\n\nHere is the git diff to analyze. Split it into logical hunks:\n\n```diff\n{diff}\n```\n\nWrite commit message subjects in English.\nRespond with ONLY a JSON array of hunks as specified.";
|
|
49
|
+
readonly "autoCommitMsg.systemPrompt": "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.\n\nThe 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.\n\nRules:\n- Choose type from: feat, fix, docs, style, refactor, test, chore\n- Write the subject in English\n- Keep subject under 50 characters\n- Use imperative mood\n- Include scope only if clearly inferable\n\nReturn ONLY the commit message string. No explanations or code fences.";
|
|
50
|
+
readonly "autoCommitMsg.examples": "Examples:\n\nUser request: \"Add a login form to the auth page\"\nAssistant response: \"I've added login.tsx with form validation and connected it to the auth API.\"\nChanged files: src/auth/login.tsx, src/auth/api.ts\n→ feat(auth): add login form\n\nUser request: \"Fix the null pointer error in the payment flow\"\nAssistant response: \"Added null check in PaymentProcessor.handle(). The error should be resolved now.\"\nChanged files: src/payment/processor.ts\n→ fix(payment): add null check in processor";
|
|
51
|
+
readonly "autoCommitMsg.buildPrompt": "{examples}\n\n=== USER REQUEST (primary) ===\n{userSection}\n\n=== ASSISTANT RESPONSE (reference) ===\n{assistantSection}\n\n=== CHANGED FILES ===\n{filesSection}\n\nBased primarily on the USER REQUEST above, generate a single Conventional Commit message in English that best captures the intent of the changes.";
|
|
52
|
+
readonly "autoCommitMsg.compareSystemPrompt": "Choose the most specific commit message candidate. Return only the chosen message string.";
|
|
53
|
+
readonly "autoCommitMsg.comparePrompt": "You are a commit message quality evaluator.\nTwo candidate messages exist for the same set of changes.\n\nCandidate A (generated from analysis): \"{candidateA}\"\nCandidate B (derived from user request): \"{candidateB}\"\n\nChanged files: {files}\n\nChoose the one that is MORE SPECIFIC and accurately describes the changes.\nReturn ONLY the chosen message string. No explanations.";
|
|
54
|
+
readonly "autoCommitMsg.noData": "(none)";
|
|
55
|
+
readonly "core.applyChanges": "chore: apply changes";
|
|
56
|
+
};
|
|
57
|
+
readonly ja: {
|
|
58
|
+
readonly "footer.prepare": "{prefix} 準備中...";
|
|
59
|
+
readonly "footer.collectDiff": "{prefix} diff収集中...";
|
|
60
|
+
readonly "footer.analyze": "{prefix} hunk解析中...";
|
|
61
|
+
readonly "footer.generateMessage": "{prefix} コミットメッセージ生成中...";
|
|
62
|
+
readonly "footer.commit": "{prefix} コミット実行中...";
|
|
63
|
+
readonly "aggCommit.help": "/git-agg-commit [--lang=<lang>] [--help]\n\nオプション:\n --lang=<lang> 一時的に言語を上書き(保存されません)\n --help このヘルプを表示";
|
|
64
|
+
readonly "aggCommit.alreadyRunning": "git-agg-commit 実行中です。完了してから再度実行してください。";
|
|
65
|
+
readonly "autoAggCommit.help": "/git-auto-agg-commit [on|off|toggle] [--help]\n\nサブコマンド:\n on 自動 git-agg-commit を有効にする\n off 自動 git-agg-commit を無効にする\n toggle 自動 git-agg-commit の有効/無効を切り替える\n\nフラグ:\n --help このヘルプを表示\n\n引数を省略すると、現在の状態を表示します。";
|
|
66
|
+
readonly "autoAggCommit.status": "[pi-git] 自動 git-agg-commit は{status}です";
|
|
67
|
+
readonly "autoAggCommit.enabled": "有効";
|
|
68
|
+
readonly "autoAggCommit.disabled": "無効";
|
|
69
|
+
readonly "autoAggCommit.invalidArg": "[pi-git] 引数が不正です。on, off, toggle のいずれかを指定してください";
|
|
70
|
+
readonly "autoAggCommit.enabledLocal": "[pi-git] 自動 git-agg-commit を{status}にしました(ローカル設定)";
|
|
71
|
+
readonly "autoAggCommit.enabledGlobal": "[pi-git] 自動 git-agg-commit を{status}にしました(グローバル設定 — Gitリポジトリ外のため)";
|
|
72
|
+
readonly "config.help": "/git-config <key> [value] [--global] [--list] [--show-origin] [--keys] [--models] [--init] [--force] [--help]\n\nサブコマンド:\n <key> 設定値を取得\n <key> <value> 設定値を変更\n\nフラグ:\n --global グローバル設定に対して操作\n --list すべての設定値を一覧表示\n --show-origin 値の取得元(default/global/local)を表示\n --keys 有効なキー一覧と説明を表示\n --models analysis_model に設定可能なモデル一覧を表示\n --init リポジトリルートにデフォルトの pi-git.toml を作成\n --force --init と併用して強制的に上書き\n --help このヘルプを表示";
|
|
73
|
+
readonly "config.noModels": "利用可能なモデルが見つかりません";
|
|
74
|
+
readonly "config.modelsHeader": "analysis_model に設定可能なモデル一覧:";
|
|
75
|
+
readonly "config.noSettings": "設定はありません";
|
|
76
|
+
readonly "config.usageHint": "使用方法: /git-config <key> [value] [--global] [--list] [--show-origin] [--keys]";
|
|
77
|
+
readonly "config.unknownKey": "[pi-git] 不明な設定キー: {key}";
|
|
78
|
+
readonly "config.notSet": "[pi-git] {key} は設定されていません";
|
|
79
|
+
readonly "config.savedToGlobal": "[pi-git] {key}={value} をグローバル設定に保存しました";
|
|
80
|
+
readonly "config.savedToLocal": "[pi-git] {key}={value} をローカル設定に保存しました";
|
|
81
|
+
readonly "config.savedToLocalInit": "[pi-git] {key}={value} をローカル設定に保存しました(デフォルト値で初期化)";
|
|
82
|
+
readonly "config.savedToGlobalFallback": "[pi-git] {key}={value} をグローバル設定に保存しました(Gitリポジトリ外のため)";
|
|
83
|
+
readonly "config.saveFailed": "[pi-git] 保存に失敗しました: {error}";
|
|
84
|
+
readonly "config.initCreated": "[pi-git] リポジトリルートにデフォルトの pi-git.toml を作成しました。";
|
|
85
|
+
readonly "config.initAlreadyExists": "[pi-git] pi-git.toml はすでに存在します。上書きするには --init --force を使用してください。";
|
|
86
|
+
readonly "config.initOverwritten": "[pi-git] pi-git.toml をデフォルト設定で上書きしました。";
|
|
87
|
+
readonly "config.initNotInRepo": "[pi-git] Git リポジトリ内ではありません。pi-git.toml を作成できません。";
|
|
88
|
+
readonly "config.keyDesc.lang": "表示・コミットメッセージの言語設定";
|
|
89
|
+
readonly "config.keyDesc.auto_agg_commit": "アシスタント応答後の自動コミット有無";
|
|
90
|
+
readonly "config.keyDesc.analysis_model": "diff分析に使用するAIモデル(形式: provider/model-id)";
|
|
91
|
+
readonly "autoCommit.commitFailed": "コミットに失敗しました: {error}";
|
|
92
|
+
readonly "autoCommit.commitCreated": "コミットを作成しました: {message}";
|
|
93
|
+
readonly "diffAnalyzer.systemPrompt": "git diffを論理的なhunkに分割してください。\n\nルール:\n- 各hunk = 単一の論理的な変更(例:「機能Xを追加」「バグYを修正」)\n- 関連するファイル変更はグループ化する\n- 1ファイルに独立した複数の変更がある場合は分割する\n- コミットメッセージのサブジェクトは必ず日本語で記述する\n\n以下のJSON配列のみを返してください:\n[\n {\"files\": [\"path/to/file1.ts\", \"path/to/file2.ts\"], \"message\": \"feat: 機能を追加\"},\n {\"files\": [\"path/to/file3.ts\"], \"message\": \"fix: バグを修正\"}\n]\n\nメッセージ形式: Conventional Commits (feat, fix, docs, style, refactor, test, chore)。\nサブジェクトは50文字以内。";
|
|
94
|
+
readonly "diffAnalyzer.examples": "正しい出力の例:\n\n入力: src/auth/login.ts(ログイン機能を追加), src/auth/types.ts(User型を追加)のdiff\n出力: [{\"files\": [\"src/auth/login.ts\", \"src/auth/types.ts\"], \"message\": \"feat(auth): ログイン機能を追加\"}]\n\n入力: README.md(インストール手順の誤字を修正), package.json(バージョン更新)のdiff\n出力: [{\"files\": [\"README.md\"], \"message\": \"docs: READMEの誤字を修正\"}, {\"files\": [\"package.json\"], \"message\": \"chore: バージョンを1.2.0に更新\"}]";
|
|
95
|
+
readonly "diffAnalyzer.buildPrompt": "{examples}\n\n以下のgit diffを分析し、論理的なhunkに分割してください:\n\n```diff\n{diff}\n```\n\nコミットメッセージのサブジェクトは必ず日本語で記述してください。\n指定された形式のJSON配列のみを返してください。";
|
|
96
|
+
readonly "autoCommitMsg.systemPrompt": "あなたはコミットメッセージ生成ツールです。以下の情報から、ユーザーが**何を依頼し、その結果どのような変更が行われたか**を読み取り、Conventional Commit メッセージを1つ生成してください。\n\n最も重要なのは「ユーザーのリクエスト」です。ユーザーが何を求めていたのかを主軸に、コミットメッセージを決定してください。アシスタントの応答と変更ファイル一覧は、そのリクエストがどのように実現されたかを補完する情報です。\n\nルール:\n- type は feat, fix, docs, style, refactor, test, chore から選択\n- サブジェクトは必ず日本語で記述する\n- サブジェクトは50文字以内\n- 命令形を使用する\n- スコープは推測できる場合のみ含める\n\n返答はメッセージ文字列のみ。説明やコードフェンスは不要。";
|
|
97
|
+
readonly "autoCommitMsg.examples": "例:\n\nユーザーの依頼: 「認証ページにログインフォームを追加して」\nアシスタントの応答: 「login.tsx にバリデーション付きのフォームを追加し、認証APIに接続しました」\n変更ファイル: src/auth/login.tsx, src/auth/api.ts\n→ feat(auth): ログインフォームを追加\n\nユーザーの依頼: 「支払いフローのnullポインタエラーを修正して」\nアシスタントの応答: 「PaymentProcessor.handle() にnullチェックを追加しました」\n変更ファイル: src/payment/processor.ts\n→ fix(payment): nullチェックを追加";
|
|
98
|
+
readonly "autoCommitMsg.buildPrompt": "{examples}\n\n=== ユーザーのリクエスト(最重要) ===\n{userSection}\n\n=== アシスタントの応答(参考) ===\n{assistantSection}\n\n=== 変更されたファイル ===\n{filesSection}\n\n上記の「ユーザーのリクエスト」を主軸に、変更の意図を最もよく表す Conventional Commit メッセージを1つ、**必ず日本語で**生成してください。";
|
|
99
|
+
readonly "autoCommitMsg.compareSystemPrompt": "コミットメッセージ候補から最も具体的なものを選び、その文字列のみを返してください。";
|
|
100
|
+
readonly "autoCommitMsg.comparePrompt": "あなたはコミットメッセージの品質評価ツールです。\n同じ変更セットに対する2つの候補メッセージがあります。\n\n候補A(会話分析から生成): \"{candidateA}\"\n候補B(ユーザーの依頼から抽出): \"{candidateB}\"\n\n変更ファイル: {files}\n\nより**具体的で**、変更内容を正確に表している方を選び、\nそのメッセージ文字列だけを返してください。\n説明や補足は一切不要です。";
|
|
101
|
+
readonly "autoCommitMsg.noData": "(なし)";
|
|
102
|
+
readonly "core.applyChanges": "chore: 変更を適用";
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
/** Union of all valid message keys (derived from English catalog). */
|
|
106
|
+
export type MessageKey = keyof typeof messages.en;
|
|
107
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2MX,CAAC;AAEX,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,QAAQ,CAAC,EAAE,CAAC"}
|