66 lines
2.4 KiB
JavaScript
Executable File
66 lines
2.4 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
import * as fs from "node:fs";
|
|
import * as os from "node:os";
|
|
import * as path from "node:path";
|
|
|
|
const home = process.env.PI_TEAMS_HOME?.trim() || os.homedir();
|
|
const agentDir = path.join(home, ".pi", "agent");
|
|
const configPath = path.join(agentDir, "pi-crew.json");
|
|
const legacyConfigPath = path.join(agentDir, "extensions", "pi-crew", "config.json");
|
|
const defaultConfig = {
|
|
// Keep generated config non-invasive: runtime/limits use pi-crew internal defaults.
|
|
autonomous: {
|
|
enabled: true,
|
|
injectPolicy: true,
|
|
preferAsyncForLongTasks: false,
|
|
allowWorktreeSuggestion: true
|
|
},
|
|
agents: {
|
|
overrides: {
|
|
explorer: { model: false, thinking: "off" },
|
|
writer: { model: false, thinking: "off" },
|
|
planner: { model: false, thinking: "medium" },
|
|
analyst: { model: false, thinking: "off" },
|
|
critic: { model: false, thinking: "low" },
|
|
executor: { model: false, thinking: "medium" },
|
|
reviewer: { model: false, thinking: "off" },
|
|
"security-reviewer": { model: false, thinking: "medium" },
|
|
"test-engineer": { model: false, thinking: "low" },
|
|
verifier: { model: false, thinking: "off" }
|
|
}
|
|
},
|
|
ui: {
|
|
widgetPlacement: "aboveEditor",
|
|
widgetMaxLines: 8,
|
|
powerbar: true,
|
|
dashboardPlacement: "center",
|
|
dashboardWidth: 72,
|
|
dashboardLiveRefreshMs: 1000,
|
|
autoOpenDashboard: false,
|
|
autoOpenDashboardForForegroundRuns: false,
|
|
showModel: true,
|
|
showTokens: true,
|
|
showTools: true
|
|
}
|
|
};
|
|
|
|
fs.mkdirSync(agentDir, { recursive: true });
|
|
if (!fs.existsSync(configPath)) {
|
|
if (fs.existsSync(legacyConfigPath)) {
|
|
fs.copyFileSync(legacyConfigPath, configPath);
|
|
console.log(`Migrated pi-crew global config to: ${configPath}`);
|
|
} else {
|
|
fs.writeFileSync(configPath, `${JSON.stringify(defaultConfig, null, 2)}\n`, "utf-8");
|
|
console.log(`Created default pi-crew global config: ${configPath}`);
|
|
}
|
|
} else {
|
|
console.log(`pi-crew global config already exists: ${configPath}`);
|
|
}
|
|
|
|
console.log("\nInstall the published package in Pi with:");
|
|
console.log(" pi install npm:pi-crew");
|
|
console.log("\nFor local development from a cloned repo:");
|
|
console.log(" pi install .");
|
|
console.log("\nChild workers are enabled by default. For dry runs, set runtime.mode=scaffold or executeWorkers=false.");
|
|
console.log("To force-disable or force-enable workers in a shell, use PI_TEAMS_EXECUTE_WORKERS=0/1.");
|