feat: update webui extensions, models, and agent config
This commit is contained in:
22
.pi/agent/extensions/webui/backend/utils/paths.ts
Normal file
22
.pi/agent/extensions/webui/backend/utils/paths.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { relative, resolve } from "node:path";
|
||||
|
||||
/** True when `candidate` resolves to a path under `rootDir` (not the root dir itself). */
|
||||
export function isPathInsideRoot(rootDir: string, candidate: string): boolean {
|
||||
const root = resolve(rootDir);
|
||||
const target = resolve(candidate);
|
||||
const rel = relative(root, target);
|
||||
if (rel === "" || rel === ".") return false;
|
||||
if (rel.startsWith("..")) return false;
|
||||
// Cross-drive relative paths on Windows are absolute (e.g. D:\other\...)
|
||||
if (/^[A-Za-z]:[\\/]/.test(rel)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
export function isSameResolvedPath(a: string, b: string): boolean {
|
||||
const left = resolve(a);
|
||||
const right = resolve(b);
|
||||
if (process.platform === "win32") {
|
||||
return left.toLowerCase() === right.toLowerCase();
|
||||
}
|
||||
return left === right;
|
||||
}
|
||||
Reference in New Issue
Block a user