{
  "schemaVersion": 1,
  "title": "Configured main lint audit after health-dot and Markdown alert migrations",
  "auditLocalDate": "2026-10-21",
  "timezone": "Europe/Stockholm",
  "exactSha": "630e587a0de0b4106173ba0d39ac865d60a51a5a",
  "baseline": {
    "trackedChangesBefore": 0,
    "trackedChangesAfter": 0,
    "headUnchanged": true,
    "sourceEdited": false,
    "ruleConfigurationChanged": false,
    "verificationSkillEdited": false
  },
  "comparison": {
    "priorExactSha": "8d39305538c1d17a30cbe477e57a0e18fcee7d95",
    "priorTotals": {
      "filesLinted": 1408,
      "filesWithDiagnostics": 197,
      "errors": 0,
      "warnings": 645,
      "fatalErrors": 0,
      "fixableErrors": 0,
      "fixableWarnings": 0
    },
    "warningDelta": -27,
    "diagnosticDelta": [
      {
        "kind": "removed",
        "file": "src/components/features/automations/setup/automation-setup-prompt-stack.tsx",
        "ruleId": "shadcn/no-arbitrary-values",
        "messageId": "arbitraryValue",
        "utilityOrMessagePrefix": "bg-[var(--oh-interactive-hover)]",
        "count": 2
      },
      {
        "kind": "removed",
        "file": "src/components/features/automations/setup/automation-setup-prompt-stack.tsx",
        "ruleId": "shadcn/no-arbitrary-values",
        "messageId": "arbitraryValue",
        "utilityOrMessagePrefix": "max-h-[60vh]",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/automations/setup/automation-setup-prompt-stack.tsx",
        "ruleId": "shadcn/no-arbitrary-values",
        "messageId": "arbitraryValue",
        "utilityOrMessagePrefix": "z-[60]",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/automations/setup/automation-setup-prompt-stack.tsx",
        "ruleId": "shadcn/no-arbitrary-values",
        "messageId": "arbitraryValueWithScale",
        "utilityOrMessagePrefix": "max-w-[200px]",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/automations/setup/automation-setup-prompt-stack.tsx",
        "ruleId": "shadcn/no-arbitrary-values",
        "messageId": "arbitraryValueWithScale",
        "utilityOrMessagePrefix": "max-w-[320px]",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/automations/setup/automation-setup-prompt-stack.tsx",
        "ruleId": "shadcn/no-arbitrary-values",
        "messageId": "arbitraryValueWithScale",
        "utilityOrMessagePrefix": "min-w-[200px]",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/backends/backend-status-dot.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "bg-red-500",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "bg-blue-500/10",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "bg-emerald-500/10",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "bg-purple-500/10",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "bg-rose-500/10",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "bg-yellow-500/10",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "border-l-blue-500",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "border-l-emerald-500",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "border-l-purple-500",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "border-l-rose-500",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "border-l-yellow-500",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-blue-300",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-blue-400",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-emerald-300",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-emerald-400",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-purple-300",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-purple-400",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-rose-300",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-rose-400",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-yellow-300",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/markdown/blockquote.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "text-yellow-400",
        "count": 1
      },
      {
        "kind": "removed",
        "file": "src/components/features/mcp-page/mcp-server-health.tsx",
        "ruleId": "shadcn/no-raw-colors",
        "messageId": "paletteClass",
        "utilityOrMessagePrefix": "bg-red-500",
        "count": 1
      },
      {
        "kind": "added",
        "file": "src/components/features/chat/components/chat-input-profile-picker.tsx",
        "ruleId": "shadcn/no-arbitrary-values",
        "messageId": "arbitraryValue",
        "utilityOrMessagePrefix": "max-h-[60vh]",
        "count": 1
      },
      {
        "kind": "added",
        "file": "src/components/features/chat/components/chat-input-profile-picker.tsx",
        "ruleId": "shadcn/no-arbitrary-values",
        "messageId": "arbitraryValue",
        "utilityOrMessagePrefix": "z-[60]",
        "count": 1
      }
    ],
    "comparisonMethod": "Match by repository-relative file, rule, utility/property and diagnostic category, preserving multiplicity. Nearest-token proximity changes are ignored when counting added/removed diagnostics."
  },
  "environment": {
    "platform": "darwin",
    "architecture": "arm64",
    "node": "v25.9.0",
    "npm": "11.12.1",
    "eslint": "v9.39.5",
    "declaredNodeEngine": ">=24",
    "declaredPackageManager": "npm@10.5.0",
    "selectedVariables": {
      "NO_COLOR": "1",
      "FORCE_COLOR": "0"
    },
    "dependencyRefresh": {
      "command": "npm ci",
      "exitCode": 0,
      "reason": "Committed lockfile changed since previous audit, including @openhands/extensions 0.31.0 to 0.32.0.",
      "installedLockfileSha256": "a4398b74ead265f7ec4e135c04532db89cdad4927f63147f3a18c3974fd0e570"
    }
  },
  "reproduction": {
    "prerequisite": "Clean isolated checkout of exactSha and the committed package-lock.json",
    "dependencyCommand": "npm ci",
    "fullLintCommand": "NO_COLOR=1 FORCE_COLOR=0 npm run lint",
    "configuredPrelint": "npm run make-i18n",
    "configuredLint": "npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}",
    "configuredTypecheck": "react-router typegen && tsc",
    "machineCommand": "NO_COLOR=1 FORCE_COLOR=0 ./node_modules/.bin/eslint src --format json --output-file eslint.json",
    "eslintTarget": "src",
    "fullLintExitCode": 0,
    "machineExitCode": 0,
    "fullLintStartedAt": "2026-10-21T11:52:18.036390+00:00",
    "fullLintFinishedAt": "2026-10-21T11:53:20.424470+00:00",
    "machineStartedAt": "2026-10-21T11:53:20.425081+00:00",
    "machineFinishedAt": "2026-10-21T11:54:06.987856+00:00",
    "typecheckPassed": true,
    "prettierPassed": true,
    "dependencyEngineNotes": [
      "npm emitted engine warnings for transitive jsdom@30.0.1 and vitest@5.0.0 on Node25; both requested audit commands completed successfully."
    ]
  },
  "totals": {
    "filesLinted": 1417,
    "filesWithDiagnostics": 194,
    "errors": 0,
    "warnings": 618,
    "fatalErrors": 0,
    "fixableErrors": 0,
    "fixableWarnings": 0
  },
  "rules": [
    {
      "ruleId": "shadcn/no-arbitrary-values",
      "errors": 0,
      "warnings": 517,
      "files": 177
    },
    {
      "ruleId": "shadcn/no-inline-styles",
      "errors": 0,
      "warnings": 83,
      "files": 42
    },
    {
      "ruleId": "shadcn/no-raw-colors",
      "errors": 0,
      "warnings": 18,
      "files": 4
    }
  ],
  "ownersByPath": [
    {
      "name": "src/components/features/automations",
      "errors": 0,
      "warnings": 138,
      "files": 15
    },
    {
      "name": "src/components/features/chat",
      "errors": 0,
      "warnings": 70,
      "files": 25
    },
    {
      "name": "src/components/features/conversation-panel",
      "errors": 0,
      "warnings": 66,
      "files": 26
    },
    {
      "name": "src/components/features/settings",
      "errors": 0,
      "warnings": 51,
      "files": 18
    },
    {
      "name": "src/components/features/conversation",
      "errors": 0,
      "warnings": 39,
      "files": 14
    },
    {
      "name": "src/components/features/home",
      "errors": 0,
      "warnings": 27,
      "files": 11
    },
    {
      "name": "src/components/features/backends",
      "errors": 0,
      "warnings": 25,
      "files": 7
    },
    {
      "name": "src/components/features/skills",
      "errors": 0,
      "warnings": 24,
      "files": 11
    },
    {
      "name": "src/ui",
      "errors": 0,
      "warnings": 22,
      "files": 4
    },
    {
      "name": "src/routes",
      "errors": 0,
      "warnings": 20,
      "files": 5
    },
    {
      "name": "src/components/features/files-tab",
      "errors": 0,
      "warnings": 18,
      "files": 5
    },
    {
      "name": "src/utils",
      "errors": 0,
      "warnings": 17,
      "files": 7
    },
    {
      "name": "src/components/features/command-menu",
      "errors": 0,
      "warnings": 15,
      "files": 2
    },
    {
      "name": "src/components/shared",
      "errors": 0,
      "warnings": 13,
      "files": 7
    },
    {
      "name": "src/components/features/sidebar",
      "errors": 0,
      "warnings": 10,
      "files": 4
    },
    {
      "name": "src/components/features/controls",
      "errors": 0,
      "warnings": 9,
      "files": 3
    },
    {
      "name": "src/components/conversation-events",
      "errors": 0,
      "warnings": 8,
      "files": 3
    },
    {
      "name": "src/components/features/markdown",
      "errors": 0,
      "warnings": 7,
      "files": 3
    },
    {
      "name": "src/components/features/mcp-page",
      "errors": 0,
      "warnings": 7,
      "files": 4
    },
    {
      "name": "src/components/features/onboarding",
      "errors": 0,
      "warnings": 6,
      "files": 3
    },
    {
      "name": "src/components/features/plugins",
      "errors": 0,
      "warnings": 6,
      "files": 4
    },
    {
      "name": "src/components/features/diff-viewer",
      "errors": 0,
      "warnings": 4,
      "files": 4
    },
    {
      "name": "src/components/features/mcp-logo-badge.tsx",
      "errors": 0,
      "warnings": 4,
      "files": 1
    },
    {
      "name": "src/components/features/canvas-extensions",
      "errors": 0,
      "warnings": 3,
      "files": 2
    },
    {
      "name": "src/components/features/images",
      "errors": 0,
      "warnings": 2,
      "files": 1
    },
    {
      "name": "src/components/features/manifest",
      "errors": 0,
      "warnings": 2,
      "files": 1
    },
    {
      "name": "src/components/features/suggestions",
      "errors": 0,
      "warnings": 2,
      "files": 1
    },
    {
      "name": "src/components/features/context-menu",
      "errors": 0,
      "warnings": 1,
      "files": 1
    },
    {
      "name": "src/components/features/launch",
      "errors": 0,
      "warnings": 1,
      "files": 1
    },
    {
      "name": "src/components/features/setup-guide",
      "errors": 0,
      "warnings": 1,
      "files": 1
    }
  ],
  "allDiagnostics": [
    {
      "file": "src/components/conversation-events/chat/event-message-components/corrective-nudge-message.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 19,
          "column": 19,
          "endLine": 19,
          "endColumn": 38,
          "message": "\"mt-[5px]\" hardcodes an off-token value. Use \"mt-1.25\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "mt-1.25"
              },
              "fix": {
                "range": [
                  616,
                  635
                ],
                "text": "\"mt-1.25 shrink-0\""
              },
              "desc": "Replace with \"mt-1.25\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 22,
          "column": 23,
          "endLine": 22,
          "endColumn": 58,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 38,
          "endLine": 21,
          "endColumn": 62,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-contrast"
              },
              "fix": {
                "range": [
                  745,
                  769
                ],
                "text": "\"w-4 h-4 text-contrast\""
              },
              "desc": "Replace with \"text-contrast\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-content-2"
              },
              "fix": {
                "range": [
                  745,
                  769
                ],
                "text": "\"w-4 h-4 text-content-2\""
              },
              "desc": "Replace with \"text-content-2\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 47,
          "endLine": 23,
          "endColumn": 71,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-contrast"
              },
              "fix": {
                "range": [
                  846,
                  870
                ],
                "text": "\"w-4 h-4 text-contrast\""
              },
              "desc": "Replace with \"text-contrast\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-content-2"
              },
              "fix": {
                "range": [
                  846,
                  870
                ],
                "text": "\"w-4 h-4 text-content-2\""
              },
              "desc": "Replace with \"text-content-2\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 27,
          "column": 38,
          "endLine": 27,
          "endColumn": 62,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-contrast"
              },
              "fix": {
                "range": [
                  1013,
                  1037
                ],
                "text": "\"w-4 h-4 text-contrast\""
              },
              "desc": "Replace with \"text-contrast\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-content-2"
              },
              "fix": {
                "range": [
                  1013,
                  1037
                ],
                "text": "\"w-4 h-4 text-content-2\""
              },
              "desc": "Replace with \"text-content-2\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 46,
          "column": 38,
          "endLine": 46,
          "endColumn": 62,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-list-section.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 20,
          "column": 36,
          "endLine": 20,
          "endColumn": 130,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 20,
          "column": 36,
          "endLine": 20,
          "endColumn": 130,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/add-automation-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 94,
          "column": 19,
          "endLine": 94,
          "endColumn": 34,
          "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 145,
          "column": 25,
          "endLine": 145,
          "endColumn": 36,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/automations/automation-list-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 146,
          "column": 26,
          "endLine": 146,
          "endColumn": 86,
          "message": "\"grid-cols-[auto_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/automation-view-toggle.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 108,
          "column": 60,
          "endLine": 108,
          "endColumn": 75,
          "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 155,
          "column": 25,
          "endLine": 155,
          "endColumn": 36,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/automations/create-instructions.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 9,
          "endLine": 21,
          "endColumn": 93,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/dashboard/automations-dashboard-controls.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 122,
          "column": 27,
          "endLine": 122,
          "endColumn": 109,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 140,
          "column": 21,
          "endLine": 140,
          "endColumn": 166,
          "message": "\"min-w-[16rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/active-status-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 48,
          "column": 19,
          "endLine": 48,
          "endColumn": 44,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "errorCount": 0,
      "warningCount": 8,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 122,
          "column": 22,
          "endLine": 122,
          "endColumn": 84,
          "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 127,
          "column": 27,
          "endLine": 127,
          "endColumn": 126,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 132,
          "column": 22,
          "endLine": 132,
          "endColumn": 83,
          "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 156,
          "column": 27,
          "endLine": 156,
          "endColumn": 176,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 164,
          "column": 22,
          "endLine": 164,
          "endColumn": 83,
          "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 256,
          "column": 26,
          "endLine": 256,
          "endColumn": 68,
          "message": "\"border-[var(--oh-primary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 276,
          "column": 19,
          "endLine": 276,
          "endColumn": 151,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 334,
          "column": 23,
          "endLine": 334,
          "endColumn": 109,
          "message": "\"min-h-[12rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/run-phase.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 196,
          "column": 20,
          "endLine": 196,
          "endColumn": 35,
          "message": "\"max-w-[28rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 196,
          "column": 38,
          "endLine": 196,
          "endColumn": 53,
          "message": "\"max-w-[12rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/run-status-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 184,
          "column": 13,
          "endLine": 184,
          "endColumn": 59,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/script-section.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 99,
          "column": 27,
          "endLine": 99,
          "endColumn": 88,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 101,
          "column": 32,
          "endLine": 101,
          "endColumn": 145,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 104,
          "column": 37,
          "endLine": 104,
          "endColumn": 123,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/import-automation-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 19,
          "endLine": 171,
          "endColumn": 138,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 19,
          "endLine": 171,
          "endColumn": 138,
          "message": "\"w-[min(36rem,calc(100vw-2rem))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/kebab-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 99,
          "column": 60,
          "endLine": 99,
          "endColumn": 75,
          "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 137,
          "column": 25,
          "endLine": 137,
          "endColumn": 36,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/automations/recommended-automations-rail.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 235,
          "column": 13,
          "endLine": 235,
          "endColumn": 101,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 246,
          "column": 13,
          "endLine": 246,
          "endColumn": 101,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/setup/automation-setup-panel.tsx",
      "errorCount": 0,
      "warningCount": 78,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 130,
          "column": 3,
          "endLine": 130,
          "endColumn": 175,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 454,
          "column": 9,
          "endLine": 454,
          "endColumn": 61,
          "message": "\"bg-[var(--oh-success)]/10\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 454,
          "column": 9,
          "endLine": 454,
          "endColumn": 61,
          "message": "\"text-[var(--oh-success)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 460,
          "column": 17,
          "endLine": 460,
          "endColumn": 115,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 460,
          "column": 17,
          "endLine": 460,
          "endColumn": 115,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 590,
          "column": 24,
          "endLine": 590,
          "endColumn": 85,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 595,
          "column": 42,
          "endLine": 595,
          "endColumn": 78,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 604,
          "column": 21,
          "endLine": 604,
          "endColumn": 145,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 604,
          "column": 21,
          "endLine": 604,
          "endColumn": 145,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1781,
          "column": 21,
          "endLine": 1781,
          "endColumn": 62,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1872,
          "column": 29,
          "endLine": 1872,
          "endColumn": 148,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1884,
          "column": 13,
          "endLine": 1884,
          "endColumn": 105,
          "message": "\"[scrollbar-gutter:stable]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1888,
          "column": 26,
          "endLine": 1888,
          "endColumn": 84,
          "message": "\"max-w-[800px]\" hardcodes an off-token value. Use \"max-w-200\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "max-w-200"
              },
              "fix": {
                "range": [
                  60582,
                  60640
                ],
                "text": "\"mx-auto flex w-full min-w-0 max-w-200 flex-col gap-6\""
              },
              "desc": "Replace with \"max-w-200\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1944,
          "column": 29,
          "endLine": 1944,
          "endColumn": 127,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1944,
          "column": 29,
          "endLine": 1944,
          "endColumn": 127,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1953,
          "column": 29,
          "endLine": 1953,
          "endColumn": 148,
          "message": "\"border-[var(--oh-warning)]/40\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1953,
          "column": 29,
          "endLine": 1953,
          "endColumn": 148,
          "message": "\"bg-[var(--oh-warning)]/10\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1953,
          "column": 29,
          "endLine": 1953,
          "endColumn": 148,
          "message": "\"text-[var(--oh-warning)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1968,
          "column": 39,
          "endLine": 1968,
          "endColumn": 75,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2167,
          "column": 31,
          "endLine": 2167,
          "endColumn": 118,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2177,
          "column": 40,
          "endLine": 2177,
          "endColumn": 90,
          "message": "\"md:grid-cols-[2fr_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2274,
          "column": 39,
          "endLine": 2274,
          "endColumn": 165,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2310,
          "column": 36,
          "endLine": 2310,
          "endColumn": 140,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2317,
          "column": 41,
          "endLine": 2317,
          "endColumn": 73,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2325,
          "column": 35,
          "endLine": 2325,
          "endColumn": 160,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2448,
          "column": 17,
          "endLine": 2448,
          "endColumn": 93,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2448,
          "column": 17,
          "endLine": 2448,
          "endColumn": 93,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2448,
          "column": 17,
          "endLine": 2448,
          "endColumn": 93,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2457,
          "column": 23,
          "endLine": 2457,
          "endColumn": 116,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2467,
          "column": 19,
          "endLine": 2467,
          "endColumn": 144,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2467,
          "column": 19,
          "endLine": 2467,
          "endColumn": 144,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2543,
          "column": 11,
          "endLine": 2543,
          "endColumn": 124,
          "message": "\"-mb-[15px]\" hardcodes an off-token value. Use \"-mb-3.75\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "-mb-3.75"
              },
              "fix": {
                "range": [
                  88175,
                  88288
                ],
                "text": "\"relative z-10 -mb-3.75 overflow-hidden rounded-[15px] border border-[var(--oh-border)] bg-[var(--oh-surface)]\""
              },
              "desc": "Replace with \"-mb-3.75\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2543,
          "column": 11,
          "endLine": 2543,
          "endColumn": 124,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2543,
          "column": 11,
          "endLine": 2543,
          "endColumn": 124,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2543,
          "column": 11,
          "endLine": 2543,
          "endColumn": 124,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2550,
          "column": 21,
          "endLine": 2550,
          "endColumn": 78,
          "message": "\"min-h-[256px]\" hardcodes an off-token value. Use \"min-h-64\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "min-h-64"
              },
              "fix": {
                "range": [
                  88499,
                  88556
                ],
                "text": "\"custom-scrollbar-always min-h-64 overflow-x-hidden\""
              },
              "desc": "Replace with \"min-h-64\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2570,
          "column": 23,
          "endLine": 2570,
          "endColumn": 76,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2578,
          "column": 15,
          "endLine": 2578,
          "endColumn": 120,
          "message": "\"z-[2]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2588,
          "column": 19,
          "endLine": 2588,
          "endColumn": 144,
          "message": "\"rounded-b-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-b-2xl (16px), rounded-b-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2588,
          "column": 19,
          "endLine": 2588,
          "endColumn": 144,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2588,
          "column": 19,
          "endLine": 2588,
          "endColumn": 144,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2588,
          "column": 19,
          "endLine": 2588,
          "endColumn": 144,
          "message": "\"pt-[calc(15px+0.5rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2600,
          "column": 15,
          "endLine": 2600,
          "endColumn": 119,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2609,
          "column": 28,
          "endLine": 2609,
          "endColumn": 63,
          "message": "\"md:grid-cols-[2fr_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2706,
          "column": 11,
          "endLine": 2706,
          "endColumn": 62,
          "message": "\"border-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2708,
          "column": 9,
          "endLine": 2708,
          "endColumn": 78,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2777,
          "column": 29,
          "endLine": 2777,
          "endColumn": 73,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2788,
          "column": 13,
          "endLine": 2788,
          "endColumn": 118,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2820,
          "column": 56,
          "endLine": 2820,
          "endColumn": 67,
          "message": "\"w-[14rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2835,
          "column": 56,
          "endLine": 2835,
          "endColumn": 67,
          "message": "\"w-[15rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2850,
          "column": 56,
          "endLine": 2850,
          "endColumn": 68,
          "message": "\"w-[9.5rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2882,
          "column": 27,
          "endLine": 2882,
          "endColumn": 120,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2893,
          "column": 13,
          "endLine": 2893,
          "endColumn": 42,
          "message": "\"w-[16rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2898,
          "column": 23,
          "endLine": 2898,
          "endColumn": 115,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2918,
          "column": 23,
          "endLine": 2918,
          "endColumn": 116,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2923,
          "column": 27,
          "endLine": 2923,
          "endColumn": 80,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 2996,
          "column": 19,
          "endLine": 2996,
          "endColumn": 178,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3007,
          "column": 21,
          "endLine": 3007,
          "endColumn": 171,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3137,
          "column": 23,
          "endLine": 3137,
          "endColumn": 90,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3156,
          "column": 33,
          "endLine": 3156,
          "endColumn": 69,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3191,
          "column": 29,
          "endLine": 3191,
          "endColumn": 164,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3223,
          "column": 27,
          "endLine": 3223,
          "endColumn": 167,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3255,
          "column": 32,
          "endLine": 3255,
          "endColumn": 81,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3274,
          "column": 35,
          "endLine": 3274,
          "endColumn": 89,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3384,
          "column": 34,
          "endLine": 3384,
          "endColumn": 81,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3391,
          "column": 33,
          "endLine": 3391,
          "endColumn": 155,
          "message": "\"border-[var(--oh-success)]/40\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3391,
          "column": 33,
          "endLine": 3391,
          "endColumn": 155,
          "message": "\"bg-[var(--oh-success)]/10\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3423,
          "column": 25,
          "endLine": 3423,
          "endColumn": 163,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3423,
          "column": 25,
          "endLine": 3423,
          "endColumn": 163,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3423,
          "column": 25,
          "endLine": 3423,
          "endColumn": 163,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3440,
          "column": 21,
          "endLine": 3440,
          "endColumn": 125,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3466,
          "column": 32,
          "endLine": 3466,
          "endColumn": 74,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3516,
          "column": 29,
          "endLine": 3516,
          "endColumn": 65,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3524,
          "column": 21,
          "endLine": 3524,
          "endColumn": 65,
          "message": "\"text-[var(--oh-warning)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3556,
          "column": 13,
          "endLine": 3556,
          "endColumn": 82,
          "message": "\"border-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3557,
          "column": 13,
          "endLine": 3557,
          "endColumn": 135,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3557,
          "column": 13,
          "endLine": 3557,
          "endColumn": 135,
          "message": "\"hover:border-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 3564,
          "column": 27,
          "endLine": 3564,
          "endColumn": 78,
          "message": "\"text-[var(--oh-text-tertiary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/automations/setup/automation-setup-prompt-stack.tsx",
      "errorCount": 0,
      "warningCount": 31,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 82,
          "column": 13,
          "endLine": 82,
          "endColumn": 39,
          "message": "\"max-w-[200px]\" hardcodes an off-token value. Use \"max-w-50\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "max-w-50"
              },
              "fix": {
                "range": [
                  3374,
                  3400
                ],
                "text": "\"max-w-50 rounded-lg\""
              },
              "desc": "Replace with \"max-w-50\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 109,
          "column": 21,
          "endLine": 109,
          "endColumn": 91,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 109,
          "column": 21,
          "endLine": 109,
          "endColumn": 91,
          "message": "\"min-w-[200px]\" hardcodes an off-token value. Use \"min-w-50\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "min-w-50"
              },
              "fix": {
                "range": [
                  4272,
                  4342
                ],
                "text": "\"z-[60] mb-2 min-w-50 max-w-[320px] max-h-[60vh] overflow-y-auto\""
              },
              "desc": "Replace with \"min-w-50\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 109,
          "column": 21,
          "endLine": 109,
          "endColumn": 91,
          "message": "\"max-w-[320px]\" hardcodes an off-token value. Use \"max-w-80\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "max-w-80"
              },
              "fix": {
                "range": [
                  4272,
                  4342
                ],
                "text": "\"z-[60] mb-2 min-w-[200px] max-w-80 max-h-[60vh] overflow-y-auto\""
              },
              "desc": "Replace with \"max-w-80\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 109,
          "column": 21,
          "endLine": 109,
          "endColumn": 91,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 121,
          "column": 37,
          "endLine": 121,
          "endColumn": 71,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 33,
          "endLine": 144,
          "endColumn": 67,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 154,
          "column": 35,
          "endLine": 154,
          "endColumn": 86,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 195,
          "column": 19,
          "endLine": 195,
          "endColumn": 141,
          "message": "\"w-[520px]\" hardcodes an off-token value. Use \"w-130\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "w-130"
              },
              "fix": {
                "range": [
                  7180,
                  7302
                ],
                "text": "\"relative flex w-130 max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary\""
              },
              "desc": "Replace with \"w-130\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 195,
          "column": 19,
          "endLine": 195,
          "endColumn": 141,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 195,
          "column": 19,
          "endLine": 195,
          "endColumn": 141,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 195,
          "column": 19,
          "endLine": 195,
          "endColumn": 141,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 326,
          "column": 31,
          "endLine": 326,
          "endColumn": 67,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 346,
          "column": 23,
          "endLine": 346,
          "endColumn": 138,
          "message": "\"-mb-[15px]\" hardcodes an off-token value. Use \"-mb-3.75\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "-mb-3.75"
              },
              "fix": {
                "range": [
                  12639,
                  12754
                ],
                "text": "\"relative z-10 -mb-3.75 flex flex-col rounded-[15px] border border-[var(--oh-border)] bg-[var(--oh-surface)] p-4\""
              },
              "desc": "Replace with \"-mb-3.75\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 346,
          "column": 23,
          "endLine": 346,
          "endColumn": 138,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 346,
          "column": 23,
          "endLine": 346,
          "endColumn": 138,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 346,
          "column": 23,
          "endLine": 346,
          "endColumn": 138,
          "message": "\"bg-[var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 356,
          "column": 25,
          "endLine": 356,
          "endColumn": 151,
          "message": "\"min-h-[120px]\" hardcodes an off-token value. Use \"min-h-30\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "min-h-30"
              },
              "fix": {
                "range": [
                  13120,
                  13246
                ],
                "text": "\"min-h-30 w-full resize-none border-0 bg-transparent p-0 text-sm text-content outline-none placeholder:text-tertiary-alt\""
              },
              "desc": "Replace with \"min-h-30\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 366,
          "column": 27,
          "endLine": 366,
          "endColumn": 80,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 374,
          "column": 19,
          "endLine": 374,
          "endColumn": 124,
          "message": "\"z-[2]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 384,
          "column": 23,
          "endLine": 384,
          "endColumn": 174,
          "message": "\"rounded-b-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-b-2xl (16px), rounded-b-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 384,
          "column": 23,
          "endLine": 384,
          "endColumn": 174,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 384,
          "column": 23,
          "endLine": 384,
          "endColumn": 174,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 384,
          "column": 23,
          "endLine": 384,
          "endColumn": 174,
          "message": "\"pt-[calc(15px+0.5rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 395,
          "column": 35,
          "endLine": 395,
          "endColumn": 67,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 406,
          "column": 29,
          "endLine": 406,
          "endColumn": 155,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 428,
          "column": 33,
          "endLine": 428,
          "endColumn": 126,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 440,
          "column": 31,
          "endLine": 440,
          "endColumn": 184,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 440,
          "column": 31,
          "endLine": 440,
          "endColumn": 184,
          "message": "\"w-[260px]\" hardcodes an off-token value. Use \"w-65\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "w-65"
              },
              "fix": {
                "range": [
                  16985,
                  17138
                ],
                "text": "\"absolute top-full left-0 z-[60] mt-1 flex max-h-72 w-65 flex-col overflow-hidden rounded-md border border-border-subtle bg-tertiary py-1 shadow-lg\""
              },
              "desc": "Replace with \"w-65\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 480,
          "column": 37,
          "endLine": 480,
          "endColumn": 81,
          "message": "\"text-[var(--oh-warning)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 578,
          "column": 23,
          "endLine": 578,
          "endColumn": 67,
          "message": "\"text-[var(--oh-warning)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/backend-form-modal.tsx",
      "errorCount": 0,
      "warningCount": 13,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1062,
          "column": 19,
          "endLine": 1062,
          "endColumn": 109,
          "message": "\"transition-[grid-template-rows]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1063,
          "column": 34,
          "endLine": 1063,
          "endColumn": 51,
          "message": "\"grid-rows-[1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1063,
          "column": 54,
          "endLine": 1063,
          "endColumn": 71,
          "message": "\"grid-rows-[0fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 1205,
          "column": 51,
          "endLine": 1205,
          "endColumn": 57,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1206,
          "column": 17,
          "endLine": 1206,
          "endColumn": 109,
          "message": "\"transition-[height]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1288,
          "column": 11,
          "endLine": 1288,
          "endColumn": 101,
          "message": "\"transition-[grid-template-rows]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1289,
          "column": 24,
          "endLine": 1289,
          "endColumn": 41,
          "message": "\"grid-rows-[1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1289,
          "column": 44,
          "endLine": 1289,
          "endColumn": 61,
          "message": "\"grid-rows-[0fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1405,
          "column": 11,
          "endLine": 1405,
          "endColumn": 127,
          "message": "\"min-h-[13.5rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1409,
          "column": 11,
          "endLine": 1409,
          "endColumn": 109,
          "message": "\"before:bg-[radial-gradient(75%_75%_at_50%_50%,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0)_70%)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1653,
          "column": 31,
          "endLine": 1653,
          "endColumn": 70,
          "message": "\"align-[-0.125em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1735,
          "column": 13,
          "endLine": 1735,
          "endColumn": 130,
          "message": "\"max-h-[92vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1763,
          "column": 11,
          "endLine": 1763,
          "endColumn": 109,
          "message": "\"max-h-[92dvh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/backend-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 122,
          "column": 25,
          "endLine": 122,
          "endColumn": 136,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/backend-version.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 34,
          "column": 17,
          "endLine": 34,
          "endColumn": 162,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/environment-switch-overlay.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 156,
          "column": 17,
          "endLine": 156,
          "endColumn": 127,
          "message": "\"z-[2147483646]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/manage-backends-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 41,
          "endLine": 171,
          "endColumn": 51,
          "message": "\"h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 54,
          "endLine": 171,
          "endColumn": 68,
          "message": "\"max-h-[70vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 38,
          "column": 3,
          "endLine": 38,
          "endColumn": 73,
          "message": "\"min-h-[13.5rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 40,
          "column": 3,
          "endLine": 40,
          "endColumn": 275,
          "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-markdown-alert-note"
              },
              "fix": {
                "range": [
                  1201,
                  1473
                ],
                "text": "\"inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-muted hover:bg-interactive-hover hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-markdown-alert-note disabled:cursor-not-allowed disabled:opacity-40\""
              },
              "desc": "Replace with \"focus-visible:outline-markdown-alert-note\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-cool-grey-300"
              },
              "fix": {
                "range": [
                  1201,
                  1473
                ],
                "text": "\"inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-muted hover:bg-interactive-hover hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cool-grey-300 disabled:cursor-not-allowed disabled:opacity-40\""
              },
              "desc": "Replace with \"focus-visible:outline-cool-grey-300\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 63,
          "column": 19,
          "endLine": 63,
          "endColumn": 268,
          "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-markdown-alert-note"
              },
              "fix": {
                "range": [
                  2201,
                  2450
                ],
                "text": "\"flex w-full min-w-0 cursor-pointer items-center gap-2.5 rounded-md px-2 py-1.5 text-left hover:bg-surface-raised focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-markdown-alert-note disabled:cursor-not-allowed disabled:opacity-60\""
              },
              "desc": "Replace with \"focus-visible:outline-markdown-alert-note\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-cool-grey-300"
              },
              "fix": {
                "range": [
                  2201,
                  2450
                ],
                "text": "\"flex w-full min-w-0 cursor-pointer items-center gap-2.5 rounded-md px-2 py-1.5 text-left hover:bg-surface-raised focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-cool-grey-300 disabled:cursor-not-allowed disabled:opacity-60\""
              },
              "desc": "Replace with \"focus-visible:outline-cool-grey-300\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 157,
          "column": 21,
          "endLine": 157,
          "endColumn": 248,
          "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-markdown-alert-note"
              },
              "fix": {
                "range": [
                  5403,
                  5630
                ],
                "text": "\"flex min-w-0 flex-1 cursor-pointer items-center gap-3 rounded-lg px-2 py-2.5 text-left hover:bg-surface-raised focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-markdown-alert-note disabled:cursor-not-allowed\""
              },
              "desc": "Replace with \"focus-visible:outline-markdown-alert-note\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-cool-grey-300"
              },
              "fix": {
                "range": [
                  5403,
                  5630
                ],
                "text": "\"flex min-w-0 flex-1 cursor-pointer items-center gap-3 rounded-lg px-2 py-2.5 text-left hover:bg-surface-raised focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-cool-grey-300 disabled:cursor-not-allowed\""
              },
              "desc": "Replace with \"focus-visible:outline-cool-grey-300\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 332,
          "column": 13,
          "endLine": 332,
          "endColumn": 302,
          "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-markdown-alert-note"
              },
              "fix": {
                "range": [
                  11209,
                  11498
                ],
                "text": "\"inline-flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-md px-2.5 text-xs font-medium text-muted hover:bg-interactive-hover hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-markdown-alert-note disabled:cursor-not-allowed disabled:opacity-40\""
              },
              "desc": "Replace with \"focus-visible:outline-markdown-alert-note\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-cool-grey-300"
              },
              "fix": {
                "range": [
                  11209,
                  11498
                ],
                "text": "\"inline-flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-md px-2.5 text-xs font-medium text-muted hover:bg-interactive-hover hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cool-grey-300 disabled:cursor-not-allowed disabled:opacity-40\""
              },
              "desc": "Replace with \"focus-visible:outline-cool-grey-300\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/backends/managed-agents/managed-agents-session-row.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 90,
          "column": 29,
          "endLine": 90,
          "endColumn": 76,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 111,
          "column": 31,
          "endLine": 111,
          "endColumn": 131,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/canvas-extensions/add-canvas-extension-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 19,
          "endLine": 51,
          "endColumn": 125,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 19,
          "endLine": 51,
          "endColumn": 125,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/canvas-extensions/canvas-extension-card.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 85,
          "column": 21,
          "endLine": 85,
          "endColumn": 80,
          "message": "\"grid-cols-[auto_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/btw-messages.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 22,
          "column": 17,
          "endLine": 22,
          "endColumn": 111,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/change-agent-button.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 168,
          "column": 11,
          "endLine": 168,
          "endColumn": 46,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 172,
          "column": 15,
          "endLine": 172,
          "endColumn": 64,
          "message": "\"border-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 172,
          "column": 15,
          "endLine": 172,
          "endColumn": 64,
          "message": "\"bg-[#4A67BD]\" hardcodes a color. Nearest theme tokens: bg-cool-grey-600. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-cool-grey-600"
              },
              "fix": {
                "range": [
                  5706,
                  5755
                ],
                "text": "\"border border-[#597FF4] bg-cool-grey-600 text-white\""
              },
              "desc": "Replace with \"bg-cool-grey-600\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 178,
          "column": 13,
          "endLine": 178,
          "endColumn": 48,
          "message": "\"hover:bg-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 188,
          "column": 38,
          "endLine": 188,
          "endColumn": 97,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-markdown-path-code.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 9,
          "endLine": 96,
          "endColumn": 144,
          "message": "\"px-[0.4em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 9,
          "endLine": 96,
          "endColumn": 144,
          "message": "\"py-[0.2em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-message.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 133,
          "column": 17,
          "endLine": 133,
          "endColumn": 86,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 162,
          "column": 11,
          "endLine": 162,
          "endColumn": 57,
          "message": "\"border-[#597ff4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 239,
          "column": 21,
          "endLine": 239,
          "endColumn": 99,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-send-button.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 41,
          "column": 21,
          "endLine": 41,
          "endColumn": 65,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-status-indicator.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 18,
          "column": 9,
          "endLine": 18,
          "endColumn": 83,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 25,
          "column": 21,
          "endLine": 25,
          "endColumn": 78,
          "message": "\"animate-[pulse_1.2s_ease-in-out_infinite]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 41,
          "column": 21,
          "endLine": 41,
          "endColumn": 105,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-suggestions.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 28,
          "column": 29,
          "endLine": 28,
          "endColumn": 83,
          "message": "\"text-[32px]\" hardcodes an off-token value. Nearest on the scale: text-3xl (30px), text-4xl (36px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-actions.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 383,
          "column": 17,
          "endLine": 383,
          "endColumn": 127,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 449,
          "column": 15,
          "endLine": 449,
          "endColumn": 125,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 463,
          "column": 25,
          "endLine": 463,
          "endColumn": 79,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 568,
          "column": 31,
          "endLine": 568,
          "endColumn": 50,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-container.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 73,
          "column": 9,
          "endLine": 73,
          "endColumn": 124,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 74,
          "column": 40,
          "endLine": 74,
          "endColumn": 65,
          "message": "\"border-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 79,
          "column": 40,
          "endLine": 79,
          "endColumn": 113,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 257,
          "column": 31,
          "endLine": 257,
          "endColumn": 47,
          "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 261,
          "column": 21,
          "endLine": 261,
          "endColumn": 81,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 261,
          "column": 21,
          "endLine": 261,
          "endColumn": 81,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-model.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 77,
          "column": 40,
          "endLine": 77,
          "endColumn": 113,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 197,
          "column": 21,
          "endLine": 197,
          "endColumn": 81,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 197,
          "column": 21,
          "endLine": 197,
          "endColumn": 81,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-profile-picker.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 64,
          "column": 40,
          "endLine": 64,
          "endColumn": 113,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 109,
          "column": 42,
          "endLine": 109,
          "endColumn": 79,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 187,
          "column": 21,
          "endLine": 187,
          "endColumn": 81,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 187,
          "column": 21,
          "endLine": 187,
          "endColumn": 81,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/context-window-meter.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 104,
          "column": 13,
          "endLine": 104,
          "endColumn": 60,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 122,
          "column": 37,
          "endLine": 122,
          "endColumn": 63,
          "message": "Inline style sets borderColor. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 135,
          "column": 33,
          "endLine": 135,
          "endColumn": 69,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/context-window-ring.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 62,
          "column": 26,
          "endLine": 62,
          "endColumn": 52,
          "message": "Inline style sets stroke. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 77,
          "column": 19,
          "endLine": 77,
          "endColumn": 71,
          "message": "\"transition-[stroke-dashoffset,stroke]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/drag-over.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 16,
          "column": 23,
          "endLine": 16,
          "endColumn": 74,
          "message": "\"rotate-[-27deg]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 16,
          "column": 23,
          "endLine": 16,
          "endColumn": 74,
          "message": "\"top-[-40px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 16,
          "column": 23,
          "endLine": 16,
          "endColumn": 74,
          "message": "\"left-[-10px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 23,
          "endLine": 21,
          "endColumn": 58,
          "message": "\"top-[-16px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 23,
          "endLine": 21,
          "endColumn": 58,
          "message": "\"left-[-20px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/git-control-bar-branch-button.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 49,
          "column": 9,
          "endLine": 49,
          "endColumn": 147,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 52,
          "column": 13,
          "endLine": 52,
          "endColumn": 93,
          "message": "\"border-[rgba(71,74,84,0.50)]\" hardcodes a color. Nearest theme tokens: border-border, border-border-subtle. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border"
              },
              "fix": {
                "range": [
                  1882,
                  1962
                ],
                "text": "\"border border-border bg-transparent cursor-not-allowed min-w-27\""
              },
              "desc": "Replace with \"border-border\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border-subtle"
              },
              "fix": {
                "range": [
                  1882,
                  1962
                ],
                "text": "\"border border-border-subtle bg-transparent cursor-not-allowed min-w-27\""
              },
              "desc": "Replace with \"border-border-subtle\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/chat/git-control-bar-repo-button.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 57,
          "column": 11,
          "endLine": 57,
          "endColumn": 127,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 84,
          "column": 9,
          "endLine": 84,
          "endColumn": 118,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 85,
          "column": 9,
          "endLine": 85,
          "endColumn": 61,
          "message": "\"border-[rgba(71,74,84,0.50)]\" hardcodes a color. Nearest theme tokens: border-border, border-border-subtle. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border"
              },
              "fix": {
                "range": [
                  2928,
                  2980
                ],
                "text": "\"border border-border bg-transparent\""
              },
              "desc": "Replace with \"border-border\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border-subtle"
              },
              "fix": {
                "range": [
                  2928,
                  2980
                ],
                "text": "\"border border-border-subtle bg-transparent\""
              },
              "desc": "Replace with \"border-border-subtle\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/chat/plan-preview.tsx",
      "errorCount": 0,
      "warningCount": 7,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 70,
          "column": 20,
          "endLine": 70,
          "endColumn": 79,
          "message": "\"border-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 74,
          "column": 36,
          "endLine": 74,
          "endColumn": 103,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 74,
          "column": 36,
          "endLine": 74,
          "endColumn": 103,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 84,
          "column": 38,
          "endLine": 84,
          "endColumn": 105,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 84,
          "column": 38,
          "endLine": 84,
          "endColumn": 105,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 94,
          "column": 19,
          "endLine": 94,
          "endColumn": 85,
          "message": "\"text-[15px]\" hardcodes an off-token value. Nearest on the scale: text-sm (14px), text-base (16px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 108,
          "column": 27,
          "endLine": 108,
          "endColumn": 84,
          "message": "\"text-[#4a67bd]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-600"
              },
              "fix": {
                "range": [
                  3887,
                  3944
                ],
                "text": "\"text-cool-grey-600 cursor-pointer hover:underline text-left\""
              },
              "desc": "Replace with \"text-cool-grey-600\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/chat/task-tracking/task-item.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 25,
          "column": 38,
          "endLine": 25,
          "endColumn": 62,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-contrast"
              },
              "fix": {
                "range": [
                  756,
                  780
                ],
                "text": "\"w-4 h-4 text-contrast\""
              },
              "desc": "Replace with \"text-contrast\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-content-2"
              },
              "fix": {
                "range": [
                  756,
                  780
                ],
                "text": "\"w-4 h-4 text-content-2\""
              },
              "desc": "Replace with \"text-content-2\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 27,
          "column": 47,
          "endLine": 27,
          "endColumn": 71,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-contrast"
              },
              "fix": {
                "range": [
                  857,
                  881
                ],
                "text": "\"w-4 h-4 text-contrast\""
              },
              "desc": "Replace with \"text-contrast\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-content-2"
              },
              "fix": {
                "range": [
                  857,
                  881
                ],
                "text": "\"w-4 h-4 text-content-2\""
              },
              "desc": "Replace with \"text-content-2\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 31,
          "column": 38,
          "endLine": 31,
          "endColumn": 62,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-contrast"
              },
              "fix": {
                "range": [
                  1024,
                  1048
                ],
                "text": "\"w-4 h-4 text-contrast\""
              },
              "desc": "Replace with \"text-contrast\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-content-2"
              },
              "fix": {
                "range": [
                  1024,
                  1048
                ],
                "text": "\"w-4 h-4 text-content-2\""
              },
              "desc": "Replace with \"text-content-2\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 38,
          "endLine": 50,
          "endColumn": 62,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/code-block.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 55,
          "column": 14,
          "endLine": 55,
          "endColumn": 51,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "CallExpression"
        }
      ]
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/key-value-grid.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 14,
          "column": 20,
          "endLine": 14,
          "endColumn": 71,
          "message": "\"grid-cols-[auto_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/markdown-file-preview.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 171,
          "column": 19,
          "endLine": 171,
          "endColumn": 135,
          "message": "\"[--oh-scroll-fade-from:var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 186,
          "column": 38,
          "endLine": 186,
          "endColumn": 109,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 186,
          "column": 38,
          "endLine": 186,
          "endColumn": 109,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 197,
          "column": 40,
          "endLine": 197,
          "endColumn": 95,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 197,
          "column": 40,
          "endLine": 197,
          "endColumn": 95,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/uploaded-file.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 43,
          "column": 27,
          "endLine": 43,
          "endColumn": 72,
          "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/user-message-body.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 81,
          "column": 11,
          "endLine": 81,
          "endColumn": 72,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/chat/workspace-mode-selector.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 75,
          "column": 11,
          "endLine": 75,
          "endColumn": 118,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 76,
          "column": 11,
          "endLine": 76,
          "endColumn": 77,
          "message": "\"border-[rgba(71,74,84,0.50)]\" hardcodes a color. Nearest theme tokens: border-border, border-border-subtle. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border"
              },
              "fix": {
                "range": [
                  2366,
                  2432
                ],
                "text": "\"border border-border bg-transparent text-contrast\""
              },
              "desc": "Replace with \"border-border\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border-subtle"
              },
              "fix": {
                "range": [
                  2366,
                  2432
                ],
                "text": "\"border border-border-subtle bg-transparent text-contrast\""
              },
              "desc": "Replace with \"border-border-subtle\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/command-menu/command-menu-trigger.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 24,
          "endLine": 66,
          "endColumn": 151,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 24,
          "endLine": 66,
          "endColumn": 151,
          "message": "\"tracking-[0.12em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/command-menu/command-menu.tsx",
      "errorCount": 0,
      "warningCount": 13,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 201,
          "column": 17,
          "endLine": 201,
          "endColumn": 94,
          "message": "\"z-[70]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 201,
          "column": 17,
          "endLine": 201,
          "endColumn": 94,
          "message": "\"pt-[10vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 209,
          "column": 19,
          "endLine": 209,
          "endColumn": 84,
          "message": "\"backdrop-blur-[2px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 215,
          "column": 11,
          "endLine": 215,
          "endColumn": 104,
          "message": "\"max-h-[min(720px,78vh)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 217,
          "column": 11,
          "endLine": 217,
          "endColumn": 89,
          "message": "\"shadow-[0_24px_90px_rgba(0,0,0,0.52),0_0_0_1px_rgba(255,255,255,0.03)_inset]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 251,
          "column": 26,
          "endLine": 251,
          "endColumn": 171,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 251,
          "column": 26,
          "endLine": 251,
          "endColumn": 171,
          "message": "\"tracking-[0.18em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 285,
          "column": 34,
          "endLine": 285,
          "endColumn": 118,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 285,
          "column": 34,
          "endLine": 285,
          "endColumn": 118,
          "message": "\"tracking-[0.18em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 305,
          "column": 29,
          "endLine": 305,
          "endColumn": 141,
          "message": "\"shadow-[0_0_0_1px_color-mix(in_srgb,var(--oh-contrast)_8%,transparent)_inset]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 338,
          "column": 43,
          "endLine": 338,
          "endColumn": 185,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 338,
          "column": 43,
          "endLine": 338,
          "endColumn": 185,
          "message": "\"tracking-[0.14em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 398,
          "column": 24,
          "endLine": 398,
          "endColumn": 86,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/context-menu/context-menu-icon-text-with-description.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 37,
          "column": 34,
          "endLine": 37,
          "endColumn": 102,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/controls/agent-status.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 150,
          "column": 19,
          "endLine": 150,
          "endColumn": 93,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 157,
          "column": 11,
          "endLine": 157,
          "endColumn": 268,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/controls/server-status.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 57,
          "column": 25,
          "endLine": 57,
          "endColumn": 64,
          "message": "\"text-[13px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/controls/tools-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 17,
          "endLine": 96,
          "endColumn": 74,
          "message": "\"left-[-16px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 117,
          "column": 15,
          "endLine": 117,
          "endColumn": 125,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 129,
          "column": 25,
          "endLine": 129,
          "endColumn": 79,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 159,
          "column": 17,
          "endLine": 159,
          "endColumn": 127,
          "message": "\"top-[-6px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 190,
          "column": 15,
          "endLine": 190,
          "endColumn": 125,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 215,
          "column": 27,
          "endLine": 215,
          "endColumn": 42,
          "message": "\"stroke-[1.75]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/advanced-conversation-options-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 131,
          "column": 24,
          "endLine": 131,
          "endColumn": 68,
          "message": "\"w-[calc(100%+3rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 150,
          "column": 23,
          "endLine": 150,
          "endColumn": 103,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 20,
          "column": 25,
          "endLine": 20,
          "endColumn": 37,
          "message": "\"bg-red-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-status-error"
              },
              "fix": {
                "range": [
                  539,
                  551
                ],
                "text": "\"bg-status-error\""
              },
              "desc": "Replace with \"bg-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-danger"
              },
              "fix": {
                "range": [
                  539,
                  551
                ],
                "text": "\"bg-danger\""
              },
              "desc": "Replace with \"bg-danger\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 20,
          "column": 40,
          "endLine": 20,
          "endColumn": 53,
          "message": "\"bg-blue-500\" uses the raw Tailwind palette and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 24,
          "column": 18,
          "endLine": 24,
          "endColumn": 54,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 230,
          "column": 21,
          "endLine": 230,
          "endColumn": 28,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 231,
          "column": 16,
          "endLine": 231,
          "endColumn": 28,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 232,
          "column": 17,
          "endLine": 232,
          "endColumn": 30,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 233,
          "column": 18,
          "endLine": 233,
          "endColumn": 32,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 319,
          "column": 15,
          "endLine": 319,
          "endColumn": 81,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 333,
          "column": 27,
          "endLine": 333,
          "endColumn": 61,
          "message": "\"text-[#F87171]\" hardcodes a color. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-status-error"
              },
              "fix": {
                "range": [
                  10547,
                  10581
                ],
                "text": "\"px-2 py-2 text-sm text-status-error\""
              },
              "desc": "Replace with \"text-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-danger"
              },
              "fix": {
                "range": [
                  10547,
                  10581
                ],
                "text": "\"px-2 py-2 text-sm text-danger\""
              },
              "desc": "Replace with \"text-danger\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-active-tag-filters.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 5,
          "endLine": 50,
          "endColumn": 157,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 19,
          "endLine": 96,
          "endColumn": 97,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 94,
          "column": 27,
          "endLine": 94,
          "endColumn": 40,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 101,
          "column": 13,
          "endLine": 101,
          "endColumn": 64,
          "message": "\"max-w-[min(280px,100vw-16px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 102,
          "column": 13,
          "endLine": 102,
          "endColumn": 27,
          "message": "\"z-[200]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 160,
          "column": 31,
          "endLine": 160,
          "endColumn": 46,
          "message": "\"stroke-[1.75]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-preview.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 147,
          "column": 17,
          "endLine": 147,
          "endColumn": 88,
          "message": "\"max-w-[min(280px,90vw)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 306,
          "column": 17,
          "endLine": 306,
          "endColumn": 34,
          "message": "\"min-w-[3.75rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 245,
          "column": 19,
          "endLine": 245,
          "endColumn": 116,
          "message": "\"z-[-1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 313,
          "column": 15,
          "endLine": 313,
          "endColumn": 53,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 313,
          "column": 15,
          "endLine": 313,
          "endColumn": 53,
          "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 313,
          "column": 15,
          "endLine": 313,
          "endColumn": 53,
          "message": "\"max-w-[16rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 318,
          "column": 25,
          "endLine": 318,
          "endColumn": 32,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 319,
          "column": 20,
          "endLine": 319,
          "endColumn": 34,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 320,
          "column": 21,
          "endLine": 320,
          "endColumn": 36,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 333,
          "column": 29,
          "endLine": 333,
          "endColumn": 106,
          "message": "\"grid-cols-[minmax(0,auto)_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 333,
          "column": 29,
          "endLine": 333,
          "endColumn": 106,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-layouts-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 258,
          "column": 27,
          "endLine": 258,
          "endColumn": 64,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-panel-wrapper.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 9,
          "endLine": 23,
          "endColumn": 77,
          "message": "\"z-[100]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-panel.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1126,
          "column": 13,
          "endLine": 1126,
          "endColumn": 77,
          "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/exit-conversation-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 34,
          "column": 23,
          "endLine": 34,
          "endColumn": 37,
          "message": "\"bg-[#C63143]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/hook-event-item.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 3,
          "endLine": 24,
          "endColumn": 149,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/hook-matcher-content.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 12,
          "column": 3,
          "endLine": 12,
          "endColumn": 140,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/hooks-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 11,
          "endLine": 50,
          "endColumn": 81,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 62,
          "column": 24,
          "endLine": 62,
          "endColumn": 129,
          "message": "\"h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "errorCount": 0,
      "warningCount": 7,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 156,
          "column": 21,
          "endLine": 156,
          "endColumn": 28,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 157,
          "column": 16,
          "endLine": 157,
          "endColumn": 28,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 158,
          "column": 17,
          "endLine": 158,
          "endColumn": 30,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 159,
          "column": 18,
          "endLine": 159,
          "endColumn": 32,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 216,
          "column": 25,
          "endLine": 216,
          "endColumn": 76,
          "message": "\"text-[var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 223,
          "column": 15,
          "endLine": 223,
          "endColumn": 57,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 235,
          "column": 33,
          "endLine": 235,
          "endColumn": 57,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/menu-heading.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 6,
          "column": 3,
          "endLine": 6,
          "endColumn": 65,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/menu-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 71,
          "column": 27,
          "endLine": 71,
          "endColumn": 69,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/plugins-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 40,
          "column": 11,
          "endLine": 40,
          "endColumn": 81,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skill-item.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 20,
          "column": 3,
          "endLine": 20,
          "endColumn": 149,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skill-triggers.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 25,
          "column": 23,
          "endLine": 25,
          "endColumn": 160,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skills-modal-section.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 19,
          "column": 38,
          "endLine": 19,
          "endColumn": 97,
          "message": "\"tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 22,
          "column": 27,
          "endLine": 22,
          "endColumn": 173,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skills-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 79,
          "column": 11,
          "endLine": 79,
          "endColumn": 81,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 91,
          "column": 24,
          "endLine": 91,
          "endColumn": 129,
          "message": "\"h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 28,
          "column": 16,
          "endLine": 28,
          "endColumn": 68,
          "message": "\"bg-green-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-success/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-status-success/10"
              },
              "fix": {
                "range": [
                  929,
                  981
                ],
                "text": "\"bg-status-success/10 text-green-400 border-green-500/20\""
              },
              "desc": "Replace with \"bg-status-success/10\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 28,
          "column": 16,
          "endLine": 28,
          "endColumn": 68,
          "message": "\"text-green-400\" uses the raw Tailwind palette. Nearest theme tokens: text-markdown-alert-tip, text-status-success. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-markdown-alert-tip"
              },
              "fix": {
                "range": [
                  929,
                  981
                ],
                "text": "\"bg-green-500/10 text-markdown-alert-tip border-green-500/20\""
              },
              "desc": "Replace with \"text-markdown-alert-tip\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-status-success"
              },
              "fix": {
                "range": [
                  929,
                  981
                ],
                "text": "\"bg-green-500/10 text-status-success border-green-500/20\""
              },
              "desc": "Replace with \"text-status-success\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 28,
          "column": 16,
          "endLine": 28,
          "endColumn": 68,
          "message": "\"border-green-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-status-success/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-status-success/20"
              },
              "fix": {
                "range": [
                  929,
                  981
                ],
                "text": "\"bg-green-500/10 text-green-400 border-status-success/20\""
              },
              "desc": "Replace with \"border-status-success/20\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 30,
          "column": 16,
          "endLine": 30,
          "endColumn": 62,
          "message": "\"bg-red-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-error/10, bg-danger/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-status-error/10"
              },
              "fix": {
                "range": [
                  1018,
                  1064
                ],
                "text": "\"bg-status-error/10 text-red-400 border-red-500/20\""
              },
              "desc": "Replace with \"bg-status-error/10\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-danger/10"
              },
              "fix": {
                "range": [
                  1018,
                  1064
                ],
                "text": "\"bg-danger/10 text-red-400 border-red-500/20\""
              },
              "desc": "Replace with \"bg-danger/10\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 30,
          "column": 16,
          "endLine": 30,
          "endColumn": 62,
          "message": "\"text-red-400\" uses the raw Tailwind palette. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-status-error"
              },
              "fix": {
                "range": [
                  1018,
                  1064
                ],
                "text": "\"bg-red-500/10 text-status-error border-red-500/20\""
              },
              "desc": "Replace with \"text-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-danger"
              },
              "fix": {
                "range": [
                  1018,
                  1064
                ],
                "text": "\"bg-red-500/10 text-danger border-red-500/20\""
              },
              "desc": "Replace with \"text-danger\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 30,
          "column": 16,
          "endLine": 30,
          "endColumn": 62,
          "message": "\"border-red-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-status-error/20, border-danger/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-status-error/20"
              },
              "fix": {
                "range": [
                  1018,
                  1064
                ],
                "text": "\"bg-red-500/10 text-red-400 border-status-error/20\""
              },
              "desc": "Replace with \"border-status-error/20\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-danger/20"
              },
              "fix": {
                "range": [
                  1018,
                  1064
                ],
                "text": "\"bg-red-500/10 text-red-400 border-danger/20\""
              },
              "desc": "Replace with \"border-danger/20\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 32,
          "column": 16,
          "endLine": 32,
          "endColumn": 71,
          "message": "\"bg-yellow-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo/10, bg-primary/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-logo/10"
              },
              "fix": {
                "range": [
                  1096,
                  1151
                ],
                "text": "\"bg-logo/10 text-yellow-400 border-yellow-500/20\""
              },
              "desc": "Replace with \"bg-logo/10\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-primary/10"
              },
              "fix": {
                "range": [
                  1096,
                  1151
                ],
                "text": "\"bg-primary/10 text-yellow-400 border-yellow-500/20\""
              },
              "desc": "Replace with \"bg-primary/10\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 32,
          "column": 16,
          "endLine": 32,
          "endColumn": 71,
          "message": "\"text-yellow-400\" uses the raw Tailwind palette. Nearest theme tokens: text-markdown-alert-warning, text-logo. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-markdown-alert-warning"
              },
              "fix": {
                "range": [
                  1096,
                  1151
                ],
                "text": "\"bg-yellow-500/10 text-markdown-alert-warning border-yellow-500/20\""
              },
              "desc": "Replace with \"text-markdown-alert-warning\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-logo"
              },
              "fix": {
                "range": [
                  1096,
                  1151
                ],
                "text": "\"bg-yellow-500/10 text-logo border-yellow-500/20\""
              },
              "desc": "Replace with \"text-logo\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 32,
          "column": 16,
          "endLine": 32,
          "endColumn": 71,
          "message": "\"border-yellow-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-logo/20, border-primary/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-logo/20"
              },
              "fix": {
                "range": [
                  1096,
                  1151
                ],
                "text": "\"bg-yellow-500/10 text-yellow-400 border-logo/20\""
              },
              "desc": "Replace with \"border-logo/20\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-primary/20"
              },
              "fix": {
                "range": [
                  1096,
                  1151
                ],
                "text": "\"bg-yellow-500/10 text-yellow-400 border-primary/20\""
              },
              "desc": "Replace with \"border-primary/20\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 14,
          "column": 16,
          "endLine": 14,
          "endColumn": 30,
          "message": "\"bg-green-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-success. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-status-success"
              },
              "fix": {
                "range": [
                  437,
                  451
                ],
                "text": "\"bg-status-success\""
              },
              "desc": "Replace with \"bg-status-success\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 16,
          "column": 16,
          "endLine": 16,
          "endColumn": 28,
          "message": "\"bg-red-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-status-error"
              },
              "fix": {
                "range": [
                  488,
                  500
                ],
                "text": "\"bg-status-error\""
              },
              "desc": "Replace with \"bg-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-danger"
              },
              "fix": {
                "range": [
                  488,
                  500
                ],
                "text": "\"bg-danger\""
              },
              "desc": "Replace with \"bg-danger\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "line": 24,
          "column": 16,
          "endLine": 24,
          "endColumn": 45,
          "message": "\"bg-yellow-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo, bg-primary. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "messageId": "paletteClassNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-logo"
              },
              "fix": {
                "range": [
                  746,
                  775
                ],
                "text": "\"bg-logo animate-pulse\""
              },
              "desc": "Replace with \"bg-logo\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-primary"
              },
              "fix": {
                "range": [
                  746,
                  775
                ],
                "text": "\"bg-primary animate-pulse\""
              },
              "desc": "Replace with \"bg-primary\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/system-message-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 46,
          "column": 13,
          "endLine": 46,
          "endColumn": 83,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 28,
          "endLine": 66,
          "endColumn": 126,
          "message": "\"h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-git-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 110,
          "column": 14,
          "endLine": 110,
          "endColumn": 25,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 111,
          "column": 17,
          "endLine": 111,
          "endColumn": 37,
          "message": "\"min-w-[8rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 84,
          "column": 31,
          "endLine": 84,
          "endColumn": 68,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "errorCount": 0,
      "warningCount": 13,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 61,
          "column": 20,
          "endLine": 61,
          "endColumn": 180,
          "message": "\"[scrollbar-gutter:stable]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 62,
          "column": 22,
          "endLine": 62,
          "endColumn": 76,
          "message": "\"max-w-[800px]\" hardcodes an off-token value. Use \"max-w-200\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "max-w-200"
              },
              "fix": {
                "range": [
                  2814,
                  2868
                ],
                "text": "\"relative mx-auto h-full w-full min-w-0 max-w-200\""
              },
              "desc": "Replace with \"max-w-200\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 21,
          "endLine": 66,
          "endColumn": 140,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 66,
          "column": 21,
          "endLine": 66,
          "endColumn": 140,
          "message": "\"shadow-[0_12px_40px_rgba(0,0,0,0.55)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 166,
          "column": 13,
          "endLine": 166,
          "endColumn": 78,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 191,
          "column": 27,
          "endLine": 191,
          "endColumn": 102,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 209,
          "column": 31,
          "endLine": 209,
          "endColumn": 55,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 267,
          "column": 37,
          "endLine": 267,
          "endColumn": 64,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 286,
          "column": 21,
          "endLine": 286,
          "endColumn": 66,
          "message": "\"transition-[width]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 294,
          "column": 21,
          "endLine": 298,
          "endColumn": 33,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 300,
          "column": 21,
          "endLine": 300,
          "endColumn": 75,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 377,
          "column": 22,
          "endLine": 381,
          "endColumn": 23,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 382,
          "column": 35,
          "endLine": 382,
          "endColumn": 76,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 83,
          "column": 17,
          "endLine": 83,
          "endColumn": 65,
          "message": "\"translate-x-[calc(1rem-1px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 189,
          "column": 35,
          "endLine": 189,
          "endColumn": 72,
          "message": "\"translate-x-[34%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 216,
          "column": 29,
          "endLine": 216,
          "endColumn": 44,
          "message": "\"stroke-[1.75]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 369,
          "column": 19,
          "endLine": 369,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-name-with-status.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 126,
          "column": 25,
          "endLine": 126,
          "endColumn": 60,
          "message": "\"ml-[3.5px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 362,
          "column": 21,
          "endLine": 362,
          "endColumn": 37,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 414,
          "column": 19,
          "endLine": 414,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 53,
          "column": 52,
          "endLine": 53,
          "endColumn": 107,
          "message": "\"max-h-[min(50vh,420px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 70,
          "column": 15,
          "endLine": 70,
          "endColumn": 60,
          "message": "\"transition-[transform,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 75,
          "column": 18,
          "endLine": 75,
          "endColumn": 53,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 76,
          "column": 31,
          "endLine": 78,
          "endColumn": 42,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "ConditionalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 83,
          "column": 27,
          "endLine": 83,
          "endColumn": 45,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-panel.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 23,
          "endLine": 51,
          "endColumn": 84,
          "message": "\"max-w-[45%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 125,
          "column": 20,
          "endLine": 125,
          "endColumn": 36,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 126,
          "column": 21,
          "endLine": 126,
          "endColumn": 38,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 127,
          "column": 22,
          "endLine": 127,
          "endColumn": 58,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-planner-build-bar.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 55,
          "column": 36,
          "endLine": 55,
          "endColumn": 96,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 188,
          "column": 21,
          "endLine": 188,
          "endColumn": 37,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 274,
          "column": 19,
          "endLine": 274,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 321,
          "column": 21,
          "endLine": 321,
          "endColumn": 111,
          "message": "\"left-[-10000px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 452,
          "column": 40,
          "endLine": 452,
          "endColumn": 100,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/drawer-vscode-link.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 45,
          "column": 9,
          "endLine": 45,
          "endColumn": 114,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/conversation/usage-panel/context-meter.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 90,
          "column": 27,
          "endLine": 90,
          "endColumn": 48,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/commit-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 48,
          "column": 25,
          "endLine": 48,
          "endColumn": 89,
          "message": "\"w-[7ch]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/editor-container.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 19,
          "column": 9,
          "endLine": 19,
          "endColumn": 81,
          "message": "\"h-[var(--editor-height)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/file-diff-viewer.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 322,
          "column": 31,
          "endLine": 322,
          "endColumn": 56,
          "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/uncommitted-changes-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 38,
          "column": 25,
          "endLine": 38,
          "endColumn": 89,
          "message": "\"w-[7ch]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/file-content-viewer.tsx",
      "errorCount": 0,
      "warningCount": 12,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 198,
          "column": 19,
          "endLine": 198,
          "endColumn": 141,
          "message": "\"[--oh-scroll-fade-from:var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-body:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-bold:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-headings:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-lead:var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-counters:var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-quotes:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-quote-borders:var(--oh-border-subtle)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-bullets:var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-hr:var(--oh-border-subtle)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-captions:var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 13,
          "endLine": 203,
          "endColumn": 470,
          "message": "\"[--tw-prose-kbd:var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/file-quick-row.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 3,
          "endLine": 23,
          "endColumn": 83,
          "message": "\"[scrollbar-width:none]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 3,
          "endLine": 23,
          "endColumn": 83,
          "message": "\"[-ms-overflow-style:none]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/highlighted-source-view.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 53,
          "column": 16,
          "endLine": 53,
          "endColumn": 53,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "CallExpression"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/tree-node.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 38,
          "column": 33,
          "endLine": 38,
          "endColumn": 48,
          "message": "Inline style sets paddingLeft. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 85,
          "column": 31,
          "endLine": 85,
          "endColumn": 51,
          "message": "Inline style sets paddingLeft. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/workspace-file-discovery-settings.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 63,
          "column": 11,
          "endLine": 63,
          "endColumn": 55,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "errorCount": 0,
      "warningCount": 8,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 69,
          "column": 13,
          "endLine": 69,
          "endColumn": 47,
          "message": "\"rounded-[1px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 133,
          "column": 13,
          "endLine": 133,
          "endColumn": 55,
          "message": "\"rounded-[1px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 136,
          "column": 13,
          "endLine": 136,
          "endColumn": 87,
          "message": "\"group-hover/spark-bar:scale-x-[1.4]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 136,
          "column": 13,
          "endLine": 136,
          "endColumn": 87,
          "message": "\"group-hover/spark-bar:scale-y-[1.15]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 137,
          "column": 13,
          "endLine": 137,
          "endColumn": 103,
          "message": "\"group-focus-visible/spark-bar:scale-x-[1.4]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 137,
          "column": 13,
          "endLine": 137,
          "endColumn": 103,
          "message": "\"group-focus-visible/spark-bar:scale-y-[1.15]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 140,
          "column": 28,
          "endLine": 140,
          "endColumn": 72,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "CallExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 181,
          "column": 24,
          "endLine": 181,
          "endColumn": 56,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/home-automation-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 149,
          "column": 22,
          "endLine": 149,
          "endColumn": 35,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/pinned-automation-card.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 158,
          "column": 11,
          "endLine": 158,
          "endColumn": 53,
          "message": "\"shadow-[inset_0_2px_0_0_var(--oh-focus)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 161,
          "column": 11,
          "endLine": 161,
          "endColumn": 54,
          "message": "\"shadow-[inset_0_-2px_0_0_var(--oh-focus)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/running-automations-list.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 117,
          "column": 26,
          "endLine": 117,
          "endColumn": 86,
          "message": "\"grid-cols-[auto_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/home-chat-launcher.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 306,
          "column": 17,
          "endLine": 306,
          "endColumn": 78,
          "message": "\"pt-[max(4rem,28vh)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 334,
          "column": 38,
          "endLine": 334,
          "endColumn": 79,
          "message": "\"text-[var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/home-header/home-header-title.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 15,
          "column": 19,
          "endLine": 15,
          "endColumn": 63,
          "message": "\"text-[var(--oh-text-tertiary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/home-launcher-mode-toggle.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 141,
          "column": 21,
          "endLine": 141,
          "endColumn": 114,
          "message": "\"bg-[var(--oh-surface-raised)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 159,
          "column": 23,
          "endLine": 159,
          "endColumn": 67,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 162,
          "column": 21,
          "endLine": 162,
          "endColumn": 55,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 168,
          "column": 31,
          "endLine": 168,
          "endColumn": 95,
          "message": "\"bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/shared/clear-button.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 27,
          "column": 9,
          "endLine": 27,
          "endColumn": 26,
          "message": "\"text-[#fff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-contrast"
              },
              "fix": {
                "range": [
                  563,
                  580
                ],
                "text": "\"p-1 text-contrast\""
              },
              "desc": "Replace with \"text-contrast\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-content-2"
              },
              "fix": {
                "range": [
                  563,
                  580
                ],
                "text": "\"p-1 text-content-2\""
              },
              "desc": "Replace with \"text-content-2\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/home/shared/generic-dropdown-menu.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 92,
          "column": 11,
          "endLine": 92,
          "endColumn": 45,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 103,
          "column": 19,
          "endLine": 103,
          "endColumn": 45,
          "message": "\"max-h-[calc(15rem-3rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/workspace-dropdown/folder-browser-modal.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 30,
          "column": 3,
          "endLine": 30,
          "endColumn": 84,
          "message": "\"grid-cols-[minmax(0,1fr)_4rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 30,
          "column": 3,
          "endLine": 30,
          "endColumn": 84,
          "message": "\"md:grid-cols-[1fr_120px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 60,
          "column": 22,
          "endLine": 60,
          "endColumn": 103,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/home/workspace-dropdown/manage-workspaces-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 82,
          "column": 13,
          "endLine": 82,
          "endColumn": 27,
          "message": "\"max-h-[70vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 32,
          "endLine": 144,
          "endColumn": 109,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/images/image-lightbox.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 47,
          "column": 21,
          "endLine": 47,
          "endColumn": 74,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 47,
          "column": 21,
          "endLine": 47,
          "endColumn": 74,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/launch/plugin-launch-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 143,
          "column": 11,
          "endLine": 143,
          "endColumn": 108,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/manifest/manifest-setup-dialog.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 444,
          "column": 19,
          "endLine": 444,
          "endColumn": 124,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 444,
          "column": 19,
          "endLine": 444,
          "endColumn": 124,
          "message": "\"w-[92vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/markdown/code.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 37,
          "column": 13,
          "endLine": 37,
          "endColumn": 107,
          "message": "\"px-[0.4em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 37,
          "column": 13,
          "endLine": 37,
          "endColumn": 107,
          "message": "\"py-[0.2em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 47,
          "column": 24,
          "endLine": 47,
          "endColumn": 118,
          "message": "\"p-[1em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 58,
          "column": 16,
          "endLine": 58,
          "endColumn": 53,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "CallExpression"
        }
      ]
    },
    {
      "file": "src/components/features/markdown/headings.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 19,
          "endLine": 24,
          "endColumn": 106,
          "message": "\"-tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/markdown/markdown-table-scroll.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 72,
          "column": 11,
          "endLine": 72,
          "endColumn": 99,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 84,
          "column": 11,
          "endLine": 84,
          "endColumn": 99,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-logo-badge.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 54,
          "column": 9,
          "endLine": 54,
          "endColumn": 113,
          "message": "\"shadow-[inset_0_1px_0_color-mix(in_srgb,var(--oh-contrast)_18%,transparent)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 59,
          "column": 26,
          "endLine": 59,
          "endColumn": 69,
          "message": "Inline style sets backgroundColor. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "LogicalExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 61,
          "column": 11,
          "endLine": 62,
          "endColumn": 61,
          "message": "Inline style sets color. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "LogicalExpression"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 71,
          "column": 21,
          "endLine": 71,
          "endColumn": 59,
          "message": "\"p-[22%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/custom-server-editor.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 242,
          "column": 21,
          "endLine": 242,
          "endColumn": 150,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 242,
          "column": 21,
          "endLine": 242,
          "endColumn": 150,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/install-server-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 721,
          "column": 19,
          "endLine": 721,
          "endColumn": 168,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 721,
          "column": 19,
          "endLine": 721,
          "endColumn": 168,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/mcp-logo-stack-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 8,
          "column": 3,
          "endLine": 8,
          "endColumn": 183,
          "message": "\"shadow-[inset_0_1px_0_color-mix(in_srgb,var(--oh-contrast)_18%,transparent)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/save-as-secret-toggle.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 48,
          "column": 13,
          "endLine": 48,
          "endColumn": 112,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 62,
          "column": 23,
          "endLine": 62,
          "endColumn": 156,
          "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/onboarding/onboarding-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 92,
          "column": 27,
          "endLine": 92,
          "endColumn": 54,
          "message": "Inline style sets transform. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 319,
          "column": 13,
          "endLine": 319,
          "endColumn": 27,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/onboarding/steps/say-hello-step.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 82,
          "column": 17,
          "endLine": 82,
          "endColumn": 56,
          "message": "\"max-h-[calc(90vh-7rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 19,
          "endLine": 96,
          "endColumn": 151,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 134,
          "column": 21,
          "endLine": 134,
          "endColumn": 58,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/onboarding/steps/setup-llm-step.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 344,
          "column": 17,
          "endLine": 344,
          "endColumn": 62,
          "message": "\"max-h-[calc(90vh-7rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/plugins/add-plugin-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 55,
          "column": 19,
          "endLine": 55,
          "endColumn": 125,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 55,
          "column": 19,
          "endLine": 55,
          "endColumn": 125,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/plugins/plugin-detail-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 45,
          "column": 19,
          "endLine": 45,
          "endColumn": 125,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 45,
          "column": 19,
          "endLine": 45,
          "endColumn": 125,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/plugins/plugin-picker-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 34,
          "column": 11,
          "endLine": 34,
          "endColumn": 108,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/plugins/plugin-picker-trigger.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 21,
          "endLine": 51,
          "endColumn": 168,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/acp-credentials-section.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 49,
          "column": 36,
          "endLine": 49,
          "endColumn": 60,
          "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-600"
              },
              "fix": {
                "range": [
                  1977,
                  2001
                ],
                "text": "\"text-xs text-cool-grey-600\""
              },
              "desc": "Replace with \"text-cool-grey-600\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-500"
              },
              "fix": {
                "range": [
                  1977,
                  2001
                ],
                "text": "\"text-xs text-cool-grey-500\""
              },
              "desc": "Replace with \"text-cool-grey-500\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-canvas-update-card.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 170,
          "column": 11,
          "endLine": 170,
          "endColumn": 95,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 214,
          "column": 30,
          "endLine": 214,
          "endColumn": 138,
          "message": "\"border-[#3B82F6]/30\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 214,
          "column": 30,
          "endLine": 214,
          "endColumn": 138,
          "message": "\"bg-[#1E3A5F]\" hardcodes a color. Nearest theme tokens: bg-border-subtle, bg-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-border-subtle"
              },
              "fix": {
                "range": [
                  6881,
                  6989
                ],
                "text": "\"flex items-start gap-2 rounded-lg border border-[#3B82F6]/30 bg-border-subtle px-3 py-2 text-xs text-[#3B82F6]\""
              },
              "desc": "Replace with \"bg-border-subtle\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-cool-grey-900"
              },
              "fix": {
                "range": [
                  6881,
                  6989
                ],
                "text": "\"flex items-start gap-2 rounded-lg border border-[#3B82F6]/30 bg-cool-grey-900 px-3 py-2 text-xs text-[#3B82F6]\""
              },
              "desc": "Replace with \"bg-cool-grey-900\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 214,
          "column": 30,
          "endLine": 214,
          "endColumn": 138,
          "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 225,
          "column": 31,
          "endLine": 225,
          "endColumn": 137,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 242,
          "column": 31,
          "endLine": 242,
          "endColumn": 137,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 325,
          "column": 19,
          "endLine": 325,
          "endColumn": 97,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 327,
          "column": 23,
          "endLine": 327,
          "endColumn": 105,
          "message": "\"bg-[#1E3A5F]\" hardcodes a color. Nearest theme tokens: bg-border-subtle, bg-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-border-subtle"
              },
              "fix": {
                "range": [
                  11715,
                  11797
                ],
                "text": "\"rounded-full border border-transparent bg-border-subtle px-1.5 py-0.5 text-[#3B82F6]\""
              },
              "desc": "Replace with \"bg-border-subtle\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-cool-grey-900"
              },
              "fix": {
                "range": [
                  11715,
                  11797
                ],
                "text": "\"rounded-full border border-transparent bg-cool-grey-900 px-1.5 py-0.5 text-[#3B82F6]\""
              },
              "desc": "Replace with \"bg-cool-grey-900\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 327,
          "column": 23,
          "endLine": 327,
          "endColumn": 105,
          "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 101,
          "column": 26,
          "endLine": 101,
          "endColumn": 139,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 110,
          "column": 25,
          "endLine": 110,
          "endColumn": 57,
          "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 127,
          "column": 29,
          "endLine": 127,
          "endColumn": 105,
          "message": "\"bg-[#1E3A5F]\" hardcodes a color. Nearest theme tokens: bg-border-subtle, bg-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-border-subtle"
              },
              "fix": {
                "range": [
                  3820,
                  3896
                ],
                "text": "\"rounded-full bg-border-subtle px-2 py-0.5 text-xs font-semibold text-[#3B82F6]\""
              },
              "desc": "Replace with \"bg-border-subtle\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-cool-grey-900"
              },
              "fix": {
                "range": [
                  3820,
                  3896
                ],
                "text": "\"rounded-full bg-cool-grey-900 px-2 py-0.5 text-xs font-semibold text-[#3B82F6]\""
              },
              "desc": "Replace with \"bg-cool-grey-900\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 127,
          "column": 29,
          "endLine": 127,
          "endColumn": 105,
          "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 135,
          "column": 26,
          "endLine": 135,
          "endColumn": 57,
          "message": "\"text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 27,
          "endLine": 144,
          "endColumn": 133,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 152,
          "column": 28,
          "endLine": 152,
          "endColumn": 59,
          "message": "\"text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 164,
          "column": 31,
          "endLine": 164,
          "endColumn": 119,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 229,
          "column": 25,
          "endLine": 229,
          "endColumn": 160,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-tile.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 77,
          "column": 23,
          "endLine": 77,
          "endColumn": 55,
          "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorFar",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 196,
          "column": 19,
          "endLine": 196,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/settings/backend-synced-settings-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 40,
          "column": 34,
          "endLine": 40,
          "endColumn": 89,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/brand-button.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 60,
          "column": 11,
          "endLine": 60,
          "endColumn": 146,
          "message": "\"text-[var(--oh-accent-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-profiles/add-models-modal.tsx",
      "errorCount": 0,
      "warningCount": 7,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 393,
          "column": 23,
          "endLine": 393,
          "endColumn": 126,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 393,
          "column": 23,
          "endLine": 393,
          "endColumn": 126,
          "message": "\"bg-[var(--oh-background)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 421,
          "column": 25,
          "endLine": 421,
          "endColumn": 128,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 421,
          "column": 25,
          "endLine": 421,
          "endColumn": 128,
          "message": "\"bg-[var(--oh-background)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 439,
          "column": 27,
          "endLine": 439,
          "endColumn": 87,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 448,
          "column": 23,
          "endLine": 448,
          "endColumn": 83,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 463,
          "column": 23,
          "endLine": 463,
          "endColumn": 55,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-profiles/profile-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 221,
          "column": 19,
          "endLine": 221,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 174,
          "column": 19,
          "endLine": 174,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-settings/openai-subscription-auth-card.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 207,
          "column": 25,
          "endLine": 207,
          "endColumn": 62,
          "message": "\"tracking-[0.08em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-llm-settings-view.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 292,
          "column": 19,
          "endLine": 292,
          "endColumn": 51,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 327,
          "column": 23,
          "endLine": 327,
          "endColumn": 55,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 365,
          "column": 23,
          "endLine": 365,
          "endColumn": 55,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
      "errorCount": 0,
      "warningCount": 5,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 9,
          "endLine": 51,
          "endColumn": 77,
          "message": "\"text-[var(--oh-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 51,
          "column": 9,
          "endLine": 51,
          "endColumn": 77,
          "message": "\"hover:bg-[var(--oh-interactive-hover)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 179,
          "column": 9,
          "endLine": 179,
          "endColumn": 139,
          "message": "\"w-[160px]\" hardcodes an off-token value. Use \"w-40\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "w-40"
              },
              "fix": {
                "range": [
                  5063,
                  5193
                ],
                "text": "\"absolute right-0 top-full z-10 mt-2 w-40 rounded-md border border-[var(--oh-border-subtle)] bg-tertiary px-1 py-1 shadow-lg\""
              },
              "desc": "Replace with \"w-40\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 179,
          "column": 9,
          "endLine": 179,
          "endColumn": 139,
          "message": "\"border-[var(--oh-border-subtle)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 227,
          "column": 19,
          "endLine": 227,
          "endColumn": 30,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-profile-editor.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 243,
          "column": 22,
          "endLine": 243,
          "endColumn": 54,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 272,
          "column": 22,
          "endLine": 272,
          "endColumn": 54,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 306,
          "column": 22,
          "endLine": 306,
          "endColumn": 54,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 329,
          "column": 26,
          "endLine": 329,
          "endColumn": 58,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-profile-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 56,
          "column": 21,
          "endLine": 56,
          "endColumn": 81,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/settings-nav-header.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 16,
          "column": 34,
          "endLine": 16,
          "endColumn": 107,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/settings-switch.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 61,
          "column": 27,
          "endLine": 61,
          "endColumn": 123,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 61,
          "column": 27,
          "endLine": 61,
          "endColumn": 123,
          "message": "\"font-[500]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/settings/upgrade-button.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 9,
          "endLine": 24,
          "endColumn": 166,
          "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 9,
          "endLine": 24,
          "endColumn": 166,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/setup-guide/super-admin-setup-guide.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 337,
          "column": 33,
          "endLine": 337,
          "endColumn": 50,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/mars-session-panel.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 285,
          "column": 22,
          "endLine": 285,
          "endColumn": 77,
          "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 322,
          "column": 21,
          "endLine": 322,
          "endColumn": 51,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/sidebar-layout.ts",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 63,
          "column": 5,
          "endLine": 63,
          "endColumn": 91,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/sidebar-rail-body.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 367,
          "column": 31,
          "endLine": 367,
          "endColumn": 86,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 378,
          "column": 27,
          "endLine": 378,
          "endColumn": 78,
          "message": "\"bottom-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 404,
          "column": 15,
          "endLine": 404,
          "endColumn": 83,
          "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/sidebar.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 210,
          "column": 11,
          "endLine": 210,
          "endColumn": 105,
          "message": "\"transition-[width,min-width]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 235,
          "column": 42,
          "endLine": 235,
          "endColumn": 76,
          "message": "Inline style sets transitionDuration. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 244,
          "column": 15,
          "endLine": 244,
          "endColumn": 101,
          "message": "\"w-[min(300px,85vw)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 249,
          "column": 42,
          "endLine": 249,
          "endColumn": 76,
          "message": "Inline style sets transitionDuration. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/features/skills/add-skill-modal.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 39,
          "column": 9,
          "endLine": 39,
          "endColumn": 93,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 124,
          "column": 19,
          "endLine": 124,
          "endColumn": 125,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 124,
          "column": 19,
          "endLine": 124,
          "endColumn": 125,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/build-skill-pills.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 142,
          "column": 21,
          "endLine": 142,
          "endColumn": 221,
          "message": "\"border-[rgba(248,113,113,0.35)]\" hardcodes a color. Nearest theme tokens: border-status-error, border-danger. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-status-error"
              },
              "fix": {
                "range": [
                  3606,
                  3806
                ],
                "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-status-error bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
              },
              "desc": "Replace with \"border-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-danger"
              },
              "fix": {
                "range": [
                  3606,
                  3806
                ],
                "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-danger bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
              },
              "desc": "Replace with \"border-danger\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 142,
          "column": 21,
          "endLine": 142,
          "endColumn": 221,
          "message": "\"bg-[rgba(248,113,113,0.12)]\" hardcodes a color. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-status-error"
              },
              "fix": {
                "range": [
                  3606,
                  3806
                ],
                "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-status-error px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
              },
              "desc": "Replace with \"bg-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-danger"
              },
              "fix": {
                "range": [
                  3606,
                  3806
                ],
                "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-danger px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
              },
              "desc": "Replace with \"bg-danger\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 142,
          "column": 21,
          "endLine": 142,
          "endColumn": 221,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 142,
          "column": 21,
          "endLine": 142,
          "endColumn": 221,
          "message": "\"text-[#fca5a5]\" hardcodes a color. Nearest theme tokens: text-markdown-alert-caution. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-markdown-alert-caution"
              },
              "fix": {
                "range": [
                  3606,
                  3806
                ],
                "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-markdown-alert-caution\""
              },
              "desc": "Replace with \"text-markdown-alert-caution\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 27,
          "endLine": 144,
          "endColumn": 63,
          "message": "\"bg-[#fca5a5]\" hardcodes a color. Nearest theme tokens: bg-markdown-alert-caution. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-markdown-alert-caution"
              },
              "fix": {
                "range": [
                  3843,
                  3879
                ],
                "text": "\"size-1.5 rounded-full bg-markdown-alert-caution\""
              },
              "desc": "Replace with \"bg-markdown-alert-caution\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 180,
          "column": 29,
          "endLine": 180,
          "endColumn": 72,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/extensions-navigation.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 120,
          "column": 27,
          "endLine": 120,
          "endColumn": 150,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-card-pill-row.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 203,
          "column": 19,
          "endLine": 203,
          "endColumn": 118,
          "message": "\"z-[-1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 255,
          "column": 15,
          "endLine": 255,
          "endColumn": 67,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 255,
          "column": 15,
          "endLine": 255,
          "endColumn": 67,
          "message": "\"max-w-[20rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 260,
          "column": 25,
          "endLine": 260,
          "endColumn": 32,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 261,
          "column": 20,
          "endLine": 261,
          "endColumn": 34,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 262,
          "column": 21,
          "endLine": 262,
          "endColumn": 36,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "MemberExpression"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-detail-modal.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 105,
          "column": 19,
          "endLine": 105,
          "endColumn": 141,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 105,
          "column": 19,
          "endLine": 105,
          "endColumn": 141,
          "message": "\"max-h-[85vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-facet-rail.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 25,
          "endLine": 50,
          "endColumn": 100,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-facet-row.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 49,
          "column": 11,
          "endLine": 49,
          "endColumn": 84,
          "message": "\"rounded-[3px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-filters-modal.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 43,
          "column": 24,
          "endLine": 43,
          "endColumn": 78,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-icon-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 18,
          "column": 9,
          "endLine": 18,
          "endColumn": 87,
          "message": "\"shadow-[inset_0_1px_0_color-mix(in_srgb,var(--oh-contrast)_18%,transparent)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-type-badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 11,
          "column": 3,
          "endLine": 11,
          "endColumn": 188,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/skills/skills-toolbar.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 74,
          "column": 27,
          "endLine": 74,
          "endColumn": 109,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/features/suggestions/suggestion-item.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 37,
          "column": 17,
          "endLine": 37,
          "endColumn": 213,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 43,
          "column": 19,
          "endLine": 43,
          "endColumn": 95,
          "message": "\"text-[15px]\" hardcodes an off-token value. Nearest on the scale: text-sm (14px), text-base (16px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/badge.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 11,
          "column": 9,
          "endLine": 11,
          "endColumn": 122,
          "message": "\"text-[var(--oh-accent-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 17,
          "endLine": 96,
          "endColumn": 104,
          "message": "\"bg-[rgba(248,113,113,0.14)]\" hardcodes a color. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-status-error"
              },
              "fix": {
                "range": [
                  3009,
                  3096
                ],
                "text": "\"border-0 bg-status-error text-[#ef4444] hover:bg-[rgba(248,113,113,0.24)]\""
              },
              "desc": "Replace with \"bg-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-danger"
              },
              "fix": {
                "range": [
                  3009,
                  3096
                ],
                "text": "\"border-0 bg-danger text-[#ef4444] hover:bg-[rgba(248,113,113,0.24)]\""
              },
              "desc": "Replace with \"bg-danger\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 17,
          "endLine": 96,
          "endColumn": 104,
          "message": "\"text-[#ef4444]\" hardcodes a color. Nearest theme tokens: text-danger, text-status-error. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-danger"
              },
              "fix": {
                "range": [
                  3009,
                  3096
                ],
                "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-danger hover:bg-[rgba(248,113,113,0.24)]\""
              },
              "desc": "Replace with \"text-danger\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-status-error"
              },
              "fix": {
                "range": [
                  3009,
                  3096
                ],
                "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-status-error hover:bg-[rgba(248,113,113,0.24)]\""
              },
              "desc": "Replace with \"text-status-error\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 96,
          "column": 17,
          "endLine": 96,
          "endColumn": 104,
          "message": "\"hover:bg-[rgba(248,113,113,0.24)]\" hardcodes a color. Nearest theme tokens: hover:bg-status-error, hover:bg-danger. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "hover:bg-status-error"
              },
              "fix": {
                "range": [
                  3009,
                  3096
                ],
                "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-[#ef4444] hover:bg-status-error\""
              },
              "desc": "Replace with \"hover:bg-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "hover:bg-danger"
              },
              "fix": {
                "range": [
                  3009,
                  3096
                ],
                "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-[#ef4444] hover:bg-danger\""
              },
              "desc": "Replace with \"hover:bg-danger\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 110,
          "column": 25,
          "endLine": 110,
          "endColumn": 39,
          "message": "\"stroke-[2.5]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/buttons/styled-tooltip.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 53,
          "column": 11,
          "endLine": 53,
          "endColumn": 72,
          "message": "\"z-[9999]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/modals/modal-backdrop.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 68,
          "column": 20,
          "endLine": 68,
          "endColumn": 28,
          "message": "\"z-[70]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/components/shared/modals/settings/model-selector.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 31,
          "column": 3,
          "endLine": 31,
          "endColumn": 117,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 320,
          "column": 25,
          "endLine": 320,
          "endColumn": 79,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        }
      ]
    },
    {
      "file": "src/components/shared/risk-alert.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 11,
          "endLine": 24,
          "endColumn": 137,
          "message": "\"bg-[#4A0709]\" hardcodes a color. Nearest theme tokens: bg-base-secondary. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-base-secondary"
              },
              "fix": {
                "range": [
                  596,
                  722
                ],
                "text": "\"flex items-center gap-3.5 bg-base-secondary border border-[#FF0006] text-feedback-error rounded-xl px-3.5 h-13 text-sm text-white\""
              },
              "desc": "Replace with \"bg-base-secondary\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 11,
          "endLine": 24,
          "endColumn": 137,
          "message": "\"border-[#FF0006]\" hardcodes a color. Nearest theme tokens: border-status-error, border-danger. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-status-error"
              },
              "fix": {
                "range": [
                  596,
                  722
                ],
                "text": "\"flex items-center gap-3.5 bg-[#4A0709] border border-status-error text-feedback-error rounded-xl px-3.5 h-13 text-sm text-white\""
              },
              "desc": "Replace with \"border-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-danger"
              },
              "fix": {
                "range": [
                  596,
                  722
                ],
                "text": "\"flex items-center gap-3.5 bg-[#4A0709] border border-danger text-feedback-error rounded-xl px-3.5 h-13 text-sm text-white\""
              },
              "desc": "Replace with \"border-danger\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/shared/text-shimmer.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 72,
          "column": 7,
          "endLine": 76,
          "endColumn": 9,
          "message": "A <style> element injects CSS outside the design system. Use classes, or declare the rule in your theme CSS.",
          "messageId": "styleElement",
          "nodeType": "JSXOpeningElement"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 79,
          "column": 16,
          "endLine": 79,
          "endColumn": 28,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "messageId": "dynamicStyle",
          "nodeType": "Identifier"
        }
      ]
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "errorCount": 0,
      "warningCount": 9,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1667,
          "column": 25,
          "endLine": 1667,
          "endColumn": 195,
          "message": "\"border-[#717888]\" hardcodes a color. Nearest theme tokens: border-cool-grey-600, border-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-cool-grey-600"
              },
              "fix": {
                "range": [
                  61376,
                  61546
                ],
                "text": "\"bg-tertiary border border-cool-grey-600 rounded-sm p-2 text-sm font-mono text-contrast placeholder:text-[#717888] min-h-15 resize-y focus:outline-none focus:border-contrast\""
              },
              "desc": "Replace with \"border-cool-grey-600\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-cool-grey-500"
              },
              "fix": {
                "range": [
                  61376,
                  61546
                ],
                "text": "\"bg-tertiary border border-cool-grey-500 rounded-sm p-2 text-sm font-mono text-contrast placeholder:text-[#717888] min-h-15 resize-y focus:outline-none focus:border-contrast\""
              },
              "desc": "Replace with \"border-cool-grey-500\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1667,
          "column": 25,
          "endLine": 1667,
          "endColumn": 195,
          "message": "\"placeholder:text-[#717888]\" hardcodes a color. Nearest theme tokens: placeholder:text-cool-grey-600, placeholder:text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "placeholder:text-cool-grey-600"
              },
              "fix": {
                "range": [
                  61376,
                  61546
                ],
                "text": "\"bg-tertiary border border-[#717888] rounded-sm p-2 text-sm font-mono text-contrast placeholder:text-cool-grey-600 min-h-15 resize-y focus:outline-none focus:border-contrast\""
              },
              "desc": "Replace with \"placeholder:text-cool-grey-600\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "placeholder:text-cool-grey-500"
              },
              "fix": {
                "range": [
                  61376,
                  61546
                ],
                "text": "\"bg-tertiary border border-[#717888] rounded-sm p-2 text-sm font-mono text-contrast placeholder:text-cool-grey-500 min-h-15 resize-y focus:outline-none focus:border-contrast\""
              },
              "desc": "Replace with \"placeholder:text-cool-grey-500\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1692,
          "column": 40,
          "endLine": 1692,
          "endColumn": 64,
          "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-600"
              },
              "fix": {
                "range": [
                  62980,
                  63004
                ],
                "text": "\"text-xs text-cool-grey-600\""
              },
              "desc": "Replace with \"text-cool-grey-600\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-500"
              },
              "fix": {
                "range": [
                  62980,
                  63004
                ],
                "text": "\"text-xs text-cool-grey-500\""
              },
              "desc": "Replace with \"text-cool-grey-500\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1701,
          "column": 25,
          "endLine": 1701,
          "endColumn": 43,
          "message": "\"border-[#3D4046]\" hardcodes a color. Nearest theme tokens: border-border-subtle, border-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border-subtle"
              },
              "fix": {
                "range": [
                  63228,
                  63246
                ],
                "text": "\"border-border-subtle\""
              },
              "desc": "Replace with \"border-border-subtle\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-cool-grey-900"
              },
              "fix": {
                "range": [
                  63228,
                  63246
                ],
                "text": "\"border-cool-grey-900\""
              },
              "desc": "Replace with \"border-cool-grey-900\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1709,
          "column": 25,
          "endLine": 1709,
          "endColumn": 43,
          "message": "\"border-[#3D4046]\" hardcodes a color. Nearest theme tokens: border-border-subtle, border-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border-subtle"
              },
              "fix": {
                "range": [
                  63510,
                  63528
                ],
                "text": "\"border-border-subtle\""
              },
              "desc": "Replace with \"border-border-subtle\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-cool-grey-900"
              },
              "fix": {
                "range": [
                  63510,
                  63528
                ],
                "text": "\"border-cool-grey-900\""
              },
              "desc": "Replace with \"border-cool-grey-900\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1785,
          "column": 25,
          "endLine": 1785,
          "endColumn": 49,
          "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-600"
              },
              "fix": {
                "range": [
                  66284,
                  66308
                ],
                "text": "\"text-xs text-cool-grey-600\""
              },
              "desc": "Replace with \"text-cool-grey-600\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-500"
              },
              "fix": {
                "range": [
                  66284,
                  66308
                ],
                "text": "\"text-xs text-cool-grey-500\""
              },
              "desc": "Replace with \"text-cool-grey-500\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1796,
          "column": 27,
          "endLine": 1796,
          "endColumn": 51,
          "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-600"
              },
              "fix": {
                "range": [
                  66719,
                  66743
                ],
                "text": "\"text-xs text-cool-grey-600\""
              },
              "desc": "Replace with \"text-cool-grey-600\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-500"
              },
              "fix": {
                "range": [
                  66719,
                  66743
                ],
                "text": "\"text-xs text-cool-grey-500\""
              },
              "desc": "Replace with \"text-cool-grey-500\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1806,
          "column": 25,
          "endLine": 1806,
          "endColumn": 49,
          "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-600"
              },
              "fix": {
                "range": [
                  67103,
                  67127
                ],
                "text": "\"text-xs text-cool-grey-600\""
              },
              "desc": "Replace with \"text-cool-grey-600\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-500"
              },
              "fix": {
                "range": [
                  67103,
                  67127
                ],
                "text": "\"text-xs text-cool-grey-500\""
              },
              "desc": "Replace with \"text-cool-grey-500\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 1811,
          "column": 38,
          "endLine": 1811,
          "endColumn": 62,
          "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
          "messageId": "arbitraryColorNear",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-600"
              },
              "fix": {
                "range": [
                  67302,
                  67326
                ],
                "text": "\"text-xs text-cool-grey-600\""
              },
              "desc": "Replace with \"text-cool-grey-600\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-cool-grey-500"
              },
              "fix": {
                "range": [
                  67302,
                  67326
                ],
                "text": "\"text-xs text-cool-grey-500\""
              },
              "desc": "Replace with \"text-cool-grey-500\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/routes/automation-setup-new.tsx",
      "errorCount": 0,
      "warningCount": 6,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 109,
          "column": 19,
          "endLine": 109,
          "endColumn": 138,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 133,
          "column": 23,
          "endLine": 133,
          "endColumn": 95,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 138,
          "column": 24,
          "endLine": 138,
          "endColumn": 184,
          "message": "\"[scrollbar-gutter:stable]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 139,
          "column": 26,
          "endLine": 139,
          "endColumn": 80,
          "message": "\"max-w-[800px]\" hardcodes an off-token value. Use \"max-w-200\" instead (same value, on the scale).",
          "messageId": "arbitraryValueWithScale",
          "nodeType": "Literal",
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "max-w-200"
              },
              "fix": {
                "range": [
                  5406,
                  5460
                ],
                "text": "\"relative mx-auto h-full w-full min-w-0 max-w-200\""
              },
              "desc": "Replace with \"max-w-200\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 143,
          "column": 25,
          "endLine": 143,
          "endColumn": 144,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 143,
          "column": 25,
          "endLine": 143,
          "endColumn": 144,
          "message": "\"shadow-[0_12px_40px_rgba(0,0,0,0.55)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/routes/device-verify.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 155,
          "column": 28,
          "endLine": 155,
          "endColumn": 90,
          "message": "\"tracking-[0.3em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/routes/files-tab.tsx",
      "errorCount": 0,
      "warningCount": 3,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 163,
          "column": 19,
          "endLine": 163,
          "endColumn": 176,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 210,
          "column": 35,
          "endLine": 210,
          "endColumn": 51,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "TemplateLiteral"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 250,
          "column": 35,
          "endLine": 250,
          "endColumn": 158,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/routes/meta-llm-settings.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 24,
          "column": 19,
          "endLine": 24,
          "endColumn": 51,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/ui/dropdown/dropdown-menu.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 43,
          "column": 24,
          "endLine": 43,
          "endColumn": 61,
          "message": "\"max-w-[min(26rem,calc(100vw-2rem))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/ui/dropdown/dropdown.tsx",
      "errorCount": 0,
      "warningCount": 18,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 15,
          "column": 13,
          "endLine": 15,
          "endColumn": 23,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 15,
          "column": 13,
          "endLine": 15,
          "endColumn": 23,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 16,
          "column": 10,
          "endLine": 16,
          "endColumn": 11,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 16,
          "column": 10,
          "endLine": 16,
          "endColumn": 11,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 17,
          "column": 11,
          "endLine": 17,
          "endColumn": 12,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 17,
          "column": 11,
          "endLine": 17,
          "endColumn": 12,
          "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 18,
          "column": 12,
          "endLine": 18,
          "endColumn": 13,
          "message": "Inline style sets padding. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 18,
          "column": 12,
          "endLine": 18,
          "endColumn": 13,
          "message": "Inline style sets padding. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 19,
          "column": 11,
          "endLine": 19,
          "endColumn": 13,
          "message": "Inline style sets margin. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "UnaryExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 19,
          "column": 11,
          "endLine": 19,
          "endColumn": 13,
          "message": "Inline style sets margin. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "UnaryExpression"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 20,
          "column": 13,
          "endLine": 20,
          "endColumn": 21,
          "message": "Inline style sets overflow. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 20,
          "column": 13,
          "endLine": 20,
          "endColumn": 21,
          "message": "Inline style sets overflow. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 21,
          "column": 9,
          "endLine": 21,
          "endColumn": 27,
          "message": "Inline style sets clip. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 21,
          "column": 9,
          "endLine": 21,
          "endColumn": 27,
          "message": "Inline style sets clip. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 22,
          "column": 15,
          "endLine": 22,
          "endColumn": 23,
          "message": "Inline style sets whiteSpace. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 22,
          "column": 15,
          "endLine": 22,
          "endColumn": 23,
          "message": "Inline style sets whiteSpace. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 23,
          "column": 11,
          "endLine": 23,
          "endColumn": 12,
          "message": "Inline style sets border. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "line": 23,
          "column": 11,
          "endLine": 23,
          "endColumn": 12,
          "message": "Inline style sets border. Style through classes; use CSS custom properties for dynamic values.",
          "messageId": "inlineStyle",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/ui/pre.tsx",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 42,
          "column": 14,
          "endLine": 42,
          "endColumn": 28,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/ui/typography.tsx",
      "errorCount": 0,
      "warningCount": 2,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 7,
          "column": 11,
          "endLine": 7,
          "endColumn": 60,
          "message": "\"text-[32px]\" hardcodes an off-token value. Nearest on the scale: text-3xl (30px), text-4xl (36px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 8,
          "column": 11,
          "endLine": 8,
          "endColumn": 75,
          "message": "\"-tracking-[0.02em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "errorCount": 0,
      "warningCount": 8,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 81,
          "column": 19,
          "endLine": 81,
          "endColumn": 102,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 81,
          "column": 19,
          "endLine": 81,
          "endColumn": 102,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 130,
          "column": 21,
          "endLine": 130,
          "endColumn": 71,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 130,
          "column": 21,
          "endLine": 130,
          "endColumn": 71,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 21,
          "endLine": 144,
          "endColumn": 71,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 144,
          "column": 21,
          "endLine": 144,
          "endColumn": 71,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 165,
          "column": 21,
          "endLine": 165,
          "endColumn": 71,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 165,
          "column": 21,
          "endLine": 165,
          "endColumn": 71,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/dropdown-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 71,
          "column": 3,
          "endLine": 71,
          "endColumn": 40,
          "message": "\"max-h-[min(60vh,calc(100dvh-5rem))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/form-control-classes.ts",
      "errorCount": 0,
      "warningCount": 4,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 21,
          "column": 3,
          "endLine": 21,
          "endColumn": 66,
          "message": "\"transition-[background-color,border-color,box-shadow,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 32,
          "column": 3,
          "endLine": 32,
          "endColumn": 67,
          "message": "\"!transition-[background-color,border-color,box-shadow,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 39,
          "column": 3,
          "endLine": 39,
          "endColumn": 27,
          "message": "\"transition-[transform]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 50,
          "column": 3,
          "endLine": 50,
          "endColumn": 84,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/git-control-bar-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 4,
          "column": 3,
          "endLine": 4,
          "endColumn": 68,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "messageId": "arbitraryValueNearScale",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/hover-reveal-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 78,
          "column": 13,
          "endLine": 78,
          "endColumn": 30,
          "message": "\"min-w-[3.75rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/modal-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 5,
          "column": 3,
          "endLine": 5,
          "endColumn": 70,
          "message": "\"-tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    },
    {
      "file": "src/utils/settings-list-classes.ts",
      "errorCount": 0,
      "warningCount": 1,
      "fatalErrorCount": 0,
      "fixableErrorCount": 0,
      "fixableWarningCount": 0,
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "line": 23,
          "column": 3,
          "endLine": 23,
          "endColumn": 42,
          "message": "\"max-h-[min(70vh,39rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "messageId": "arbitraryValue",
          "nodeType": "Literal"
        }
      ]
    }
  ],
  "noRawColors": {
    "count": 18,
    "files": 4,
    "groups": [
      {
        "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
        "findings": [
          {
            "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 40,
            "column": 3,
            "endLine": 40,
            "endColumn": 275,
            "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "focus-visible:outline-markdown-alert-note"
                },
                "fix": {
                  "range": [
                    1201,
                    1473
                  ],
                  "text": "\"inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-muted hover:bg-interactive-hover hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-markdown-alert-note disabled:cursor-not-allowed disabled:opacity-40\""
                },
                "desc": "Replace with \"focus-visible:outline-markdown-alert-note\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "focus-visible:outline-cool-grey-300"
                },
                "fix": {
                  "range": [
                    1201,
                    1473
                  ],
                  "text": "\"inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-muted hover:bg-interactive-hover hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cool-grey-300 disabled:cursor-not-allowed disabled:opacity-40\""
                },
                "desc": "Replace with \"focus-visible:outline-cool-grey-300\"."
              }
            ]
          },
          {
            "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 63,
            "column": 19,
            "endLine": 63,
            "endColumn": 268,
            "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "focus-visible:outline-markdown-alert-note"
                },
                "fix": {
                  "range": [
                    2201,
                    2450
                  ],
                  "text": "\"flex w-full min-w-0 cursor-pointer items-center gap-2.5 rounded-md px-2 py-1.5 text-left hover:bg-surface-raised focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-markdown-alert-note disabled:cursor-not-allowed disabled:opacity-60\""
                },
                "desc": "Replace with \"focus-visible:outline-markdown-alert-note\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "focus-visible:outline-cool-grey-300"
                },
                "fix": {
                  "range": [
                    2201,
                    2450
                  ],
                  "text": "\"flex w-full min-w-0 cursor-pointer items-center gap-2.5 rounded-md px-2 py-1.5 text-left hover:bg-surface-raised focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-cool-grey-300 disabled:cursor-not-allowed disabled:opacity-60\""
                },
                "desc": "Replace with \"focus-visible:outline-cool-grey-300\"."
              }
            ]
          },
          {
            "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 157,
            "column": 21,
            "endLine": 157,
            "endColumn": 248,
            "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "focus-visible:outline-markdown-alert-note"
                },
                "fix": {
                  "range": [
                    5403,
                    5630
                  ],
                  "text": "\"flex min-w-0 flex-1 cursor-pointer items-center gap-3 rounded-lg px-2 py-2.5 text-left hover:bg-surface-raised focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-markdown-alert-note disabled:cursor-not-allowed\""
                },
                "desc": "Replace with \"focus-visible:outline-markdown-alert-note\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "focus-visible:outline-cool-grey-300"
                },
                "fix": {
                  "range": [
                    5403,
                    5630
                  ],
                  "text": "\"flex min-w-0 flex-1 cursor-pointer items-center gap-3 rounded-lg px-2 py-2.5 text-left hover:bg-surface-raised focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-cool-grey-300 disabled:cursor-not-allowed\""
                },
                "desc": "Replace with \"focus-visible:outline-cool-grey-300\"."
              }
            ]
          },
          {
            "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 332,
            "column": 13,
            "endLine": 332,
            "endColumn": 302,
            "message": "\"focus-visible:outline-blue-300\" uses the raw Tailwind palette. Nearest theme tokens: focus-visible:outline-markdown-alert-note, focus-visible:outline-cool-grey-300. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "focus-visible:outline-markdown-alert-note"
                },
                "fix": {
                  "range": [
                    11209,
                    11498
                  ],
                  "text": "\"inline-flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-md px-2.5 text-xs font-medium text-muted hover:bg-interactive-hover hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-markdown-alert-note disabled:cursor-not-allowed disabled:opacity-40\""
                },
                "desc": "Replace with \"focus-visible:outline-markdown-alert-note\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "focus-visible:outline-cool-grey-300"
                },
                "fix": {
                  "range": [
                    11209,
                    11498
                  ],
                  "text": "\"inline-flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-md px-2.5 text-xs font-medium text-muted hover:bg-interactive-hover hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-cool-grey-300 disabled:cursor-not-allowed disabled:opacity-40\""
                },
                "desc": "Replace with \"focus-visible:outline-cool-grey-300\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 20,
            "column": 25,
            "endLine": 20,
            "endColumn": 37,
            "message": "\"bg-red-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    539,
                    551
                  ],
                  "text": "\"bg-status-error\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    539,
                    551
                  ],
                  "text": "\"bg-danger\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 20,
            "column": 40,
            "endLine": 20,
            "endColumn": 53,
            "message": "\"bg-blue-500\" uses the raw Tailwind palette and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassFar",
            "nodeType": "Literal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 28,
            "column": 16,
            "endLine": 28,
            "endColumn": 68,
            "message": "\"bg-green-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-success/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-success/10"
                },
                "fix": {
                  "range": [
                    929,
                    981
                  ],
                  "text": "\"bg-status-success/10 text-green-400 border-green-500/20\""
                },
                "desc": "Replace with \"bg-status-success/10\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 28,
            "column": 16,
            "endLine": 28,
            "endColumn": 68,
            "message": "\"text-green-400\" uses the raw Tailwind palette. Nearest theme tokens: text-markdown-alert-tip, text-status-success. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-markdown-alert-tip"
                },
                "fix": {
                  "range": [
                    929,
                    981
                  ],
                  "text": "\"bg-green-500/10 text-markdown-alert-tip border-green-500/20\""
                },
                "desc": "Replace with \"text-markdown-alert-tip\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-success"
                },
                "fix": {
                  "range": [
                    929,
                    981
                  ],
                  "text": "\"bg-green-500/10 text-status-success border-green-500/20\""
                },
                "desc": "Replace with \"text-status-success\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 28,
            "column": 16,
            "endLine": 28,
            "endColumn": 68,
            "message": "\"border-green-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-status-success/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-status-success/20"
                },
                "fix": {
                  "range": [
                    929,
                    981
                  ],
                  "text": "\"bg-green-500/10 text-green-400 border-status-success/20\""
                },
                "desc": "Replace with \"border-status-success/20\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 30,
            "column": 16,
            "endLine": 30,
            "endColumn": 62,
            "message": "\"bg-red-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-error/10, bg-danger/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error/10"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-status-error/10 text-red-400 border-red-500/20\""
                },
                "desc": "Replace with \"bg-status-error/10\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger/10"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-danger/10 text-red-400 border-red-500/20\""
                },
                "desc": "Replace with \"bg-danger/10\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 30,
            "column": 16,
            "endLine": 30,
            "endColumn": 62,
            "message": "\"text-red-400\" uses the raw Tailwind palette. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-error"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-red-500/10 text-status-error border-red-500/20\""
                },
                "desc": "Replace with \"text-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-danger"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-red-500/10 text-danger border-red-500/20\""
                },
                "desc": "Replace with \"text-danger\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 30,
            "column": 16,
            "endLine": 30,
            "endColumn": 62,
            "message": "\"border-red-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-status-error/20, border-danger/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-status-error/20"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-red-500/10 text-red-400 border-status-error/20\""
                },
                "desc": "Replace with \"border-status-error/20\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-danger/20"
                },
                "fix": {
                  "range": [
                    1018,
                    1064
                  ],
                  "text": "\"bg-red-500/10 text-red-400 border-danger/20\""
                },
                "desc": "Replace with \"border-danger/20\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 32,
            "column": 16,
            "endLine": 32,
            "endColumn": 71,
            "message": "\"bg-yellow-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo/10, bg-primary/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-logo/10"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-logo/10 text-yellow-400 border-yellow-500/20\""
                },
                "desc": "Replace with \"bg-logo/10\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-primary/10"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-primary/10 text-yellow-400 border-yellow-500/20\""
                },
                "desc": "Replace with \"bg-primary/10\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 32,
            "column": 16,
            "endLine": 32,
            "endColumn": 71,
            "message": "\"text-yellow-400\" uses the raw Tailwind palette. Nearest theme tokens: text-markdown-alert-warning, text-logo. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-markdown-alert-warning"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-yellow-500/10 text-markdown-alert-warning border-yellow-500/20\""
                },
                "desc": "Replace with \"text-markdown-alert-warning\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-logo"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-yellow-500/10 text-logo border-yellow-500/20\""
                },
                "desc": "Replace with \"text-logo\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 32,
            "column": 16,
            "endLine": 32,
            "endColumn": 71,
            "message": "\"border-yellow-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-logo/20, border-primary/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-logo/20"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-yellow-500/10 text-yellow-400 border-logo/20\""
                },
                "desc": "Replace with \"border-logo/20\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-primary/20"
                },
                "fix": {
                  "range": [
                    1096,
                    1151
                  ],
                  "text": "\"bg-yellow-500/10 text-yellow-400 border-primary/20\""
                },
                "desc": "Replace with \"border-primary/20\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 14,
            "column": 16,
            "endLine": 14,
            "endColumn": 30,
            "message": "\"bg-green-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-success. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-success"
                },
                "fix": {
                  "range": [
                    437,
                    451
                  ],
                  "text": "\"bg-status-success\""
                },
                "desc": "Replace with \"bg-status-success\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 16,
            "column": 16,
            "endLine": 16,
            "endColumn": 28,
            "message": "\"bg-red-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    488,
                    500
                  ],
                  "text": "\"bg-status-error\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    488,
                    500
                  ],
                  "text": "\"bg-danger\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          },
          {
            "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
            "ruleId": "shadcn/no-raw-colors",
            "severity": 1,
            "line": 24,
            "column": 16,
            "endLine": 24,
            "endColumn": 45,
            "message": "\"bg-yellow-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo, bg-primary. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
            "messageId": "paletteClassNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-logo"
                },
                "fix": {
                  "range": [
                    746,
                    775
                  ],
                  "text": "\"bg-logo animate-pulse\""
                },
                "desc": "Replace with \"bg-logo\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-primary"
                },
                "fix": {
                  "range": [
                    746,
                    775
                  ],
                  "text": "\"bg-primary animate-pulse\""
                },
                "desc": "Replace with \"bg-primary\"."
              }
            ]
          }
        ]
      }
    ]
  },
  "noInlineStyles": {
    "count": 83,
    "files": 42,
    "groups": [
      {
        "file": "src/components/features/automations/add-automation-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/automations/add-automation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 145,
            "column": 25,
            "endLine": 145,
            "endColumn": 36,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/automations/automation-view-toggle.tsx",
        "findings": [
          {
            "file": "src/components/features/automations/automation-view-toggle.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 155,
            "column": 25,
            "endLine": 155,
            "endColumn": 36,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/automations/kebab-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/automations/kebab-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 137,
            "column": 25,
            "endLine": 137,
            "endColumn": 36,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/backends/backend-form-modal.tsx",
        "findings": [
          {
            "file": "src/components/features/backends/backend-form-modal.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 1205,
            "column": 51,
            "endLine": 1205,
            "endColumn": 57,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Identifier",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/chat-input-actions.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/components/chat-input-actions.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 568,
            "column": 31,
            "endLine": 568,
            "endColumn": 50,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 257,
            "column": 31,
            "endLine": 257,
            "endColumn": 47,
            "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Identifier",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/context-window-meter.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/components/context-window-meter.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 122,
            "column": 37,
            "endLine": 122,
            "endColumn": 63,
            "message": "Inline style sets borderColor. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Identifier",
            "classification": "theme"
          },
          {
            "file": "src/components/features/chat/components/context-window-meter.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 135,
            "column": 33,
            "endLine": 135,
            "endColumn": 69,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/context-window-ring.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/components/context-window-ring.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 62,
            "column": 26,
            "endLine": 62,
            "endColumn": 52,
            "message": "Inline style sets stroke. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Identifier",
            "classification": "theme"
          }
        ]
      },
      {
        "file": "src/components/features/chat/tool-visualizers/primitives/code-block.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/tool-visualizers/primitives/code-block.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 55,
            "column": 14,
            "endLine": 55,
            "endColumn": 51,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "CallExpression",
            "classification": "syntax"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 24,
            "column": 18,
            "endLine": 24,
            "endColumn": 54,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 230,
            "column": 21,
            "endLine": 230,
            "endColumn": 28,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 231,
            "column": 16,
            "endLine": 231,
            "endColumn": 28,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 232,
            "column": 17,
            "endLine": 232,
            "endColumn": 30,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 233,
            "column": 18,
            "endLine": 233,
            "endColumn": 32,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 94,
            "column": 27,
            "endLine": 94,
            "endColumn": 40,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 318,
            "column": 25,
            "endLine": 318,
            "endColumn": 32,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 319,
            "column": 20,
            "endLine": 319,
            "endColumn": 34,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 320,
            "column": 21,
            "endLine": 320,
            "endColumn": 36,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 156,
            "column": 21,
            "endLine": 156,
            "endColumn": 28,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 157,
            "column": 16,
            "endLine": 157,
            "endColumn": 28,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 158,
            "column": 17,
            "endLine": 158,
            "endColumn": 30,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 159,
            "column": 18,
            "endLine": 159,
            "endColumn": 32,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-git-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-git-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 110,
            "column": 14,
            "endLine": 110,
            "endColumn": 25,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 84,
            "column": 31,
            "endLine": 84,
            "endColumn": 68,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Identifier",
            "classification": "fixed"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 267,
            "column": 37,
            "endLine": 267,
            "endColumn": 64,
            "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "ConditionalExpression",
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 294,
            "column": 21,
            "endLine": 298,
            "endColumn": 33,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "ConditionalExpression",
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 300,
            "column": 21,
            "endLine": 300,
            "endColumn": 75,
            "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "ConditionalExpression",
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 377,
            "column": 22,
            "endLine": 381,
            "endColumn": 23,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "ConditionalExpression",
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 382,
            "column": 35,
            "endLine": 382,
            "endColumn": 76,
            "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "ConditionalExpression",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 369,
            "column": 19,
            "endLine": 369,
            "endColumn": 30,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-overview-context-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-overview-context-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 414,
            "column": 19,
            "endLine": 414,
            "endColumn": 30,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 75,
            "column": 18,
            "endLine": 75,
            "endColumn": 53,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "ConditionalExpression",
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 76,
            "column": 31,
            "endLine": 78,
            "endColumn": 42,
            "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "ConditionalExpression",
            "classification": "measured"
          },
          {
            "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 83,
            "column": 27,
            "endLine": 83,
            "endColumn": 45,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 125,
            "column": 20,
            "endLine": 125,
            "endColumn": 36,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 126,
            "column": 21,
            "endLine": 126,
            "endColumn": 38,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          },
          {
            "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 127,
            "column": 22,
            "endLine": 127,
            "endColumn": 58,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 274,
            "column": 19,
            "endLine": 274,
            "endColumn": 30,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/conversation/usage-panel/context-meter.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation/usage-panel/context-meter.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 90,
            "column": 27,
            "endLine": 90,
            "endColumn": 48,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/diff-viewer/file-diff-viewer.tsx",
        "findings": [
          {
            "file": "src/components/features/diff-viewer/file-diff-viewer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 322,
            "column": 31,
            "endLine": 322,
            "endColumn": 56,
            "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Identifier",
            "classification": "fixed"
          }
        ]
      },
      {
        "file": "src/components/features/files-tab/highlighted-source-view.tsx",
        "findings": [
          {
            "file": "src/components/features/files-tab/highlighted-source-view.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 53,
            "column": 16,
            "endLine": 53,
            "endColumn": 53,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "CallExpression",
            "classification": "syntax"
          }
        ]
      },
      {
        "file": "src/components/features/files-tab/tree-node.tsx",
        "findings": [
          {
            "file": "src/components/features/files-tab/tree-node.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 38,
            "column": 33,
            "endLine": 38,
            "endColumn": 48,
            "message": "Inline style sets paddingLeft. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "measured"
          },
          {
            "file": "src/components/features/files-tab/tree-node.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 85,
            "column": 31,
            "endLine": 85,
            "endColumn": 51,
            "message": "Inline style sets paddingLeft. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
        "findings": [
          {
            "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 140,
            "column": 28,
            "endLine": 140,
            "endColumn": 72,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "CallExpression",
            "classification": "fixed"
          },
          {
            "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 181,
            "column": 24,
            "endLine": 181,
            "endColumn": 56,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Identifier",
            "classification": "fixed"
          }
        ]
      },
      {
        "file": "src/components/features/home/featured-automations/home-automation-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/home/featured-automations/home-automation-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 149,
            "column": 22,
            "endLine": 149,
            "endColumn": 35,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/markdown/code.tsx",
        "findings": [
          {
            "file": "src/components/features/markdown/code.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 58,
            "column": 16,
            "endLine": 58,
            "endColumn": 53,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "CallExpression",
            "classification": "syntax"
          }
        ]
      },
      {
        "file": "src/components/features/mcp-logo-badge.tsx",
        "findings": [
          {
            "file": "src/components/features/mcp-logo-badge.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 59,
            "column": 26,
            "endLine": 59,
            "endColumn": 69,
            "message": "Inline style sets backgroundColor. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "LogicalExpression",
            "classification": "catalog"
          },
          {
            "file": "src/components/features/mcp-logo-badge.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 61,
            "column": 11,
            "endLine": 62,
            "endColumn": 61,
            "message": "Inline style sets color. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "LogicalExpression",
            "classification": "catalog"
          }
        ]
      },
      {
        "file": "src/components/features/onboarding/onboarding-modal.tsx",
        "findings": [
          {
            "file": "src/components/features/onboarding/onboarding-modal.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 92,
            "column": 27,
            "endLine": 92,
            "endColumn": 54,
            "message": "Inline style sets transform. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "animation"
          }
        ]
      },
      {
        "file": "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 196,
            "column": 19,
            "endLine": 196,
            "endColumn": 30,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/settings/llm-profiles/profile-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/llm-profiles/profile-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 221,
            "column": 19,
            "endLine": 221,
            "endColumn": 30,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 174,
            "column": 19,
            "endLine": 174,
            "endColumn": 30,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 227,
            "column": 19,
            "endLine": 227,
            "endColumn": 30,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/features/setup-guide/super-admin-setup-guide.tsx",
        "findings": [
          {
            "file": "src/components/features/setup-guide/super-admin-setup-guide.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 337,
            "column": 33,
            "endLine": 337,
            "endColumn": 50,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/features/sidebar/sidebar.tsx",
        "findings": [
          {
            "file": "src/components/features/sidebar/sidebar.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 235,
            "column": 42,
            "endLine": 235,
            "endColumn": 76,
            "message": "Inline style sets transitionDuration. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "timing"
          },
          {
            "file": "src/components/features/sidebar/sidebar.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 249,
            "column": 42,
            "endLine": 249,
            "endColumn": 76,
            "message": "Inline style sets transitionDuration. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "timing"
          }
        ]
      },
      {
        "file": "src/components/features/skills/skill-card-pill-row.tsx",
        "findings": [
          {
            "file": "src/components/features/skills/skill-card-pill-row.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 260,
            "column": 25,
            "endLine": 260,
            "endColumn": 32,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "portal"
          },
          {
            "file": "src/components/features/skills/skill-card-pill-row.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 261,
            "column": 20,
            "endLine": 261,
            "endColumn": 34,
            "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          },
          {
            "file": "src/components/features/skills/skill-card-pill-row.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 262,
            "column": 21,
            "endLine": 262,
            "endColumn": 36,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "MemberExpression",
            "classification": "portal"
          }
        ]
      },
      {
        "file": "src/components/shared/modals/settings/model-selector.tsx",
        "findings": [
          {
            "file": "src/components/shared/modals/settings/model-selector.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 320,
            "column": 25,
            "endLine": 320,
            "endColumn": 79,
            "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/components/shared/text-shimmer.tsx",
        "findings": [
          {
            "file": "src/components/shared/text-shimmer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 72,
            "column": 7,
            "endLine": 76,
            "endColumn": 9,
            "message": "A <style> element injects CSS outside the design system. Use classes, or declare the rule in your theme CSS.",
            "messageId": "styleElement",
            "nodeType": "JSXOpeningElement",
            "classification": "animation"
          },
          {
            "file": "src/components/shared/text-shimmer.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 79,
            "column": 16,
            "endLine": 79,
            "endColumn": 28,
            "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
            "messageId": "dynamicStyle",
            "nodeType": "Identifier",
            "classification": "animation"
          }
        ]
      },
      {
        "file": "src/routes/files-tab.tsx",
        "findings": [
          {
            "file": "src/routes/files-tab.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 210,
            "column": 35,
            "endLine": 210,
            "endColumn": 51,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "TemplateLiteral",
            "classification": "measured"
          }
        ]
      },
      {
        "file": "src/ui/dropdown/dropdown.tsx",
        "findings": [
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 15,
            "column": 13,
            "endLine": 15,
            "endColumn": 23,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 15,
            "column": 13,
            "endLine": 15,
            "endColumn": 23,
            "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 16,
            "column": 10,
            "endLine": 16,
            "endColumn": 11,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 16,
            "column": 10,
            "endLine": 16,
            "endColumn": 11,
            "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 17,
            "column": 11,
            "endLine": 17,
            "endColumn": 12,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 17,
            "column": 11,
            "endLine": 17,
            "endColumn": 12,
            "message": "Inline style sets height. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 18,
            "column": 12,
            "endLine": 18,
            "endColumn": 13,
            "message": "Inline style sets padding. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 18,
            "column": 12,
            "endLine": 18,
            "endColumn": 13,
            "message": "Inline style sets padding. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 19,
            "column": 11,
            "endLine": 19,
            "endColumn": 13,
            "message": "Inline style sets margin. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "UnaryExpression",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 19,
            "column": 11,
            "endLine": 19,
            "endColumn": 13,
            "message": "Inline style sets margin. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "UnaryExpression",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 20,
            "column": 13,
            "endLine": 20,
            "endColumn": 21,
            "message": "Inline style sets overflow. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 20,
            "column": 13,
            "endLine": 20,
            "endColumn": 21,
            "message": "Inline style sets overflow. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 21,
            "column": 9,
            "endLine": 21,
            "endColumn": 27,
            "message": "Inline style sets clip. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 21,
            "column": 9,
            "endLine": 21,
            "endColumn": 27,
            "message": "Inline style sets clip. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 22,
            "column": 15,
            "endLine": 22,
            "endColumn": 23,
            "message": "Inline style sets whiteSpace. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 22,
            "column": 15,
            "endLine": 22,
            "endColumn": 23,
            "message": "Inline style sets whiteSpace. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 23,
            "column": 11,
            "endLine": 23,
            "endColumn": 12,
            "message": "Inline style sets border. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          },
          {
            "file": "src/ui/dropdown/dropdown.tsx",
            "ruleId": "shadcn/no-inline-styles",
            "severity": 1,
            "line": 23,
            "column": 11,
            "endLine": 23,
            "endColumn": 12,
            "message": "Inline style sets border. Style through classes; use CSS custom properties for dynamic values.",
            "messageId": "inlineStyle",
            "nodeType": "Literal",
            "classification": "accessibility"
          }
        ]
      }
    ]
  },
  "arbitraryColorWarnings": {
    "count": 47,
    "files": 20,
    "groups": [
      {
        "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
        "findings": [
          {
            "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 21,
            "column": 38,
            "endLine": 21,
            "endColumn": 62,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    745,
                    769
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-content-2"
                },
                "fix": {
                  "range": [
                    745,
                    769
                  ],
                  "text": "\"w-4 h-4 text-content-2\""
                },
                "desc": "Replace with \"text-content-2\"."
              }
            ]
          },
          {
            "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 23,
            "column": 47,
            "endLine": 23,
            "endColumn": 71,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    846,
                    870
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-content-2"
                },
                "fix": {
                  "range": [
                    846,
                    870
                  ],
                  "text": "\"w-4 h-4 text-content-2\""
                },
                "desc": "Replace with \"text-content-2\"."
              }
            ]
          },
          {
            "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 27,
            "column": 38,
            "endLine": 27,
            "endColumn": 62,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    1013,
                    1037
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-content-2"
                },
                "fix": {
                  "range": [
                    1013,
                    1037
                  ],
                  "text": "\"w-4 h-4 text-content-2\""
                },
                "desc": "Replace with \"text-content-2\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/chat/change-agent-button.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/change-agent-button.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 172,
            "column": 15,
            "endLine": 172,
            "endColumn": 64,
            "message": "\"border-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          },
          {
            "file": "src/components/features/chat/change-agent-button.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 172,
            "column": 15,
            "endLine": 172,
            "endColumn": 64,
            "message": "\"bg-[#4A67BD]\" hardcodes a color. Nearest theme tokens: bg-cool-grey-600. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-cool-grey-600"
                },
                "fix": {
                  "range": [
                    5706,
                    5755
                  ],
                  "text": "\"border border-[#597FF4] bg-cool-grey-600 text-white\""
                },
                "desc": "Replace with \"bg-cool-grey-600\"."
              }
            ]
          },
          {
            "file": "src/components/features/chat/change-agent-button.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 178,
            "column": 13,
            "endLine": 178,
            "endColumn": 48,
            "message": "\"hover:bg-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          }
        ]
      },
      {
        "file": "src/components/features/chat/chat-message.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/chat-message.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 162,
            "column": 11,
            "endLine": 162,
            "endColumn": 57,
            "message": "\"border-[#597ff4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          }
        ]
      },
      {
        "file": "src/components/features/chat/components/chat-input-container.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/components/chat-input-container.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 74,
            "column": 40,
            "endLine": 74,
            "endColumn": 65,
            "message": "\"border-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          }
        ]
      },
      {
        "file": "src/components/features/chat/git-control-bar-branch-button.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/git-control-bar-branch-button.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 52,
            "column": 13,
            "endLine": 52,
            "endColumn": 93,
            "message": "\"border-[rgba(71,74,84,0.50)]\" hardcodes a color. Nearest theme tokens: border-border, border-border-subtle. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-border"
                },
                "fix": {
                  "range": [
                    1882,
                    1962
                  ],
                  "text": "\"border border-border bg-transparent cursor-not-allowed min-w-27\""
                },
                "desc": "Replace with \"border-border\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-border-subtle"
                },
                "fix": {
                  "range": [
                    1882,
                    1962
                  ],
                  "text": "\"border border-border-subtle bg-transparent cursor-not-allowed min-w-27\""
                },
                "desc": "Replace with \"border-border-subtle\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/chat/git-control-bar-repo-button.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/git-control-bar-repo-button.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 85,
            "column": 9,
            "endLine": 85,
            "endColumn": 61,
            "message": "\"border-[rgba(71,74,84,0.50)]\" hardcodes a color. Nearest theme tokens: border-border, border-border-subtle. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-border"
                },
                "fix": {
                  "range": [
                    2928,
                    2980
                  ],
                  "text": "\"border border-border bg-transparent\""
                },
                "desc": "Replace with \"border-border\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-border-subtle"
                },
                "fix": {
                  "range": [
                    2928,
                    2980
                  ],
                  "text": "\"border border-border-subtle bg-transparent\""
                },
                "desc": "Replace with \"border-border-subtle\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/chat/plan-preview.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/plan-preview.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 70,
            "column": 20,
            "endLine": 70,
            "endColumn": 79,
            "message": "\"border-[#597FF4]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          },
          {
            "file": "src/components/features/chat/plan-preview.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 108,
            "column": 27,
            "endLine": 108,
            "endColumn": 84,
            "message": "\"text-[#4a67bd]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-600"
                },
                "fix": {
                  "range": [
                    3887,
                    3944
                  ],
                  "text": "\"text-cool-grey-600 cursor-pointer hover:underline text-left\""
                },
                "desc": "Replace with \"text-cool-grey-600\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/chat/task-tracking/task-item.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/task-tracking/task-item.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 25,
            "column": 38,
            "endLine": 25,
            "endColumn": 62,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    756,
                    780
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-content-2"
                },
                "fix": {
                  "range": [
                    756,
                    780
                  ],
                  "text": "\"w-4 h-4 text-content-2\""
                },
                "desc": "Replace with \"text-content-2\"."
              }
            ]
          },
          {
            "file": "src/components/features/chat/task-tracking/task-item.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 27,
            "column": 47,
            "endLine": 27,
            "endColumn": 71,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    857,
                    881
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-content-2"
                },
                "fix": {
                  "range": [
                    857,
                    881
                  ],
                  "text": "\"w-4 h-4 text-content-2\""
                },
                "desc": "Replace with \"text-content-2\"."
              }
            ]
          },
          {
            "file": "src/components/features/chat/task-tracking/task-item.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 31,
            "column": 38,
            "endLine": 31,
            "endColumn": 62,
            "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    1024,
                    1048
                  ],
                  "text": "\"w-4 h-4 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-content-2"
                },
                "fix": {
                  "range": [
                    1024,
                    1048
                  ],
                  "text": "\"w-4 h-4 text-content-2\""
                },
                "desc": "Replace with \"text-content-2\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/chat/workspace-mode-selector.tsx",
        "findings": [
          {
            "file": "src/components/features/chat/workspace-mode-selector.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 76,
            "column": 11,
            "endLine": 76,
            "endColumn": 77,
            "message": "\"border-[rgba(71,74,84,0.50)]\" hardcodes a color. Nearest theme tokens: border-border, border-border-subtle. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-border"
                },
                "fix": {
                  "range": [
                    2366,
                    2432
                  ],
                  "text": "\"border border-border bg-transparent text-contrast\""
                },
                "desc": "Replace with \"border-border\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-border-subtle"
                },
                "fix": {
                  "range": [
                    2366,
                    2432
                  ],
                  "text": "\"border border-border-subtle bg-transparent text-contrast\""
                },
                "desc": "Replace with \"border-border-subtle\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 333,
            "column": 27,
            "endLine": 333,
            "endColumn": 61,
            "message": "\"text-[#F87171]\" hardcodes a color. Nearest theme tokens: text-status-error, text-danger. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-error"
                },
                "fix": {
                  "range": [
                    10547,
                    10581
                  ],
                  "text": "\"px-2 py-2 text-sm text-status-error\""
                },
                "desc": "Replace with \"text-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-danger"
                },
                "fix": {
                  "range": [
                    10547,
                    10581
                  ],
                  "text": "\"px-2 py-2 text-sm text-danger\""
                },
                "desc": "Replace with \"text-danger\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/conversation-panel/exit-conversation-modal.tsx",
        "findings": [
          {
            "file": "src/components/features/conversation-panel/exit-conversation-modal.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 34,
            "column": 23,
            "endLine": 34,
            "endColumn": 37,
            "message": "\"bg-[#C63143]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          }
        ]
      },
      {
        "file": "src/components/features/home/shared/clear-button.tsx",
        "findings": [
          {
            "file": "src/components/features/home/shared/clear-button.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 27,
            "column": 9,
            "endLine": 27,
            "endColumn": 26,
            "message": "\"text-[#fff]\" hardcodes a color. Nearest theme tokens: text-contrast, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-contrast"
                },
                "fix": {
                  "range": [
                    563,
                    580
                  ],
                  "text": "\"p-1 text-contrast\""
                },
                "desc": "Replace with \"text-contrast\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-content-2"
                },
                "fix": {
                  "range": [
                    563,
                    580
                  ],
                  "text": "\"p-1 text-content-2\""
                },
                "desc": "Replace with \"text-content-2\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/settings/acp-credentials-section.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/acp-credentials-section.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 49,
            "column": 36,
            "endLine": 49,
            "endColumn": 60,
            "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-600"
                },
                "fix": {
                  "range": [
                    1977,
                    2001
                  ],
                  "text": "\"text-xs text-cool-grey-600\""
                },
                "desc": "Replace with \"text-cool-grey-600\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-500"
                },
                "fix": {
                  "range": [
                    1977,
                    2001
                  ],
                  "text": "\"text-xs text-cool-grey-500\""
                },
                "desc": "Replace with \"text-cool-grey-500\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/features/settings/agent-canvas-update-card.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/agent-canvas-update-card.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 214,
            "column": 30,
            "endLine": 214,
            "endColumn": 138,
            "message": "\"border-[#3B82F6]/30\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          },
          {
            "file": "src/components/features/settings/agent-canvas-update-card.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 214,
            "column": 30,
            "endLine": 214,
            "endColumn": 138,
            "message": "\"bg-[#1E3A5F]\" hardcodes a color. Nearest theme tokens: bg-border-subtle, bg-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-border-subtle"
                },
                "fix": {
                  "range": [
                    6881,
                    6989
                  ],
                  "text": "\"flex items-start gap-2 rounded-lg border border-[#3B82F6]/30 bg-border-subtle px-3 py-2 text-xs text-[#3B82F6]\""
                },
                "desc": "Replace with \"bg-border-subtle\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-cool-grey-900"
                },
                "fix": {
                  "range": [
                    6881,
                    6989
                  ],
                  "text": "\"flex items-start gap-2 rounded-lg border border-[#3B82F6]/30 bg-cool-grey-900 px-3 py-2 text-xs text-[#3B82F6]\""
                },
                "desc": "Replace with \"bg-cool-grey-900\"."
              }
            ]
          },
          {
            "file": "src/components/features/settings/agent-canvas-update-card.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 214,
            "column": 30,
            "endLine": 214,
            "endColumn": 138,
            "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          },
          {
            "file": "src/components/features/settings/agent-canvas-update-card.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 327,
            "column": 23,
            "endLine": 327,
            "endColumn": 105,
            "message": "\"bg-[#1E3A5F]\" hardcodes a color. Nearest theme tokens: bg-border-subtle, bg-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-border-subtle"
                },
                "fix": {
                  "range": [
                    11715,
                    11797
                  ],
                  "text": "\"rounded-full border border-transparent bg-border-subtle px-1.5 py-0.5 text-[#3B82F6]\""
                },
                "desc": "Replace with \"bg-border-subtle\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-cool-grey-900"
                },
                "fix": {
                  "range": [
                    11715,
                    11797
                  ],
                  "text": "\"rounded-full border border-transparent bg-cool-grey-900 px-1.5 py-0.5 text-[#3B82F6]\""
                },
                "desc": "Replace with \"bg-cool-grey-900\"."
              }
            ]
          },
          {
            "file": "src/components/features/settings/agent-canvas-update-card.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 327,
            "column": 23,
            "endLine": 327,
            "endColumn": 105,
            "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          }
        ]
      },
      {
        "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 110,
            "column": 25,
            "endLine": 110,
            "endColumn": 57,
            "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          },
          {
            "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 127,
            "column": 29,
            "endLine": 127,
            "endColumn": 105,
            "message": "\"bg-[#1E3A5F]\" hardcodes a color. Nearest theme tokens: bg-border-subtle, bg-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-border-subtle"
                },
                "fix": {
                  "range": [
                    3820,
                    3896
                  ],
                  "text": "\"rounded-full bg-border-subtle px-2 py-0.5 text-xs font-semibold text-[#3B82F6]\""
                },
                "desc": "Replace with \"bg-border-subtle\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-cool-grey-900"
                },
                "fix": {
                  "range": [
                    3820,
                    3896
                  ],
                  "text": "\"rounded-full bg-cool-grey-900 px-2 py-0.5 text-xs font-semibold text-[#3B82F6]\""
                },
                "desc": "Replace with \"bg-cool-grey-900\"."
              }
            ]
          },
          {
            "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 127,
            "column": 29,
            "endLine": 127,
            "endColumn": 105,
            "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          }
        ]
      },
      {
        "file": "src/components/features/settings/agent-canvas-version-tile.tsx",
        "findings": [
          {
            "file": "src/components/features/settings/agent-canvas-version-tile.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 77,
            "column": 23,
            "endLine": 77,
            "endColumn": 55,
            "message": "\"text-[#3B82F6]\" hardcodes a color and no declared theme color is close to it. Use one of: accent, base-secondary, basic, border, border-input, border-subtle, canvas-base, content, content-2, contrast, cool-grey-100, cool-grey-200 (+49 more), or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorFar",
            "nodeType": "Literal"
          }
        ]
      },
      {
        "file": "src/components/features/skills/build-skill-pills.tsx",
        "findings": [
          {
            "file": "src/components/features/skills/build-skill-pills.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 142,
            "column": 21,
            "endLine": 142,
            "endColumn": 221,
            "message": "\"border-[rgba(248,113,113,0.35)]\" hardcodes a color. Nearest theme tokens: border-status-error, border-danger. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-status-error"
                },
                "fix": {
                  "range": [
                    3606,
                    3806
                  ],
                  "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-status-error bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
                },
                "desc": "Replace with \"border-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-danger"
                },
                "fix": {
                  "range": [
                    3606,
                    3806
                  ],
                  "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-danger bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
                },
                "desc": "Replace with \"border-danger\"."
              }
            ]
          },
          {
            "file": "src/components/features/skills/build-skill-pills.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 142,
            "column": 21,
            "endLine": 142,
            "endColumn": 221,
            "message": "\"bg-[rgba(248,113,113,0.12)]\" hardcodes a color. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    3606,
                    3806
                  ],
                  "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-status-error px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    3606,
                    3806
                  ],
                  "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-danger px-2 py-0.5 text-[11px] font-medium leading-4 text-[#fca5a5]\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          },
          {
            "file": "src/components/features/skills/build-skill-pills.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 142,
            "column": 21,
            "endLine": 142,
            "endColumn": 221,
            "message": "\"text-[#fca5a5]\" hardcodes a color. Nearest theme tokens: text-markdown-alert-caution. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-markdown-alert-caution"
                },
                "fix": {
                  "range": [
                    3606,
                    3806
                  ],
                  "text": "\"inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-full border border-[rgba(248,113,113,0.35)] bg-[rgba(248,113,113,0.12)] px-2 py-0.5 text-[11px] font-medium leading-4 text-markdown-alert-caution\""
                },
                "desc": "Replace with \"text-markdown-alert-caution\"."
              }
            ]
          },
          {
            "file": "src/components/features/skills/build-skill-pills.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 144,
            "column": 27,
            "endLine": 144,
            "endColumn": 63,
            "message": "\"bg-[#fca5a5]\" hardcodes a color. Nearest theme tokens: bg-markdown-alert-caution. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-markdown-alert-caution"
                },
                "fix": {
                  "range": [
                    3843,
                    3879
                  ],
                  "text": "\"size-1.5 rounded-full bg-markdown-alert-caution\""
                },
                "desc": "Replace with \"bg-markdown-alert-caution\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
        "findings": [
          {
            "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 96,
            "column": 17,
            "endLine": 96,
            "endColumn": 104,
            "message": "\"bg-[rgba(248,113,113,0.14)]\" hardcodes a color. Nearest theme tokens: bg-status-error, bg-danger. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-status-error"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-status-error text-[#ef4444] hover:bg-[rgba(248,113,113,0.24)]\""
                },
                "desc": "Replace with \"bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-danger"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-danger text-[#ef4444] hover:bg-[rgba(248,113,113,0.24)]\""
                },
                "desc": "Replace with \"bg-danger\"."
              }
            ]
          },
          {
            "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 96,
            "column": 17,
            "endLine": 96,
            "endColumn": 104,
            "message": "\"text-[#ef4444]\" hardcodes a color. Nearest theme tokens: text-danger, text-status-error. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-danger"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-danger hover:bg-[rgba(248,113,113,0.24)]\""
                },
                "desc": "Replace with \"text-danger\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-status-error"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-status-error hover:bg-[rgba(248,113,113,0.24)]\""
                },
                "desc": "Replace with \"text-status-error\"."
              }
            ]
          },
          {
            "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 96,
            "column": 17,
            "endLine": 96,
            "endColumn": 104,
            "message": "\"hover:bg-[rgba(248,113,113,0.24)]\" hardcodes a color. Nearest theme tokens: hover:bg-status-error, hover:bg-danger. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "hover:bg-status-error"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-[#ef4444] hover:bg-status-error\""
                },
                "desc": "Replace with \"hover:bg-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "hover:bg-danger"
                },
                "fix": {
                  "range": [
                    3009,
                    3096
                  ],
                  "text": "\"border-0 bg-[rgba(248,113,113,0.14)] text-[#ef4444] hover:bg-danger\""
                },
                "desc": "Replace with \"hover:bg-danger\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/components/shared/risk-alert.tsx",
        "findings": [
          {
            "file": "src/components/shared/risk-alert.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 24,
            "column": 11,
            "endLine": 24,
            "endColumn": 137,
            "message": "\"bg-[#4A0709]\" hardcodes a color. Nearest theme tokens: bg-base-secondary. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "bg-base-secondary"
                },
                "fix": {
                  "range": [
                    596,
                    722
                  ],
                  "text": "\"flex items-center gap-3.5 bg-base-secondary border border-[#FF0006] text-feedback-error rounded-xl px-3.5 h-13 text-sm text-white\""
                },
                "desc": "Replace with \"bg-base-secondary\"."
              }
            ]
          },
          {
            "file": "src/components/shared/risk-alert.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 24,
            "column": 11,
            "endLine": 24,
            "endColumn": 137,
            "message": "\"border-[#FF0006]\" hardcodes a color. Nearest theme tokens: border-status-error, border-danger. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-status-error"
                },
                "fix": {
                  "range": [
                    596,
                    722
                  ],
                  "text": "\"flex items-center gap-3.5 bg-[#4A0709] border border-status-error text-feedback-error rounded-xl px-3.5 h-13 text-sm text-white\""
                },
                "desc": "Replace with \"border-status-error\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-danger"
                },
                "fix": {
                  "range": [
                    596,
                    722
                  ],
                  "text": "\"flex items-center gap-3.5 bg-[#4A0709] border border-danger text-feedback-error rounded-xl px-3.5 h-13 text-sm text-white\""
                },
                "desc": "Replace with \"border-danger\"."
              }
            ]
          }
        ]
      },
      {
        "file": "src/routes/agent-settings.tsx",
        "findings": [
          {
            "file": "src/routes/agent-settings.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 1667,
            "column": 25,
            "endLine": 1667,
            "endColumn": 195,
            "message": "\"border-[#717888]\" hardcodes a color. Nearest theme tokens: border-cool-grey-600, border-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-cool-grey-600"
                },
                "fix": {
                  "range": [
                    61376,
                    61546
                  ],
                  "text": "\"bg-tertiary border border-cool-grey-600 rounded-sm p-2 text-sm font-mono text-contrast placeholder:text-[#717888] min-h-15 resize-y focus:outline-none focus:border-contrast\""
                },
                "desc": "Replace with \"border-cool-grey-600\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-cool-grey-500"
                },
                "fix": {
                  "range": [
                    61376,
                    61546
                  ],
                  "text": "\"bg-tertiary border border-cool-grey-500 rounded-sm p-2 text-sm font-mono text-contrast placeholder:text-[#717888] min-h-15 resize-y focus:outline-none focus:border-contrast\""
                },
                "desc": "Replace with \"border-cool-grey-500\"."
              }
            ]
          },
          {
            "file": "src/routes/agent-settings.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 1667,
            "column": 25,
            "endLine": 1667,
            "endColumn": 195,
            "message": "\"placeholder:text-[#717888]\" hardcodes a color. Nearest theme tokens: placeholder:text-cool-grey-600, placeholder:text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "placeholder:text-cool-grey-600"
                },
                "fix": {
                  "range": [
                    61376,
                    61546
                  ],
                  "text": "\"bg-tertiary border border-[#717888] rounded-sm p-2 text-sm font-mono text-contrast placeholder:text-cool-grey-600 min-h-15 resize-y focus:outline-none focus:border-contrast\""
                },
                "desc": "Replace with \"placeholder:text-cool-grey-600\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "placeholder:text-cool-grey-500"
                },
                "fix": {
                  "range": [
                    61376,
                    61546
                  ],
                  "text": "\"bg-tertiary border border-[#717888] rounded-sm p-2 text-sm font-mono text-contrast placeholder:text-cool-grey-500 min-h-15 resize-y focus:outline-none focus:border-contrast\""
                },
                "desc": "Replace with \"placeholder:text-cool-grey-500\"."
              }
            ]
          },
          {
            "file": "src/routes/agent-settings.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 1692,
            "column": 40,
            "endLine": 1692,
            "endColumn": 64,
            "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-600"
                },
                "fix": {
                  "range": [
                    62980,
                    63004
                  ],
                  "text": "\"text-xs text-cool-grey-600\""
                },
                "desc": "Replace with \"text-cool-grey-600\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-500"
                },
                "fix": {
                  "range": [
                    62980,
                    63004
                  ],
                  "text": "\"text-xs text-cool-grey-500\""
                },
                "desc": "Replace with \"text-cool-grey-500\"."
              }
            ]
          },
          {
            "file": "src/routes/agent-settings.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 1701,
            "column": 25,
            "endLine": 1701,
            "endColumn": 43,
            "message": "\"border-[#3D4046]\" hardcodes a color. Nearest theme tokens: border-border-subtle, border-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-border-subtle"
                },
                "fix": {
                  "range": [
                    63228,
                    63246
                  ],
                  "text": "\"border-border-subtle\""
                },
                "desc": "Replace with \"border-border-subtle\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-cool-grey-900"
                },
                "fix": {
                  "range": [
                    63228,
                    63246
                  ],
                  "text": "\"border-cool-grey-900\""
                },
                "desc": "Replace with \"border-cool-grey-900\"."
              }
            ]
          },
          {
            "file": "src/routes/agent-settings.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 1709,
            "column": 25,
            "endLine": 1709,
            "endColumn": 43,
            "message": "\"border-[#3D4046]\" hardcodes a color. Nearest theme tokens: border-border-subtle, border-cool-grey-900. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-border-subtle"
                },
                "fix": {
                  "range": [
                    63510,
                    63528
                  ],
                  "text": "\"border-border-subtle\""
                },
                "desc": "Replace with \"border-border-subtle\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "border-cool-grey-900"
                },
                "fix": {
                  "range": [
                    63510,
                    63528
                  ],
                  "text": "\"border-cool-grey-900\""
                },
                "desc": "Replace with \"border-cool-grey-900\"."
              }
            ]
          },
          {
            "file": "src/routes/agent-settings.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 1785,
            "column": 25,
            "endLine": 1785,
            "endColumn": 49,
            "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-600"
                },
                "fix": {
                  "range": [
                    66284,
                    66308
                  ],
                  "text": "\"text-xs text-cool-grey-600\""
                },
                "desc": "Replace with \"text-cool-grey-600\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-500"
                },
                "fix": {
                  "range": [
                    66284,
                    66308
                  ],
                  "text": "\"text-xs text-cool-grey-500\""
                },
                "desc": "Replace with \"text-cool-grey-500\"."
              }
            ]
          },
          {
            "file": "src/routes/agent-settings.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 1796,
            "column": 27,
            "endLine": 1796,
            "endColumn": 51,
            "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-600"
                },
                "fix": {
                  "range": [
                    66719,
                    66743
                  ],
                  "text": "\"text-xs text-cool-grey-600\""
                },
                "desc": "Replace with \"text-cool-grey-600\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-500"
                },
                "fix": {
                  "range": [
                    66719,
                    66743
                  ],
                  "text": "\"text-xs text-cool-grey-500\""
                },
                "desc": "Replace with \"text-cool-grey-500\"."
              }
            ]
          },
          {
            "file": "src/routes/agent-settings.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 1806,
            "column": 25,
            "endLine": 1806,
            "endColumn": 49,
            "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-600"
                },
                "fix": {
                  "range": [
                    67103,
                    67127
                  ],
                  "text": "\"text-xs text-cool-grey-600\""
                },
                "desc": "Replace with \"text-cool-grey-600\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-500"
                },
                "fix": {
                  "range": [
                    67103,
                    67127
                  ],
                  "text": "\"text-xs text-cool-grey-500\""
                },
                "desc": "Replace with \"text-cool-grey-500\"."
              }
            ]
          },
          {
            "file": "src/routes/agent-settings.tsx",
            "ruleId": "shadcn/no-arbitrary-values",
            "severity": 1,
            "line": 1811,
            "column": 38,
            "endLine": 1811,
            "endColumn": 62,
            "message": "\"text-[#717888]\" hardcodes a color. Nearest theme tokens: text-cool-grey-600, text-cool-grey-500. Use one of those, or declare --color-<name> in src/styles.css.",
            "messageId": "arbitraryColorNear",
            "nodeType": "Literal",
            "suggestions": [
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-600"
                },
                "fix": {
                  "range": [
                    67302,
                    67326
                  ],
                  "text": "\"text-xs text-cool-grey-600\""
                },
                "desc": "Replace with \"text-cool-grey-600\"."
              },
              {
                "messageId": "useToken",
                "data": {
                  "replacement": "text-cool-grey-500"
                },
                "fix": {
                  "range": [
                    67302,
                    67326
                  ],
                  "text": "\"text-xs text-cool-grey-500\""
                },
                "desc": "Replace with \"text-cool-grey-500\"."
              }
            ]
          }
        ]
      }
    ]
  },
  "sourceHashes": {
    "__tests__/components/automations/automation-card.test.tsx": "bc34b4ac568eb2c3599c1fe16befccc4a301ce8f19b36309ca6c78865502f444",
    "__tests__/components/automations/automation-list-row.test.tsx": "d9cf83e1f1cd314ed31f1cc433ef824b93b7e12208266613a7df74557d718eb1",
    "__tests__/components/features/conversation/chat-interface-wrapper.test.tsx": "22e9f26c4293ee273df6f23b6b13a1c16f929318bf68d6215294c85515ebcef3",
    "__tests__/components/features/conversation/conversation-overview-toggle.test.tsx": "b630a00de635fd57795729bc651c1a21c9c63d21d353e4fce20df3272e935ac0",
    "__tests__/components/features/home/automation-run-activity-sparkline.test.ts": "7cf73514f34a27df0d82a0366d446f9d1e26b24ef9bffa051785ff4abe15c117",
    "eslint.config.js": "4fbd7c967d161864d9d7df9956017d8784794905c3fa7bd2ad24b1acceb72184",
    "package-lock.json": "c8736896d0c9ff7a7ddca9cba1bb199f46be9d2b46190c62a7fd464663ddc147",
    "package.json": "82f1f0a97180badf897b278d63595232e5a9b05aca5e7c2ad0d91f4a522816f7",
    "src/api/conversation-service/agent-server-conversation-service.api.ts": "b57f3775f0c375578e2a0664d83c6e166dd6aca401a098c2e7b8730b03a984f8",
    "src/components/conversation-events/chat/event-message-components/corrective-nudge-message.tsx": "f3eb68315b90f46c92a2edce7fc5d907f307dd47d979db703513ff963f190ed5",
    "src/components/conversation-events/chat/task-tracking/task-item.tsx": "da8039c9ea763a460a708526a3b1e59d7256e64370d600a2e31bd9c948f1a9b2",
    "src/components/conversation-events/chat/task-tracking/task-list-section.tsx": "82d2ce0b8ad9b2af497a487747e3ab05e324f7b2b4f4645a04866b572f9e4997",
    "src/components/features/automations/add-automation-menu.tsx": "8819f11c1affe0c4bb8cf95b2a6f363d4cc9acc6abbace1bd148d6ebf1b687fe",
    "src/components/features/automations/automation-card.tsx": "a42103842060da94a261dba8a5d1a6c6ce9e1cec91139b163c78cec75b0543b3",
    "src/components/features/automations/automation-list-row.tsx": "9563c6f0fd1cadd677d919446797aa73b639d469b6d8f0c8516b6e22b6257d5f",
    "src/components/features/automations/automation-view-toggle.tsx": "4eb4f612371d1185c5ebca598fda7f02a672d3d1e773a11589341f2622eafe1b",
    "src/components/features/automations/create-instructions.tsx": "27402699da366872fcfa81076bdba9c62a104c54f1516b5468ff665b627f0e61",
    "src/components/features/automations/dashboard/automations-dashboard-controls.tsx": "883b4a9009f4035a7edc9ee0929aaa10832e389697d0e4a95c8fd64e349a3f22",
    "src/components/features/automations/detail/active-status-badge.tsx": "292ef5fc6033fa45a6cbcc3a211d11e95bd7baae279fca4f3990100824057323",
    "src/components/features/automations/detail/run-logs-modal.tsx": "b17158268f00775f16e179bcfab26ed56b23f8a2d6752334468fc6aee16cca54",
    "src/components/features/automations/detail/run-phase.tsx": "3d5d0b4a733e42661ec14084b4ee2acf5d4225e8c45e98c1d78c24a906e7acea",
    "src/components/features/automations/detail/run-status-badge.tsx": "76ef615b746d591a87656b2b352d2d9af4efefb64b2ecab5c0aa29eefede5675",
    "src/components/features/automations/detail/script-section.tsx": "04c0e2768e467ffdffddb4ee42d56fe61f30ea902d94e7e21c887c44aaa60dce",
    "src/components/features/automations/import-automation-modal.tsx": "ee73b13bcccfa6ee53da4ea596afa016e9398884ad2189b5b9030ab842586100",
    "src/components/features/automations/kebab-menu.tsx": "79b9680623ebc836bc997fb15eb3cf992481f220a94ad82e73196d568da01205",
    "src/components/features/automations/recommended-automations-rail.tsx": "e31badbda9670dec308520c40101aa586314e5409a2211465565517c2d13a8cf",
    "src/components/features/automations/setup/automation-setup-panel.tsx": "b209a45731910860c50d7a71913ddae1a2c24759b922c27c801a943e0aa3f186",
    "src/components/features/automations/setup/automation-setup-prompt-stack.tsx": "bfc861a32f8a6d123d92676f6acb7dd6c6b8aa7c0e60c09752262511abd4c190",
    "src/components/features/backends/backend-form-modal.tsx": "0235d5f7353a5eb6707baaf787fc94cf34f597b81718d82733e756d4679f369c",
    "src/components/features/backends/backend-row.tsx": "2150a19bd8bcea1374bcb007577ae20a27cc90b711f03ce22928fe20f41f1350",
    "src/components/features/backends/backend-version.tsx": "b8efb3c9396c0d4179cf4f91e5e190917ac4d0cdcd2f0ae06116b7c0ac5033c9",
    "src/components/features/backends/environment-switch-overlay.tsx": "47a3bfbe99a1bb6018d3034458ae19b59348fa1b63b490d09fb1b9f977c4e785",
    "src/components/features/backends/manage-backends-modal.tsx": "89d0896190bdeb699b46e093053ea7982676874c3338231e61cbeed6dc676d5c",
    "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx": "eede1d652c839d58b52719dc6ce9f5a0bfeca61c844230e96f252a73ebd0d3e4",
    "src/components/features/backends/managed-agents/managed-agents-session-row.tsx": "7b3eb91e926c7994e111f39c6300502c148a8b2b9287f70196cbdb994989a9ca",
    "src/components/features/canvas-extensions/add-canvas-extension-modal.tsx": "54ab93813a189c13165887393a1d8196949bc7f0115682ce6a15ff918bbd4142",
    "src/components/features/canvas-extensions/canvas-extension-card.tsx": "284368ee45063a37af566b3aabb57f500fb216474bf1850cc97889813cbe6b0c",
    "src/components/features/chat/btw-messages.tsx": "5e7a344448c167253154735484bccf2209f62d59ce7f9aa2f913f809f6bcc74e",
    "src/components/features/chat/change-agent-button.tsx": "b0af4ba80585647644408698e3210fae83c13777027ba36b52094541b69e699f",
    "src/components/features/chat/chat-markdown-path-code.tsx": "ce1fbe13dac3fef58b6758e7b672e4c00f3954ea6171a47ff71e94cdb0df2512",
    "src/components/features/chat/chat-message.tsx": "de3ec0117422d1d77a7dc3f4d0e2c357a9ed94f00f145ed4525fbec3bdbb4366",
    "src/components/features/chat/chat-send-button.tsx": "cc95b2dfc6417a12441a62a22c4d2550cc21c6741f82b3efa591421b8de6b84b",
    "src/components/features/chat/chat-status-indicator.tsx": "ffc45d575f990d3436b7e17c7b731aaef28e95c23bfd8b6a101de7f3cf5866b8",
    "src/components/features/chat/chat-suggestions.tsx": "1add6b204db71a0f26d3a18b9161f478843519742fd6875c635bc84f7d281540",
    "src/components/features/chat/components/chat-input-actions.tsx": "a2b907c93e0cf0ca8029f265332ec5f5fea3cac01c855289c0edac1474d449eb",
    "src/components/features/chat/components/chat-input-container.tsx": "c592a70bf3d9c20a5a8d49cc5e9f825bfa919e5507310632e7629aa80d9bc60d",
    "src/components/features/chat/components/chat-input-llm-profile-picker.tsx": "dad67627832e7d0e9c63359b9df2b6adbb4efd07de97c8b88d83bd3d1c0c5623",
    "src/components/features/chat/components/chat-input-model.tsx": "fe388598295e8c62caa9f4662cecdeb96e19b3b04c3ceacd1920cdaaad82b630",
    "src/components/features/chat/components/chat-input-profile-picker.tsx": "75b29b8c31e0beb2c3e048fa4311bda162615b2599c67a0d505e17e175e875c9",
    "src/components/features/chat/components/context-window-meter.tsx": "d02a741b6345a5df781518d94b4083a16af7a68492670ddbbdb136dda232316d",
    "src/components/features/chat/components/context-window-ring.tsx": "b4e3d43114c7412e127e88f513939acd48ef33e610c26ba913bbe45acb98a436",
    "src/components/features/chat/drag-over.tsx": "4d7fbe90efe7cec5892001a665f39784f6a64a6e062ee7349c9b9233e49b1664",
    "src/components/features/chat/git-control-bar-branch-button.tsx": "5291ef320037971787ceae933de62ba59c5d3a6bd8895642c8a86a2c4995533a",
    "src/components/features/chat/git-control-bar-repo-button.tsx": "623e2c38eabeb4dc5859b59fe71ceaddddeab3a886db105bd4f5ad1128fb7a58",
    "src/components/features/chat/plan-preview.tsx": "70446a8da1cae6fb39c9bc567a447ed52773ba4aa08ef4a93504274fe2366c67",
    "src/components/features/chat/task-tracking/task-item.tsx": "2f1d1bea42e79e3c6ad0f92da51eba204a464fa2039828bad57dd2aebc8ddae8",
    "src/components/features/chat/tool-visualizers/primitives/code-block.tsx": "62422020233f0423e6ea451a33a9a2f2bfb5f6d516131799d3f1b77c7aa6736b",
    "src/components/features/chat/tool-visualizers/primitives/key-value-grid.tsx": "1a9ef01d71b922a40927939d66c2fdf19d2be2ff334f7a55db98c8e1ca98564c",
    "src/components/features/chat/tool-visualizers/primitives/markdown-file-preview.tsx": "086b7854a41434327e90051a351bf6d4cb206e54ca809f48fd3a3264948eda00",
    "src/components/features/chat/uploaded-file.tsx": "e2740b765444d7f99b6807a7b27a19f566dbcdb39d17e498f9bd3820c7a8b104",
    "src/components/features/chat/user-message-body.tsx": "4008f4634ee2aefadda50f5270173e52834df602d0ce566382a56543d38cabd9",
    "src/components/features/chat/workspace-mode-selector.tsx": "22be6a02f6788cdddc4b7b152184ac28e6d1c7226a406f43dd66d655ae2ce9c1",
    "src/components/features/command-menu/command-menu-trigger.tsx": "741d4558e3695ff672924f8db23810446db03a689747d7617b7c89d9026c2fbd",
    "src/components/features/command-menu/command-menu.tsx": "864cc89874a1a5e515494b775f6a70b4dc9fac47506ba25f0a009f0ba7c5b0cf",
    "src/components/features/context-menu/context-menu-icon-text-with-description.tsx": "cb94d2826b67bb9be467228b786996104dd816c432e861aea8c23cdad60f8f5f",
    "src/components/features/controls/agent-status.tsx": "529305d9deeefdc60d67570b91d4837d5c49701548aec69649e54ae04b62d845",
    "src/components/features/controls/server-status.tsx": "5acbd23411ef573ab1f5258418c896e5ee37836c17d53113a1aa1d72e6ef9204",
    "src/components/features/controls/tools-context-menu.tsx": "843ca153e6579fb202436de9a58f3b71910c3bfaaacdaa5628478cb908888e26",
    "src/components/features/conversation-panel/advanced-conversation-options-modal.tsx": "ef6247f2661e9a129e2a9e23cd2c4eca61c40c1df85229c0975a0fd4a80e293e",
    "src/components/features/conversation-panel/budget-progress-bar.tsx": "de0a52378c599e206235b2ee9ec6c2d3c0d858fd4c2a8914643338a0df07b6e7",
    "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx": "f1be2831c4cee88df83b128673927b41f71214af47cba9bd89be51c874913610",
    "src/components/features/conversation-panel/conversation-active-tag-filters.tsx": "281c63265f917c9b5e9b857a624706f62e6d60351ac724da3ee5cbc0b5c4f4f6",
    "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx": "c89915ae3f4baf6eb01379b6ee470b962ee3ee0643efd99b2b9063523d0ad721",
    "src/components/features/conversation-panel/conversation-card/conversation-card-preview.tsx": "6360499b7e240a4c283abf96220de34b094ff7db04c92584e00a6ced64c31677",
    "src/components/features/conversation-panel/conversation-card/conversation-card.tsx": "7aa3b77225ee7de32ee6c8649b31702f051fd9637a69a72c5f1b24616bc684b2",
    "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx": "3f4b90e5b93f536ae33ee964507393f134198d804e08f6f8c4f8228114063420",
    "src/components/features/conversation-panel/conversation-layouts-menu.tsx": "9c9696e66f1f4b6f8263010a8d13d371a022c1489d24f5872210d6831b0ff4a2",
    "src/components/features/conversation-panel/conversation-panel-wrapper.tsx": "eb20360281863b77d0c8c35706e5fca0934dce59d1ea8fc08222d2d27e9d8480",
    "src/components/features/conversation-panel/conversation-panel.tsx": "948b81295f6ed3c15212a3275bafd2a6980ae134643610594475dc4c74811187",
    "src/components/features/conversation-panel/exit-conversation-modal.tsx": "135a397cf5e9792ac2acab38f4fc93403cced74f9cb9ff60f6b53ee131c4ad44",
    "src/components/features/conversation-panel/hook-event-item.tsx": "c1248211b16919d947e41554008a7449de71c95b07203e838ac82ab03841edc0",
    "src/components/features/conversation-panel/hook-matcher-content.tsx": "d2509e41ac502a7a0dccf957293cd3631765623719bee34876d4e6b26dc4cfb7",
    "src/components/features/conversation-panel/hooks-modal.tsx": "51ee239056707f8c076df805ece86390e0a21c5dbbf61e298962526b5b34fead",
    "src/components/features/conversation-panel/local-new-conversation-menu.tsx": "8522c34b79251014c613df86469e9f6ba7c1e9c721b8d0bcf14fcad3c71ed411",
    "src/components/features/conversation-panel/menu-heading.tsx": "fb0e7ce0948466325349b308c7526af468d018cd33129ab43d2e4dfda0623d52",
    "src/components/features/conversation-panel/menu-row.tsx": "23ff73aa3019ea3bbf2166ee138f9fee5698d0891c5eb65a76fb5b12ff95f075",
    "src/components/features/conversation-panel/plugins-modal.tsx": "03afa80903e4e555567c91b87606524f032e9886eb945963b89421a21bfce5c9",
    "src/components/features/conversation-panel/skill-item.tsx": "bc2b473fbfaff1e8bb4af18eb3a4a69e3942c0d3b429fb8c1f89cc96dc5bee74",
    "src/components/features/conversation-panel/skill-triggers.tsx": "bc15ea429d87dc1c16020115843b6569f748753db155854f90ef9229f2a4336b",
    "src/components/features/conversation-panel/skills-modal-section.tsx": "1787bdce7dfdae89b6142849b3ba84a9b4920920dfc425f0f1473fead06d8141",
    "src/components/features/conversation-panel/skills-modal.tsx": "76d7f055ccc24c1d3dc5aba0ff6da47d93e390695c368913e910c4920761401f",
    "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx": "d1cf6ef1aab183797e2f1eae54a0b00e49c514534154bae13295e84b52ed66de",
    "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx": "4b72ef118d9f3f95ac2e53dad4bdc3ad5e509ff132d7436c5ffe51aa69271d14",
    "src/components/features/conversation-panel/system-message-modal.tsx": "e99ccfaecd21629fcf39d61ebb8f5e39fd2134522ab3f2cb9fe635a811d8f614",
    "src/components/features/conversation/conversation-git-actions-menu.tsx": "b759c42f0fd3b73f03ac17a5c5a6cd9fd3f224a3ee2f6c4e407fe86223616969",
    "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx": "8d8f6e8d411aa7d9f60f76a4333ae6612547bf151718dd7c344802042cb63da0",
    "src/components/features/conversation/conversation-main/conversation-main.tsx": "0757978a336cdfc46bbc3cb63b1bc30d375324dc261011f59a38b8620fe79298",
    "src/components/features/conversation/conversation-name-context-menu.tsx": "99bd9b1fb8357b8e74cc2637f501c43c75470060e692df6d41294034a92b0e24",
    "src/components/features/conversation/conversation-name-with-status.tsx": "375b8057249efaa9c4660e6a184316ff937a5cae31cf281292559547d1bad7bc",
    "src/components/features/conversation/conversation-overview-context-menu.tsx": "52e496511c6431c441801a4f74805273d17f458f0d7e2ff4754bb29c292f1c45",
    "src/components/features/conversation/conversation-overview-drawer.tsx": "0c0865fbc59ec602561241fc83ee88b3b48a54c4fbe1c27b563e9a9feafbc12c",
    "src/components/features/conversation/conversation-overview-panel.constants.ts": "3954082af37120bb55e34c4deed2a0f122eb607f2ef59b2387e3e106309ed1b0",
    "src/components/features/conversation/conversation-overview-panel.tsx": "91b2f2d1206795182511a809bf7c819ec4d1fd06cbee10da5df86404df588863",
    "src/components/features/conversation/conversation-overview-toggle.tsx": "c00662d74170378782055521e286e7ea9bf34125d34b4cbbe7972eb893203917",
    "src/components/features/conversation/conversation-tabs/conversation-planner-build-bar.tsx": "ee45cbd0bf5c6ed2617fe92e5c71cc336b12fb4a399b744ffede84f4019526df",
    "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx": "9b11b4299268295a8681254263ce2598fa2c98c4018997911dcd0b077bc67b33",
    "src/components/features/conversation/conversation-tabs/conversation-tabs.tsx": "419612d2d9f9925e7fddda516b25a0061b29d6661657e5bdc92a502faf331618",
    "src/components/features/conversation/conversation-tabs/drawer-vscode-link.tsx": "51a87b10baea9e3c5c1c7d491a8a5b9391ea7e7f6ece195443e64ec6eea2e87e",
    "src/components/features/conversation/usage-panel/context-meter.tsx": "df0d64ba4ee5da1858e54903157bff00510b41ca474fb372a64bf45fc67c7bd3",
    "src/components/features/diff-viewer/commit-row.tsx": "05dd951b13061131d448b1ff44a6f998658dbbd44437550550acbc9ff3567528",
    "src/components/features/diff-viewer/editor-container.tsx": "9366dfb6c1503e4586bfc5177a7fc7e7eae0994f3b69ff57929fdf03808e76a8",
    "src/components/features/diff-viewer/file-diff-viewer.tsx": "58067bde244d85beefcdd23a6ac97ef9b27b07edf8004835a05208c10ef3b1ef",
    "src/components/features/diff-viewer/uncommitted-changes-row.tsx": "056eafc73e7b5e239e592d78fbee40ec02d897e016092a360d94dd2dd71e4059",
    "src/components/features/files-tab/file-content-viewer.tsx": "d6bd534ba87d0572f16e78c38c98ca750e0e008fa4e10e736a0a6d6dda95b1f8",
    "src/components/features/files-tab/file-quick-row.tsx": "3b04b4fe68b2f273887c012903ce41969c40f2652b8bcff0c7b0aadc2ca67f2f",
    "src/components/features/files-tab/highlighted-source-view.tsx": "11eeebf71d745e728b64e69abb613a091de05bf66573b838c9f5ffa8e8173d86",
    "src/components/features/files-tab/tree-node.tsx": "544e0f2e2fbc53a59205c08e6fc2b73744e3eabc089da99bc86ae5fa61c728f2",
    "src/components/features/files-tab/workspace-file-discovery-settings.tsx": "08ca3cdb474ecb3f8a16e95bbe965a4cff67d5b2718c4d07df8ef0c6579c5a28",
    "src/components/features/home/featured-automations/automation-run-activity-metrics.ts": "3cbce7b642deaf9a9db3962cd4e5c319620ad4e6c3c28bbcf505cce64a2ac921",
    "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx": "64f1ea2887898670ce3ef310705cc4a12a1321b4dbef4190545ab199f09b138b",
    "src/components/features/home/featured-automations/home-automation-menu.tsx": "cf259b5101db2a2ff660225ed6c4231e3806a3bde1dbcba2fc45cac3f07e1b4a",
    "src/components/features/home/featured-automations/pinned-automation-card.tsx": "1b12d21628e780c4f53e14cb0532dab08695a4d9a17d96925dc865efd7662cf8",
    "src/components/features/home/featured-automations/running-automations-list.tsx": "faeeef19e1d2053c5b164f0be7c2939844fac356f0e188f2619a4702b94ff2f1",
    "src/components/features/home/home-chat-launcher.tsx": "b4ca82e8612187bfc16e7bbbd87b277d66bb9dd178e8e62d7a50bbd575d50f21",
    "src/components/features/home/home-header/home-header-title.tsx": "ef348efd182b0addd71eadd2edf704fa4a19ff01841829061a08c91573da7ff4",
    "src/components/features/home/home-launcher-mode-toggle.tsx": "7c4d7ff30d09a826053605c56dc354862024c24e1100e61355863c31f53b0794",
    "src/components/features/home/shared/clear-button.tsx": "b2fc52ca7448cc2ecebba819c9e1befad7984dd17565c907c1dd212b2d4929b9",
    "src/components/features/home/shared/generic-dropdown-menu.tsx": "73f6de0903558fd4c8ca3ac67756423e722270a7b9c1821f613df3e9c07c8ca7",
    "src/components/features/home/workspace-dropdown/folder-browser-modal.tsx": "4e182c923a27d8e0c1651f874e7c030cc17dc1347db0c97a2494b68bcc831be6",
    "src/components/features/home/workspace-dropdown/manage-workspaces-modal.tsx": "11df16d54b02305a4569c473c401d086450f810628ae20985ccd135a2afc4898",
    "src/components/features/images/image-lightbox.tsx": "6f51eace7a1d1663808d1c856e73ea3ba5828cc41e0ae0af6b88befa3eee23c4",
    "src/components/features/launch/plugin-launch-modal.tsx": "549f52ebd0f21d471de85aac93ccd0a1a91b08f1adaa2aab0036dd3d110f6789",
    "src/components/features/manifest/manifest-setup-dialog.tsx": "1521241d31c1c3db6c6e610e41b53bf1107f791c58ddc9306d4adf4c6a437beb",
    "src/components/features/markdown/code.tsx": "7608445d4a211f5ef1ea3f30600515bca13480e08de7fae23e690786e66798ca",
    "src/components/features/markdown/headings.tsx": "46f0bcb9e52fe79de1c12c980ffd6de19365e6cbb32f8d29604acdf4059640ac",
    "src/components/features/markdown/markdown-table-scroll.tsx": "907735c0f30bb69842267225329d7d7ea7b936f9012d5d79396ae420abe30c41",
    "src/components/features/mcp-logo-badge.tsx": "7b98f2ab6055b039ab590aab6b63a9bc341b6beb15e870b72e782ad7e680f9f4",
    "src/components/features/mcp-page/custom-server-editor.tsx": "68994ebe6098cb4575dd0352e69348e63f717c2a41cb09fabfe5fe3bc9569218",
    "src/components/features/mcp-page/install-server-modal.tsx": "36c405ddb9607cdf01d49ff8be9fb4533c116b1d7036d437a5a4b946db422010",
    "src/components/features/mcp-page/mcp-logo-stack-badge.tsx": "c18fb272625aa16a1ee0b9f9af41a672a8d54a7f53af06fcd324ce0548147c14",
    "src/components/features/mcp-page/save-as-secret-toggle.tsx": "74ffd925b788f5eb5c8eabb6e3c574fc940866e6c1e3d0a82c3995bd036e2112",
    "src/components/features/onboarding/onboarding-modal.tsx": "b23dc208f9e2453ad947c34f894599aa3bca93653bb29d7c694d62d02df73171",
    "src/components/features/onboarding/steps/say-hello-step.tsx": "64e60bee8f8136085179de955bea50bca9fc10bea387babf3dddbe2e17e93870",
    "src/components/features/onboarding/steps/setup-llm-step.tsx": "2c4b6d605c3915056751c45bd799ad3f7c267bc5d29f577bb14d0ea061b7f211",
    "src/components/features/plugins/add-plugin-modal.tsx": "ac2325678ba14520fda642e954e564a5adfe0f8501f8103b054f71c8ee8ac0d3",
    "src/components/features/plugins/plugin-detail-modal.tsx": "045d1e4dce56c526deb55341ef4f5835dd8eced9d0e6e87ba40151b7aebb7230",
    "src/components/features/plugins/plugin-picker-modal.tsx": "7012d4f0b84d29c929b32ac696d02753f7de2bf20d8696e6bf1cbdadf532a16b",
    "src/components/features/plugins/plugin-picker-trigger.tsx": "43cf608c7879f9597ea08c0d1a6c22c3d23f1aab362f31b2d78df9fa8227adc4",
    "src/components/features/settings/acp-credentials-section.tsx": "e51273f9d295b0dc23a71cb758d45e31ad14118eb38e8c34c6d70c0ae35c3771",
    "src/components/features/settings/agent-canvas-update-card.tsx": "407a42f125e255b576d164d88b4f2e9391d0d73c9d0c866e4018227631b13044",
    "src/components/features/settings/agent-canvas-version-modal.tsx": "078e56bc2c81691f81cce8c4be1545c3f96bb9a5bbac86be8d06b18c15503eb7",
    "src/components/features/settings/agent-canvas-version-tile.tsx": "9f8e9855b8abef54656986c6185ba04f96acd41a0d8fe04b37857cd5d0eefdb5",
    "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx": "e4715393266423d520488da594b976e60be031dd00dff77753e9e94e3a1b4987",
    "src/components/features/settings/backend-synced-settings-badge.tsx": "5619125525e4a356f7d3f6ba4b216424de891c317f20108efd13f49988cd007f",
    "src/components/features/settings/brand-button.tsx": "dc7d26a079505d37840e4b276e5fc055d690b348935b9c00baa1d7a3d8336602",
    "src/components/features/settings/llm-profiles/add-models-modal.tsx": "0dc54dcec4ec329b3e9c7d212da53f78f5c90b078f45994a6a15de098b0d719d",
    "src/components/features/settings/llm-profiles/profile-actions-menu.tsx": "e31c1f985548b067eb7d92f4566f284396a161dafd289028634f4dbe0805d183",
    "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx": "8bd5028dd88c37b305a232f2934941dcf482e4253792a7e77b26fec623e5d45a",
    "src/components/features/settings/llm-settings/openai-subscription-auth-card.tsx": "24c57d85ab0c392b5f3095d0f4f198c1b1d43d9497b4ca30400d9537cf9061b7",
    "src/components/features/settings/meta-llm-profiles/meta-llm-settings-view.tsx": "e31f29d2d252ff335bb9570a513ef13c80f1cf28aaac3ab18a69f8d4b926e8aa",
    "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx": "46e3ea6f5afcfbe5c6aec1065433960f76cedbc73e15960e77ee4fd372712d55",
    "src/components/features/settings/meta-llm-profiles/meta-profile-editor.tsx": "9e410b418c17c4f80c6efa6c554d0744f3245711bd4629b6b54952636b206bdb",
    "src/components/features/settings/meta-llm-profiles/meta-profile-row.tsx": "a335ba7e5a93f037b343e1db96a7bb5c518dca24691373227c4b612cdbe58554",
    "src/components/features/settings/settings-nav-header.tsx": "84e0e595763656d56e37002decf2af794ef60b8d788b151170ed78cfeaa9ab2f",
    "src/components/features/settings/settings-switch.tsx": "2220708b930e82c5f2a086782a7f6219da894d5d5a4bf649dea69c79eb300747",
    "src/components/features/settings/upgrade-button.tsx": "087c7951c349afb40ada66c452501f8eb36ffa332e623d0f9c5d760a3ebc0f71",
    "src/components/features/setup-guide/super-admin-setup-guide.tsx": "6d1e46f970c638acc32eb85a5fc86239fbf302ddd0910830e9c6e72d252ccf1a",
    "src/components/features/sidebar/mars-session-panel.tsx": "a2c7f6f1514e2818df7ff617b2bb46cbcef1038f41de719f350b95f302e5b9d1",
    "src/components/features/sidebar/sidebar-layout.ts": "b2818b96c353d761616dd906db1ee227bd71bae21b771ba4cf42cc57e8078471",
    "src/components/features/sidebar/sidebar-rail-body.tsx": "989ec7bfe68293fe370094f68f7b118b765326fa4de79bc3f63d857b4819aa3f",
    "src/components/features/sidebar/sidebar.tsx": "025a3e51bc921a4873bdd48c2712983396ab98a295d625b32e0e6b3021a57a52",
    "src/components/features/skills/add-skill-modal.tsx": "d69bbdbaf6f7e85728af8685423f904235775a5dabfb1365c31636a41fa7b018",
    "src/components/features/skills/build-skill-pills.tsx": "fcc820eadd46906c87919e03d730274fd165eafb35cd2c87256ea9bb90bce092",
    "src/components/features/skills/extensions-navigation.tsx": "5bb3d53088e21e1747bab269fadde55023b3cd12efc62a4704b5c26a88ce9347",
    "src/components/features/skills/skill-card-pill-row.tsx": "e5beb421c79a7b69445d23358e328c902eb3ea346e8a8f2563d17499caf6d7ed",
    "src/components/features/skills/skill-detail-modal.tsx": "a3f88d7c3ba6c2321468a0a61a7988d12839a4b351016b9c49b02d061ce0d8e7",
    "src/components/features/skills/skill-facet-rail.tsx": "93a2796bb7336d7471d024614911d04d287fd45b18bdb3ba0c00448ce79e496a",
    "src/components/features/skills/skill-facet-row.tsx": "fd72c333bc72cf786e92dc45c80db9cd18b2f5a2ec4a7a948400273108d4f7e9",
    "src/components/features/skills/skill-filters-modal.tsx": "0f76340fe527f2183b2229280e29f8ab6598a0c80e8071ee6ae78b8fdb5dd8b0",
    "src/components/features/skills/skill-icon-badge.tsx": "8c9417343844f07e396e552cca07554a82f36babe1262de4637eaed543aff742",
    "src/components/features/skills/skill-type-badge.tsx": "c0547c10df2116959dffd5f376753f9a04954d13cf1f9c45fc7f4650646fa029",
    "src/components/features/skills/skills-toolbar.tsx": "31688860c3828de694eb31369521f809854920f46de94c183f3e163a91a77801",
    "src/components/features/suggestions/suggestion-item.tsx": "a9b6925928ec277e3fcef827babee036cde492cd1bd07f19417b410d193d7cd5",
    "src/components/shared/badge.tsx": "b157c1b9435f8387c1916270ab26714d119e494795c26afcc752dcec64e33459",
    "src/components/shared/buttons/circle-plus-check-toggle.tsx": "1171413800b765ca0825f0347c3648091ee19f1850cd26adc2610b352dc3c839",
    "src/components/shared/buttons/styled-tooltip.tsx": "90048ff3f18b59e353bdffeffa424bce34ab0d989fea5571a324e0ee4c1184b1",
    "src/components/shared/modals/modal-backdrop.tsx": "38216adf4261490cb38324844c748d815e85a392f2ad4f02dfb89403380f73da",
    "src/components/shared/modals/settings/model-selector.tsx": "c8ca5b07d58ca20591dad414baa6ef9517c74a90dd9ec43e6870d3a3d1d0af7b",
    "src/components/shared/risk-alert.tsx": "e2c2f6b1fea86f97a25fb5aa93c527424e3cbaee6b8d584d1c9567798d357ab4",
    "src/components/shared/text-shimmer.tsx": "0f711d4a015d7c606f092f9a0db99355d290853ae2acf134123fcae04aae41c7",
    "src/hooks/query/use-start-tasks.ts": "a70ec08e9bbf0689c481291b9237c76992c5d5986688ed564e54aa7c98699821",
    "src/hooks/query/use-task-polling.ts": "5f5c4668f49ec9c169dd927f436ec6fc2b1f1fd6b8398407c17855f2b9190b9c",
    "src/routes/agent-settings.tsx": "9f2e246d8e0281be736a787cecb6194a9c10976c5c9eced3d1968f9e7742709b",
    "src/routes/automation-setup-new.tsx": "f49be56ee35ec31c0d27557cec9610410f0f224b55d912cec478fd5f174f244b",
    "src/routes/device-verify.tsx": "30edd53f524494b56adb3514a36356de2cef3774e4ef38885e597df97ccc9db3",
    "src/routes/files-tab.tsx": "b112d931f4788fb874ec1e6a2bed8ef22d295a5ef6b52ed54de252dcf122cce5",
    "src/routes/meta-llm-settings.tsx": "3db16f596619bb4b765e956c7616d93ebae29cf349510bac94492ee9e60a2e0f",
    "src/styles/agent-server-ui-style-scope.ts": "bf5801b7d236a3c516c26a1b18a1b766098d886a3740c85f6ae9f124361bb7a5",
    "src/tailwind.css": "2a9ba23984db31ce122af6e63befa1358670987ec30beeda35f28d2b9e61f5c6",
    "src/ui/dropdown/dropdown-menu.tsx": "0b393ed547600c12153b2c36d05521dae3eb4a4ddfdea5d7bf44fbe2ee2195b5",
    "src/ui/dropdown/dropdown.tsx": "ce107e70e4610c8426c3d88197e81873f254700a12a853010c6f905635ee2d57",
    "src/ui/pre.tsx": "4111f9ec113756d55391eebe116264d63fcb57e69a2c6928d0bd8159b181c3c8",
    "src/ui/typography.tsx": "3dafeb7fc4e660c40ec06517534d94b8b87323b3bdc49bec87f70624f4dea8d1",
    "src/utils/custom-toast-handlers.tsx": "eb49f63cbe69e6c21bb29af64360a3dd95d72fb2ca30319b49cb4daf6351e341",
    "src/utils/dropdown-classes.ts": "fda5023bd6b7a9484edf669a92acd907a5587fab318ff7c4f4cd60fac6fd8669",
    "src/utils/form-control-classes.ts": "6989f8a01bdf926cdeff5b20d8b6f9ce5f475e6bc11b200f3854f606d44168f1",
    "src/utils/git-control-bar-classes.ts": "de0971a85bd9e5d39f469c343215a253aaeaab767984594cdbeb5df554fb5e2e",
    "src/utils/hover-reveal-classes.ts": "54f6fb286c1af8270e562f6f67409906a2b42924960ef509b0b8cca79ea2a09b",
    "src/utils/modal-classes.ts": "94b883172573e7756a1ebc668a50c6f3be6a456625ecefd067d83c26235ff57f",
    "src/utils/settings-list-classes.ts": "c7cf74daff52d3808bddeb2ddcc5f6282e166ca8430c50598a610c312d42a54a"
  },
  "notes": [
    "All diagnostic file paths are repository relative. Formatter source payloads, suppressed-message contents, local checkout paths and environment dumps are omitted.",
    "618 warnings are active diagnostics; 100 suppressed diagnostics are excluded.",
    "Inline classifications are source-inspection triage, not live runtime verification.",
    "Dropdown shared visually-hidden properties are reported for two consumers, producing 18 warnings from 9 source properties.",
    "The no-raw-colors diagnostics are palette utilities; arbitraryColorWarnings belong to no-arbitrary-values and are included in its rule total.",
    "No product source, tests, mocks, specs, verification skills, or rule configuration were edited by this audit. No app processes were launched."
  ],
  "nextBatchReachability": {
    "startTaskStatusCards": {
      "rawColorWarnings": 12,
      "normalLocalLaunchReachable": false,
      "normalCloudLaunchReachable": false,
      "reason": "Sole production list consumer maps useStartTasks, whose queryFn returns [] unconditionally; READY/ERROR are also filtered out. Cloud individual-task polling is a separate query and does not populate the list. Local conversation creation returns READY synchronously.",
      "codeReferences": [
        {
          "file": "src/hooks/query/use-start-tasks.ts",
          "line": 18
        },
        {
          "file": "src/hooks/query/use-start-tasks.ts",
          "line": 21
        },
        {
          "file": "src/components/features/conversation-panel/conversation-panel.tsx",
          "line": 1232
        },
        {
          "file": "src/api/conversation-service/agent-server-conversation-service.api.ts",
          "line": 673
        },
        {
          "file": "src/api/conversation-service/agent-server-conversation-service.api.ts",
          "line": 792
        },
        {
          "file": "src/hooks/query/use-task-polling.ts",
          "line": 72
        }
      ],
      "prerequisite": "Separately establish genuine UI list data/consumer and supported producer contract; define terminal-state visibility. Do not bundle with palette cleanup."
    }
  },
  "separateExistingScopes": [
    {
      "pr": 18520,
      "scope": "DigitalOcean connect-panel palette migration",
      "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
      "rawColorWarnings": 4
    },
    {
      "pr": 18533,
      "scope": "Budget progress-bar palette and measured width",
      "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
      "rawColorWarnings": 2,
      "inlineStyleWarnings": 1
    }
  ],
  "nextTinyStaticInlineCandidates": [
    {
      "scope": "Fixed inner overview-column width",
      "file": "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx",
      "line": 84,
      "ruleId": "shadcn/no-inline-styles",
      "warnings": 1,
      "valueOwner": {
        "file": "src/components/features/conversation/conversation-overview-panel.constants.ts",
        "line": 17,
        "identifier": "CONVERSATION_OVERVIEW_COLUMN_WIDTH_PX",
        "valuePx": 268
      },
      "approach": "Pass the numeric owned constant through a CSS custom property and consume it in an owned width class; preserve the existing outer framer-motion width animation.",
      "reachability": {
        "sourceInspected": true,
        "liveVerified": false,
        "trigger": "In a non-archived desktop conversation, toggle the overview panel; its container needs at least 596 CSS px.",
        "codeReferences": [
          {
            "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
            "line": 320
          },
          {
            "file": "src/components/features/conversation/conversation-main/chat-interface-wrapper.tsx",
            "line": 42
          },
          {
            "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
            "line": 90
          },
          {
            "file": "src/components/features/conversation/conversation-overview-panel.constants.ts",
            "line": 21
          }
        ]
      },
      "existingTestPaths": [
        "__tests__/components/features/conversation/chat-interface-wrapper.test.tsx",
        "__tests__/components/features/conversation/conversation-overview-toggle.test.tsx"
      ],
      "reviewLimits": "The 268px inner width is static; the parent motion props and responsive space measurement have separate runtime ownership."
    },
    {
      "scope": "Fixed automation-run sparkline track height",
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "line": 181,
      "ruleId": "shadcn/no-inline-styles",
      "warnings": 1,
      "valueOwner": {
        "file": "src/components/features/home/featured-automations/automation-run-activity-metrics.ts",
        "line": 9,
        "identifier": "AUTOMATION_RUN_ACTIVITY_TRACK_PX",
        "valuePx": 18
      },
      "approach": "Pass the numeric owned track constant through a CSS custom property and consume it in an owned height class.",
      "reachability": {
        "sourceInspected": true,
        "liveVerified": false,
        "trigger": "View an automation with at least one recent run in an automation card/list, home pinned card, or running-automations list.",
        "codeReferences": [
          {
            "file": "src/components/features/automations/automation-card.tsx",
            "line": 198
          },
          {
            "file": "src/components/features/automations/automation-list-row.tsx",
            "line": 231
          },
          {
            "file": "src/components/features/home/featured-automations/pinned-automation-card.tsx",
            "line": 243
          },
          {
            "file": "src/components/features/home/featured-automations/running-automations-list.tsx",
            "line": 171
          },
          {
            "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
            "line": 169
          }
        ]
      },
      "existingTestPaths": [
        "__tests__/components/automations/automation-card.test.tsx",
        "__tests__/components/automations/automation-list-row.test.tsx",
        "__tests__/components/features/home/automation-run-activity-sparkline.test.ts"
      ],
      "reviewLimits": "Only the 18px track is static. Per-bar height at line 140 derives from duration and must remain separate."
    }
  ],
  "artifactHashes": {
    "full-lint.log": "f2ef35b4f150b5ad8ef9b2700aa2ac45905dc85430c2434e8ed755a5e688efdf",
    "eslint-command.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "eslint.json": "7d94d44e6f25ab1544a399da2feb5ae9a68a1bbd7a67ce467f2fd8a31e5d1d9b",
    "eslint.relative.json": "d723c65401c1cf2a3e4d3dc2ccaf864d7f5eab875c493d35101d67738fbb579a",
    "run-metadata.json": "0eccfbabae209e774961002d5785b910d12ddb2b69e5dbc10df93bc6a8060a69"
  }
}
