singularity-forge/scripts/install-pi-global.js

51 lines
1.4 KiB
JavaScript
Raw Permalink Normal View History

2026-03-11 13:34:03 -07:00
#!/usr/bin/env node
2026-05-05 14:31:16 +02:00
import {
cpSync,
existsSync,
mkdirSync,
readFileSync,
writeFileSync,
} from "node:fs";
import os from "node:os";
import { join, resolve } from "node:path";
2026-03-11 13:34:03 -07:00
2026-05-05 14:31:16 +02:00
const __dirname = import.meta.dirname;
const resourcesDir = resolve(__dirname, "..", "src", "resources");
const piRoot = join(os.homedir(), ".pi");
const piAgentDir = join(piRoot, "agent");
2026-03-11 13:34:03 -07:00
const copyDir = (name) => {
2026-05-05 14:31:16 +02:00
const src = join(resourcesDir, name);
const dest = join(piAgentDir, name);
if (!existsSync(src)) return false;
mkdirSync(dest, { recursive: true });
cpSync(src, dest, { recursive: true, force: true });
return true;
};
2026-03-11 13:34:03 -07:00
2026-05-05 14:31:16 +02:00
mkdirSync(piAgentDir, { recursive: true });
2026-03-11 13:34:03 -07:00
2026-05-05 14:31:16 +02:00
const copied = [];
if (copyDir("extensions")) copied.push("extensions");
if (copyDir("skills")) copied.push("skills");
if (copyDir("workflow-skills")) copied.push("workflow-skills");
2026-05-05 14:31:16 +02:00
if (copyDir("agents")) copied.push("agents");
2026-03-11 13:34:03 -07:00
2026-05-05 14:31:16 +02:00
const agentsMdSrc = join(resourcesDir, "AGENTS.md");
2026-03-11 13:34:03 -07:00
if (existsSync(agentsMdSrc)) {
2026-05-05 14:31:16 +02:00
writeFileSync(join(piAgentDir, "AGENTS.md"), readFileSync(agentsMdSrc));
copied.push("AGENTS.md");
2026-03-11 13:34:03 -07:00
}
2026-05-05 14:31:16 +02:00
const workflowSrc = join(resourcesDir, "SF-WORKFLOW.md");
2026-03-11 13:34:03 -07:00
if (existsSync(workflowSrc)) {
2026-05-05 14:31:16 +02:00
writeFileSync(join(piRoot, "SF-WORKFLOW.md"), readFileSync(workflowSrc));
copied.push("SF-WORKFLOW.md");
2026-03-11 13:34:03 -07:00
}
process.stdout.write(
2026-05-05 14:31:16 +02:00
`Installed SF resources for pi in ${piRoot}\n` +
`Copied: ${copied.join(", ")}\n` +
`Extensions are now available under ${join(piAgentDir, "extensions")}\n`,
);