@335g/pi-git 0.0.1 → 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.
- package/README.ja.md +2 -29
- package/README.md +2 -29
- package/dist/commands/agg-commit.d.ts.map +1 -1
- package/dist/commands/agg-commit.js +11 -16
- 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 +36 -68
- package/dist/commands/auto-agg-commit.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +46 -69
- package/dist/commands/config.js.map +1 -1
- 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 +259 -34
- 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 +3 -6
- package/dist/core/auto-commit.js.map +1 -1
- package/dist/core/diff-analyzer.d.ts +2 -10
- package/dist/core/diff-analyzer.d.ts.map +1 -1
- package/dist/core/diff-analyzer.js +190 -71
- package/dist/core/diff-analyzer.js.map +1 -1
- package/dist/core/git.d.ts +0 -25
- package/dist/core/git.d.ts.map +1 -1
- package/dist/core/git.js +0 -65
- package/dist/core/git.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -21
- 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/footer-manager.d.ts +11 -0
- package/dist/utils/footer-manager.d.ts.map +1 -1
- package/dist/utils/footer-manager.js +52 -11
- package/dist/utils/footer-manager.js.map +1 -1
- package/dist/utils/lang.d.ts +3 -2
- package/dist/utils/lang.d.ts.map +1 -1
- package/dist/utils/lang.js +3 -2
- package/dist/utils/lang.js.map +1 -1
- package/package.json +1 -1
- 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 -49
- package/dist/tui/hunk-review.d.ts.map +0 -1
- package/dist/tui/hunk-review.js +0 -300
- package/dist/tui/hunk-review.js.map +0 -1
|
@@ -5,76 +5,62 @@
|
|
|
5
5
|
* logical hunks with Conventional Commits messages.
|
|
6
6
|
*/
|
|
7
7
|
import { completeSimple } from "@earendil-works/pi-ai";
|
|
8
|
-
import {
|
|
8
|
+
import { footerManager } from "../utils/footer-manager.js";
|
|
9
|
+
import { t } from "../utils/lang.js";
|
|
9
10
|
import { getLanguage } from "../utils/settings.js";
|
|
10
11
|
import { sanitizeHunk } from "./commit-message.js";
|
|
11
12
|
import { resolveModel } from "./resolve-model.js";
|
|
13
|
+
/** Maximum diff bytes to send to the AI (truncated if larger) */
|
|
14
|
+
const MAX_DIFF_BYTES = 30_000;
|
|
15
|
+
/** Max files per AI analysis batch (split large diffs for progress visibility) */
|
|
16
|
+
const FILES_PER_BATCH = 8;
|
|
17
|
+
/** Maximum output tokens for the AI completion (hunk JSON is small) */
|
|
18
|
+
const MAX_OUTPUT_TOKENS = 1024;
|
|
12
19
|
function getSystemPrompt(lang) {
|
|
13
|
-
|
|
14
|
-
return `あなたはgit diff解析ツールです。git diffを分析し、変更を論理的なhunkに分割してください。
|
|
20
|
+
return t(lang, `git diffを論理的なhunkに分割してください。
|
|
15
21
|
|
|
16
22
|
ルール:
|
|
17
|
-
- 各hunk
|
|
18
|
-
-
|
|
19
|
-
- 1
|
|
20
|
-
- 新規ファイルの場合は、内容から論理的な目的を推定する
|
|
23
|
+
- 各hunk = 単一の論理的な変更(例:「機能Xを追加」「バグYを修正」)
|
|
24
|
+
- 関連するファイル変更はグループ化する
|
|
25
|
+
- 1ファイルに独立した複数の変更がある場合は分割する
|
|
21
26
|
|
|
22
|
-
|
|
23
|
-
- files: このhunkに含まれるファイルパスの配列
|
|
24
|
-
- message: Conventional Commits形式のメッセージ。typeは feat, fix, docs, style, refactor, test, chore から選択
|
|
25
|
-
- サブジェクトは50文字以内に収める
|
|
26
|
-
- 命令形を使用する(例:「追加」でなく「追加する」→英語のimperative moodに相当する日本語表現)
|
|
27
|
-
- スコープはリポジトリの文脈から明確に推定できる場合のみ含める
|
|
28
|
-
- 日本語でメッセージを記述する
|
|
29
|
-
|
|
30
|
-
以下の形式のJSON配列のみを返してください。マークダウンのコードフェンスや追加のテキストは不要です:
|
|
27
|
+
以下のJSON配列のみを返してください:
|
|
31
28
|
[
|
|
32
|
-
{
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
]`;
|
|
37
|
-
}
|
|
38
|
-
return `You are a git diff analyzer. Your task is to analyze a git diff and split the changes into logical hunks.
|
|
29
|
+
{"files": ["path/to/file1.ts", "path/to/file2.ts"], "message": "feat: 機能を追加"},
|
|
30
|
+
{"files": ["path/to/file3.ts"], "message": "fix: バグを修正"}
|
|
31
|
+
]
|
|
39
32
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
- Group related file changes together if they belong to the same logical change
|
|
43
|
-
- If a single file contains multiple independent changes, split them into separate hunks
|
|
44
|
-
- For new files, infer the logical purpose from the content
|
|
33
|
+
メッセージ形式: Conventional Commits (feat, fix, docs, style, refactor, test, chore)。
|
|
34
|
+
サブジェクトは50文字以内。日本語で記述。`, `Split git diff into logical hunks.
|
|
45
35
|
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
- Use imperative mood (e.g., "add" not "added")
|
|
51
|
-
- Include scope only if clearly inferable from the repository context
|
|
36
|
+
Rules:
|
|
37
|
+
- Each hunk = single logical change (e.g., "add feature X", "fix bug Y")
|
|
38
|
+
- Group related file changes together
|
|
39
|
+
- Split independent changes within one file into separate hunks
|
|
52
40
|
|
|
53
|
-
Return ONLY a JSON array
|
|
41
|
+
Return ONLY a JSON array:
|
|
54
42
|
[
|
|
55
|
-
{
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
{"files": ["path/to/file1.ts", "path/to/file2.ts"], "message": "feat(scope): add feature"},
|
|
44
|
+
{"files": ["path/to/file3.ts"], "message": "fix: resolve null check"}
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
Message format: Conventional Commits (feat, fix, docs, style, refactor, test, chore).
|
|
48
|
+
Keep subject under 50 chars. Use imperative mood.`);
|
|
60
49
|
}
|
|
61
50
|
function buildPrompt(diff, lang) {
|
|
62
|
-
|
|
63
|
-
return `以下のgit diffを分析し、論理的なhunkに分割してください:
|
|
51
|
+
return t(lang, `以下のgit diffを分析し、論理的なhunkに分割してください:
|
|
64
52
|
|
|
65
53
|
\`\`\`diff
|
|
66
54
|
${diff}
|
|
67
55
|
\`\`\`
|
|
68
56
|
|
|
69
|
-
指定された形式のJSON
|
|
70
|
-
}
|
|
71
|
-
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:
|
|
72
58
|
|
|
73
59
|
\`\`\`diff
|
|
74
60
|
${diff}
|
|
75
61
|
\`\`\`
|
|
76
62
|
|
|
77
|
-
Respond with ONLY a JSON array of hunks as specified
|
|
63
|
+
Respond with ONLY a JSON array of hunks as specified.`);
|
|
78
64
|
}
|
|
79
65
|
function parseHunks(text) {
|
|
80
66
|
// Extract JSON from the response (handle code fences)
|
|
@@ -121,7 +107,135 @@ function fallbackFileBasedHunks(diff) {
|
|
|
121
107
|
}
|
|
122
108
|
return hunks;
|
|
123
109
|
}
|
|
124
|
-
|
|
110
|
+
/** Count files in a diff by counting "diff --git" headers */
|
|
111
|
+
function countFilesInDiff(diff) {
|
|
112
|
+
const matches = diff.match(/^diff --git/gm);
|
|
113
|
+
return matches ? matches.length : 0;
|
|
114
|
+
}
|
|
115
|
+
/** Truncate oversized diff at a clean line break */
|
|
116
|
+
function truncateDiff(diff, maxBytes) {
|
|
117
|
+
if (diff.length <= maxBytes)
|
|
118
|
+
return diff;
|
|
119
|
+
const slice = diff.substring(0, maxBytes);
|
|
120
|
+
const lastNewline = slice.lastIndexOf("\n");
|
|
121
|
+
return lastNewline > 0 ? slice.substring(0, lastNewline) : slice;
|
|
122
|
+
}
|
|
123
|
+
/** Strip noise lines from diff that don't help AI analysis */
|
|
124
|
+
function stripDiffNoise(diff) {
|
|
125
|
+
const lines = diff.split("\n");
|
|
126
|
+
const result = [];
|
|
127
|
+
let inBinary = false;
|
|
128
|
+
for (const line of lines) {
|
|
129
|
+
// Skip git index lines (object hash metadata, no semantic value)
|
|
130
|
+
if (/^index [0-9a-f]+\.\.[0-9a-f]+/.test(line))
|
|
131
|
+
continue;
|
|
132
|
+
// Detect binary diff content start
|
|
133
|
+
if (line.startsWith("GIT binary patch") || line.startsWith("literal ")) {
|
|
134
|
+
inBinary = true;
|
|
135
|
+
result.push(line); // keep the header for context
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
// Skip binary diff payload (base64 lines, incomprehensible to AI)
|
|
139
|
+
if (inBinary) {
|
|
140
|
+
if (line.trim() === "" || /^[A-Za-z0-9+/=]+$/.test(line.trim())) {
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
inBinary = false;
|
|
144
|
+
}
|
|
145
|
+
result.push(line);
|
|
146
|
+
}
|
|
147
|
+
return result.join("\n");
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Split a full diff into per-batch diff strings, each containing ≤ batchSize files.
|
|
151
|
+
* Groups files by parent directory first so related files stay in the same batch.
|
|
152
|
+
*/
|
|
153
|
+
function splitDiffIntoBatches(diff, batchSize) {
|
|
154
|
+
const fileDiffs = splitDiffByFile(diff);
|
|
155
|
+
const files = [...fileDiffs.keys()];
|
|
156
|
+
// Group files by parent directory (files in same dir are likely related)
|
|
157
|
+
const dirGroups = new Map();
|
|
158
|
+
for (const file of files) {
|
|
159
|
+
const lastSlash = file.lastIndexOf("/");
|
|
160
|
+
const dir = lastSlash >= 0 ? file.substring(0, lastSlash) : ".";
|
|
161
|
+
if (!dirGroups.has(dir))
|
|
162
|
+
dirGroups.set(dir, []);
|
|
163
|
+
dirGroups.get(dir).push(file);
|
|
164
|
+
}
|
|
165
|
+
// Pack directory groups into batches, keeping groups together when possible
|
|
166
|
+
const fileBatches = [];
|
|
167
|
+
let current = [];
|
|
168
|
+
for (const groupFiles of dirGroups.values()) {
|
|
169
|
+
// If this group would overflow the current batch, start a new one
|
|
170
|
+
if (current.length > 0 && current.length + groupFiles.length > batchSize) {
|
|
171
|
+
fileBatches.push(current);
|
|
172
|
+
current = [];
|
|
173
|
+
}
|
|
174
|
+
// If a single group exceeds batchSize, split it (files in same dir are
|
|
175
|
+
// highly related, so this is the least-damaging place to split)
|
|
176
|
+
for (let i = 0; i < groupFiles.length; i += batchSize) {
|
|
177
|
+
const chunk = groupFiles.slice(i, i + batchSize);
|
|
178
|
+
if (chunk.length === groupFiles.length && current.length === 0) {
|
|
179
|
+
// Single group fits entirely in one batch
|
|
180
|
+
current.push(...chunk);
|
|
181
|
+
}
|
|
182
|
+
else if (current.length + chunk.length <= batchSize) {
|
|
183
|
+
current.push(...chunk);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
if (current.length > 0)
|
|
187
|
+
fileBatches.push(current);
|
|
188
|
+
current = [...chunk];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (current.length > 0)
|
|
193
|
+
fileBatches.push(current);
|
|
194
|
+
// Convert batches of file names to diff strings
|
|
195
|
+
return fileBatches.map((batchFiles) => {
|
|
196
|
+
const lines = [];
|
|
197
|
+
for (const file of batchFiles) {
|
|
198
|
+
const diffLines = fileDiffs.get(file);
|
|
199
|
+
if (diffLines)
|
|
200
|
+
lines.push(...diffLines);
|
|
201
|
+
}
|
|
202
|
+
return lines.join("\n");
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Send a single batch of diff to the AI and return parsed hunks.
|
|
207
|
+
*/
|
|
208
|
+
async function callAIForDiff(model, auth, ctx, diff, langOverride) {
|
|
209
|
+
const lang = langOverride ?? getLanguage(ctx.cwd);
|
|
210
|
+
const cleaned = stripDiffNoise(diff);
|
|
211
|
+
const truncated = truncateDiff(cleaned, MAX_DIFF_BYTES);
|
|
212
|
+
const context = {
|
|
213
|
+
systemPrompt: getSystemPrompt(lang),
|
|
214
|
+
messages: [
|
|
215
|
+
{
|
|
216
|
+
role: "user",
|
|
217
|
+
content: buildPrompt(truncated, lang),
|
|
218
|
+
timestamp: Date.now(),
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
};
|
|
222
|
+
const result = await completeSimple(model, context, {
|
|
223
|
+
apiKey: auth.apiKey,
|
|
224
|
+
headers: auth.headers,
|
|
225
|
+
signal: ctx.signal,
|
|
226
|
+
reasoning: "minimal",
|
|
227
|
+
temperature: 0,
|
|
228
|
+
maxTokens: MAX_OUTPUT_TOKENS,
|
|
229
|
+
});
|
|
230
|
+
const text = result.content
|
|
231
|
+
.filter((c) => c.type === "text")
|
|
232
|
+
.map((c) => c.text)
|
|
233
|
+
.join("");
|
|
234
|
+
return parseHunks(text);
|
|
235
|
+
}
|
|
236
|
+
export async function analyzeDiff(_pi, ctx, diff, langOverride) {
|
|
237
|
+
const fileCount = countFilesInDiff(diff);
|
|
238
|
+
const lang = langOverride ?? getLanguage(ctx.cwd);
|
|
125
239
|
const model = resolveModel(ctx);
|
|
126
240
|
if (!model) {
|
|
127
241
|
return fallbackFileBasedHunks(diff);
|
|
@@ -130,29 +244,34 @@ export async function analyzeDiff(_pi, ctx, diff) {
|
|
|
130
244
|
if (!auth.ok) {
|
|
131
245
|
return fallbackFileBasedHunks(diff);
|
|
132
246
|
}
|
|
247
|
+
// Split into batches if many files (for progress visibility + smaller payloads)
|
|
248
|
+
if (fileCount > FILES_PER_BATCH) {
|
|
249
|
+
const batches = splitDiffIntoBatches(diff, FILES_PER_BATCH);
|
|
250
|
+
const allHunks = [];
|
|
251
|
+
for (let i = 0; i < batches.length; i++) {
|
|
252
|
+
void footerManager.setCommitProgress(i + 1, batches.length);
|
|
253
|
+
try {
|
|
254
|
+
const hunks = await callAIForDiff(model, auth, ctx, batches[i], lang);
|
|
255
|
+
if (hunks.length > 0) {
|
|
256
|
+
allHunks.push(...hunks);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
// Empty batch result → use fallback for these files
|
|
260
|
+
allHunks.push(...fallbackFileBasedHunks(batches[i]));
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
allHunks.push(...fallbackFileBasedHunks(batches[i]));
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if (allHunks.length === 0) {
|
|
268
|
+
return fallbackFileBasedHunks(diff);
|
|
269
|
+
}
|
|
270
|
+
return allHunks;
|
|
271
|
+
}
|
|
272
|
+
// Single batch: standard path
|
|
133
273
|
try {
|
|
134
|
-
const
|
|
135
|
-
const context = {
|
|
136
|
-
systemPrompt: getSystemPrompt(lang),
|
|
137
|
-
messages: [
|
|
138
|
-
{
|
|
139
|
-
role: "user",
|
|
140
|
-
content: buildPrompt(diff, lang),
|
|
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
|
-
});
|
|
151
|
-
const text = result.content
|
|
152
|
-
.filter((c) => c.type === "text")
|
|
153
|
-
.map((c) => c.text)
|
|
154
|
-
.join("");
|
|
155
|
-
const hunks = parseHunks(text);
|
|
274
|
+
const hunks = await callAIForDiff(model, auth, ctx, diff, lang);
|
|
156
275
|
if (hunks.length === 0) {
|
|
157
276
|
return fallbackFileBasedHunks(diff);
|
|
158
277
|
}
|
|
@@ -184,7 +303,7 @@ export function processHunks(hunks) {
|
|
|
184
303
|
/**
|
|
185
304
|
* Split a full diff into per-file diff line arrays, keyed by file path.
|
|
186
305
|
*/
|
|
187
|
-
|
|
306
|
+
function splitDiffByFile(fullDiff) {
|
|
188
307
|
const result = new Map();
|
|
189
308
|
const lines = fullDiff.split("\n");
|
|
190
309
|
let currentFile = null;
|
|
@@ -212,7 +331,7 @@ export function splitDiffByFile(fullDiff) {
|
|
|
212
331
|
/**
|
|
213
332
|
* Parse addition/deletion counts for each file from a full diff.
|
|
214
333
|
*/
|
|
215
|
-
|
|
334
|
+
function parseDiffStats(fullDiff) {
|
|
216
335
|
const result = new Map();
|
|
217
336
|
const lines = fullDiff.split("\n");
|
|
218
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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"}
|
package/dist/core/git.d.ts
CHANGED
|
@@ -7,36 +7,11 @@ export declare function getStatus(pi: ExtensionAPI, cwd?: string): Promise<strin
|
|
|
7
7
|
export declare function hasChanges(pi: ExtensionAPI, cwd?: string): Promise<boolean>;
|
|
8
8
|
export declare function stageFiles(pi: ExtensionAPI, files: string[], cwd?: string): Promise<void>;
|
|
9
9
|
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
10
|
/**
|
|
28
11
|
* Check that the working directory is a git repository with pending changes.
|
|
29
12
|
* Returns null if ready, or a failure reason string.
|
|
30
13
|
*/
|
|
31
14
|
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>;
|
|
40
15
|
/**
|
|
41
16
|
* Collect the full working tree diff by stashing changes (including untracked
|
|
42
17
|
* files), capturing the stash diff, and popping the stash to restore the
|
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;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
|
|
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;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,YAAY,GAAG,IAAI,CAAC,CAQ/C;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,YAAY,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiCxB"}
|
package/dist/core/git.js
CHANGED
|
@@ -42,51 +42,6 @@ export async function resetStaging(pi, cwd) {
|
|
|
42
42
|
throw new GitError("Failed to reset staging area", "git reset", code);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
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
45
|
/**
|
|
91
46
|
* Check that the working directory is a git repository with pending changes.
|
|
92
47
|
* Returns null if ready, or a failure reason string.
|
|
@@ -100,26 +55,6 @@ export async function ensureReadyToCommit(pi, cwd) {
|
|
|
100
55
|
}
|
|
101
56
|
return null;
|
|
102
57
|
}
|
|
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
58
|
/**
|
|
124
59
|
* Collect the full working tree diff by stashing changes (including untracked
|
|
125
60
|
* files), capturing the stash diff, and popping the stash to restore the
|
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,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAgB,EAChB,GAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAgB,EAChB,KAAe,EACf,GAAY;IAEZ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACxE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAChB,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC5C,SAAS,EACT,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAgB,EAChB,GAAY;IAEZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,8BAA8B,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAQpE,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAiCxC"}
|
package/dist/index.js
CHANGED
|
@@ -5,10 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { handleAggCommit } from "./commands/agg-commit.js";
|
|
7
7
|
import { handleAutoAggCommit } from "./commands/auto-agg-commit.js";
|
|
8
|
-
import { handleBranch } from "./commands/branch.js";
|
|
9
8
|
import { handleConfig } from "./commands/config.js";
|
|
10
|
-
import { handleGitDiff } from "./commands/git-diff.js";
|
|
11
|
-
import { handleGitLog } from "./commands/git-log.js";
|
|
12
9
|
import { handleAutoCommit } from "./core/auto-commit.js";
|
|
13
10
|
import { footerManager } from "./utils/footer-manager.js";
|
|
14
11
|
export default function (pi) {
|
|
@@ -36,24 +33,6 @@ export default function (pi) {
|
|
|
36
33
|
await handleAutoAggCommit(pi, ctx, args);
|
|
37
34
|
},
|
|
38
35
|
});
|
|
39
|
-
pi.registerCommand("git-branch", {
|
|
40
|
-
description: "Manage git branches: list, switch, create, and delete",
|
|
41
|
-
handler: async (args, ctx) => {
|
|
42
|
-
await handleBranch(pi, ctx, args);
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
pi.registerCommand("git-diff", {
|
|
46
|
-
description: "Interactively review AI-generated hunks and commit approved ones",
|
|
47
|
-
handler: async (args, ctx) => {
|
|
48
|
-
await handleGitDiff(pi, ctx, args);
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
pi.registerCommand("git-log", {
|
|
52
|
-
description: "Display git log in oneline format",
|
|
53
|
-
handler: async (args, ctx) => {
|
|
54
|
-
await handleGitLog(pi, ctx, args);
|
|
55
|
-
},
|
|
56
|
-
});
|
|
57
36
|
pi.on("agent_end", async (event, ctx) => {
|
|
58
37
|
await handleAutoCommit(pi, ctx, event);
|
|
59
38
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,CAAC,OAAO,WAAW,EAAgB;IACvC,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC3C,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE;QACnC,WAAW,EACT,+EAA+E;QACjF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;KACF,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE;QAC/B,WAAW,EAAE,+CAA+C;QAC5D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;KACF,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,CAAC,qBAAqB,EAAE;QACxC,WAAW,EAAE,2DAA2D;QACxE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,mBAAmB,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,MAAM,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAsB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,IAAI;IACnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,IAAI;IACnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ"}
|
|
@@ -19,6 +19,7 @@ declare class FooterManager {
|
|
|
19
19
|
private ui;
|
|
20
20
|
private cwd;
|
|
21
21
|
private running;
|
|
22
|
+
private elapsedTimer;
|
|
22
23
|
/**
|
|
23
24
|
* Initialize the manager with pi API, UI context, and working directory.
|
|
24
25
|
* Call this once at session_start.
|
|
@@ -53,6 +54,12 @@ declare class FooterManager {
|
|
|
53
54
|
* @param lang - Optional language override (for --lang flag)
|
|
54
55
|
*/
|
|
55
56
|
setPhase(phase: Phase, lang?: string): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Set commit progress for the current phase.
|
|
59
|
+
* @param current - Current hunk index (1-based)
|
|
60
|
+
* @param total - Total number of hunks
|
|
61
|
+
*/
|
|
62
|
+
setCommitProgress(current: number, total: number): Promise<void>;
|
|
56
63
|
/**
|
|
57
64
|
* End the running display. Clears the running flag and refreshes base display.
|
|
58
65
|
*/
|
|
@@ -61,6 +68,10 @@ declare class FooterManager {
|
|
|
61
68
|
* Render the current phase text to the footer.
|
|
62
69
|
*/
|
|
63
70
|
private renderPhase;
|
|
71
|
+
/** Start a periodic timer to refresh the elapsed-time display */
|
|
72
|
+
private startElapsedTimer;
|
|
73
|
+
/** Stop the elapsed-time refresh timer */
|
|
74
|
+
private stopElapsedTimer;
|
|
64
75
|
}
|
|
65
76
|
/** Singleton instance */
|
|
66
77
|
export declare const footerManager: FooterManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer-manager.d.ts","sourceRoot":"","sources":["../../src/utils/footer-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAMzC,KAAK,KAAK,GACN,SAAS,GACT,aAAa,GACb,SAAS,GACT,iBAAiB,GACjB,QAAQ,CAAC;AAEb;;;;GAIG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,EAAE,CAA6B;IACvC,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"footer-manager.d.ts","sourceRoot":"","sources":["../../src/utils/footer-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAMzC,KAAK,KAAK,GACN,SAAS,GACT,aAAa,GACb,SAAS,GACT,iBAAiB,GACjB,QAAQ,CAAC;AAEb;;;;GAIG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,EAAE,CAA6B;IACvC,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,OAAO,CASC;IAChB,OAAO,CAAC,YAAY,CAA+C;IAEnE;;;;;;;OAOG;IACH,UAAU,CACR,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,kBAAkB,GAAG,IAAI,EAC7B,GAAG,CAAC,EAAE,MAAM,GACX,IAAI;IAMP;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB9B;;;;;;OAMG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAOhB;;;;;;OAMG;IACG,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1D;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB,iEAAiE;IACjE,OAAO,CAAC,iBAAiB;IAOzB,0CAA0C;IAC1C,OAAO,CAAC,gBAAgB;CAMzB;AA4BD,yBAAyB;AACzB,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|