|
|
@@ -161,7 +161,7 @@ export const ApplyPatchTool = Tool.define("apply_patch", {
|
|
|
// Build per-file metadata for UI rendering (used for both permission and result)
|
|
|
const files = fileChanges.map((change) => ({
|
|
|
filePath: change.filePath,
|
|
|
- relativePath: path.relative(Instance.worktree, change.movePath ?? change.filePath),
|
|
|
+ relativePath: path.relative(Instance.worktree, change.movePath ?? change.filePath).replaceAll("\\", "/"),
|
|
|
type: change.type,
|
|
|
diff: change.diff,
|
|
|
before: change.oldContent,
|
|
|
@@ -172,7 +172,7 @@ export const ApplyPatchTool = Tool.define("apply_patch", {
|
|
|
}))
|
|
|
|
|
|
// Check permissions if needed
|
|
|
- const relativePaths = fileChanges.map((c) => path.relative(Instance.worktree, c.filePath))
|
|
|
+ const relativePaths = fileChanges.map((c) => path.relative(Instance.worktree, c.filePath).replaceAll("\\", "/"))
|
|
|
await ctx.ask({
|
|
|
permission: "edit",
|
|
|
patterns: relativePaths,
|
|
|
@@ -242,13 +242,13 @@ export const ApplyPatchTool = Tool.define("apply_patch", {
|
|
|
// Generate output summary
|
|
|
const summaryLines = fileChanges.map((change) => {
|
|
|
if (change.type === "add") {
|
|
|
- return `A ${path.relative(Instance.worktree, change.filePath)}`
|
|
|
+ return `A ${path.relative(Instance.worktree, change.filePath).replaceAll("\\", "/")}`
|
|
|
}
|
|
|
if (change.type === "delete") {
|
|
|
- return `D ${path.relative(Instance.worktree, change.filePath)}`
|
|
|
+ return `D ${path.relative(Instance.worktree, change.filePath).replaceAll("\\", "/")}`
|
|
|
}
|
|
|
const target = change.movePath ?? change.filePath
|
|
|
- return `M ${path.relative(Instance.worktree, target)}`
|
|
|
+ return `M ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}`
|
|
|
})
|
|
|
let output = `Success. Updated the following files:\n${summaryLines.join("\n")}`
|
|
|
|
|
|
@@ -264,7 +264,7 @@ export const ApplyPatchTool = Tool.define("apply_patch", {
|
|
|
const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE)
|
|
|
const suffix =
|
|
|
errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : ""
|
|
|
- output += `\n\nLSP errors detected in ${path.relative(Instance.worktree, target)}, please fix:\n<diagnostics file="${target}">\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n</diagnostics>`
|
|
|
+ output += `\n\nLSP errors detected in ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}, please fix:\n<diagnostics file="${target}">\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n</diagnostics>`
|
|
|
}
|
|
|
}
|
|
|
|