{
  "sourceCommit": "c28f46fdb5508b5f5789b9b64f783db9dd821468",
  "warnings": 323,
  "errors": 0,
  "rules": {
    "shadcn/no-arbitrary-values": 254,
    "shadcn/no-inline-styles": 51,
    "shadcn/no-raw-colors": 18
  },
  "command": "npx eslint src --format json --output-file main-eslint.json",
  "note": "Measured on exact merged main before compact metadata. Dialog19161 and color enforcement19163 are merged. The independent compact-font proposal is278/0.",
  "diagnostics": [
    {
      "file": "src/components/conversation-events/chat/event-message-components/corrective-nudge-message.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"mt-[5px]\" hardcodes an off-token value. Use \"mt-1.25\" instead (same value, on the scale).",
          "line": 19,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValueWithScale",
          "endLine": 19,
          "endColumn": 38,
          "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,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 22,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 22,
          "endColumn": 58
        }
      ]
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-item.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "line": 21,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 21,
          "endColumn": 62,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-primary"
              },
              "fix": {
                "range": [
                  745,
                  769
                ],
                "text": "\"w-4 h-4 text-primary\""
              },
              "desc": "Replace with \"text-primary\"."
            },
            {
              "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,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "line": 23,
          "column": 47,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 23,
          "endColumn": 71,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-primary"
              },
              "fix": {
                "range": [
                  846,
                  870
                ],
                "text": "\"w-4 h-4 text-primary\""
              },
              "desc": "Replace with \"text-primary\"."
            },
            {
              "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,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "line": 27,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 27,
          "endColumn": 62,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-primary"
              },
              "fix": {
                "range": [
                  1013,
                  1037
                ],
                "text": "\"w-4 h-4 text-primary\""
              },
              "desc": "Replace with \"text-primary\"."
            },
            {
              "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,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 46,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 46,
          "endColumn": 62
        }
      ]
    },
    {
      "file": "src/components/conversation-events/chat/task-tracking/task-list-section.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 20,
          "column": 36,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 20,
          "endColumn": 130
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 20,
          "column": 36,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 20,
          "endColumn": 130
        }
      ]
    },
    {
      "file": "src/components/features/automations/add-automation-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 145,
          "column": 25,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 145,
          "endColumn": 36
        }
      ]
    },
    {
      "file": "src/components/features/automations/automation-list-row.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"grid-cols-[auto_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 147,
          "column": 26,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 147,
          "endColumn": 86
        }
      ]
    },
    {
      "file": "src/components/features/automations/automation-view-toggle.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"min-w-[10rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 108,
          "column": 60,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 108,
          "endColumn": 75
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 155,
          "column": 25,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 155,
          "endColumn": 36
        }
      ]
    },
    {
      "file": "src/components/features/automations/create-instructions.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 21,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 21,
          "endColumn": 93
        }
      ]
    },
    {
      "file": "src/components/features/automations/dashboard/automations-dashboard-controls.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 148,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 148,
          "endColumn": 109
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"min-w-[16rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 166,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 166,
          "endColumn": 166
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/active-status-badge.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 48,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 48,
          "endColumn": 44
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/run-logs-modal.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 122,
          "column": 22,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 122,
          "endColumn": 84
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 127,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 127,
          "endColumn": 126
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 132,
          "column": 22,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 132,
          "endColumn": 83
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 156,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 156,
          "endColumn": 176
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"sm:grid-cols-[5rem_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 164,
          "column": 22,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 164,
          "endColumn": 83
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"border-[var(--oh-primary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 256,
          "column": 26,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 256,
          "endColumn": 68
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/run-phase.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-w-[28rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 76,
          "column": 20,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 76,
          "endColumn": 35
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-w-[12rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 76,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 76,
          "endColumn": 53
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/run-status-badge.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 184,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 184,
          "endColumn": 59
        }
      ]
    },
    {
      "file": "src/components/features/automations/detail/script-section.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 104,
          "column": 37,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 104,
          "endColumn": 123
        }
      ]
    },
    {
      "file": "src/components/features/automations/kebab-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 141,
          "column": 25,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 141,
          "endColumn": 36
        }
      ]
    },
    {
      "file": "src/components/features/automations/recommended-automations-rail.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 246,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 246,
          "endColumn": 101
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 257,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 257,
          "endColumn": 101
        }
      ]
    },
    {
      "file": "src/components/features/backends/backend-row.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 122,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 122,
          "endColumn": 136
        }
      ]
    },
    {
      "file": "src/components/features/backends/backend-version.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 34,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 34,
          "endColumn": 162
        }
      ]
    },
    {
      "file": "src/components/features/backends/environment-switch-overlay.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"z-[2147483646]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 156,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 156,
          "endColumn": 127
        }
      ]
    },
    {
      "file": "src/components/features/backends/manage-backends-modal.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 171,
          "column": 41,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 171,
          "endColumn": 51
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[70vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 171,
          "column": 54,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 171,
          "endColumn": 68
        }
      ]
    },
    {
      "file": "src/components/features/backends/managed-agents/digitalocean-connect-panel.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "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.",
          "line": 42,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 42,
          "endColumn": 275,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-markdown-alert-note"
              },
              "fix": {
                "range": [
                  1292,
                  1564
                ],
                "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": [
                  1292,
                  1564
                ],
                "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,
          "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.",
          "line": 65,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 65,
          "endColumn": 268,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-markdown-alert-note"
              },
              "fix": {
                "range": [
                  2292,
                  2541
                ],
                "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": [
                  2292,
                  2541
                ],
                "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,
          "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.",
          "line": 159,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 159,
          "endColumn": 248,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-markdown-alert-note"
              },
              "fix": {
                "range": [
                  5494,
                  5721
                ],
                "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": [
                  5494,
                  5721
                ],
                "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,
          "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.",
          "line": 334,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 334,
          "endColumn": 302,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "focus-visible:outline-markdown-alert-note"
              },
              "fix": {
                "range": [
                  11300,
                  11589
                ],
                "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": [
                  11300,
                  11589
                ],
                "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",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 90,
          "column": 29,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 90,
          "endColumn": 76
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 111,
          "column": 31,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 111,
          "endColumn": 131
        }
      ]
    },
    {
      "file": "src/components/features/canvas-extensions/canvas-extension-card.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"grid-cols-[auto_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 85,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 85,
          "endColumn": 80
        }
      ]
    },
    {
      "file": "src/components/features/chat/btw-messages.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 22,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 22,
          "endColumn": 111
        }
      ]
    },
    {
      "file": "src/components/features/chat/change-agent-button.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 168,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 168,
          "endColumn": 46
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 172,
          "column": 15,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 172,
          "endColumn": 64
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 172,
          "column": 15,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 172,
          "endColumn": 64,
          "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,
          "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.",
          "line": 178,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 178,
          "endColumn": 48
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 188,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 188,
          "endColumn": 97
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-markdown-path-code.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"px-[0.4em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 96,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 96,
          "endColumn": 144
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"py-[0.2em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 96,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 96,
          "endColumn": 144
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-message.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 133,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 133,
          "endColumn": 86
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 162,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 162,
          "endColumn": 57
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"z-[1]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 239,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 239,
          "endColumn": 99
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-send-button.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 41,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 41,
          "endColumn": 65
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-status-indicator.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 18,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 18,
          "endColumn": 83
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"animate-[pulse_1.2s_ease-in-out_infinite]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 25,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 25,
          "endColumn": 78
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 41,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 41,
          "endColumn": 105
        }
      ]
    },
    {
      "file": "src/components/features/chat/chat-suggestions.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[32px]\" hardcodes an off-token value. Nearest on the scale: text-3xl (30px), text-4xl (36px).",
          "line": 28,
          "column": 29,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 28,
          "endColumn": 83
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-actions.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 383,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 383,
          "endColumn": 127
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"top-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 449,
          "column": 15,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 449,
          "endColumn": 125
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 463,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 463,
          "endColumn": 79
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 568,
          "column": 31,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 568,
          "endColumn": 50
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-container.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "line": 73,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 73,
          "endColumn": 124
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 74,
          "column": 40,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 74,
          "endColumn": 65
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-llm-profile-picker.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets maxHeight. Style through classes; use CSS custom properties for dynamic values.",
          "line": 257,
          "column": 31,
          "nodeType": "Identifier",
          "messageId": "inlineStyle",
          "endLine": 257,
          "endColumn": 47
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/chat-input-model.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 85,
          "column": 40,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 85,
          "endColumn": 113
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 205,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 205,
          "endColumn": 81
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 205,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 205,
          "endColumn": 81
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/context-window-meter.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"z-[60]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 104,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 104,
          "endColumn": 60
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets borderColor. Style through classes; use CSS custom properties for dynamic values.",
          "line": 122,
          "column": 37,
          "nodeType": "Identifier",
          "messageId": "inlineStyle",
          "endLine": 122,
          "endColumn": 63
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "line": 135,
          "column": 33,
          "nodeType": "TemplateLiteral",
          "messageId": "inlineStyle",
          "endLine": 135,
          "endColumn": 69
        }
      ]
    },
    {
      "file": "src/components/features/chat/components/context-window-ring.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets stroke. Style through classes; use CSS custom properties for dynamic values.",
          "line": 62,
          "column": 26,
          "nodeType": "Identifier",
          "messageId": "inlineStyle",
          "endLine": 62,
          "endColumn": 52
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"transition-[stroke-dashoffset,stroke]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 77,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 77,
          "endColumn": 71
        }
      ]
    },
    {
      "file": "src/components/features/chat/drag-over.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rotate-[-27deg]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 16,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 16,
          "endColumn": 74
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"top-[-40px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 16,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 16,
          "endColumn": 74
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"left-[-10px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 16,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 16,
          "endColumn": 74
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"top-[-16px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 21,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 21,
          "endColumn": 58
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"left-[-20px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 21,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 21,
          "endColumn": 58
        }
      ]
    },
    {
      "file": "src/components/features/chat/git-control-bar-branch-button.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 49,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 49,
          "endColumn": 147
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 52,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 52,
          "endColumn": 93,
          "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",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 57,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 57,
          "endColumn": 127
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 84,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 84,
          "endColumn": 118
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 85,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 85,
          "endColumn": 61,
          "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",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 70,
          "column": 20,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 70,
          "endColumn": 79
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 74,
          "column": 36,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 74,
          "endColumn": 103
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 74,
          "column": 36,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 74,
          "endColumn": 103
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 84,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 84,
          "endColumn": 105
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 84,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 84,
          "endColumn": 105
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[15px]\" hardcodes an off-token value. Nearest on the scale: text-sm (14px), text-base (16px).",
          "line": 94,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 94,
          "endColumn": 85
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 108,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 108,
          "endColumn": 84,
          "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",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "line": 25,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 25,
          "endColumn": 62,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-primary"
              },
              "fix": {
                "range": [
                  756,
                  780
                ],
                "text": "\"w-4 h-4 text-primary\""
              },
              "desc": "Replace with \"text-primary\"."
            },
            {
              "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,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "line": 27,
          "column": 47,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 27,
          "endColumn": 71,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-primary"
              },
              "fix": {
                "range": [
                  857,
                  881
                ],
                "text": "\"w-4 h-4 text-primary\""
              },
              "desc": "Replace with \"text-primary\"."
            },
            {
              "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,
          "message": "\"text-[#ffffff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "line": 31,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 31,
          "endColumn": 62,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-primary"
              },
              "fix": {
                "range": [
                  1024,
                  1048
                ],
                "text": "\"w-4 h-4 text-primary\""
              },
              "desc": "Replace with \"text-primary\"."
            },
            {
              "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,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 50,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 50,
          "endColumn": 62
        }
      ]
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/code-block.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 55,
          "column": 14,
          "nodeType": "CallExpression",
          "messageId": "dynamicStyle",
          "endLine": 55,
          "endColumn": 51
        }
      ]
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/key-value-grid.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"grid-cols-[auto_1fr]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 14,
          "column": 20,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 14,
          "endColumn": 71
        }
      ]
    },
    {
      "file": "src/components/features/chat/tool-visualizers/primitives/markdown-file-preview.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[--oh-scroll-fade-from:var(--oh-surface)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 171,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 171,
          "endColumn": 135
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 186,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 186,
          "endColumn": 109
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 186,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 186,
          "endColumn": 109
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 197,
          "column": 40,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 197,
          "endColumn": 95
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"tracking-[0.11px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 197,
          "column": 40,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 197,
          "endColumn": 95
        }
      ]
    },
    {
      "file": "src/components/features/chat/uploaded-file.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 43,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 43,
          "endColumn": 72
        }
      ]
    },
    {
      "file": "src/components/features/chat/user-message-body.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 81,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 81,
          "endColumn": 72
        }
      ]
    },
    {
      "file": "src/components/features/chat/workspace-mode-selector.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 75,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 75,
          "endColumn": 118
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 76,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 76,
          "endColumn": 77,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border"
              },
              "fix": {
                "range": [
                  2324,
                  2390
                ],
                "text": "\"border border-border bg-transparent text-contrast\""
              },
              "desc": "Replace with \"border-border\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "border-border-subtle"
              },
              "fix": {
                "range": [
                  2324,
                  2390
                ],
                "text": "\"border border-border-subtle bg-transparent text-contrast\""
              },
              "desc": "Replace with \"border-border-subtle\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/controls/agent-status.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 150,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 150,
          "endColumn": 93
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 157,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 157,
          "endColumn": 268
        }
      ]
    },
    {
      "file": "src/components/features/controls/server-status.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[13px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 57,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 57,
          "endColumn": 64
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/budget-progress-bar.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "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.",
          "line": 20,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 20,
          "endColumn": 37,
          "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,
          "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.",
          "line": 20,
          "column": 40,
          "nodeType": "Literal",
          "messageId": "paletteClassFar",
          "endLine": 20,
          "endColumn": 53
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "line": 24,
          "column": 18,
          "nodeType": "TemplateLiteral",
          "messageId": "inlineStyle",
          "endLine": 24,
          "endColumn": 54
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/cloud-new-conversation-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "line": 230,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "inlineStyle",
          "endLine": 230,
          "endColumn": 28
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "line": 231,
          "column": 16,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 231,
          "endColumn": 28
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "line": 232,
          "column": 17,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 232,
          "endColumn": 30
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "line": 233,
          "column": 18,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 233,
          "endColumn": 32
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 333,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 333,
          "endColumn": 61,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-status-error"
              },
              "fix": {
                "range": [
                  10563,
                  10597
                ],
                "text": "\"px-2 py-2 text-sm text-status-error\""
              },
              "desc": "Replace with \"text-status-error\"."
            },
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-danger"
              },
              "fix": {
                "range": [
                  10563,
                  10597
                ],
                "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",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 50,
          "column": 5,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 50,
          "endColumn": 157
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 96,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 96,
          "endColumn": 97
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-context-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 98,
          "column": 27,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 98,
          "endColumn": 40
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card-preview.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-w-[min(280px,90vw)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 157,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 157,
          "endColumn": 88
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-card.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"min-w-[3.75rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 322,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 322,
          "endColumn": 34
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-card/conversation-tag-chips.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "line": 318,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "inlineStyle",
          "endLine": 318,
          "endColumn": 32
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "line": 319,
          "column": 20,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 319,
          "endColumn": 34
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "line": 320,
          "column": 21,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 320,
          "endColumn": 36
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-panel-wrapper.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"z-[100]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 23,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 23,
          "endColumn": 77
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/conversation-panel.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 1333,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 1333,
          "endColumn": 77
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/exit-conversation-modal.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 34,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 34,
          "endColumn": 37
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/hook-event-item.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 24,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 24,
          "endColumn": 149
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/hook-matcher-content.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 12,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 12,
          "endColumn": 140
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/local-new-conversation-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "line": 156,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "inlineStyle",
          "endLine": 156,
          "endColumn": 28
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "line": 157,
          "column": 16,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 157,
          "endColumn": 28
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "line": 158,
          "column": 17,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 158,
          "endColumn": 30
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "line": 159,
          "column": 18,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 159,
          "endColumn": 32
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[var(--oh-text-secondary)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 216,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 216,
          "endColumn": 76
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 235,
          "column": 33,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 235,
          "endColumn": 57
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skill-item.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 20,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 20,
          "endColumn": 149
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skill-triggers.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 25,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 25,
          "endColumn": 160
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/skills-modal-section.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 19,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 19,
          "endColumn": 97
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 22,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 22,
          "endColumn": 173
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-badge.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "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.",
          "line": 28,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 28,
          "endColumn": 68,
          "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,
          "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.",
          "line": 28,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 28,
          "endColumn": 68,
          "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,
          "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.",
          "line": 28,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 28,
          "endColumn": 68,
          "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,
          "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.",
          "line": 30,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 30,
          "endColumn": 62,
          "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,
          "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.",
          "line": 30,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 30,
          "endColumn": 62,
          "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,
          "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.",
          "line": 30,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 30,
          "endColumn": 62,
          "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,
          "message": "\"bg-yellow-500/10\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo/10, bg-accent/10. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "line": 32,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 32,
          "endColumn": 71,
          "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-accent/10"
              },
              "fix": {
                "range": [
                  1096,
                  1151
                ],
                "text": "\"bg-accent/10 text-yellow-400 border-yellow-500/20\""
              },
              "desc": "Replace with \"bg-accent/10\"."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "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.",
          "line": 32,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 32,
          "endColumn": 71,
          "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,
          "message": "\"border-yellow-500/20\" uses the raw Tailwind palette. Nearest theme tokens: border-logo/20, border-accent/20. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "line": 32,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 32,
          "endColumn": 71,
          "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-accent/20"
              },
              "fix": {
                "range": [
                  1096,
                  1151
                ],
                "text": "\"bg-yellow-500/10 text-yellow-400 border-accent/20\""
              },
              "desc": "Replace with \"border-accent/20\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/conversation-panel/start-task-card/start-task-status-indicator.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-raw-colors",
          "severity": 1,
          "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.",
          "line": 14,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 14,
          "endColumn": 30,
          "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,
          "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.",
          "line": 16,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 16,
          "endColumn": 28,
          "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,
          "message": "\"bg-yellow-500\" uses the raw Tailwind palette. Nearest theme tokens: bg-logo, bg-accent. Use one of those, or declare --color-<name> in src/styles.css for a new color.",
          "line": 24,
          "column": 16,
          "nodeType": "Literal",
          "messageId": "paletteClassNear",
          "endLine": 24,
          "endColumn": 45,
          "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-accent"
              },
              "fix": {
                "range": [
                  746,
                  775
                ],
                "text": "\"bg-accent animate-pulse\""
              },
              "desc": "Replace with \"bg-accent\"."
            }
          ]
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-git-actions-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 110,
          "column": 14,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 110,
          "endColumn": 25
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-main/conversation-main.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 188,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 188,
          "endColumn": 78
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"border-[var(--oh-border)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 214,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 214,
          "endColumn": 102
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 232,
          "column": 31,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 232,
          "endColumn": 55
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "line": 290,
          "column": 37,
          "nodeType": "ConditionalExpression",
          "messageId": "inlineStyle",
          "endLine": 290,
          "endColumn": 64
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"transition-[width]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 309,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 309,
          "endColumn": 66
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "line": 317,
          "column": 21,
          "nodeType": "ConditionalExpression",
          "messageId": "inlineStyle",
          "endLine": 321,
          "endColumn": 33
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "line": 323,
          "column": 21,
          "nodeType": "ConditionalExpression",
          "messageId": "inlineStyle",
          "endLine": 323,
          "endColumn": 75
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "line": 402,
          "column": 22,
          "nodeType": "ConditionalExpression",
          "messageId": "inlineStyle",
          "endLine": 406,
          "endColumn": 23
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets transitionProperty. Style through classes; use CSS custom properties for dynamic values.",
          "line": 407,
          "column": 35,
          "nodeType": "ConditionalExpression",
          "messageId": "inlineStyle",
          "endLine": 407,
          "endColumn": 76
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-name-context-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"translate-x-[calc(1rem-1px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 83,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 83,
          "endColumn": 65
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"translate-x-[34%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 200,
          "column": 35,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 200,
          "endColumn": 72
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 378,
          "column": 19,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 378,
          "endColumn": 30
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-name-with-status.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"ml-[3.5px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 126,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 126,
          "endColumn": 60
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-context-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 414,
          "column": 19,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 414,
          "endColumn": 30
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-drawer.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[min(50vh,420px)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 51,
          "column": 52,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 51,
          "endColumn": 107
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-panel.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-w-[45%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 51,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 51,
          "endColumn": 84
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-overview-toggle.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "line": 125,
          "column": 20,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 125,
          "endColumn": 36
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "line": 126,
          "column": 21,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 126,
          "endColumn": 38
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "line": 127,
          "column": 22,
          "nodeType": "Identifier",
          "messageId": "inlineStyle",
          "endLine": 127,
          "endColumn": 58
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-planner-build-bar.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 55,
          "column": 36,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 55,
          "endColumn": 96
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs-context-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 274,
          "column": 19,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 274,
          "endColumn": 30
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/conversation-tabs.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"left-[-10000px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 321,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 321,
          "endColumn": 111
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 452,
          "column": 40,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 452,
          "endColumn": 100
        }
      ]
    },
    {
      "file": "src/components/features/conversation/conversation-tabs/drawer-vscode-link.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "line": 45,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 45,
          "endColumn": 114
        }
      ]
    },
    {
      "file": "src/components/features/conversation/usage-panel/context-meter.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "line": 90,
          "column": 27,
          "nodeType": "TemplateLiteral",
          "messageId": "inlineStyle",
          "endLine": 90,
          "endColumn": 48
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/commit-row.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"w-[7ch]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 48,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 48,
          "endColumn": 89
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/editor-container.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"h-[var(--editor-height)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 19,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 19,
          "endColumn": 81
        }
      ]
    },
    {
      "file": "src/components/features/diff-viewer/uncommitted-changes-row.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"w-[7ch]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 38,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 38,
          "endColumn": 89
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/file-quick-row.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[scrollbar-width:none]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 23,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 23,
          "endColumn": 83
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[-ms-overflow-style:none]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 23,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 23,
          "endColumn": 83
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/highlighted-source-view.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 53,
          "column": 16,
          "nodeType": "CallExpression",
          "messageId": "dynamicStyle",
          "endLine": 53,
          "endColumn": 53
        }
      ]
    },
    {
      "file": "src/components/features/files-tab/workspace-file-discovery-settings.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 63,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 63,
          "endColumn": 55
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/automation-run-activity-sparkline.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[1px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
          "line": 69,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 69,
          "endColumn": 47
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[1px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
          "line": 133,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 133,
          "endColumn": 87
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"group-hover/spark-bar:scale-x-[1.4]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 136,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 136,
          "endColumn": 87
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"group-hover/spark-bar:scale-y-[1.15]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 136,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 136,
          "endColumn": 87
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"group-focus-visible/spark-bar:scale-x-[1.4]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 137,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 137,
          "endColumn": 103
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"group-focus-visible/spark-bar:scale-y-[1.15]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 137,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 137,
          "endColumn": 103
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/home-automation-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 149,
          "column": 22,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 149,
          "endColumn": 35
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/pinned-automation-card.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"shadow-[inset_0_2px_0_0_var(--oh-focus)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 158,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 158,
          "endColumn": 53
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"shadow-[inset_0_-2px_0_0_var(--oh-focus)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 161,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 161,
          "endColumn": 54
        }
      ]
    },
    {
      "file": "src/components/features/home/featured-automations/running-automations-list.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"grid-cols-[auto_minmax(0,1fr)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 117,
          "column": 26,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 117,
          "endColumn": 86
        }
      ]
    },
    {
      "file": "src/components/features/home/home-chat-launcher.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"pt-[max(4rem,28vh)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 357,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 357,
          "endColumn": 78
        }
      ]
    },
    {
      "file": "src/components/features/home/shared/clear-button.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[#fff]\" hardcodes a color. Nearest theme tokens: text-primary, text-content-2. Use one of those, or declare --color-<name> in src/styles.css.",
          "line": 27,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 27,
          "endColumn": 26,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "text-primary"
              },
              "fix": {
                "range": [
                  563,
                  580
                ],
                "text": "\"p-1 text-primary\""
              },
              "desc": "Replace with \"text-primary\"."
            },
            {
              "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/images/image-lightbox.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 47,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 47,
          "endColumn": 74
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 47,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 47,
          "endColumn": 74
        }
      ]
    },
    {
      "file": "src/components/features/markdown/code.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"px-[0.4em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 37,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 37,
          "endColumn": 107
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"py-[0.2em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 37,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 37,
          "endColumn": 107
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"p-[1em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 47,
          "column": 24,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 47,
          "endColumn": 118
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 58,
          "column": 16,
          "nodeType": "CallExpression",
          "messageId": "dynamicStyle",
          "endLine": 58,
          "endColumn": 53
        }
      ]
    },
    {
      "file": "src/components/features/markdown/headings.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"-tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 24,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 24,
          "endColumn": 106
        }
      ]
    },
    {
      "file": "src/components/features/markdown/markdown-table-scroll.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 72,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 72,
          "endColumn": 99
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 84,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 84,
          "endColumn": 99
        }
      ]
    },
    {
      "file": "src/components/features/mcp-logo-badge.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 54,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 54,
          "endColumn": 113
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets backgroundColor. Style through classes; use CSS custom properties for dynamic values.",
          "line": 59,
          "column": 26,
          "nodeType": "LogicalExpression",
          "messageId": "inlineStyle",
          "endLine": 59,
          "endColumn": 69
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets color. Style through classes; use CSS custom properties for dynamic values.",
          "line": 61,
          "column": 11,
          "nodeType": "LogicalExpression",
          "messageId": "inlineStyle",
          "endLine": 62,
          "endColumn": 61
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"p-[22%]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 71,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 71,
          "endColumn": 59
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/custom-server-editor.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-w-[90vw]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 242,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 242,
          "endColumn": 150
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[90vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 242,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 242,
          "endColumn": 150
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/mcp-logo-stack-badge.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 8,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 8,
          "endColumn": 183
        }
      ]
    },
    {
      "file": "src/components/features/mcp-page/save-as-secret-toggle.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 48,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 48,
          "endColumn": 112
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 62,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 62,
          "endColumn": 156
        }
      ]
    },
    {
      "file": "src/components/features/onboarding/steps/say-hello-step.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[calc(90vh-7rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 82,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 82,
          "endColumn": 56
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "line": 96,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 96,
          "endColumn": 151
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[var(--oh-muted)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 134,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 134,
          "endColumn": 58
        }
      ]
    },
    {
      "file": "src/components/features/onboarding/steps/setup-llm-step.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[calc(90vh-7rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 344,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 344,
          "endColumn": 62
        }
      ]
    },
    {
      "file": "src/components/features/plugins/plugin-picker-trigger.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 51,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 51,
          "endColumn": 168
        }
      ]
    },
    {
      "file": "src/components/features/settings/acp-credentials-section.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 49,
          "column": 36,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 49,
          "endColumn": 60,
          "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",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[80vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 170,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 170,
          "endColumn": 95
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 214,
          "column": 30,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 214,
          "endColumn": 138
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 214,
          "column": 30,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 214,
          "endColumn": 138,
          "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,
          "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.",
          "line": 214,
          "column": 30,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 214,
          "endColumn": 138
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 225,
          "column": 31,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 225,
          "endColumn": 137
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 242,
          "column": 31,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 242,
          "endColumn": 137
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 325,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 325,
          "endColumn": 97
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 327,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 327,
          "endColumn": 105,
          "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,
          "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.",
          "line": 327,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 327,
          "endColumn": 105
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-modal.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 110,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 110,
          "endColumn": 57
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 127,
          "column": 29,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 127,
          "endColumn": 105,
          "suggestions": [
            {
              "messageId": "useToken",
              "data": {
                "replacement": "bg-border-subtle"
              },
              "fix": {
                "range": [
                  3829,
                  3905
                ],
                "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": [
                  3829,
                  3905
                ],
                "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,
          "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.",
          "line": 127,
          "column": 29,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 127,
          "endColumn": 105
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 135,
          "column": 26,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 135,
          "endColumn": 57
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 144,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 144,
          "endColumn": 133
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 152,
          "column": 28,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 152,
          "endColumn": 59
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 164,
          "column": 31,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 164,
          "endColumn": 119
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"hover:text-[var(--oh-text)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 229,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 229,
          "endColumn": 160
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-canvas-version-tile.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 77,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryColorFar",
          "endLine": 77,
          "endColumn": 55
        }
      ]
    },
    {
      "file": "src/components/features/settings/agent-profiles/agent-profile-actions-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 196,
          "column": 19,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 196,
          "endColumn": 30
        }
      ]
    },
    {
      "file": "src/components/features/settings/backend-synced-settings-badge.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 40,
          "column": 34,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 40,
          "endColumn": 89
        }
      ]
    },
    {
      "file": "src/components/features/settings/brand-button.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[var(--oh-accent-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 60,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 60,
          "endColumn": 146
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-profiles/add-models-modal.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"bg-[var(--oh-background)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 393,
          "column": 23,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 393,
          "endColumn": 114
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"bg-[var(--oh-background)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 421,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 421,
          "endColumn": 116
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-profiles/profile-actions-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 221,
          "column": 19,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 221,
          "endColumn": 30
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-profiles/provider-connection-actions-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 174,
          "column": 19,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 174,
          "endColumn": 30
        }
      ]
    },
    {
      "file": "src/components/features/settings/llm-settings/openai-subscription-auth-card.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"tracking-[0.08em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 207,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 207,
          "endColumn": 62
        }
      ]
    },
    {
      "file": "src/components/features/settings/meta-llm-profiles/meta-profile-actions-menu.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"w-[160px]\" hardcodes an off-token value. Use \"w-40\" instead (same value, on the scale).",
          "line": 179,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueWithScale",
          "endLine": 179,
          "endColumn": 127,
          "suggestions": [
            {
              "messageId": "useScale",
              "data": {
                "replacement": "w-40"
              },
              "fix": {
                "range": [
                  5039,
                  5157
                ],
                "text": "\"absolute right-0 top-full z-10 mt-2 w-40 rounded-md border border-border-subtle bg-tertiary px-1 py-1 shadow-lg\""
              },
              "desc": "Replace with \"w-40\" (same value, on the scale)."
            }
          ]
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 227,
          "column": 19,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 227,
          "endColumn": 30
        }
      ]
    },
    {
      "file": "src/components/features/settings/settings-nav-header.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 16,
          "column": 34,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 16,
          "endColumn": 107
        }
      ]
    },
    {
      "file": "src/components/features/settings/settings-switch.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 61,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 61,
          "endColumn": 123
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"font-[500]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 61,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 61,
          "endColumn": 123
        }
      ]
    },
    {
      "file": "src/components/features/settings/upgrade-button.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[9px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 24,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 24,
          "endColumn": 166
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 24,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 24,
          "endColumn": 166
        }
      ]
    },
    {
      "file": "src/components/features/setup-guide/super-admin-setup-guide.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets width. Style through classes; use CSS custom properties for dynamic values.",
          "line": 337,
          "column": 33,
          "nodeType": "TemplateLiteral",
          "messageId": "inlineStyle",
          "endLine": 337,
          "endColumn": 50
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/mars-session-panel.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 285,
          "column": 22,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 285,
          "endColumn": 77
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[40vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 322,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 322,
          "endColumn": 51
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/sidebar-rail-body.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"bottom-[-4px]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 379,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 379,
          "endColumn": 78
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"w-[calc(100%+0.625rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 412,
          "column": 15,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 412,
          "endColumn": 83
        }
      ]
    },
    {
      "file": "src/components/features/sidebar/sidebar.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"transition-[width,min-width]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 238,
          "column": 33,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 238,
          "endColumn": 76
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"w-[min(300px,85vw)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 285,
          "column": 15,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 285,
          "endColumn": 120
        }
      ]
    },
    {
      "file": "src/components/features/skills/add-skill-modal.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 39,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 39,
          "endColumn": 93
        }
      ]
    },
    {
      "file": "src/components/features/skills/build-skill-pills.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 142,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 142,
          "endColumn": 221,
          "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,
          "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.",
          "line": 142,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 142,
          "endColumn": 221,
          "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,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 142,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 142,
          "endColumn": 221
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 142,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 142,
          "endColumn": 221,
          "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,
          "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.",
          "line": 144,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 144,
          "endColumn": 63,
          "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,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 180,
          "column": 29,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 180,
          "endColumn": 72
        }
      ]
    },
    {
      "file": "src/components/features/skills/extensions-navigation.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 120,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 120,
          "endColumn": 150
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-card-pill-row.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets position. Style through classes; use CSS custom properties for dynamic values.",
          "line": 260,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "inlineStyle",
          "endLine": 260,
          "endColumn": 32
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets top. Style through classes; use CSS custom properties for dynamic values.",
          "line": 261,
          "column": 20,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 261,
          "endColumn": 34
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "line": 262,
          "column": 21,
          "nodeType": "MemberExpression",
          "messageId": "inlineStyle",
          "endLine": 262,
          "endColumn": 36
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-facet-rail.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 50,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 50,
          "endColumn": 100
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-facet-row.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[3px]\" hardcodes an off-token value. Nearest on the scale: rounded-xs (2px), rounded-sm (4px).",
          "line": 49,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 49,
          "endColumn": 84
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-icon-badge.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 18,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 18,
          "endColumn": 87
        }
      ]
    },
    {
      "file": "src/components/features/skills/skill-type-badge.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 11,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 11,
          "endColumn": 188
        }
      ]
    },
    {
      "file": "src/components/features/skills/skills-toolbar.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[11px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 74,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 74,
          "endColumn": 109
        }
      ]
    },
    {
      "file": "src/components/features/suggestions/suggestion-item.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[15px]\" hardcodes an off-token value. Nearest on the scale: rounded-2xl (16px), rounded-xl (12px).",
          "line": 37,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 37,
          "endColumn": 213
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[15px]\" hardcodes an off-token value. Nearest on the scale: text-sm (14px), text-base (16px).",
          "line": 43,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 43,
          "endColumn": 95
        }
      ]
    },
    {
      "file": "src/components/shared/badge.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[var(--oh-accent-foreground)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 11,
          "column": 9,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 11,
          "endColumn": 122
        }
      ]
    },
    {
      "file": "src/components/shared/buttons/circle-plus-check-toggle.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 96,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 96,
          "endColumn": 104,
          "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,
          "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.",
          "line": 96,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 96,
          "endColumn": 104,
          "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,
          "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.",
          "line": 96,
          "column": 17,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 96,
          "endColumn": 104,
          "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,
          "message": "\"stroke-[2.5]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 110,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 110,
          "endColumn": 39
        }
      ]
    },
    {
      "file": "src/components/shared/horizontal-scroll-fade.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 120,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 120,
          "endColumn": 99
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"from-[var(--oh-scroll-fade-from,var(--oh-color-base))]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 132,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 132,
          "endColumn": 99
        }
      ]
    },
    {
      "file": "src/components/shared/modals/modal-backdrop.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"z-[70]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 68,
          "column": 20,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 68,
          "endColumn": 28
        }
      ]
    },
    {
      "file": "src/components/shared/modals/settings/model-selector.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[10px]\" hardcodes an off-token value. Nearest on the scale: text-xs (12px), text-sm (14px).",
          "line": 31,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 31,
          "endColumn": 117
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Inline style sets left. Style through classes; use CSS custom properties for dynamic values.",
          "line": 320,
          "column": 25,
          "nodeType": "TemplateLiteral",
          "messageId": "inlineStyle",
          "endLine": 320,
          "endColumn": 79
        }
      ]
    },
    {
      "file": "src/components/shared/risk-alert.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"bg-[#4A0709]\" hardcodes a color. Nearest theme tokens: bg-base-secondary. Use one of those, or declare --color-<name> in src/styles.css.",
          "line": 24,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 24,
          "endColumn": 137,
          "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,
          "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.",
          "line": 24,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 24,
          "endColumn": 137,
          "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",
      "messages": [
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "A <style> element injects CSS outside the design system. Use classes, or declare the rule in your theme CSS.",
          "line": 72,
          "column": 7,
          "nodeType": "JSXOpeningElement",
          "messageId": "styleElement",
          "endLine": 76,
          "endColumn": 9
        },
        {
          "ruleId": "shadcn/no-inline-styles",
          "severity": 1,
          "message": "Dynamic style object cannot be checked. Build it from CSS custom properties only.",
          "line": 79,
          "column": 16,
          "nodeType": "Identifier",
          "messageId": "dynamicStyle",
          "endLine": 79,
          "endColumn": 28
        }
      ]
    },
    {
      "file": "src/routes/agent-settings.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "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.",
          "line": 1667,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 1667,
          "endColumn": 195,
          "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,
          "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.",
          "line": 1667,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 1667,
          "endColumn": 195,
          "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,
          "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.",
          "line": 1692,
          "column": 40,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 1692,
          "endColumn": 64,
          "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,
          "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.",
          "line": 1701,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 1701,
          "endColumn": 43,
          "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,
          "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.",
          "line": 1709,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 1709,
          "endColumn": 43,
          "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,
          "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.",
          "line": 1785,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 1785,
          "endColumn": 49,
          "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,
          "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.",
          "line": 1796,
          "column": 27,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 1796,
          "endColumn": 51,
          "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,
          "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.",
          "line": 1806,
          "column": 25,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 1806,
          "endColumn": 49,
          "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,
          "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.",
          "line": 1811,
          "column": 38,
          "nodeType": "Literal",
          "messageId": "arbitraryColorNear",
          "endLine": 1811,
          "endColumn": 62,
          "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/device-verify.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"tracking-[0.3em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 155,
          "column": 28,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 155,
          "endColumn": 90
        }
      ]
    },
    {
      "file": "src/routes/files-tab.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "line": 203,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 203,
          "endColumn": 176
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "line": 295,
          "column": 37,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 295,
          "endColumn": 208
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[7px]\" hardcodes an off-token value. Nearest on the scale: rounded-md (6px), rounded-lg (8px).",
          "line": 308,
          "column": 37,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 308,
          "endColumn": 152
        }
      ]
    },
    {
      "file": "src/ui/pre.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[60vh]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 42,
          "column": 14,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 42,
          "endColumn": 28
        }
      ]
    },
    {
      "file": "src/ui/typography.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"text-[32px]\" hardcodes an off-token value. Nearest on the scale: text-3xl (30px), text-4xl (36px).",
          "line": 7,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 7,
          "endColumn": 60
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"-tracking-[0.02em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 8,
          "column": 11,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 8,
          "endColumn": 75
        }
      ]
    },
    {
      "file": "src/utils/custom-toast-handlers.tsx",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 81,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 81,
          "endColumn": 102
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 81,
          "column": 19,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 81,
          "endColumn": 102
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 130,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 130,
          "endColumn": 71
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 130,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 130,
          "endColumn": 71
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 144,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 144,
          "endColumn": 71
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 144,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 144,
          "endColumn": 71
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[word-break:break-word]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 165,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 165,
          "endColumn": 71
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"[overflow-wrap:anywhere]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 165,
          "column": 21,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 165,
          "endColumn": 71
        }
      ]
    },
    {
      "file": "src/utils/form-control-classes.ts",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"transition-[background-color,border-color,box-shadow,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 21,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 21,
          "endColumn": 66
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"!transition-[background-color,border-color,box-shadow,opacity]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 32,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 32,
          "endColumn": 67
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"transition-[transform]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 39,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 39,
          "endColumn": 27
        },
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 50,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 50,
          "endColumn": 84
        }
      ]
    },
    {
      "file": "src/utils/git-control-bar-classes.ts",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"rounded-[100px]\" hardcodes an off-token value. Nearest on the scale: rounded-4xl (32px), rounded-3xl (24px).",
          "line": 4,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValueNearScale",
          "endLine": 4,
          "endColumn": 68
        }
      ]
    },
    {
      "file": "src/utils/hover-reveal-classes.ts",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"min-w-[3.75rem]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 78,
          "column": 13,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 78,
          "endColumn": 30
        }
      ]
    },
    {
      "file": "src/utils/modal-classes.ts",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"-tracking-[0.01em]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 5,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 5,
          "endColumn": 70
        }
      ]
    },
    {
      "file": "src/utils/settings-list-classes.ts",
      "messages": [
        {
          "ruleId": "shadcn/no-arbitrary-values",
          "severity": 1,
          "message": "\"max-h-[min(70vh,39rem)]\" hardcodes an off-token value. Use a theme token or scale value instead.",
          "line": 23,
          "column": 3,
          "nodeType": "Literal",
          "messageId": "arbitraryValue",
          "endLine": 23,
          "endColumn": 42
        }
      ]
    }
  ]
}
