{
  "appId": "302-ai-integration-kit-2026",
  "appVersion": "1.9.1",
  "dataVersion": 4,
  "name": "302 AI Workbench",
  "purpose": "Public BYOK multi-model AI workbench with guided GPT/Codex developer integration and pre-integration validation",
  "provider": "302.AI",
  "baseUrls": {
    "cn": "https://api.302ai.cn",
    "global": "https://api.302.ai"
  },
  "authentication": {
    "openAICompatible": {
      "type": "bearer",
      "header": "Authorization",
      "format": "Bearer <API_KEY>"
    },
    "messages": {
      "type": "apiKey",
      "header": "x-api-key",
      "format": "<API_KEY>"
    }
  },
  "capabilityRouting": [
    "chat",
    "vision",
    "audio-transcription",
    "video-upload",
    "image-generation",
    "image-edit"
  ],
  "conversation": {
    "managedClientSide": true,
    "modes": [
      "full",
      "recent",
      "single"
    ],
    "persistent": true,
    "storage": "IndexedDB",
    "largeAttachmentBinariesPersisted": false,
    "management": [
      "auto-save",
      "search",
      "rename",
      "pin",
      "delete",
      "import",
      "export"
    ]
  },
  "security": {
    "neverHardcodeOwnerKeyInPublicFrontend": true,
    "testerKeyPersistence": "memory-by-default; encrypted IndexedDB after explicit consent",
    "productionPreferred": "server-or-edge-proxy"
  },
  "rendering": {
    "assistantFormat": "Markdown",
    "rawHtml": false,
    "features": [
      "headings",
      "lists",
      "task-lists",
      "tables",
      "blockquote",
      "links",
      "inline-code",
      "fenced-code",
      "syntax-highlighting",
      "math"
    ],
    "markdownParser": "Marked 4.0.19 (bundled locally; raw HTML escaped)",
    "codeHighlighting": "PrismJS 1.30.0 (bundled locally)",
    "math": "MathJax 3.2.1 SVG (bundled locally)",
    "storage": "raw Markdown text in IndexedDB",
    "streaming": "throttled Markdown render; code highlighting and math typesetting after completion"
  },
  "developerIntegration": {
    "wizard": [
      "capability",
      "project-type",
      "key-strategy"
    ],
    "outputs": [
      "single-integration-package"
    ],
    "preIntegrationValidation": [
      "api-key",
      "endpoint",
      "runtime-model-discovery",
      "capability-candidate"
    ],
    "validationCallsPaidModel": false,
    "package": {
      "authoritativeFile": "START-HERE.md",
      "supportingFile": "integration-manifest.json",
      "rule": "If files conflict, START-HERE.md wins"
    }
  }
}
