/** * Wire each grouped strategy to its data source on the dispatcher / * recorder substrate. These are the 4 `enable.*` facades' actual * implementations; `RunnerBase.enable` calls them with the right * dispatcher / attach handle. * * Pattern: every facade follows the same shape: * * 1. Resolve strategy (consumer-supplied OR default) * 2. Run `strategy.validate?()` — early-fail on misconfig (New Relic * panel review) * 3. Set up subscription / projection * 4. Apply per-strategy event-type filter (`relevantEventTypes`) * 5. Apply per-call sample rate * 6. Wrap calls in try/catch — route errors to `_onError` (passive * recorder rule: never throw to caller) * 7. Return Unsubscribe (or handle for lens) */ import type { EventDispatcher, Unsubscribe } from '../events/dispatcher.js'; import type { ObservabilityStrategy, CostStrategy, LiveStatusStrategy, CommonStrategyOptions, ObservabilityTier } from './types.js'; import { type StatusTemplates } from '../recorders/observability/status/statusTemplates.js'; export interface ObservabilityEnableOptions extends CommonStrategyOptions { /** Cost-of-on knob. `'minimal'` → only error + lifecycle events. * `'standard'` → most domains. `'firehose'` → every event including * per-token streams. Default `'standard'`. */ readonly tier?: ObservabilityTier; readonly strategy?: ObservabilityStrategy; } export declare function attachObservabilityStrategy(dispatcher: EventDispatcher, opts?: ObservabilityEnableOptions): Unsubscribe; export interface CostEnableOptions extends CommonStrategyOptions { readonly strategy?: CostStrategy; } /** * Subscribe to `agentfootprint.cost.tick` events, project payload into * the canonical `CostTick` shape, hand to strategy. */ export declare function attachCostStrategy(dispatcher: EventDispatcher, opts?: CostEnableOptions): Unsubscribe; export interface LiveStatusEnableOptions extends CommonStrategyOptions { readonly strategy: LiveStatusStrategy; /** Override the bundled English thinking templates with locale / * per-tool / per-skill overrides. Same shape as * `agent.thinkingTemplates(...)`. */ readonly templates?: StatusTemplates; /** App name woven into `{{appName}}` template var. */ readonly appName?: string; } export declare function attachLiveStatusStrategy(dispatcher: EventDispatcher, opts: LiveStatusEnableOptions): Unsubscribe; //# sourceMappingURL=attach.d.ts.map