/** * defineSteering — sugar for always-on system-prompt Injections. * * Steering docs are the simplest form of context engineering: a fixed * piece of guidance the LLM should follow on every iteration. Style * guides, output format rules, persona statements, safety policies. * * Produces an `Injection` with: * - flavor: `'steering'` * - trigger: `{ kind: 'always' }` * - inject: `{ systemPrompt: prompt }` * * @example * const jsonOnly = defineSteering({ * id: 'json-only', * description: 'Always respond with valid JSON.', * prompt: 'Respond with JSON only. No prose. No markdown.', * }); */ import type { Injection } from '../types.js'; import type { CachePolicy } from '../../../cache/types.js'; export interface DefineSteeringOptions { readonly id: string; readonly description?: string; /** Always-on text appended to the system-prompt slot. */ readonly prompt: string; /** * Cache policy for this steering injection. Defaults to `'always'` * — steering is by definition always-on stable content, ideal for * provider-side caching. Override with `'never'` if the prompt * contains volatile content (timestamps, per-request IDs). * * See `CachePolicy` in `agentfootprint/src/cache/types.ts` for all * variants. The CacheDecision subflow reads this from * `injection.metadata.cache` each iteration. */ readonly cache?: CachePolicy; } export declare function defineSteering(opts: DefineSteeringOptions): Injection;