mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 04:12:10 +03:00
Integrated into release/v3.8.26 — reconciled: kept #3900's superset wiki-sync, dropped the superseded sync-wiki-home; counts taken from the newer canonical release docs; net-new value = vale/markdownlint docs-lint infra + 7 new docs (Notion/Obsidian/Plugin-Marketplace/Cost-Tracking/Free-Provider-Rankings/Feature-Flags/Egress-Policy) + check-docs-counts-sync guard.
228 lines
6.1 KiB
TypeScript
228 lines
6.1 KiB
TypeScript
// 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();
|