/** * Lower-level primitives used by the system-prompt composer. * * Callers can use these directly if they want to compose a prompt manually * (e.g. a fork that writes its own composer but still wants shared * guidelines / context / skills / date-time rendering). */ import type { PromptContextFile, PromptSkill } from "./types.js"; /** * Default descriptions for the standard pi coding-agent toolset. * * Forks merge their domain tools onto this map before rendering * the "Available tools" list. */ export declare const STANDARD_TOOL_DESCRIPTIONS: Readonly>; /** * Default set of standard tool names. */ export declare const STANDARD_TOOL_NAMES: readonly string[]; /** * Compact reinforcement block for budget models that drift away from the * declared artifact schema. Safe to embed inside a parent XML document. */ export declare const STRICT_JSON_OUTPUT_RULES: string; /** * Parse structured specialist output from raw model text. * * Strips outer ```json / ``` fences, trims whitespace, and extracts the * first balanced JSON object or array from prose-wrapped output before * attempting structured parsing. */ export declare function parseSpecialistArtifactText(rawText: string): Record | unknown[] | null; /** * Render the current date/time with the canonical pi coding-agent format. */ export declare function getCurrentDateTimeString(now?: Date): string; /** * Render a "# Project Context" section from pre-loaded context files. * Returns an empty string when there are no files. */ export declare function renderProjectContextSection(files: readonly PromptContextFile[]): string; /** * Render an `` XML block from a loaded skill list. * * Skills with `disableModelInvocation=true` are excluded; they can only * be invoked explicitly via slash commands. * * Returns an empty string when no eligible skills are present. */ export declare function formatSkillsForPrompt(skills: readonly PromptSkill[]): string; /** * Produce the tool-aware guidelines bullet list that pi coding-agent forks * all share. The output is shaped by which standard tools are available. * * Domain-specific guidelines should be passed via `extraGuidelines` to the * composer; they append after these baseline items. */ export declare function buildStandardGuidelines(selectedTools: readonly string[]): string[]; /** * Render a bulleted list of "Available tools" from a name → description map. * Unknown names (without a description entry) are dropped silently. */ export declare function renderToolsList(selectedTools: readonly string[], toolDescriptions: Readonly>): string; //# sourceMappingURL=primitives.d.ts.map