@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
package/dist/commands/config.js
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Get, set, and list pi-git configuration values.
|
|
5
5
|
* Supports both global (~/.config/pi-git/settings.json)
|
|
6
|
-
* and local (<repo
|
|
6
|
+
* and local (<repo>/pi-git.toml) scopes.
|
|
7
7
|
*/
|
|
8
8
|
import { existsSync } from "node:fs";
|
|
9
|
-
import {
|
|
10
|
-
import { DEFAULT_SETTINGS, GLOBAL_SETTINGS_FILE, getLocalSettingsPath, getSettings, getSettingWithOrigin, saveGlobalSettings, saveLocalSettings, VALID_KEYS_META, } from "../utils/settings.js";
|
|
9
|
+
import { t } from "../utils/lang.js";
|
|
10
|
+
import { DEFAULT_SETTINGS, GLOBAL_SETTINGS_FILE, getLanguage, getLocalSettingsPath, getSettings, getSettingWithOrigin, initLocalSettings, saveGlobalSettings, saveLocalSettings, VALID_KEYS_META, } from "../utils/settings.js";
|
|
11
11
|
function isValidKey(key) {
|
|
12
12
|
return VALID_KEYS_META.some((meta) => meta.key === key);
|
|
13
13
|
}
|
|
@@ -34,8 +34,7 @@ export async function handleConfig(_pi, ctx, args) {
|
|
|
34
34
|
if (!ctx.hasUI) {
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
|
-
const lang =
|
|
38
|
-
const ja = isJapanese(lang);
|
|
37
|
+
const lang = getLanguage(ctx.cwd);
|
|
39
38
|
const tokens = args.trim().split(/\s+/).filter(Boolean);
|
|
40
39
|
// Parse flags
|
|
41
40
|
let showGlobal = false;
|
|
@@ -43,6 +42,8 @@ export async function handleConfig(_pi, ctx, args) {
|
|
|
43
42
|
let showOrigin = false;
|
|
44
43
|
let keys = false;
|
|
45
44
|
let models = false;
|
|
45
|
+
let init = false;
|
|
46
|
+
let force = false;
|
|
46
47
|
let help = false;
|
|
47
48
|
const positional = [];
|
|
48
49
|
for (const token of tokens) {
|
|
@@ -56,49 +57,47 @@ export async function handleConfig(_pi, ctx, args) {
|
|
|
56
57
|
keys = true;
|
|
57
58
|
else if (token === "--models")
|
|
58
59
|
models = true;
|
|
60
|
+
else if (token === "--init")
|
|
61
|
+
init = true;
|
|
62
|
+
else if (token === "--force")
|
|
63
|
+
force = true;
|
|
59
64
|
else if (token === "--help")
|
|
60
65
|
help = true;
|
|
61
66
|
else
|
|
62
67
|
positional.push(token);
|
|
63
68
|
}
|
|
64
69
|
if (help) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
" --show-origin Show value origin (default/global/local)",
|
|
92
|
-
" --keys Show valid keys with descriptions",
|
|
93
|
-
" --models Show available models for analysis_model",
|
|
94
|
-
" --help Show this help message",
|
|
95
|
-
];
|
|
96
|
-
ctx.ui.notify(lines.join("\n"), "info");
|
|
70
|
+
ctx.ui.notify(t(lang, "config.help"), "info");
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (init) {
|
|
74
|
+
const localPath = getLocalSettingsPath(ctx.cwd);
|
|
75
|
+
if (!localPath) {
|
|
76
|
+
ctx.ui.notify(t(lang, "config.initNotInRepo"), "warning");
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
// existsSync must be evaluated before initLocalSettings —
|
|
80
|
+
// after write it's always true.
|
|
81
|
+
const existed = existsSync(localPath);
|
|
82
|
+
if (existed && !force) {
|
|
83
|
+
ctx.ui.notify(t(lang, "config.initAlreadyExists"), "warning");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
// Pass the already-resolved path to avoid a redundant git rev-parse.
|
|
88
|
+
initLocalSettings(localPath);
|
|
89
|
+
ctx.ui.notify(t(lang, existed ? "config.initOverwritten" : "config.initCreated"), "info");
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
ctx.ui.notify(t(lang, "config.saveFailed", {
|
|
93
|
+
error: err instanceof Error ? err.message : String(err),
|
|
94
|
+
}), "error");
|
|
95
|
+
}
|
|
97
96
|
return;
|
|
98
97
|
}
|
|
99
98
|
if (keys) {
|
|
100
99
|
const lines = VALID_KEYS_META.map((meta) => {
|
|
101
|
-
const desc =
|
|
100
|
+
const desc = t(lang, meta.messageKey);
|
|
102
101
|
let line = `${meta.key} (${meta.type}) — ${desc}`;
|
|
103
102
|
if (meta.valid_values) {
|
|
104
103
|
line += ` [${meta.valid_values}]`;
|
|
@@ -111,7 +110,7 @@ export async function handleConfig(_pi, ctx, args) {
|
|
|
111
110
|
if (models) {
|
|
112
111
|
const availableModels = ctx.modelRegistry.getAvailable();
|
|
113
112
|
if (availableModels.length === 0) {
|
|
114
|
-
ctx.ui.notify(
|
|
113
|
+
ctx.ui.notify(t(lang, "config.noModels"), "warning");
|
|
115
114
|
return;
|
|
116
115
|
}
|
|
117
116
|
const currentModel = getSettings(ctx.cwd).analysis_model;
|
|
@@ -121,9 +120,7 @@ export async function handleConfig(_pi, ctx, args) {
|
|
|
121
120
|
const marker = isCurrent ? " (current)" : "";
|
|
122
121
|
return `${modelId}${marker}`;
|
|
123
122
|
});
|
|
124
|
-
const header =
|
|
125
|
-
? "analysis_model に設定可能なモデル一覧:"
|
|
126
|
-
: "Available models for analysis_model:";
|
|
123
|
+
const header = t(lang, "config.modelsHeader");
|
|
127
124
|
ctx.ui.notify(`${header}\n${lines.join("\n")}`, "info");
|
|
128
125
|
return;
|
|
129
126
|
}
|
|
@@ -144,7 +141,7 @@ export async function handleConfig(_pi, ctx, args) {
|
|
|
144
141
|
}
|
|
145
142
|
}
|
|
146
143
|
if (entries.length === 0) {
|
|
147
|
-
ctx.ui.notify(
|
|
144
|
+
ctx.ui.notify(t(lang, "config.noSettings"), "info");
|
|
148
145
|
}
|
|
149
146
|
else {
|
|
150
147
|
ctx.ui.notify(entries.join("\n"), "info");
|
|
@@ -152,25 +149,19 @@ export async function handleConfig(_pi, ctx, args) {
|
|
|
152
149
|
return;
|
|
153
150
|
}
|
|
154
151
|
if (positional.length === 0) {
|
|
155
|
-
ctx.ui.notify(
|
|
156
|
-
? "使用方法: /git-config <key> [value] [--global] [--list] [--show-origin] [--keys]"
|
|
157
|
-
: "Usage: /git-config <key> [value] [--global] [--list] [--show-origin] [--keys]", "warning");
|
|
152
|
+
ctx.ui.notify(t(lang, "config.usageHint"), "warning");
|
|
158
153
|
return;
|
|
159
154
|
}
|
|
160
155
|
const key = positional[0];
|
|
161
156
|
if (!isValidKey(key)) {
|
|
162
|
-
ctx.ui.notify(
|
|
163
|
-
? `[pi-git] 不明な設定キー: ${key}`
|
|
164
|
-
: `[pi-git] Unknown config key: ${key}`, "warning");
|
|
157
|
+
ctx.ui.notify(t(lang, "config.unknownKey", { key }), "warning");
|
|
165
158
|
return;
|
|
166
159
|
}
|
|
167
160
|
if (positional.length === 1) {
|
|
168
161
|
// Get single value
|
|
169
162
|
const { value, origin } = getSettingWithOrigin(key, ctx.cwd);
|
|
170
163
|
if (value === undefined) {
|
|
171
|
-
ctx.ui.notify(
|
|
172
|
-
? `[pi-git] ${key} は設定されていません`
|
|
173
|
-
: `[pi-git] ${key} is not set`, "info");
|
|
164
|
+
ctx.ui.notify(t(lang, "config.notSet", { key }), "info");
|
|
174
165
|
}
|
|
175
166
|
else {
|
|
176
167
|
ctx.ui.notify(showOrigin ? `${value} (${origin})` : String(value), "info");
|
|
@@ -184,17 +175,14 @@ export async function handleConfig(_pi, ctx, args) {
|
|
|
184
175
|
parsed = validateValue(key, rawValue);
|
|
185
176
|
}
|
|
186
177
|
catch (err) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
: `[pi-git] ${err instanceof Error ? err.message : String(err)}`, "warning");
|
|
178
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
179
|
+
ctx.ui.notify(`[pi-git] ${errMsg}`, "warning");
|
|
190
180
|
return;
|
|
191
181
|
}
|
|
192
182
|
try {
|
|
193
183
|
if (showGlobal) {
|
|
194
184
|
saveGlobalSettings({ [key]: parsed });
|
|
195
|
-
ctx.ui.notify(
|
|
196
|
-
? `[pi-git] ${key}=${parsed} をグローバル設定に保存しました`
|
|
197
|
-
: `[pi-git] Saved ${key}=${parsed} to global config`, "info");
|
|
185
|
+
ctx.ui.notify(t(lang, "config.savedToGlobal", { key, value: String(parsed) }), "info");
|
|
198
186
|
}
|
|
199
187
|
else {
|
|
200
188
|
// Default to local when inside a git repo
|
|
@@ -205,30 +193,27 @@ export async function handleConfig(_pi, ctx, args) {
|
|
|
205
193
|
if (!globalExists && !localExists) {
|
|
206
194
|
// グローバルもローカルもない場合:デフォルト値で初期化
|
|
207
195
|
saveLocalSettings({ ...DEFAULT_SETTINGS, [key]: parsed }, ctx.cwd);
|
|
208
|
-
ctx.ui.notify(
|
|
209
|
-
? `[pi-git] ${key}=${parsed} をローカル設定に保存しました(デフォルト値で初期化)`
|
|
210
|
-
: `[pi-git] Saved ${key}=${parsed} to local config (initialized with defaults)`, "info");
|
|
196
|
+
ctx.ui.notify(t(lang, "config.savedToLocalInit", { key, value: String(parsed) }), "info");
|
|
211
197
|
}
|
|
212
198
|
else {
|
|
213
199
|
saveLocalSettings({ [key]: parsed }, ctx.cwd);
|
|
214
|
-
ctx.ui.notify(
|
|
215
|
-
? `[pi-git] ${key}=${parsed} をローカル設定に保存しました`
|
|
216
|
-
: `[pi-git] Saved ${key}=${parsed} to local config`, "info");
|
|
200
|
+
ctx.ui.notify(t(lang, "config.savedToLocal", { key, value: String(parsed) }), "info");
|
|
217
201
|
}
|
|
218
202
|
}
|
|
219
203
|
else {
|
|
220
204
|
// Fallback to global when not in a repo
|
|
221
205
|
saveGlobalSettings({ [key]: parsed });
|
|
222
|
-
ctx.ui.notify(
|
|
223
|
-
|
|
224
|
-
:
|
|
206
|
+
ctx.ui.notify(t(lang, "config.savedToGlobalFallback", {
|
|
207
|
+
key,
|
|
208
|
+
value: String(parsed),
|
|
209
|
+
}), "info");
|
|
225
210
|
}
|
|
226
211
|
}
|
|
227
212
|
}
|
|
228
213
|
catch (err) {
|
|
229
|
-
ctx.ui.notify(
|
|
230
|
-
|
|
231
|
-
|
|
214
|
+
ctx.ui.notify(t(lang, "config.saveFailed", {
|
|
215
|
+
error: err instanceof Error ? err.message : String(err),
|
|
216
|
+
}), "error");
|
|
232
217
|
}
|
|
233
218
|
}
|
|
234
219
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* /git-diagnostics command
|
|
3
|
+
*
|
|
4
|
+
* Dumps P0 effectiveness measurement counters for inspection.
|
|
5
|
+
* Usage:
|
|
6
|
+
* /git-diagnostics Show all counters
|
|
7
|
+
* /git-diagnostics reset Reset all counters
|
|
8
|
+
* /git-diagnostics --help Show help
|
|
9
|
+
*/
|
|
10
|
+
import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
|
|
11
|
+
export declare function handleDiagnostics(_pi: ExtensionAPI, ctx: ExtensionCommandContext, args: string): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/commands/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACxB,MAAM,iCAAiC,CAAC;AA+CzC,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* /git-diagnostics command
|
|
3
|
+
*
|
|
4
|
+
* Dumps P0 effectiveness measurement counters for inspection.
|
|
5
|
+
* Usage:
|
|
6
|
+
* /git-diagnostics Show all counters
|
|
7
|
+
* /git-diagnostics reset Reset all counters
|
|
8
|
+
* /git-diagnostics --help Show help
|
|
9
|
+
*/
|
|
10
|
+
import { diagReset, diagSnapshot } from "../utils/diagnostics.js";
|
|
11
|
+
function formatSnapshot(s) {
|
|
12
|
+
const lines = [
|
|
13
|
+
"[pi-git] Diagnostics",
|
|
14
|
+
"",
|
|
15
|
+
"── parseHunks repair layers ──",
|
|
16
|
+
` Layer 2 (direct JSON): ${s.parseLayer2_directJSON}`,
|
|
17
|
+
` Layer 3 (trailing strip): ${s.parseLayer3_trailingStrip}`,
|
|
18
|
+
` Layer 4 (regex extract): ${s.parseLayer4_regexExtract}`,
|
|
19
|
+
` Fallback (file-based): ${s.parseFallback_fileBased}`,
|
|
20
|
+
"",
|
|
21
|
+
"── auto-commit message quality ──",
|
|
22
|
+
` isGenericMessage: ${s.msgIsGeneric}`,
|
|
23
|
+
` refineTriggered: ${s.msgRefineTriggered}`,
|
|
24
|
+
` refineUsedAI: ${s.msgRefineUsedAI}`,
|
|
25
|
+
"",
|
|
26
|
+
"── commit message sanitization ──",
|
|
27
|
+
` sanitize called: ${s.msgSanitized}`,
|
|
28
|
+
` sanitize changed (invalid): ${s.msgSanitizeChanged}`,
|
|
29
|
+
];
|
|
30
|
+
const totalParses = s.parseLayer2_directJSON +
|
|
31
|
+
s.parseLayer3_trailingStrip +
|
|
32
|
+
s.parseLayer4_regexExtract +
|
|
33
|
+
s.parseFallback_fileBased;
|
|
34
|
+
if (totalParses > 0) {
|
|
35
|
+
const repairRate = ((s.parseLayer3_trailingStrip + s.parseLayer4_regexExtract) /
|
|
36
|
+
totalParses) *
|
|
37
|
+
100;
|
|
38
|
+
const fallbackRate = (s.parseFallback_fileBased / totalParses) * 100;
|
|
39
|
+
lines.push("", `── summary ──`, ` Total parse calls: ${totalParses}`, ` Repair rate (L3+L4): ${repairRate.toFixed(1)}%`, ` Fallback rate: ${fallbackRate.toFixed(1)}%`);
|
|
40
|
+
}
|
|
41
|
+
return lines.join("\n");
|
|
42
|
+
}
|
|
43
|
+
export async function handleDiagnostics(_pi, ctx, args) {
|
|
44
|
+
if (!ctx.hasUI)
|
|
45
|
+
return;
|
|
46
|
+
const trimmed = args.trim().toLowerCase();
|
|
47
|
+
if (trimmed === "--help") {
|
|
48
|
+
ctx.ui.notify("/git-diagnostics [reset] [--help]\n\nShow P0 effectiveness measurement counters.\n\nSubcommands:\n reset Reset all counters to zero", "info");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (trimmed === "reset") {
|
|
52
|
+
diagReset();
|
|
53
|
+
ctx.ui.notify("[pi-git] Diagnostic counters reset.", "info");
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const snapshot = diagSnapshot();
|
|
57
|
+
ctx.ui.notify(formatSnapshot(snapshot), "info");
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/commands/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAqB,MAAM,yBAAyB,CAAC;AAErF,SAAS,cAAc,CAAC,CAAe;IACrC,MAAM,KAAK,GAAa;QACtB,sBAAsB;QACtB,EAAE;QACF,gCAAgC;QAChC,gCAAgC,CAAC,CAAC,sBAAsB,EAAE;QAC1D,gCAAgC,CAAC,CAAC,yBAAyB,EAAE;QAC7D,gCAAgC,CAAC,CAAC,wBAAwB,EAAE;QAC5D,gCAAgC,CAAC,CAAC,uBAAuB,EAAE;QAC3D,EAAE;QACF,mCAAmC;QACnC,gCAAgC,CAAC,CAAC,YAAY,EAAE;QAChD,gCAAgC,CAAC,CAAC,kBAAkB,EAAE;QACtD,gCAAgC,CAAC,CAAC,eAAe,EAAE;QACnD,EAAE;QACF,mCAAmC;QACnC,gCAAgC,CAAC,CAAC,YAAY,EAAE;QAChD,iCAAiC,CAAC,CAAC,kBAAkB,EAAE;KACxD,CAAC;IAEF,MAAM,WAAW,GACf,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,uBAAuB,CAAC;IAE5B,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,UAAU,GACd,CAAC,CAAC,CAAC,CAAC,yBAAyB,GAAG,CAAC,CAAC,wBAAwB,CAAC;YACzD,WAAW,CAAC;YACd,GAAG,CAAC;QACN,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,uBAAuB,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;QACrE,KAAK,CAAC,IAAI,CACR,EAAE,EACF,eAAe,EACf,+BAA+B,WAAW,EAAE,EAC5C,+BAA+B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EACvD,+BAA+B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAC1D,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAiB,EACjB,GAA4B,EAC5B,IAAY;IAEZ,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE1C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,uIAAuI,EACvI,MAAM,CACP,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,SAAS,EAAE,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
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
|
|
6
|
-
* and assistant's
|
|
5
|
+
* and instead generates a commit message from the user's prompts
|
|
6
|
+
* and assistant's responses.
|
|
7
7
|
*/
|
|
8
8
|
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
interface SimpleMessage {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-commit-message.d.ts","sourceRoot":"","sources":["../../src/core/auto-commit-message.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-commit-message.d.ts","sourceRoot":"","sources":["../../src/core/auto-commit-message.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAOzC,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAuSD,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,MAAM,CAAC,CAuEjB"}
|