import type { RequestType } from './artifact-prerequisites.js'; /** * Role discriminator for the five request-artifact templates. Lives here * (rather than in `request-artifact-service.ts`) so this pure-function * module has no dependency on the service. The service re-exports it for * back-compat with external callers. */ export type RequestArtifactRole = 'prd' | 'ui' | 'rd' | 'qa' | 'sc'; /** What every role's render needs beyond the request's own identity. */ export type RenderTemplateContext = { requestType: RequestType | null; projectRoot: string; }; /** * Handoff path helpers. * * on the session-id axis (`.peaks/_runtime///...`) * instead of the deleted change-id axis * (`.peaks/_runtime/change///...`). The session * dir is gitignored; the hard ban on `.peaks/_runtime//` * siblings remains in force. * * The render functions below emit markdown bodies that quote these * paths verbatim as write instructions — if the body contains a * banned top-level path, the sub-agent prompt will recreate the * forbidden dir on its next write. */ /** Canonical handoff path for a downstream role's request artifact. */ export declare function formatHandoffPath(sessionId: string, role: string, requestId: string): string; /** Canonical path for the SC commit-boundary handoff artifact. */ export declare function formatCommitBoundaryPath(sessionId: string, requestId: string): string; /** Canonical path for the txt skill-usage lessons log under a session scope. */ export declare function formatSkillUsageLessonsPath(sessionId: string): string; export declare function renderTemplate(role: RequestArtifactRole, requestId: string, sessionId: string, changeSlug: string, timestamp: string, context: RenderTemplateContext): string;