/** * Inline template renderers for the forge harness. * * Each template is a pure function that builds a string from a typed context. * No handlebars, no partials, no filesystem reads — keeps the plugin * dependency-free and avoids packaging `.hbs` assets alongside the compiled * JavaScript. * * The public API is `render(name, context)`, mirroring the previous Handlebars * implementation so the rest of the harness module is unchanged. */ import type { ForgeEnv, ForgeMessage, ForgePendingTodo, ForgeSkill } from './types'; export type TemplateName = 'system-info' | 'tool-use-example' | 'tool-error-reflection' | 'skill-instructions' | 'summary-frame' | 'doom-loop-reminder' | 'pending-todos-reminder' | 'tool-retry-message' | 'title-generation' | 'commit-message'; export interface SystemInfoContext { env: ForgeEnv; } export interface SkillInstructionsContext { skills: ForgeSkill[]; } export interface SummaryFrameContext { messages: ForgeMessage[]; } export interface DoomLoopReminderContext { consecutive_calls: number; } export interface PendingTodosReminderContext { todos: ForgePendingTodo[]; } export interface ToolRetryMessageContext { attempts_left: number; } type ContextFor = N extends 'system-info' ? SystemInfoContext : N extends 'skill-instructions' ? SkillInstructionsContext : N extends 'summary-frame' ? SummaryFrameContext : N extends 'doom-loop-reminder' ? DoomLoopReminderContext : N extends 'pending-todos-reminder' ? PendingTodosReminderContext : N extends 'tool-retry-message' ? ToolRetryMessageContext : Record; export declare function render(name: N, context: ContextFor): Promise; export {}; //# sourceMappingURL=templates.d.ts.map