/** * Loom prompt composer — assembles the Loom system prompt from sections, * conditionally including/excluding content based on enabled agents. * * Default behavior (no disabled agents) produces identical output to the * hardcoded LOOM_DEFAULTS.prompt string. */ import type { ProjectFingerprint } from "../../features/analytics/types"; import type { AvailableAgent } from "../dynamic-prompt-builder"; import type { CategoriesConfig } from "../../config/schema"; import type { ReviewModelVariant } from "../review-model-variants"; export interface LoomPromptOptions { /** Set of disabled agent names (lowercase config keys) */ disabledAgents?: Set; /** Project fingerprint for injecting project context into the prompt */ fingerprint?: ProjectFingerprint | null; /** Custom agent metadata for dynamic delegation sections */ customAgents?: AvailableAgent[]; /** Categories config for category-aware shuttle routing */ categories?: CategoriesConfig; /** Runtime owns direct/Tapestry fan-out; Loom still enumerates variants for Loom-authored review Task delegations. */ reviewModelVariants?: ReviewModelVariant[]; } export declare function buildRoleSection(): string; export declare function buildDisciplineSection(): string; export declare function buildSidebarTodosSection(): string; export declare function buildDelegationSection(disabled: Set, reviewModelVariants?: ReviewModelVariant[]): string; export declare function buildDelegationNarrationSection(disabled?: Set): string; export declare function buildPlanWorkflowSection(disabled: Set, reviewModelVariants?: ReviewModelVariant[]): string; export declare function buildReviewWorkflowSection(disabled: Set, reviewModelVariants?: ReviewModelVariant[]): string; export declare function buildStyleSection(): string; /** * Build a category routing section listing shuttle-{category} agents. * Categories with patterns get file-pattern routing guidance. * Categories without patterns are still listed as available specialists. * Returns empty string when no categories exist or shuttle is disabled. */ export declare function buildCategoryRoutingSection(categories: CategoriesConfig | undefined, disabled: Set): string; /** * Build a delegation section for custom agents. * Returns empty string if no enabled custom agents exist. */ export declare function buildCustomAgentDelegationSection(customAgents: AvailableAgent[], disabled: Set): string; /** * Compose the full Loom system prompt from sections. * When no agents are disabled, produces identical output to LOOM_DEFAULTS.prompt. */ export declare function composeLoomPrompt(options?: LoomPromptOptions): string;