{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://unpkg.com/@oai404iao/pi-codex-runtime/config.schema.json",
  "title": "@oai404iao/pi-codex-minimal-tools configuration",
  "description": "Configuration for the @oai404iao/pi-codex-minimal-tools Pi extension.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "codexRequestExtensions": {
      "type": "boolean",
      "default": true,
      "description": "Allow plugin-generated Codex wire identity, metadata, Lite and native compaction. False preserves Standard tools and Pi authentication; Lite requests and opaque checkpoint mode changes are blocked."
    },
    "endpoint_config": {
      "type": "array",
      "default": [],
      "description": "Capability allowlists matched by exact provider and Pi-resolved baseUrl (ignoring trailing slashes). Omitted lists inherit the model profile; an empty list disables that capability. Lists never select a different implementation.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["provider", "baseUrl"],
        "properties": {
          "provider": { "type": "string", "minLength": 1 },
          "baseUrl": { "type": "string", "format": "uri", "pattern": "^https?://" },
          "webSearch": {
            "type": "array", "uniqueItems": true,
            "items": { "enum": ["hosted", "standalone"] }
          },
          "imageGeneration": {
            "type": "array", "uniqueItems": true,
            "items": { "enum": ["hosted", "standalone"] }
          },
          "compaction": {
            "type": "array", "uniqueItems": true,
            "items": { "enum": ["responses", "responses-compact"] }
          }
        }
      }
    },
    "$schema": {
      "type": "string",
      "description": "JSON Schema URL used by editors for validation and completion.",
      "default": "https://unpkg.com/@oai404iao/pi-codex-runtime/config.schema.json"
    },
    "enabled": {
      "type": "boolean",
      "description": "Enable this package's tools, provider shim, compaction hooks, and commands.",
      "default": true
    },
    "glyphStyle": {
      "type": "string",
      "description": "Glyph style used by the extension UI.",
      "enum": ["unicode", "ascii"],
      "default": "unicode"
    },
    "autoEnable": {
      "type": "boolean",
      "description": "Automatically activate enabled package tools on supported models.",
      "default": true
    },
    "webSocketEnabled": {
      "type": "boolean",
      "description": "Global Responses WebSocket master switch. false forces SSE and disables WebSocket prewarm for every model profile.",
      "default": true
    },
    "fastMode": {
      "type": "boolean",
      "description": "Global user toggle for the Fast service tier declared by the active model profile.",
      "default": false
    },
    "imageGeneration": {
      "type": "boolean",
      "description": "Global image-generation master switch. false disables image tools, commands, presentation, hosted injection, standalone endpoints, and direct fallback without changing other model-profile behavior.",
      "default": true
    },
    "imageOutputDir": {
      "type": "string",
      "description": "Directory for generated images. Relative paths resolve against the workspace root.",
      "minLength": 1,
      "pattern": "\\S",
      "default": ".pi/openai-codex-images"
    },
    "imageModel": {
      "type": "string",
      "description": "Image model used by standalone generation, hosted image tool rewriting, and direct fallback.",
      "enum": ["gpt-image-2", "gpt-image-1.5", "gpt-image-1"],
      "default": "gpt-image-2"
    },
    "directImageApiFallback": {
      "type": "boolean",
      "description": "Allow direct OpenAI Images API generation when native Codex generation is unavailable.",
      "default": false
    },
    "viewImageWorkspaceOnly": {
      "type": "boolean",
      "description": "Reject view_image paths outside the active workspace.",
      "default": false
    },
    "deferApplyPatchRendering": {
      "type": "boolean",
      "description": "Use Pi's fallback tool renderer instead of the built-in streaming filesystem preview.",
      "default": false
    }
  }
}
