Polish Feynman harness and stabilize Pi web runtime

This commit is contained in:
Advait Paliwal
2026-03-22 20:20:26 -07:00
parent 7f0def3a4c
commit 46810f97b7
47 changed files with 3178 additions and 869 deletions

43
src/config/paths.ts Normal file
View File

@@ -0,0 +1,43 @@
import { mkdirSync } from "node:fs";
import { homedir } from "node:os";
import { resolve } from "node:path";
export function getFeynmanHome(): string {
return resolve(process.env.FEYNMAN_HOME ?? homedir(), ".feynman");
}
export function getFeynmanAgentDir(home = getFeynmanHome()): string {
return resolve(home, "agent");
}
export function getFeynmanMemoryDir(home = getFeynmanHome()): string {
return resolve(home, "memory");
}
export function getFeynmanStateDir(home = getFeynmanHome()): string {
return resolve(home, ".state");
}
export function getDefaultSessionDir(home = getFeynmanHome()): string {
return resolve(home, "sessions");
}
export function getFeynmanConfigPath(home = getFeynmanHome()): string {
return resolve(home, "config.json");
}
export function getBootstrapStatePath(home = getFeynmanHome()): string {
return resolve(getFeynmanStateDir(home), "bootstrap.json");
}
export function ensureFeynmanHome(home = getFeynmanHome()): void {
for (const dir of [
home,
getFeynmanAgentDir(home),
getFeynmanMemoryDir(home),
getFeynmanStateDir(home),
getDefaultSessionDir(home),
]) {
mkdirSync(dir, { recursive: true });
}
}