feat(FN-2985): add droid CLI path reconciliation extension
Adds a new pi extension that reconciles droid CLI paths, with corresponding staging support in the tsup build config for bundling the droid-cli. The extension is wired into the engine and exported from core, with tests covering the path reconciliation logic. Fusion-Task-Id: FN-2985
This commit is contained in:
@@ -8,6 +8,8 @@ const dashboardClientSrc = join(__dirname, "..", "dashboard", "dist", "client");
|
||||
const dashboardClientDest = join(__dirname, "dist", "client");
|
||||
const piClaudeCliSrc = join(__dirname, "..", "pi-claude-cli");
|
||||
const piClaudeCliDest = join(__dirname, "dist", "pi-claude-cli");
|
||||
const droidCliSrc = join(__dirname, "..", "droid-cli");
|
||||
const droidCliDest = join(__dirname, "dist", "droid-cli");
|
||||
const dashboardClientStub = `<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
@@ -65,6 +67,27 @@ export default defineConfig({
|
||||
);
|
||||
}
|
||||
|
||||
// Stage the vendored @fusion/droid-cli pi extension into dist/, following
|
||||
// the same pattern as pi-claude-cli above. The extension ships raw .ts
|
||||
// source that pi loads via jiti at runtime, so it cannot be bundled by
|
||||
// esbuild. This lets us drop @fusion/droid-cli from the published
|
||||
// package's dependencies — the workspace package is private and would 404
|
||||
// on `pnpm install` of @runfusion/fusion otherwise.
|
||||
if (existsSync(droidCliDest)) {
|
||||
rmSync(droidCliDest, { recursive: true, force: true });
|
||||
}
|
||||
if (existsSync(droidCliSrc)) {
|
||||
mkdirSync(droidCliDest, { recursive: true });
|
||||
cpSync(join(droidCliSrc, "index.ts"), join(droidCliDest, "index.ts"));
|
||||
cpSync(join(droidCliSrc, "src"), join(droidCliDest, "src"), { recursive: true });
|
||||
cpSync(join(droidCliSrc, "package.json"), join(droidCliDest, "package.json"));
|
||||
console.log("Copied droid-cli extension to dist/droid-cli/");
|
||||
} else {
|
||||
console.warn(
|
||||
`WARNING: droid-cli source not found at ${droidCliSrc}; useDroidCli will not work in the published package.`,
|
||||
);
|
||||
}
|
||||
|
||||
if (existsSync(dashboardClientDest)) {
|
||||
rmSync(dashboardClientDest, { recursive: true, force: true });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user