// AUTO-GENERATED by scripts/docs/gen-openapi-module.mjs — DO NOT EDIT MANUALLY // Regenerate with: node scripts/docs/gen-openapi-module.mjs // // Source of truth: docs/reference/openapi.yaml // // The Api Explorer consumes `OPENAPI_ENDPOINTS`; the spec metadata // (`OPENAPI_VERSION`, `OPENAPI_TITLE`) is surfaced in the page header. export interface OpenApiEndpoint { /** Path template — may contain `{param}` placeholders. */ path: string; /** HTTP method in upper case (GET / POST / PUT / DELETE / PATCH / ...). */ method: string; /** Short one-line summary from the spec. */ summary: string; /** Long-form description (markdown is allowed). */ description: string; /** Primary tag — used for sidebar grouping in the Api Explorer. */ tag: string; /** All tags declared on the operation. */ tags: string[]; /** `true` when the operation declares a non-empty `security` array. */ requiresAuth: boolean; /** `true` when the operation declares a `requestBody`. */ hasRequestBody: boolean; } export const OPENAPI_VERSION = "3.8.24"; export const OPENAPI_TITLE = "OmniRoute API"; export const OPENAPI_ENDPOINTS: OpenApiEndpoint[] = [ { path: "/api/v1", method: "GET", summary: "API v1 root endpoint", description: "Returns basic API info and status.", tag: "System", tags: ["System"], requiresAuth: true, hasRequestBody: false, }, { path: "/api/v1/api/chat", method: "POST", summary: "Ollama-compatible chat endpoint", description: "Provides compatibility with Ollama's /api/chat format.", tag: "Chat", tags: ["Chat"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/audio/speech", method: "POST", summary: "Generate speech audio", description: "Text-to-speech endpoint. Routes to configured TTS providers.", tag: "Audio", tags: ["Audio"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/audio/transcriptions", method: "POST", summary: "Transcribe audio", description: "Audio-to-text transcription endpoint.", tag: "Audio", tags: ["Audio"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/chat/completions", method: "POST", summary: "Create chat completion", description: "OpenAI-compatible chat completions endpoint. Routes to configured providers.", tag: "Chat", tags: ["Chat"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/embeddings", method: "POST", summary: "Create embeddings", description: "", tag: "Embeddings", tags: ["Embeddings"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/images/generations", method: "POST", summary: "Generate images", description: "", tag: "Images", tags: ["Images"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/messages", method: "POST", summary: "Create message (Anthropic-compatible)", description: "Anthropic Messages API endpoint. Routes to Claude providers.", tag: "Messages", tags: ["Messages"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/messages/count_tokens", method: "POST", summary: "Count tokens for a message", description: "", tag: "Messages", tags: ["Messages"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/models", method: "GET", summary: "List available models", description: "Returns all models available across configured providers.", tag: "Models", tags: ["Models"], requiresAuth: true, hasRequestBody: false, }, { path: "/api/v1/moderations", method: "POST", summary: "Create moderation", description: "Content moderation endpoint. Routes to configured moderation providers.", tag: "Moderations", tags: ["Moderations"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/providers/{provider}/chat/completions", method: "POST", summary: "Create chat completion (provider-specific)", description: "Routes to a specific provider by name.", tag: "Chat", tags: ["Chat"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/providers/{provider}/embeddings", method: "POST", summary: "Create embeddings (provider-specific)", description: "", tag: "Embeddings", tags: ["Embeddings"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/providers/{provider}/images/generations", method: "POST", summary: "Generate images (provider-specific)", description: "", tag: "Images", tags: ["Images"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/providers/{provider}/models", method: "GET", summary: "List models for a specific provider", description: "Returns only models for the selected provider with provider prefix removed from each model id.", tag: "Models", tags: ["Models"], requiresAuth: true, hasRequestBody: false, }, { path: "/api/v1/rerank", method: "POST", summary: "Rerank documents", description: "Document reranking endpoint.", tag: "Rerank", tags: ["Rerank"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1/responses", method: "POST", summary: "Create response (OpenAI Responses API)", description: "OpenAI Responses API endpoint.", tag: "Responses", tags: ["Responses"], requiresAuth: true, hasRequestBody: true, }, { path: "/api/v1beta/models", method: "GET", summary: "List models (Gemini format)", description: "Returns models in Gemini v1beta format for native SDK compatibility", tag: "Models", tags: ["Models"], requiresAuth: true, hasRequestBody: false, }, { path: "/api/v1beta/models/{path}", method: "POST", summary: "Gemini generateContent", description: "Gemini-compatible generateContent endpoint", tag: "Models", tags: ["Models"], requiresAuth: true, hasRequestBody: true, }, ]; export const OPENAPI_TAGS: string[] = Array.from( new Set(OPENAPI_ENDPOINTS.map((endpoint) => endpoint.tag)) ).sort();