import { z } from "zod" import { DynamicContextPruningConfigSchema } from "./dynamic-context-pruning" export const ExperimentalConfigSchema = z.object({ aggressive_truncation: z.boolean().optional(), auto_resume: z.boolean().optional(), preemptive_compaction: z.boolean().optional(), /** Truncate all tool outputs, not just whitelisted tools (default: false). Tool output truncator is enabled by default - disable via disabled_hooks. */ truncate_all_tool_outputs: z.boolean().optional(), /** Dynamic context pruning configuration */ dynamic_context_pruning: DynamicContextPruningConfigSchema.optional(), /** Enable experimental task system for Todowrite disabler hook */ task_system: z.boolean().optional(), /** Timeout in ms for loadAllPluginComponents during config handler init (default: 10000, min: 1000) */ plugin_load_timeout_ms: z.number().min(1000).optional(), /** Wrap hook creation in try/catch to prevent one failing hook from crashing the plugin (default: true at call site) */ safe_hook_creation: z.boolean().optional(), /** Disable auto-injected context in prompts (experimental) */ disable_omo_env: z.boolean().optional(), /** Enable hashline_edit tool for improved file editing with hash-based line anchors */ hashline_edit: z.boolean().optional(), /** Append fallback model info to session title when a runtime fallback occurs (default: false) */ model_fallback_title: z.boolean().optional(), }) export type ExperimentalConfig = z.infer