Files
OmniRoute/open-sse/services/notionWebFallbackModels.ts
backryun df90591415 feat(providers): refresh curated model catalogs and retire Imagen 4 (#10537)
* feat(providers): refresh Gemini Flash catalogs and pricing

* fix(providers): refresh gemini-web Flash catalog

* chore(providers): eliminate Gemini 3.5/3.6 Flash models

* feat(providers): refresh Perplexity Web model mappings

* feat(providers): refresh PromptQL and Notion catalogs

* feat(providers): refresh KIE TinyCMS and Conol catalogs

* feat(providers): refresh OpenCode Zen catalog

* chore(providers): finish Gemini Flash cleanup

* chore(providers): retire Google Imagen 4
2026-08-18 12:27:46 -03:00

145 lines
3.5 KiB
TypeScript

/**
* Notion Web fallback model catalog (seeded from the live AI picker).
* Extracted from notionWebModels.ts to keep that module under the 800-line
* file-size cap; notionWebModels.ts re-exports both symbols for consumers.
*/
export type NotionDiscoveredModel = {
/**
* Catalog / OpenAI-compatible model id shown to clients.
* Prefer the web picker label slug (e.g. `fable-5`, `gpt-5.6-sol`) so users
* never have to choose Notion's internal food codenames.
*/
id: string;
/** Human label from Notion's AI picker (`modelMessage`), e.g. "Fable 5". */
name: string;
owned_by: string;
supportsReasoning?: boolean;
disabled?: boolean;
/**
* Internal Notion `model` codename for `runInferenceTranscript`
* (e.g. `acai-budino-high`). When omitted, `id` is the codename itself
* (rare; only when no display label was available).
*/
notionCodename?: string;
};
/**
* Offline fallback when getAvailableModels is unreachable (seeded from live picker).
* Catalog ids use real web-picker labels; `notionCodename` is what the API accepts.
*/
export const NOTION_WEB_FALLBACK_MODELS: NotionDiscoveredModel[] = [
{ id: "notion-ai", name: "Notion AI (default)", owned_by: "notion" },
{
id: "gpt-5.6-sol",
name: "GPT-5.6 Sol",
owned_by: "openai",
supportsReasoning: true,
notionCodename: "orange-mousse",
},
{
id: "gpt-5.6-terra",
name: "GPT-5.6 Terra",
owned_by: "openai",
supportsReasoning: true,
notionCodename: "orchid-muffin",
},
{
id: "gpt-5.6-luna",
name: "GPT-5.6 Luna",
owned_by: "openai",
supportsReasoning: true,
notionCodename: "olive-jellyroll",
},
{
id: "gpt-5.4-mini",
name: "GPT-5.4 Mini",
owned_by: "openai",
supportsReasoning: true,
notionCodename: "oregon-grape-medium",
},
{
id: "gpt-5.4-nano",
name: "GPT-5.4 Nano",
owned_by: "openai",
supportsReasoning: true,
notionCodename: "otaheite-apple-medium",
},
{
id: "gemini-3.7-flash",
name: "Gemini 3.7 Flash",
owned_by: "gemini",
supportsReasoning: true,
notionCodename: "grapefruit-zeppole",
},
{
id: "gemini-3.1-pro",
name: "Gemini 3.1 Pro",
owned_by: "gemini",
supportsReasoning: true,
notionCodename: "galette-medium-thinking",
},
{
id: "fable-5",
name: "Claude Fable 5",
owned_by: "anthropic",
supportsReasoning: true,
disabled: true,
notionCodename: "acai-budino-high",
},
{
id: "opus-5",
name: "Claude Opus 5",
owned_by: "anthropic",
supportsReasoning: true,
notionCodename: "agave-flan",
},
{
id: "sonnet-5",
name: "Claude Sonnet 5",
owned_by: "anthropic",
supportsReasoning: true,
notionCodename: "angel-cake-high",
},
{
id: "haiku-4.5",
name: "Claude Haiku 4.5",
owned_by: "anthropic",
notionCodename: "anthropic-haiku-4.5",
},
{
id: "grok-4.6",
name: "Grok 4.6",
owned_by: "xai",
supportsReasoning: true,
notionCodename: "soursop-shortcake",
},
{
id: "kimi-k3",
name: "Kimi K3",
owned_by: "mystery",
supportsReasoning: true,
notionCodename: "fireworks-kimi-k3",
},
{
id: "kimi-k2.7-code",
name: "Kimi K2.7 Code",
owned_by: "mystery",
notionCodename: "fireworks-kimi-k2.7",
},
{
id: "deepseek-v4-pro",
name: "DeepSeek V4 Pro",
owned_by: "mystery",
supportsReasoning: true,
notionCodename: "baseten-deepseek-v4-pro",
},
{
id: "glm-5.2",
name: "GLM 5.2",
owned_by: "mystery",
supportsReasoning: true,
notionCodename: "baseten-glm-5.2",
},
];