refactor: finish strict tool-call typing and mapper dedup

This commit is contained in:
Mohamed Boudra
2026-02-09 09:07:14 +07:00
parent 6d4992b2f5
commit 896f88fa34
10 changed files with 823 additions and 1581 deletions
+2 -16
View File
@@ -1,24 +1,10 @@
import { z } from "zod";
import { stripCwdPrefix } from "../shared/path-utils.js";
const SHELL_WRAPPER_PREFIX_PATTERN =
/^\/bin\/(?:zsh|bash|sh)\s+(?:-[a-zA-Z]+\s+)?/;
const CD_AND_PATTERN = /^cd\s+(?:"[^"]+"|'[^']+'|\S+)\s+&&\s+/;
export function stripCwdPrefix(filePath: string, cwd?: string): string {
if (!cwd || !filePath) return filePath;
const normalizedCwd = cwd.replace(/\\/g, "/").replace(/\/+$/, "");
const normalizedPath = filePath.replace(/\\/g, "/");
const prefix = `${normalizedCwd}/`;
if (normalizedPath.startsWith(prefix)) {
return normalizedPath.slice(prefix.length);
}
if (normalizedPath === normalizedCwd) {
return ".";
}
return filePath;
}
export { stripCwdPrefix };
export function stripShellWrapperPrefix(command: string): string {
const prefixMatch = command.match(SHELL_WRAPPER_PREFIX_PATTERN);