- teacher/system-prompt.md: teach methodology + quiz/ask guidelines folded in - extensions/: quiz.ts + ask-user-question.ts (hermetic copies) - src/teacher/create-session.ts: isolated agent (noTools builtin, own agentDir/sessions/prompt) - src/schema.ts + ledger.ts: append-only ledgers, known-vs-understood data model - src/extract/normalize.ts: session JSONL -> canonical doc (verified on real session) - extractor/merger/derive/what-next: specified stubs
25 lines
919 B
TypeScript
25 lines
919 B
TypeScript
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
/** Repository root (this file is at <root>/config.ts). */
|
|
export const ROOT = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
export const PATHS = {
|
|
root: ROOT,
|
|
extensions: path.join(ROOT, "extensions"),
|
|
teacherPrompt: path.join(ROOT, "teacher", "system-prompt.md"),
|
|
data: path.join(ROOT, "data"),
|
|
/** Hermetic pi agentDir: settings, auth, and NOTHING from ~/.pi/agent except a symlinked auth.json. */
|
|
agentDir: path.join(ROOT, "data", "agent"),
|
|
sessions: path.join(ROOT, "data", "sessions"),
|
|
graph: path.join(ROOT, "data", "graph"),
|
|
} as const;
|
|
|
|
export const LEDGER_FILES = {
|
|
nodes: path.join(PATHS.graph, "nodes.jsonl"),
|
|
edges: path.join(PATHS.graph, "edges.jsonl"),
|
|
events: path.join(PATHS.graph, "events.jsonl"),
|
|
mappings: path.join(PATHS.graph, "mappings.jsonl"),
|
|
sessions: path.join(PATHS.graph, "sessions.jsonl"),
|
|
} as const;
|