{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Rpi Coding Agent Theme",
  "description": "Theme schema for the rpi coding agent",
  "type": "object",
  "properties": {
    "$schema": {
      "type": [
        "string",
        "null"
      ]
    },
    "name": {
      "type": "string",
      "default": ""
    },
    "appearance": {
      "description": "`appearance` (theme.ts:96-100 @ 4a080252f): the background the theme\nis designed for; detected from the theme colors when omitted.",
      "$ref": "#/$defs/ThemeAppearance"
    },
    "vars": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/ColorValue"
      }
    },
    "colors": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "accent": {
          "$ref": "#/$defs/ColorValue"
        },
        "border": {
          "$ref": "#/$defs/ColorValue"
        },
        "borderAccent": {
          "$ref": "#/$defs/ColorValue"
        },
        "borderMuted": {
          "$ref": "#/$defs/ColorValue"
        },
        "success": {
          "$ref": "#/$defs/ColorValue"
        },
        "error": {
          "$ref": "#/$defs/ColorValue"
        },
        "warning": {
          "$ref": "#/$defs/ColorValue"
        },
        "muted": {
          "$ref": "#/$defs/ColorValue"
        },
        "dim": {
          "$ref": "#/$defs/ColorValue"
        },
        "text": {
          "$ref": "#/$defs/ColorValue"
        },
        "thinkingText": {
          "$ref": "#/$defs/ColorValue"
        },
        "selectedBg": {
          "$ref": "#/$defs/ColorValue"
        },
        "userMessageBg": {
          "$ref": "#/$defs/ColorValue"
        },
        "userMessageText": {
          "$ref": "#/$defs/ColorValue"
        },
        "customMessageBg": {
          "$ref": "#/$defs/ColorValue"
        },
        "customMessageText": {
          "$ref": "#/$defs/ColorValue"
        },
        "customMessageLabel": {
          "$ref": "#/$defs/ColorValue"
        },
        "toolPendingBg": {
          "$ref": "#/$defs/ColorValue"
        },
        "toolSuccessBg": {
          "$ref": "#/$defs/ColorValue"
        },
        "toolErrorBg": {
          "$ref": "#/$defs/ColorValue"
        },
        "toolTitle": {
          "$ref": "#/$defs/ColorValue"
        },
        "toolOutput": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdHeading": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdLink": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdLinkUrl": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdCode": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdCodeBlock": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdCodeBlockBorder": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdQuote": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdQuoteBorder": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdHr": {
          "$ref": "#/$defs/ColorValue"
        },
        "mdListBullet": {
          "$ref": "#/$defs/ColorValue"
        },
        "toolDiffAdded": {
          "$ref": "#/$defs/ColorValue"
        },
        "toolDiffRemoved": {
          "$ref": "#/$defs/ColorValue"
        },
        "toolDiffContext": {
          "$ref": "#/$defs/ColorValue"
        },
        "syntaxComment": {
          "$ref": "#/$defs/ColorValue"
        },
        "syntaxKeyword": {
          "$ref": "#/$defs/ColorValue"
        },
        "syntaxFunction": {
          "$ref": "#/$defs/ColorValue"
        },
        "syntaxVariable": {
          "$ref": "#/$defs/ColorValue"
        },
        "syntaxString": {
          "$ref": "#/$defs/ColorValue"
        },
        "syntaxNumber": {
          "$ref": "#/$defs/ColorValue"
        },
        "syntaxType": {
          "$ref": "#/$defs/ColorValue"
        },
        "syntaxOperator": {
          "$ref": "#/$defs/ColorValue"
        },
        "syntaxPunctuation": {
          "$ref": "#/$defs/ColorValue"
        },
        "thinkingOff": {
          "$ref": "#/$defs/ColorValue"
        },
        "thinkingMinimal": {
          "$ref": "#/$defs/ColorValue"
        },
        "thinkingLow": {
          "$ref": "#/$defs/ColorValue"
        },
        "thinkingMedium": {
          "$ref": "#/$defs/ColorValue"
        },
        "thinkingHigh": {
          "$ref": "#/$defs/ColorValue"
        },
        "thinkingXhigh": {
          "$ref": "#/$defs/ColorValue"
        },
        "bashMode": {
          "$ref": "#/$defs/ColorValue"
        },
        "thinkingMax": {
          "$ref": "#/$defs/ColorValue"
        },
        "scrollbarThumb": {
          "$ref": "#/$defs/ColorValue"
        },
        "scrollbarTrack": {
          "$ref": "#/$defs/ColorValue"
        },
        "searchMatchBg": {
          "$ref": "#/$defs/ColorValue"
        },
        "searchMatchText": {
          "$ref": "#/$defs/ColorValue"
        }
      },
      "required": [
        "accent",
        "border",
        "borderAccent",
        "borderMuted",
        "success",
        "error",
        "warning",
        "muted",
        "dim",
        "text",
        "thinkingText",
        "selectedBg",
        "userMessageBg",
        "userMessageText",
        "customMessageBg",
        "customMessageText",
        "customMessageLabel",
        "toolPendingBg",
        "toolSuccessBg",
        "toolErrorBg",
        "toolTitle",
        "toolOutput",
        "mdHeading",
        "mdLink",
        "mdLinkUrl",
        "mdCode",
        "mdCodeBlock",
        "mdCodeBlockBorder",
        "mdQuote",
        "mdQuoteBorder",
        "mdHr",
        "mdListBullet",
        "toolDiffAdded",
        "toolDiffRemoved",
        "toolDiffContext",
        "syntaxComment",
        "syntaxKeyword",
        "syntaxFunction",
        "syntaxVariable",
        "syntaxString",
        "syntaxNumber",
        "syntaxType",
        "syntaxOperator",
        "syntaxPunctuation",
        "thinkingOff",
        "thinkingMinimal",
        "thinkingLow",
        "thinkingMedium",
        "thinkingHigh",
        "thinkingXhigh",
        "bashMode"
      ]
    },
    "export": {
      "anyOf": [
        {
          "$ref": "#/$defs/ThemeExport"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "name",
    "colors"
  ],
  "$defs": {
    "ThemeAppearance": {
      "type": "string",
      "enum": [
        "dark",
        "light"
      ]
    },
    "ColorValue": {
      "anyOf": [
        {
          "description": "Hex color (#RGB or #RRGGBB), OKLCH or OKHSL color, variable reference, or empty string for terminal default",
          "type": "string"
        },
        {
          "description": "256-color palette index (0-255)",
          "type": "integer",
          "minimum": 0,
          "maximum": 255
        }
      ]
    },
    "ThemeExport": {
      "description": "The `export` section of a theme JSON (theme.ts:96-102).",
      "type": "object",
      "properties": {
        "pageBg": {
          "anyOf": [
            {
              "$ref": "#/$defs/ColorValue"
            },
            {
              "type": "null"
            }
          ]
        },
        "cardBg": {
          "anyOf": [
            {
              "$ref": "#/$defs/ColorValue"
            },
            {
              "type": "null"
            }
          ]
        },
        "infoBg": {
          "anyOf": [
            {
              "$ref": "#/$defs/ColorValue"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "$id": "https://revpi.dev/schemas/theme.schema.json",
  "$comment": "Generated from the rpi typed configuration models by scripts/sync-config-schemas.py. Do not edit it manually; run the script to regenerate.",
  "additionalProperties": false
}
