/** * Unified system-reminder builder — single source of truth for all * `` XML blocks across the dispatch and graph subsystems. * * Output format (Scheme B: structured minimal): * ``` * * [MARKER] * key: value * key: value * * → action instruction * * ``` * * Rules enforced here that every call-site formerly replicated by hand: * - No markdown bold (`**…**`). Fields use plain `key: value`. * - No consecutive spaces for visual alignment. Fields are one-per-line by * default; `inline: true` fields join with a single space. * - Marker string is passed through verbatim — it is a contract string * matched by `isDispatchNotification()`. * - Empty/null-value fields are omitted (no "N/A"). * - Action lines are prefixed with `→ ` and separated from the data block * by a blank line. Multiple actions each get their own `→ ` line. * - Body is embedded as free text and may contain line breaks. */ export interface ReminderField { label: string; value: string; /** Join with preceding field(s) using a single space (same line). */ inline?: boolean; } export interface BuildReminderOpts { /** Contract marker, emitted verbatim. Omit for marker-less reminders. */ marker?: string; /** Key-value data fields. */ fields?: ReminderField[]; /** Next-step instruction(s). Multiple lines: each line gets `→ ` prefix. */ action?: string; /** Free-form body (approval notes, multi-line explanations, etc.). */ body?: string; /** * Compact single-line mode — all content on one line inside the * `` wrapper. Fields are space-joined; action * follows after ` → `; body appends. No newlines anywhere. */ compact?: boolean; } /** * Build a `` block. * * @example Plain marker * buildReminder({ marker: "[GRAPH NODE COMPLETED]" }) * * @example Marker + fields + action * buildReminder({ * marker: "[GRAPH NODE COMPLETED]", * fields: [ * { label: "Graph", value: "g1" }, * { label: "Node", value: "n1" }, * ], * action: "Use graph_status to inspect the result.", * }) * * @example Marker + body (approval gate) * buildReminder({ * marker: "[BLOCKED: NEEDS APPROVAL]", * body: "The result is ready for review.", * }) */ export declare function buildReminder(opts: BuildReminderOpts): string; //# sourceMappingURL=reminder.d.ts.map