/** The contract text, appended verbatim to every brief the runner composes. */ export declare function summaryContract(): string; export interface AgentSummary { /** The agent's own words, or an output tail when it emitted no block. */ text: string; /** False when no block was found and `text` is a fallback tail. */ available: boolean; } /** * The last summary block in the output. Last rather than first for the same * reason {@link extractJson} takes the last json block: an agent that echoes * the contract back before answering would otherwise have its echo parsed as * the answer. */ export declare function extractSummary(output: string): string | undefined; /** * The summary for an agent reply, degrading to an output tail when the agent * emitted no block. Never throws and never signals failure: callers record * what they got and carry on. */ export declare function resolveSummary(output: string, tailLimit?: number): AgentSummary; /** * Event payload fields, so every emitter names them the same way. `role` is * the job the agent held (`build`, `critic`, `writer`, `author`, `validator`, * `reviewer`), not the command it ran. * * `promptBytes` is deliberate telemetry: brief size is the input to every * decision about how much context an agent can be given, and estimating it * from spec line counts is guesswork. Recording it per invocation turns that * into a measurement after one real run. */ export declare function summaryEventData(role: string, prompt: string, summary: AgentSummary): Record; /** Single-line form for progress output; the events log keeps the full text. */ export declare function summaryLine(summary: AgentSummary, limit?: number): string; //# sourceMappingURL=agent-summary.d.ts.map