import { z } from 'zod';
import { HOOK_TIMEOUT_MS } from '../constants/plugin/index.js';
import { SandboxConfigSchema } from '../types/sandbox/index.js';
export { SandboxConfigSchema };
export const TaskRouterConfigSchema = z
    .object({
    compaction: z.string().nullish(),
    summarization: z.string().nullish(),
    exploration: z.string().nullish(),
    coding: z.string().nullish(),
    verification: z.string().nullish(),
    planning: z.string().nullish(),
    default: z.string().nullish(),
})
    .optional();
export const CompactionConfigSchema = z.object({
    strategy: z.enum(['structured', 'sliding-window', 'disabled']).default('structured'),
    triggerThreshold: z.number().min(0).max(1).default(0.7),
    resetThreshold: z.number().min(0).max(1).default(0.4),
    keepRecentMessages: z.number().positive().default(4),
    maxToolResults: z.number().positive().default(30),
    maxListSize: z.number().positive().default(25),
    llmVerification: z.boolean().default(true),
    llmVerificationMaxTokens: z.number().positive().default(2048),
    richStateThreshold: z.number().positive().default(15),
    convoTextBudget: z.number().positive().default(12_000),
    maxSentencesPerTurn: z.number().positive().default(5),
    maxCharsPerNote: z.number().positive().default(500),
    maxCharsPerRequirement: z.number().positive().default(300),
    maxCharsPerTask: z.number().positive().default(400),
});
export const AgentBusConfigSchema = z.object({
    enabled: z.boolean().default(false),
    lockTimeoutMs: z.number().positive().default(60_000),
    lockAcquireTimeoutMs: z.number().positive().default(5_000),
    maxLocksPerAgent: z.number().positive().default(10),
    breakerFailureThreshold: z.number().positive().default(5),
    breakerResetTimeoutMs: z.number().positive().default(30_000),
});
export const PromptCacheConfigSchema = z.object({
    enabled: z.boolean().default(true),
    strategy: z.enum(['auto', 'disabled']).default('auto'),
});
export const PluginRuntimeConfigSchema = z.object({
    enabled: z.boolean().default(false),
    autoDiscovery: z.boolean().default(true),
    allowedScopes: z.array(z.enum(['project', 'user'])).default(['project', 'user']),
    hookTimeoutMs: z.number().positive().default(HOOK_TIMEOUT_MS),
});
export const RuntimeConfigSchema = z.object({
    model: z.string().default('qwen/qwen3.6-plus:free'),
    temperature: z.number().min(0).max(2).default(0.3),
    tokenBudget: z.number().nonnegative().default(100_000),
    maxResponseTokens: z.number().positive().default(8192),
    timeoutMs: z.number().positive().default(600_000),
    maxIterations: z.number().positive().default(200),
    taskRouter: TaskRouterConfigSchema,
    compaction: CompactionConfigSchema.default({}),
    agentBus: AgentBusConfigSchema.optional(),
    promptCache: PromptCacheConfigSchema.optional(),
    plugins: PluginRuntimeConfigSchema.optional(),
    sandbox: SandboxConfigSchema.optional(),
});
export const RUNTIME_DEFAULTS = RuntimeConfigSchema.parse({});
//# sourceMappingURL=runtime.js.map