/** * Shared types for pi coding-agent system-prompt composition. */ /** * Minimal subset of a loaded skill that the prompt composer needs. * * Fork-local `Skill` types (from `src/core/skills.ts` etc.) are structurally * assignable to this shape, so callers can pass their richer type directly. */ export interface PromptSkill { name: string; description: string; filePath: string; disableModelInvocation?: boolean; } /** * A simple file snippet to append as "Project Context" into the system prompt. */ export interface PromptContextFile { path: string; content: string; } /** * Options for `buildSystemPrompt` and the lower-level primitives. * * Forks compose this with their domain-specific preamble, principles, * and tool descriptions before calling `buildSystemPrompt`. */ export interface BuildSystemPromptOptions { /** * The fork's domain-specific body of the system prompt — identity paragraph, * core expertise, principles, tool descriptions, domain docs pointer. * * The composer appends guidelines, context files, skills, date/time, and * working directory AROUND this body. */ body?: string; /** * Opt-out: replace the entire composed prompt with a caller-provided string. * * When set, `body` is ignored. `appendSystemPrompt`, `contextFiles`, `skills`, * date/time, and cwd are still appended after the custom prompt. */ customPrompt?: string; /** * The tools available to the agent (names only). Used to gate guidelines * and select which standard tool descriptions to render. */ selectedTools?: string[]; /** * Extra bullets to append after the standard, tool-aware guidelines. */ extraGuidelines?: string[]; /** * Free-form text to append after the prompt body (before context/skills/date). */ appendSystemPrompt?: string; /** * Working directory to render into the prompt footer. Default: `process.cwd()`. */ cwd?: string; /** * Pre-loaded context files. Rendered under a `# Project Context` heading. */ contextFiles?: PromptContextFile[]; /** * Pre-loaded skills. Rendered into an `` XML block, * but only when the `read` tool is available (skill files are read via it). */ skills?: PromptSkill[]; /** * Override the "Current date and time" footer. Default: locale-formatted now. */ currentDateTime?: string; } //# sourceMappingURL=types.d.ts.map