{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/zigai/pi-tweaks/master/packages/pi-ui-tweaks/config.schema.json",
  "title": "Pi UI Tweaks settings",
  "description": "Settings for Pi interactive-interface behavior and presentation tweaks.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "$schema": {
      "type": "string",
      "default": "./schemas/pi-ui-tweaks.schema.json",
      "description": "JSON Schema used by editors for this settings file."
    },
    "enabled": {
      "type": "boolean",
      "default": true,
      "description": "Enable all UI tweaks."
    },
    "autocompleteAboveInput": {
      "type": "boolean",
      "default": true,
      "description": "Render autocomplete above the input editor."
    },
    "bashExecPromptSpacing": {
      "type": "boolean",
      "default": true,
      "description": "Add spacing around bash execution prompts."
    },
    "anchorInputToBottom": {
      "type": "boolean",
      "default": false,
      "description": "Anchor the input editor to the terminal bottom."
    },
    "compactModelSelector": {
      "type": "boolean",
      "default": true,
      "description": "Use compact model-selector rows."
    },
    "hideAutocompleteScrollInfo": {
      "type": "boolean",
      "default": true,
      "description": "Hide autocomplete scroll-position text."
    },
    "hideModelChangeStatus": {
      "type": "boolean",
      "default": true,
      "description": "Hide model-change status messages."
    },
    "hideModelProviderHint": {
      "type": "boolean",
      "default": true,
      "description": "Hide provider hints in the model selector."
    },
    "hideSlashCommandSourceTags": {
      "type": "boolean",
      "default": true,
      "description": "Hide source tags in slash-command completion."
    },
    "highlightSelectedModelProvider": {
      "type": "boolean",
      "default": true,
      "description": "Highlight the selected model provider."
    },
    "inputPromptPrefix": {
      "type": "string",
      "minLength": 1,
      "default": "> ",
      "description": "Prefix displayed before input text."
    },
    "neutralBorderColor": {
      "type": "boolean",
      "default": true,
      "description": "Use a neutral border color when Pi is idle."
    },
    "pasteCollapseCharThreshold": {
      "type": "integer",
      "minimum": 0,
      "default": 1000,
      "description": "Character threshold that collapses pasted content."
    },
    "pasteCollapseEnabled": {
      "type": "boolean",
      "default": true,
      "description": "Collapse large pasted content."
    },
    "pasteCollapseExpandKey": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "string",
          "minLength": 1,
          "pattern": "^(?:(?:ctrl|shift|alt|super)\\+)*(?:[a-z0-9]|escape|esc|enter|return|tab|space|backspace|delete|insert|clear|home|end|pageUp|pageDown|pageup|pagedown|up|down|left|right|f(?:[1-9]|1[0-2])|[`\\-=\\[\\]\\\\;',./!@#$%^&*()_|~{}:<>?])$"
        }
      ],
      "default": null,
      "description": "Explicit key used to expand collapsed pasted content."
    },
    "pasteCollapseLineThreshold": {
      "type": "integer",
      "minimum": 0,
      "default": 10,
      "description": "Line threshold that collapses pasted content."
    },
    "pasteCollapseUseToolExpandKey": {
      "type": "boolean",
      "default": true,
      "description": "Reuse Pi's configured tool-expansion key for pasted content."
    },
    "preserveCompactionHistory": {
      "type": "boolean",
      "default": false,
      "description": "Keep pre-compaction messages visible in transcript history."
    },
    "restoreContentAfterAutocompleteClose": {
      "type": "boolean",
      "default": true,
      "description": "Restore editor content after closing autocomplete."
    },
    "selectedOptionPrefix": {
      "type": "string",
      "minLength": 1,
      "default": "→ ",
      "description": "Prefix displayed before selected list options."
    }
  }
}
