@howaboua/pi-codex-conversion 1.0.11 → 1.0.12
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/package.json
CHANGED
|
@@ -24,12 +24,12 @@ export function formatApplyPatchSummary(patchText: string, cwd = process.cwd()):
|
|
|
24
24
|
try {
|
|
25
25
|
actions = parsePatchActions({ text: patchText });
|
|
26
26
|
} catch {
|
|
27
|
-
return "
|
|
27
|
+
return "";
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
const files = actions.map((action) => buildFilePreview(action, cwd));
|
|
31
31
|
if (files.length === 0) {
|
|
32
|
-
return "
|
|
32
|
+
return "";
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
const totalAdded = files.reduce((sum, file) => sum + file.added, 0);
|
|
@@ -56,12 +56,12 @@ export function formatApplyPatchCall(patchText: string, cwd = process.cwd()): st
|
|
|
56
56
|
try {
|
|
57
57
|
actions = parsePatchActions({ text: patchText });
|
|
58
58
|
} catch {
|
|
59
|
-
return "
|
|
59
|
+
return "";
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
const files = actions.map((action) => buildFilePreview(action, cwd));
|
|
63
63
|
if (files.length === 0) {
|
|
64
|
-
return "
|
|
64
|
+
return "";
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
const totalAdded = files.reduce((sum, file) => sum + file.added, 0);
|
|
@@ -92,12 +92,12 @@ export function renderApplyPatchCall(patchText: string, cwd = process.cwd()): st
|
|
|
92
92
|
try {
|
|
93
93
|
actions = parsePatchActions({ text: patchText });
|
|
94
94
|
} catch {
|
|
95
|
-
return "
|
|
95
|
+
return "";
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
const files = actions.map((action) => buildFilePreview(action, cwd));
|
|
99
99
|
if (files.length === 0) {
|
|
100
|
-
return "
|
|
100
|
+
return "";
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
const totalAdded = files.reduce((sum, file) => sum + file.added, 0);
|
|
@@ -16,7 +16,7 @@ interface ApplyPatchRenderState {
|
|
|
16
16
|
patchText: string;
|
|
17
17
|
collapsed: string;
|
|
18
18
|
expanded: string;
|
|
19
|
-
status: "pending" | "partial_failure";
|
|
19
|
+
status: "pending" | "partial_failure" | "failed";
|
|
20
20
|
failedTarget?: string;
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -58,7 +58,7 @@ function setApplyPatchRenderState(
|
|
|
58
58
|
toolCallId: string,
|
|
59
59
|
patchText: string,
|
|
60
60
|
cwd: string,
|
|
61
|
-
status: "pending" | "partial_failure" = "pending",
|
|
61
|
+
status: "pending" | "partial_failure" | "failed" = "pending",
|
|
62
62
|
failedTarget?: string,
|
|
63
63
|
): void {
|
|
64
64
|
const collapsed = formatApplyPatchSummary(patchText, cwd);
|
|
@@ -74,13 +74,17 @@ function setApplyPatchRenderState(
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
function markApplyPatchPartialFailure(toolCallId: string, failedTarget?: string): void {
|
|
77
|
+
markApplyPatchFailure(toolCallId, "partial_failure", failedTarget);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function markApplyPatchFailure(toolCallId: string, status: "partial_failure" | "failed", failedTarget?: string): void {
|
|
77
81
|
const existing = applyPatchRenderStates.get(toolCallId);
|
|
78
82
|
if (!existing) {
|
|
79
83
|
return;
|
|
80
84
|
}
|
|
81
85
|
applyPatchRenderStates.set(toolCallId, {
|
|
82
86
|
...existing,
|
|
83
|
-
status
|
|
87
|
+
status,
|
|
84
88
|
failedTarget,
|
|
85
89
|
});
|
|
86
90
|
}
|
|
@@ -118,6 +122,36 @@ function renderPartialFailureCall(
|
|
|
118
122
|
.join("\n");
|
|
119
123
|
}
|
|
120
124
|
|
|
125
|
+
function renderFailedCall(
|
|
126
|
+
text: string,
|
|
127
|
+
theme: { fg(role: string, text: string): string },
|
|
128
|
+
failedTarget?: string,
|
|
129
|
+
): string {
|
|
130
|
+
const lines = text.split("\n");
|
|
131
|
+
if (lines.length === 0) {
|
|
132
|
+
return theme.fg("error", "• Edit failed");
|
|
133
|
+
}
|
|
134
|
+
lines[0] = lines[0].replace(/^• (Added|Edited|Deleted)\b/, "• Edit failed");
|
|
135
|
+
const failedLineIndexes = new Set<number>();
|
|
136
|
+
if (failedTarget) {
|
|
137
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
138
|
+
const failedLine = markFailedTargetLine(lines[i], failedTarget);
|
|
139
|
+
if (failedLine) {
|
|
140
|
+
lines[i] = failedLine;
|
|
141
|
+
failedLineIndexes.add(i);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return lines
|
|
146
|
+
.map((line, index) => {
|
|
147
|
+
if (failedLineIndexes.has(index) || index === 0) {
|
|
148
|
+
return theme.fg("error", line);
|
|
149
|
+
}
|
|
150
|
+
return line;
|
|
151
|
+
})
|
|
152
|
+
.join("\n");
|
|
153
|
+
}
|
|
154
|
+
|
|
121
155
|
function markFailedTargetLine(line: string, failedTarget: string): string | undefined {
|
|
122
156
|
const suffixMatch = line.match(/ \(\+\d+ -\d+\)$/);
|
|
123
157
|
if (!suffixMatch) {
|
|
@@ -174,7 +208,18 @@ const renderApplyPatchCallWithOptionalContext: any = (
|
|
|
174
208
|
const baseText = context?.expanded
|
|
175
209
|
? cached?.expanded ?? renderApplyPatchCall(effectivePatchText, cwd)
|
|
176
210
|
: cached?.collapsed ?? formatApplyPatchSummary(effectivePatchText, cwd);
|
|
177
|
-
|
|
211
|
+
if (baseText.trim().length === 0) {
|
|
212
|
+
if (cached?.status === "failed") {
|
|
213
|
+
return new Text(theme.fg("error", "• Edit failed"), 0, 0);
|
|
214
|
+
}
|
|
215
|
+
return new Text(`${theme.fg("dim", "•")} ${theme.bold("Patching")}`, 0, 0);
|
|
216
|
+
}
|
|
217
|
+
const text =
|
|
218
|
+
cached?.status === "partial_failure"
|
|
219
|
+
? renderPartialFailureCall(baseText, theme, cached.failedTarget)
|
|
220
|
+
: cached?.status === "failed"
|
|
221
|
+
? renderFailedCall(baseText, theme, cached.failedTarget)
|
|
222
|
+
: baseText;
|
|
178
223
|
return new Text(text, 0, 0);
|
|
179
224
|
};
|
|
180
225
|
|
|
@@ -219,8 +264,10 @@ export function registerApplyPatchTool(pi: ExtensionAPI): void {
|
|
|
219
264
|
} satisfies ApplyPatchPartialFailureDetails,
|
|
220
265
|
};
|
|
221
266
|
}
|
|
267
|
+
markApplyPatchFailure(toolCallId, "failed", failedTarget);
|
|
222
268
|
throw new Error(message);
|
|
223
269
|
}
|
|
270
|
+
markApplyPatchFailure(toolCallId, "failed");
|
|
224
271
|
throw error;
|
|
225
272
|
}
|
|
226
273
|
const summary = [
|