/** * Agent Types * * Core type definitions for agent configuration */ export type ModelRef = string; export interface ModelEntry { alias?: string; params?: Record; } export type ModelList = Record; export type ContextPruningMode = 'off' | 'eager' | 'lazy' | 'cache-ttl'; export interface ContextPruningConfig { mode?: ContextPruningMode; ttl?: string; eagerMaxTokens?: number; eagerThreshold?: number; eagerKeepAtLeast?: number; eagerKeepAtMost?: number; } export interface HeartbeatConfig { every?: string; enabled?: boolean; target?: string; on?: string[]; } export type CompactionMode = 'off' | 'eager' | 'lazy' | 'safeguard'; export interface CompactionConfig { mode?: CompactionMode; eagerThreshold?: number; eagerKeepAtLeast?: number; eagerKeepAtMost?: number; } export interface AgentDefaults { model?: ModelRef | { primary?: ModelRef; fallbacks?: ModelRef[]; }; models?: ModelList; maxConcurrent?: number; contextPruning?: ContextPruningConfig; heartbeat?: HeartbeatConfig; compaction?: CompactionConfig; temperature?: number; maxTokens?: number; } export interface AgentConfig { defaults?: AgentDefaults; list?: Record; } export interface AgentRuntimeState { sessionKey: string; currentModel?: string; messageCount: number; lastActivity: number; }