/** * Composer-2.5 code-mode steering: declaration-time consolidation doctrine and * a post-success transition note. Spiked live (paired A/B, matched workspaces): * declaration-only conditioning cut mean code calls 1.667 -> 1.333; adding the * success-result note took correct-next-action from 2/6 to 6/6. System-prompt * wording alone was tested and killed (no reliable improvement), so this file * deliberately conditions the tool declaration and the tool RESULT, not the * system prompt. * * Cache safety: the declaration prefix is applied when a fresh physical Run is * assembled (before freeze); resumes reuse the frozen Run so declared bytes * never change mid-session. The success note is an append-only suffix on one * MCP tool result - the sanctioned mid-session channel. */ /** Composer-2.5 family: optional provider prefix (cursor-code/), -fast * variant, and dated suffixes tolerated via \b. Deliberately narrow: composer-1 * and future composer-3 do not match. */ export declare const COMPOSER_CODE_GUIDANCE_MODEL_RE: RegExp; /** Kill switch: ON by default; CURSOR_OPENCODE_COMPOSER_CODE_GUIDANCE=0 * disables both rails. Read per call so tests can flip env between cases. */ export declare function composerCodeGuidanceEnabled(env?: Record): boolean; /** Prefix the code tool description with the consolidation block when the * model is composer-2.5 and code mode is active. Idempotent; returns the * input unchanged for every other model. */ export declare function withComposerCodeGuidance(description: string, modelId: string, codeModeActive: boolean): string; /** The transition note for a successful, nonempty composer code result, or * null when the note must not be applied (other model, kill switch, error, * empty value - those keep recovery freedom). */ export declare function composerCodeSuccessNote(modelId: string, value: string | undefined, error: string | undefined): string | null;