d435385ab1
- Introduced `Max` as a first-class reasoning effort tier across all packages, including AI providers, coding agent configurations, and RPC protocols. - Refactored model effort ladders to use wire-exact mappings and removed legacy effort aliasing (e.g., `max-to-xhigh` mapping). - Updated model registry and provider configurations to support `Max` tier routing, color themes, and UI icon associations. - Expanded test suites to provide end-to-end coverage for the new reasoning tier, including updated compatibility and fallback scenarios.
464 lines
12 KiB
JSON
464 lines
12 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "OMP Coding Agent Theme",
|
|
"description": "Theme schema for the OMP coding agent",
|
|
"type": "object",
|
|
"required": ["name", "colors"],
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string",
|
|
"description": "JSON schema reference"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Theme name"
|
|
},
|
|
"vars": {
|
|
"type": "object",
|
|
"description": "Reusable color variables",
|
|
"additionalProperties": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255,
|
|
"description": "256-color palette index (0-255)"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"colors": {
|
|
"type": "object",
|
|
"description": "Theme color definitions (all required except thinkingMax)",
|
|
"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",
|
|
"pythonMode",
|
|
"statusLineBg",
|
|
"statusLineSep",
|
|
"statusLineModel",
|
|
"statusLinePath",
|
|
"statusLineGitClean",
|
|
"statusLineGitDirty",
|
|
"statusLineContext",
|
|
"statusLineSpend",
|
|
"statusLineStaged",
|
|
"statusLineDirty",
|
|
"statusLineUntracked",
|
|
"statusLineOutput",
|
|
"statusLineCost",
|
|
"statusLineSubagents"
|
|
],
|
|
"properties": {
|
|
"accent": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Primary accent color (logo, selected items, cursor)"
|
|
},
|
|
"border": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Normal borders"
|
|
},
|
|
"borderAccent": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Highlighted borders"
|
|
},
|
|
"borderMuted": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Subtle borders"
|
|
},
|
|
"success": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Success states"
|
|
},
|
|
"error": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Error states"
|
|
},
|
|
"warning": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Warning states"
|
|
},
|
|
"muted": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Secondary/dimmed text"
|
|
},
|
|
"dim": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Very dimmed text (more subtle than muted)"
|
|
},
|
|
"text": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Default text color (usually empty string)"
|
|
},
|
|
"thinkingText": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Thinking text color"
|
|
},
|
|
"selectedBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Selected background (list highlight)"
|
|
},
|
|
"userMessageBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "User message background"
|
|
},
|
|
"userMessageText": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "User message text color"
|
|
},
|
|
"customMessageBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Custom message background (hook-injected messages)"
|
|
},
|
|
"customMessageText": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Custom message text color"
|
|
},
|
|
"customMessageLabel": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Custom message type label color"
|
|
},
|
|
"toolPendingBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Tool execution box (pending state)"
|
|
},
|
|
"toolSuccessBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Tool execution box (success state)"
|
|
},
|
|
"toolErrorBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Tool execution box (error state)"
|
|
},
|
|
"toolTitle": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Tool title text"
|
|
},
|
|
"toolOutput": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Tool output text"
|
|
},
|
|
"mdHeading": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown heading text"
|
|
},
|
|
"mdLink": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown link text"
|
|
},
|
|
"mdLinkUrl": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown link URL text"
|
|
},
|
|
"mdCode": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown inline code"
|
|
},
|
|
"mdCodeBlock": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown code block content"
|
|
},
|
|
"mdCodeBlockBorder": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown code block fences"
|
|
},
|
|
"mdQuote": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown blockquote text"
|
|
},
|
|
"mdQuoteBorder": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown blockquote border"
|
|
},
|
|
"mdHr": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown horizontal rule"
|
|
},
|
|
"mdListBullet": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Markdown list bullets/numbers"
|
|
},
|
|
"toolDiffAdded": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Added lines in tool diffs"
|
|
},
|
|
"toolDiffRemoved": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Removed lines in tool diffs"
|
|
},
|
|
"toolDiffContext": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Context lines in tool diffs"
|
|
},
|
|
"syntaxComment": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Syntax highlighting: comments"
|
|
},
|
|
"syntaxKeyword": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Syntax highlighting: keywords"
|
|
},
|
|
"syntaxFunction": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Syntax highlighting: function names"
|
|
},
|
|
"syntaxVariable": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Syntax highlighting: variable names"
|
|
},
|
|
"syntaxString": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Syntax highlighting: string literals"
|
|
},
|
|
"syntaxNumber": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Syntax highlighting: number literals"
|
|
},
|
|
"syntaxType": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Syntax highlighting: type names"
|
|
},
|
|
"syntaxOperator": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Syntax highlighting: operators"
|
|
},
|
|
"syntaxPunctuation": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Syntax highlighting: punctuation"
|
|
},
|
|
"thinkingOff": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Thinking level border: off"
|
|
},
|
|
"thinkingMinimal": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Thinking level border: minimal"
|
|
},
|
|
"thinkingLow": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Thinking level border: low"
|
|
},
|
|
"thinkingMedium": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Thinking level border: medium"
|
|
},
|
|
"thinkingHigh": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Thinking level border: high"
|
|
},
|
|
"thinkingXhigh": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Thinking level border: xhigh"
|
|
},
|
|
"thinkingMax": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Thinking level border: max (optional; falls back to thinkingXhigh when omitted)"
|
|
},
|
|
"bashMode": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Editor border color in bash mode"
|
|
},
|
|
"pythonMode": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Editor border color in python mode"
|
|
},
|
|
"statusLineBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line background"
|
|
},
|
|
"statusLineSep": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line separator color"
|
|
},
|
|
"statusLineModel": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line model segment"
|
|
},
|
|
"statusLinePath": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line path segment"
|
|
},
|
|
"statusLineGitClean": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line git clean"
|
|
},
|
|
"statusLineGitDirty": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line git dirty"
|
|
},
|
|
"statusLineContext": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line context segment"
|
|
},
|
|
"statusLineSpend": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line spend segment"
|
|
},
|
|
"statusLineStaged": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line git staged"
|
|
},
|
|
"statusLineDirty": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line git dirty count"
|
|
},
|
|
"statusLineUntracked": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line git untracked"
|
|
},
|
|
"statusLineOutput": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line output segment"
|
|
},
|
|
"statusLineCost": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line cost segment"
|
|
},
|
|
"statusLineSubagents": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Status line subagents segment"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"export": {
|
|
"type": "object",
|
|
"description": "Optional colors for HTML export (defaults derived from userMessageBg if not specified)",
|
|
"properties": {
|
|
"pageBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Page background color"
|
|
},
|
|
"cardBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Card/container background color"
|
|
},
|
|
"infoBg": {
|
|
"$ref": "#/$defs/colorValue",
|
|
"description": "Info sections background (system prompt, notices)"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"symbols": {
|
|
"type": "object",
|
|
"description": "Symbol configuration for UI glyphs and icons",
|
|
"properties": {
|
|
"preset": {
|
|
"type": "string",
|
|
"enum": ["unicode", "nerd", "ascii"],
|
|
"description": "Default symbol preset for this theme (can be overridden by user setting)"
|
|
},
|
|
"overrides": {
|
|
"type": "object",
|
|
"description": "Override individual symbol keys (e.g., 'status.success': '✔')",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"spinnerFrames": {
|
|
"description": "Override the spinner frames. Use a flat array to set both `status` and `activity`, or an object to override each independently. Frames are advanced ~12.5fps for status spinners and ~30fps for activity spinners.",
|
|
"oneOf": [
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "type": "string", "minLength": 1 }
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "type": "string", "minLength": 1 }
|
|
},
|
|
"activity": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "type": "string", "minLength": 1 }
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"anyOf": [
|
|
{ "required": ["status"] },
|
|
{ "required": ["activity"] }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"$defs": {
|
|
"colorValue": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255,
|
|
"description": "256-color palette index (0-255)"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|