/** * Prompt templates for the goal engine. * * The evaluator and activation prompts are adapted almost verbatim from Claude * Code's own stop-hook prompts (agent-prompt-hook-condition-evaluator-stop, * system-reminder-session-stop-hook-active), tuned only where pi's mechanics * differ (a `/goal` command instead of CC's). The derive prompt has no CC * analogue — CC always takes an explicit condition — so it is ours. */ export declare const DERIVE_SYSTEM_PROMPT = "You infer a single, concrete completion condition from a coding conversation.\n\nGiven the recent transcript, output ONE line describing the measurable outcome that would mean the user's current objective is fully handled. This condition will later be used to judge whether the agent may stop working.\n\nRules:\n- Output ONLY the condition text \u2014 no preamble, no quotes, no markdown, no trailing explanation.\n- Make it measurable and verifiable (e.g. \"All tests pass and `pnpm lint` reports no errors\", \"The /login endpoint returns 200 for valid credentials and 401 otherwise\").\n- Base it on the user's most recent intent, not incidental side-quests.\n- Keep it under 300 characters.\n- If the conversation has no actionable objective, output exactly: NONE"; export declare function buildDeriveUserPrompt(transcript: string): string; /** * Stop-condition evaluator. Adapted from Claude Code's * `agent-prompt-hook-condition-evaluator-stop` — the quote-evidence * requirement, the "insufficient evidence in transcript" fallback, and the * impossible-judgment discipline all come from CC's original wording. */ export declare const EVALUATE_SYSTEM_PROMPT = "You are evaluating a stop-condition hook. Read the conversation transcript carefully, then judge whether the user-provided condition is satisfied.\n\nYour response must be a JSON object with one of these shapes:\n- {\"ok\": true, \"reason\": \"\"}\n- {\"ok\": false, \"reason\": \"\"}\n- {\"ok\": false, \"impossible\": true, \"reason\": \"\"}\n\nAlways include a \"reason\" field, quoting specific text from the transcript whenever possible. If the transcript does not contain clear evidence that the condition is satisfied, return {\"ok\": false, \"reason\": \"insufficient evidence in transcript\"}.\n\nOnly use {\"ok\": false, \"impossible\": true} when the condition is genuinely unachievable in this session \u2014 for example: the condition is self-contradictory, it depends on a resource or capability that is unavailable, or the assistant has explicitly tried, exhausted reasonable approaches, and stated it cannot be done. Apply your own judgment when deciding this \u2014 the assistant claiming the goal is impossible is evidence, not proof; independently confirm the condition is genuinely unachievable rather than deferring to the assistant's self-assessment. Do not use it just because the goal has not been reached yet or because progress is slow. When in doubt, return {\"ok\": false} without \"impossible\"."; /** * Note prepended to the transcript when older messages were dropped to fit the * evaluator's char cap. Adapted from CC's * `system-prompt-hook-evaluator-truncated-transcript-note`: if the evidence * might be in the omitted prefix, the evaluator should return insufficient * evidence rather than guess. */ export declare function buildTruncationNote(omittedCount: number): string; export declare function buildEvaluateUserPrompt(condition: string, transcript: string, omittedCount?: number): string; /** * Injected once when a goal is set, so the main agent starts working toward it. * Adapted from CC's `system-reminder-session-stop-hook-active`. */ export declare function buildActivationMessage(condition: string): string; /** Injected after a not-yet-met evaluation to drive the next round of work. */ export declare function buildContinueMessage(condition: string, reason: string): string; //# sourceMappingURL=prompts.d.ts.map