Files
clawdbot/src/agents/pi-path.ts
2025-12-05 23:18:43 +01:00

27 lines
868 B
TypeScript

import fs from "node:fs";
import { createRequire } from "node:module";
import path from "node:path";
// Resolve the bundled pi/tau binary path from the installed dependency.
export function resolveBundledPiBinary(): string | null {
try {
const require = createRequire(import.meta.url);
const pkgPath = require.resolve(
"@mariozechner/pi-coding-agent/package.json",
);
const pkgDir = path.dirname(pkgPath);
// Prefer compiled binary if present, else fall back to dist/cli.js (has shebang).
const binCandidates = [
path.join(pkgDir, "dist", "pi"),
path.join(pkgDir, "dist", "cli.js"),
path.join(pkgDir, "bin", "tau-dev.mjs"),
];
for (const candidate of binCandidates) {
if (fs.existsSync(candidate)) return candidate;
}
} catch {
// Dependency missing or resolution failed.
}
return null;
}