pub const SETTINGS_TEMPLATE: &str = "// AgentMux Settings\n// Save this file to apply changes immediately.\n// Uncomment a line to override its default value.\n//\n// Docs: https://docs.agentmux.ai/settings\n{\n // -- Terminal --\n // \"term:fontsize\": 15,\n // \"term:fontfamily\": \"Hack\",\n // \"term:theme\": \"default-dark\",\n // \"term:scrollback\": 2000,\n // \"term:copyonselect\": false,\n // \"term:transparency\": 0.5,\n // \"term:scrollsensitivity\": 1,\n // \"term:localshellpath\": \"/bin/bash\", // example; unset uses your shell\n // \"term:localshellopts\": [],\n // \"term:disablewebgl\": false,\n // \"term:allowbracketedpaste\": true,\n // \"term:shiftenternewline\": false,\n\n // -- Drag and drop (file drop onto Terminal / Agent panes) --\n // \"dnd:enabled\": true,\n // \"dnd:concurrency\": 4, // example; unset means no limit\n // \"dnd:agentinserttoken\": true,\n\n // -- Window --\n // \"window:transparent\": false,\n // \"window:blur\": false,\n // \"window:opacity\": 0.8,\n // \"window:bgcolor\": \"\",\n // \"window:zoom\": 1.0,\n // \"window:tilegapsize\": 3,\n // \"window:showmenubar\": false,\n // \"window:nativetitlebar\": false,\n // \"window:confirmclose\": false,\n // \"tab:confirmclose\": false,\n // \"window:savelastwindow\": true,\n // \"window:keepinactivetabslaidout\": true,\n // \"window:dimensions\": \"\",\n // \"window:reducedmotion\": false,\n // \"window:magnifiedblockopacity\": 1.0,\n // \"window:magnifiedblocksize\": 0.9,\n // \"window:maxtabcachesize\": 10,\n // \"window:disablehardwareacceleration\": false,\n\n // -- Pane colors --\n // Color per widget type, keyed by view (\"term\", \"agent\", ...): a hue 0-360,\n // or null for none. Remove a key to return to the built-in color.\n // \"pane:colors\": {},\n\n // -- Startup --\n // Suppress the splash screen. Applies at the NEXT launch: the launcher\n // reads this before the app itself is running.\n // \"splash:disabled\": false,\n\n // -- App --\n // Keep running with a system-tray icon when all windows are closed\n // (background-service mode). Off by default (opt-in): closing the last\n // window quits. Applies at the NEXT launch: the launcher reads this\n // before the app itself is running.\n // \"app:runinbackground\": false,\n // Show an icon in the system tray / menu bar while AgentMux is running.\n // On by default. Always shown while app:runinbackground is on. Applies at\n // the NEXT launch.\n // \"app:showtray\": true,\n // Start at login (off by default). Same switch as the tray menu\'s\n // \"Start at login\".\n // \"app:startatlogin\": false,\n // \"app:defaultnewblock\": \"\",\n // \"app:showoverlayblocknums\": true,\n\n // -- Shell Environment --\n // \"cmd:env\": {},\n\n // -- Telemetry --\n // \"telemetry:enabled\": true,\n // \"telemetry:interval\": 1.0,\n // \"telemetry:numpoints\": 120,\n\n // -- Connections --\n // \"conn:wshenabled\": true,\n // \"conn:askbeforewshinstall\": true,\n\n // -- Notification sounds --\n // \"notify:sounds:enabled\": true,\n // \"notify:sounds:volume\": 0.6,\n // \"notify:sounds:suppresswhenfocused\": true,\n // \"notify:sound:agent.turn.complete\": true,\n // \"notify:sound:agent.turn.error\": true,\n // \"notify:sound:agent.turn.interrupted\": true,\n // \"notify:sound:agent.message.accepted\": true,\n // \"notify:sound:agent.message.rejected\": true,\n // Play a soft looping tone while an agent is waiting for your reply.\n // \"notify:sound:agent.waiting.for.input\": true,\n // \"notify:sounds:waiting:volume\": 0.25, // 0\u{2013}1, scaled by notify:sounds:volume\n\n // -- Desktop notifications (OS toasts) --\n // \"notify:os:enabled\": true,\n // \"notify:os:when\": \"unfocused\", // \"unfocused\" | \"always\" | \"never\"\n // \"notify:os:inputwaiting\": true,\n // \"notify:os:turncompleted\": true,\n // \"notify:os:turncompleted:external\": false, // turns you didn\'t start\n // \"notify:os:turnerrored\": true,\n // \"notify:os:agentcrashed\": true,\n // \"notify:os:messageneedsreview\": true,\n // \"notify:os:cloudsignedout\": true,\n // \"notify:pause:until\": 0, // epoch ms; set from the tray\n // \"notify:pause:allowattention\": false,\n // \"notify:taskbar:attention\": true, // badge + flash the taskbar button\n // \"notify:quiethours\": \"\", // e.g. \"22:00-08:00\" (local time)\n // \"notify:os:preview\": \"redacted\", // \"redacted\" | \"full\" | \"none\"\n // \"notify:os:summary\": true, // the agent\'s session summary under the body\n\n // -- Tool-call tones (subliminal per-tool \"voice\") --\n // \"notify:tooltones:enabled\": true,\n // \"notify:tooltones:volume\": 0.25,\n // \"notify:tooltones:scope\": \"all\", // \"all\" or \"focused\"\n // \"notify:tooltones:flash\": true, // flash the source tab with each sound (tones + event sounds)\n\n // -- Voice input (speech-to-text) --\n // \"voice:enabled\": true, // show the per-pane mic button (default true)\n // \"voice:engine\": \"groq\", // \"groq\" (hosted Whisper, default),\n // // \"whisper-local\" (offline whisper.cpp), or\n // // \"webspeech\" (browser API \u{2014} does NOT work in\n // // packaged CEF builds; dev/Chromium only)\n // -- groq engine: hosted, sends webm. Key read server-side only (never sent to UI).\n // \"voice:groqApiKey\": \"gsk_...\", // example; or set AGENTMUX_GROQ_API_KEY\n // -- whisper-local engine: offline, sends 16kHz WAV to a local whisper.cpp CLI.\n // Provide the whisper-cli binary path; the GGML model auto-downloads on\n // first use (default \"base.en\", ~142MB) to <config>/whisper-models/.\n // Env override for the binary: AGENTMUX_WHISPER_CLI.\n // \"voice:whisperCliPath\": \"C:/tools/whisper-cli.exe\", // example\n // \"voice:whisperModel\": \"base.en\", // tiny.en | base.en | small.en | \u{2026}\n // \"voice:whisperModelPath\": \"C:/models/ggml-base.en.bin\", // example; explicit override; skips auto-download\n\n // -- Browser panes --\n // The address bar also asks the default search engine for suggestions\n // while you type, sending it each edit before you press Enter, as Chrome\n // does. Off: suggestions come only from this computer (history, typed\n // addresses). Incognito tabs never ask, as in Chrome.\n // \"browser:searchsuggestions\": true,\n\n // -- Network --\n // Discover other AgentMux instances on your local network (mDNS/Bonjour)\n // so agents on different machines can message each other directly,\n // without going through the cloud.\n //\n // Default FALSE, deliberately: turning this on makes the app advertise\n // and browse on the local network, which triggers the OS local-network\n // permission prompt (macOS) / firewall prompt (Windows). Not worth\n // bothering someone who only ever runs agents on one machine \u{2014} turn it\n // on when you actually want cross-machine agent messaging.\n //\n // Must be enabled on BOTH machines: discovery is mutual, so a peer with\n // this off is invisible even if you have it on.\n // \"network:lan_discovery\": false,\n\n // -- Cloud --\n // Publish this computer to my devices: while signed in to MuxBus Cloud,\n // your signed-in devices can list this computer from anywhere. Turning\n // it off also tells them it went offline. Dev builds, headless installs\n // and isolated homes never publish.\n // \"cloud:publishpresence\": true,\n\n // -- Agents --\n // Tell an agent, in a short [AgentMux] note, when it edits a file another\n // agent on this computer is also changing, so it can message them first.\n // \"agent:overlapnotes\": true,\n\n // When an agent\'s AgentMux tools (its MCP server) don\'t connect, reconnect\n // them, then restart the agent once without the shell prefix.\n // \"agent:mcpselfheal\": true,\n\n // -- Other --\n // \"widget:icononly\": false,\n // \"blockheader:showblockids\": false,\n // \"preview:showhiddenfiles\": false,\n // \"tab:preset\": \"\"\n}\n";