/** * Reglas granulares de permisos por tool. * * allow: lista de patrones que se aprueban sin preguntar. Aceptan glob simple * (`*`) y prefijo de tool (`Bash:git *` solo autoriza comandos git). * deny: lista de patrones que se rechazan sin preguntar. Mismo formato. * * Orden de evaluación: deny > allow > pregunta (si el modo global es `default`). */ export interface PermissionRules { allow?: string[]; deny?: string[]; } export interface McpServerSpec { command: string; args?: string[]; env?: Record; } export interface SqConfig { agent: { default: string; /** * Modo de operación: * - default → pregunta antes de Bash/Write/Edit/NotebookEdit * - accept-edits → auto-aprueba edits (pregunta Bash) * - plan → solo-lectura (bloquea modifying tools) * - bypass → aprueba todo * - auto, yolo → aliases de bypass (legacy) * Se cambia en runtime con Shift+Tab. */ permissions: 'default' | 'accept-edits' | 'plan' | 'bypass' | 'auto' | 'yolo'; }; permissions: PermissionRules; /** * MCP servers a arrancar al iniciar el REPL. Declarados como [mcp.] * en sq.toml — cada entrada es un subproceso stdio con JSON-RPC. * * NOTA: por defecto sq SOLO usa los MCPs declarados aquí. Si tienes MCPs * en Claude Code o Claude Desktop y quieres que sq también los use, ejecuta * `sq mcp import` (interactivo) o pon `auto_import = true` en sq.toml para * que sq los lea automáticamente al arrancar. */ mcp: Record; /** * Si `true`, sq importa al arrancar los MCPs declarados en `~/.claude.json`, * `claude_desktop_config.json` y `/.mcp.json`. Default: `false`. * Override puntual con env: `SQ_MCP_AUTO_IMPORT=1 sq`. */ mcp_auto_import: boolean; transplant: { mode: 'auto' | 'manual' | 'hybrid'; warn_threshold: number; auto_threshold: number; strategy: 'replay' | 'summary' | 'hybrid'; max_replay_messages: number; }; /** * Reservado para integración futura con `squeezr-ai` (compresión del * contexto vía proxy MITM). Hoy sq habla DIRECTO a las APIs sin proxy * intermedio — esta sección está aquí solo como placeholder para v0.13+. */ proxy: { enabled: boolean; port: number; }; economist: { enabled: boolean; daily_budget: number; warn_at: number; }; router: { enabled: boolean; /** Explicit keyword → model rules. Checked before any heuristic. */ rules: Record; /** Enable background LLM intent classification for adaptive learning. Default: false. */ learn: boolean; }; display: { show_cost: boolean; show_context: boolean; show_router: boolean; recaps: boolean; /** Theme: dark | light | solarized | nord. Default: dark. */ theme: string; /** Modo vim para el input (readline editor: 'vi'). Default: false. */ vim: boolean; /** Símbolo del prompt. Default: ❯. Alternativas: ▸ ➜ $ > λ */ prompt_char: string; /** Banner ASCII al arrancar. Default: 'big'. Alternativas: 'compact', 'slant'. */ banner_style: 'big' | 'compact' | 'slant'; /** * EXPERIMENTAL — pinea el input al bottom del terminal con scroll region * (DECSTBM). Output scrollea arriba, prompt pegado abajo (estilo Claude * Code). Default: false — el renderer actual escribe a stdout sin * controlar cursor position, así que con scroll region activo el output * escribe en lugares raros. Hacer que funcione bien requiere refactor * grande del renderer (writeWrapped, markdown, spinner) para llamar a * positionOutputCursor antes de cada write. Pendiente para v0.15+. * Activar solo si quieres probar con un output corto. */ pin_input_bottom: boolean; }; /** Comandos shell que aparecen en el status bar (con cache). */ statusline: { commands: string[]; refresh_seconds: number; }; /** Bash sandboxing opcional vía Docker. */ sandbox: { enabled: boolean; image: string; }; /** * Política de retención de sesiones. Default: no se borra nada * (mismo comportamiento que Claude Code). Ajustable con `/sessions retain N`. */ sessions: { /** Si > 0, al arrancar sq borra sesiones con updatedAt > N días. 0 = off. */ auto_prune_days: number; }; /** * Audit logs: JSONL append-only en ~/.squeezr-code/audit.log con cada tool * ejecutada (tool, input, output hash + preview, timestamp, cwd, sessionId). * Default OFF. Opt-in para B2B / compliance / debugging. */ audit: { enabled: boolean; }; /** * Seguridad: redacción de secrets y airplane mode. * - redact_prompts: enmascara API keys / tokens en TU prompt antes de mandar. * - redact_tool_outputs: enmascara secrets que aparezcan en Read/Bash output * antes de meter al contexto (default true, opt-out). * - airplane: si true, bloquea todas las llamadas a la API + WebFetch/Search. */ security: { redact_prompts: boolean; redact_tool_outputs: boolean; airplane: boolean; }; } export declare function loadConfig(cwd?: string): SqConfig; //# sourceMappingURL=config.d.ts.map