import { existsSync, readdirSync } from "node:fs"; import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; const docRoot = "/doc"; function buildDocList(): string | undefined { if (!existsSync(docRoot)) { return undefined; } const entries = readdirSync(docRoot, { withFileTypes: true }) .filter((entry) => entry.isDirectory() || entry.isSymbolicLink()) .map((entry) => entry.name) .sort((a, b) => a.localeCompare(b)); if (entries.length === 0) { return undefined; } return `/doc/ contains documentation for ${entries.join(", ")}. List files with \`find /doc/$name/\` (mind the trailing slash; don't use -type f).`; } export default function docList(pi: ExtensionAPI) { pi.on("before_agent_start", (event) => { const docList = buildDocList(); if (docList) { event.systemPromptOptions.sections.documentation = docList; } else { delete event.systemPromptOptions.sections.documentation; } }); }