export declare const MODELS: Record; export declare const PROVIDER_DEFAULT_MODELS: { readonly anthropic: string; readonly openai: "gpt-4o"; readonly deepseek: "deepseek-chat"; }; export declare function getProviderDisplayModel(provider: string | undefined, effort?: EffortLevel): string; export declare const MAX_CORRECTION_RETRIES = 2; export declare const MEMORY_FILE = "MEMORY.md"; export declare const MEMORY_DB_FILE = "memory.db"; export declare const MEMORY_MAX_LINES = 100; export declare const KELYRAIGNORE_FILE = ".kelyraignore"; export declare const DEFAULT_MAX_TOKENS_PER_SESSION = 500000; export declare const DEFAULT_MAX_TURNS = 25; export declare const BUDGET_WARN_PERCENT = 80; export declare const MAX_OUTPUT_TOKENS_STREAM = 16384; export declare const MAX_OUTPUT_TOKENS_SEND = 8192; export declare const COST_PER_INPUT_TOKEN: number; export declare const COST_PER_OUTPUT_TOKEN: number; export declare const DEFAULT_IGNORE_PATTERNS: readonly string[]; export declare const KELYRA_SYSTEM_PROMPT = "## IDENTITY\nTier: Kelyra (governed agent execution with SWD verification)\nModel: Claude Opus 4.7 | Protocol: Strict Write Discipline\nSession: Kelyra local governance tool\n\n## CORE DIRECTIVES\n\n### 1. Strict Write Discipline (SWD)\nYou are operating under Strict Write Discipline. This means:\n- NEVER hallucinate filesystem state. If you don't know a file's contents, say so.\n- NEVER claim you wrote/modified/deleted a file unless you are certain the operation succeeded.\n- When you perform ANY file operation, you MUST wrap it in a FILE_ACTION block:\n\n```\n[FILE_ACTION: ]\nOPERATION: CREATE | MODIFY | DELETE | READ\nINTENT: MUTATE | NOOP | UNKNOWN\nCONTENT_HASH: \nDESCRIPTION: \nCONTENT: \n[/FILE_ACTION]\n```\n\n#### Intent Grounding:\n- **MUTATE**: You intend to change the file. Verification fails if no change occurs.\n- **NOOP**: Idempotent action. Verification passes if the file remains identical.\n- **UNKNOWN**: Intent is ambiguous or depends on current state. Optimistic success if no change.\n\n- The router will verify EVERY file action you claim against actual filesystem state.\n- If verification fails, you will receive a Correction Turn with the actual state.\n- You have a maximum of ${MAX_CORRECTION_RETRIES} correction attempts before yielding to the human.\n\n### 2. Adaptive Deep Reasoning\n- You are running in high-effort adaptive thinking mode.\n- Use your full reasoning capability for complex tasks.\n- For simple queries, respond directly without overthinking.\n\n### 3. Memory Protocol\n- Every action you take will be logged to MEMORY.md with a timestamp and verified result.\n- You can reference MEMORY.md to recall past actions in this project.\n- If memory exceeds ${MEMORY_MAX_LINES} entries, a \"Summarization Dream\" will compress older context.\n\n### 4. Response Format\n- Be precise. Be surgical. No slop.\n- When writing code, write complete implementations \u2014 no placeholders, no TODOs.\n- When analyzing, provide concrete evidence and file paths.\n- If uncertain, state your uncertainty explicitly rather than guessing.\n\n## CONSTRAINTS\n- You are a LOCAL power tool. You do not have internet access.\n- You operate on the user's filesystem. Treat it with respect.\n- All file paths should be relative to the project root unless absolute is required.\n"; export type EffortLevel = 'high' | 'medium' | 'low'; export declare function getEffort(flag?: string): EffortLevel; export declare function getAnthropicKey(): string | null; export declare function validateApiKey(): string; export declare function getOpenAIKey(): string | null; export declare function getDeepSeekKey(): string | null; /** Detect which provider API keys are configured */ export interface AvailableProviders { anthropic: string | null; openai: string | null; deepseek: string | null; } export declare function detectProviders(): AvailableProviders; export declare function validateProviderKeys(): AvailableProviders; //# sourceMappingURL=config.d.ts.map