{
  "dashboard": {
    "title": "J.A.R.V.I.S.",
    "subtitle": "Just A Rather Very Intelligent System",
    "showScanLine": false,
    "statusText": "System Online"
  },
  "theme": {
    "bg": "#0a0a1a",
    "panelBg": "#0d1117",
    "panelBorder": "rgba(0, 212, 255, 0.12)",
    "hoverBg": "#12182a",
    "accent": "#00d4ff",
    "accentDim": "rgba(0, 212, 255, 0.3)",
    "accentFaint": "rgba(0, 212, 255, 0.08)",
    "purple": "#7c6bff",
    "green": "#44c98f",
    "red": "#e74c3c",
    "orange": "#ff6b35",
    "gold": "#f6d365",
    "text": "#e0e6ed",
    "textMuted": "#6b7b8d",
    "textDim": "#3a4553"
  },
  "projects": {
    "mode": "manual",
    "rootPath": "~/.claude/projects/",
    "tracked": [
      { "dir": "your-project-directory", "label": "My Project" }
    ]
  },
  "layout": [
    { "type": "header" },
    { "type": "jarvis-voice-command" },
    { "type": "live-sessions" },
    { "type": "row", "columns": 2, "widgets": ["focus-timer", "quick-capture"] },
    { "type": "agent-cards" },
    { "type": "communication-link" },
    { "type": "row", "columns": 2, "widgets": ["quick-launch", "mission-control"] },
    { "type": "system-diagnostics" },
    { "type": "activity-analytics" },
    { "type": "recent-activity" },
    { "type": "footer" }
  ],
  "widgets": {
    "focusTimer": {
      "workPresets": [
        { "label": "30m", "ms": 1800000 },
        { "label": "60m", "ms": 3600000 }
      ],
      "breakPresets": [
        { "label": "5m", "ms": 300000 },
        { "label": "10m", "ms": 600000 },
        { "label": "15m", "ms": 900000 }
      ],
      "logPath": "Productivity"
    },
    "quickCapture": {
      "targetFolder": "Inbox",
      "tag": "inbox/capture",
      "voice": {
        "enabled": true,
        "lang": "en",
        "whisperModel": "/opt/homebrew/share/whisper-cpp/ggml-small.bin"
      }
    },
    "quickLaunch": {
      "groups": [
        {
          "name": "Development",
          "bookmarks": [
            { "name": "Cursor", "icon": "\u25b8", "color": "#44c98f", "type": "app", "target": "Cursor" },
            { "name": "Terminal", "icon": "\u25aa", "color": "#00d4ff", "type": "app", "target": "Terminal" }
          ]
        },
        {
          "name": "Web",
          "bookmarks": [
            { "name": "GitHub", "icon": "\u2b21", "color": "#e0e6ed", "type": "url", "target": "https://github.com" },
            { "name": "YouTube", "icon": "\u25b6", "color": "#e74c3c", "type": "url", "target": "https://youtube.com" },
            { "name": "Slack", "icon": "\ud83d\udcac", "color": "#7c6bff", "type": "app", "target": "Slack" }
          ]
        }
      ]
    },
    "missionControl": {
      "dashboards": [
        { "name": "Dashboard 1", "path": "MOCs/Dashboard-1", "color": "#ff6b6b", "icon": "\u2665" },
        { "name": "Dashboard 2", "path": "MOCs/Dashboard-2", "color": "#7c6bff", "icon": "\u25c9" }
      ]
    },
    "recentActivity": {
      "count": 10,
      "excludePatterns": ["/(Daily|Weekly|Monthly)/"]
    },
    "communicationLink": {
      "terminalApp": "Terminal",
      "editorApp": "Cursor",
      "terminalTitle": "claude \u2014 Dashboard",
      "vaultPathDisplay": "~/my-vault"
    },
    "agentCards": {
      "registryPath": "src/config/Jarvis-Registry"
    },
    "voiceCommand": {
      "enabled": true,
      "mode": "local",
      "remoteTts": "local",
      "model": "sonnet",
      "zoomMin": 0.92,
      "zoomMax": 1.08,
      "terminal": {
        "title": "JARVIS OUTPUT",
        "showProjectTag": true,
        "showStatusBadge": true,
        "showCopyButton": true,
        "showCompletionLabel": true,
        "completionLabel": "Process complete",
        "showStatusLabels": true,
        "showToolUseLabels": true,
        "showCommand": false,
        "codeHighlighting": { "enabled": true }
      },
      "personality": {
        "userName": "sir",
        "assistantName": "JARVIS",
        "prompt": "You are {assistantName}, a highly capable AI assistant inspired by the J.A.R.V.I.S. system. Address the user as \"{userName}\".\n\nRules:\n- Be concise, precise, efficient. Short, direct answers.\n- Keep responses to 1-3 sentences. If the topic requires more, give the essential answer first, then ask if {userName} wants details.\n- Open with brief acknowledgments when natural (\"Right away, {userName}\", \"Certainly, {userName}\", \"Of course\"). Vary naturally.\n- Matter-of-fact with dry wit. Brief humor welcome; never forced.\n- For complex tasks, give a crisp status first (\"Running diagnostics now, {userName}\").\n- No filler phrases, caveats, or corporate language.\n- If you don't know something, say so directly.\n- Minimal markdown — responses are spoken aloud via TTS. Avoid code blocks, tables, and lists unless explicitly requested.\n- You are {assistantName}, not \"Claude\" or \"an AI assistant\". Never break character.\n- Optimize for audible clarity: short sentences, natural pauses at periods, no parenthetical asides.",
        "languageInstruction": "Always respond in the same language the user speaks. Supported languages: {languages}. Match the user's language exactly.\nCRITICAL for TTS: Your responses are synthesized by a text-to-speech engine that only understands the script of the response language. Never mix scripts in a response \u2014 transliterate or translate all foreign names and terms into the response language's script so every word is pronounceable by the TTS engine."
      },
      "interactive": {
        "enabled": true,
        "interactivePermissions": true,
        "autoApproveTools": ["Read", "Glob", "Grep", "Agent", "WebSearch", "WebFetch", "Skill", "ToolSearch", "AskUserQuestion"],
        "alwaysAskTools": ["Bash", "Write", "Edit"],
        "permissionTimeout": 120000,
        "questionTimeout": 120000,
        "voiceResponseEnabled": true,
        "batchQuestions": true
      },
      "tts": {
        "enabled": true,
        "engine": "piper",
        "say": { "voice": "Daniel", "rate": 160 },
        "piper": {
          "binaryPath": "piper",
          "modelPath": "~/.config/piper/en_US-joe-medium.onnx",
          "lengthScale": null,
          "noiseScale": 0.4,
          "noiseWScale": 0.5,
          "sentenceSilence": null,
          "volume": null
        }
      }
    },
    "systemDiagnostics": {
      "periodDays": 30,
      "cacheDurationMs": 300000
    }
  },
  "network": {
    "host": "your-mac.local",
    "port": 7777,
    "localPort": 7778,
    "autoConnect": true,
    "heartbeatInterval": 30000,
    "reconnectMaxDelay": 30000,
    "mobileTts": "server",
    "audioSizeLimit": 10485760,
    "connectionTimeout": 10000
  },
  "language": {
    "stt": "auto",
    "fallback": "en",
    "piperModelsDir": "~/.config/piper",
    "supported": {
      "en": {
        "label": "English",
        "piper": {
          "lengthScale": 0.72,
          "sentenceSilence": 0.08
        }
      }
    }
  },
  "companion": {
    "ffmpegPath": "/opt/homebrew/bin/ffmpeg",
    "whisperPath": "/opt/homebrew/bin/whisper-cli",
    "whisperModel": "/opt/homebrew/share/whisper-cpp/ggml-small.bin",
    "whisperLang": "auto",
    "claudePath": null,
    "maxConnections": 2,
    "rateLimitPerMinute": 10,
    "idleTimeoutMs": 300000
  },
  "performance": {
    "liveSessionsIntervalMs": 3000,
    "processCheckCacheMs": 10000,
    "projectDiscoveryCacheMs": 300000,
    "animationsEnabled": true,
    "clockIntervalMs": 1000,
    "cleanupIntervalMs": 5000
  },
  "pricing": {
    "opus": { "input": 15, "output": 75 },
    "sonnet": { "input": 3, "output": 15 },
    "haiku": { "input": 0.80, "output": 4 }
  },
  "platform": {
    "vaultBasePath": "",
    "dashboardPath": "",
    "ios": {
      "bundleId": "com.jarvis.dashboard",
      "teamId": ""
    },
    "macos": {
      "bundleId": "com.jarvis.dashboard",
      "productName": "Jarvis"
    }
  }
}
