@juspay/neurolink
Version:
The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002
560 lines (559 loc) • 22.3 kB
JavaScript
/**
* OpenAI model manifest. contextWindow values come from
* MODEL_CONTEXT_WINDOWS.openai (src/lib/constants/contextWindows.ts), which
* disagrees with MODEL_REGISTRY.limits.maxContextTokens for several ids
* (e.g. gpt-5: 400_000 here vs 256_000 there) — MODEL_CONTEXT_WINDOWS wins
* as the more actively-maintained store. maxOutputTokens/aliases/capability
* flags come from MODEL_REGISTRY (src/lib/models/modelRegistry.ts:30-984).
* pricingPerMTok comes from PRICING.openai (src/lib/utils/pricing.ts).
*/
export const openaiManifest = {
defaultContextWindow: 128_000,
models: {
"gpt-4o": {
aliases: ["gpt4o", "gpt-4-omni", "openai-flagship"],
displayName: "GPT-4 Omni",
contextWindow: 128_000,
maxOutputTokens: 4_096,
pricingPerMTok: { input: 2.5, output: 10.0, cacheRead: 0.625 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4O]
// (src/lib/models/modelRegistry.ts:30-73).
curated: {
performance: { speed: "medium", quality: "high", accuracy: "high" },
useCases: {
coding: 9,
creative: 8,
analysis: 9,
conversation: 9,
reasoning: 9,
translation: 8,
summarization: 8,
},
category: "general",
},
},
"gpt-4o-mini": {
aliases: ["gpt4o-mini", "gpt-4-mini", "fastest", "cheap"],
displayName: "GPT-4 Omni Mini",
contextWindow: 128_000,
maxOutputTokens: 16_384,
pricingPerMTok: { input: 0.15, output: 0.6, cacheRead: 0.0375 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4O_MINI]
// (src/lib/models/modelRegistry.ts:75-118).
curated: {
performance: { speed: "fast", quality: "high", accuracy: "high" },
useCases: {
coding: 8,
creative: 7,
analysis: 8,
conversation: 8,
reasoning: 8,
translation: 8,
summarization: 9,
},
category: "general",
},
},
"gpt-5": {
aliases: ["gpt5", "gpt-5-flagship", "openai-latest"],
displayName: "GPT-5",
contextWindow: 400_000,
maxOutputTokens: 32_768,
pricingPerMTok: { input: 1.25, output: 10.0, cacheRead: 0.3125 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5]
// (src/lib/models/modelRegistry.ts:121-165).
curated: {
performance: { speed: "medium", quality: "high", accuracy: "high" },
useCases: {
coding: 10,
creative: 10,
analysis: 10,
conversation: 10,
reasoning: 10,
translation: 9,
summarization: 9,
},
category: "reasoning",
},
},
"gpt-5-mini": {
aliases: ["gpt5-mini", "gpt-5-fast"],
displayName: "GPT-5 Mini",
contextWindow: 400_000,
maxOutputTokens: 16_384,
pricingPerMTok: { input: 0.25, output: 2.0, cacheRead: 0.0625 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_MINI]
// (src/lib/models/modelRegistry.ts:167-210).
curated: {
performance: { speed: "fast", quality: "high", accuracy: "high" },
useCases: {
coding: 8,
creative: 8,
analysis: 8,
conversation: 9,
reasoning: 8,
translation: 8,
summarization: 9,
},
category: "general",
},
},
o3: {
aliases: ["o3-reasoning", "o3-thinking"],
displayName: "O3",
contextWindow: 200_000,
maxOutputTokens: 100_000,
pricingPerMTok: { input: 2.0, output: 8.0, cacheRead: 0.5 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O3]
// (src/lib/models/modelRegistry.ts:213-257).
curated: {
performance: { speed: "slow", quality: "high", accuracy: "high" },
useCases: {
coding: 10,
creative: 8,
analysis: 10,
conversation: 7,
reasoning: 10,
translation: 7,
summarization: 8,
},
category: "reasoning",
},
},
"o3-mini": {
aliases: ["o3-mini-reasoning"],
displayName: "O3 Mini",
contextWindow: 200_000,
maxOutputTokens: 65_536,
pricingPerMTok: { input: 1.1, output: 4.4, cacheRead: 0.275 },
vision: false,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O3_MINI]
// (src/lib/models/modelRegistry.ts:259-303).
curated: {
performance: { speed: "medium", quality: "high", accuracy: "high" },
useCases: {
coding: 9,
creative: 6,
analysis: 9,
conversation: 7,
reasoning: 9,
translation: 6,
summarization: 7,
},
category: "reasoning",
},
},
"gpt-5-nano": {
aliases: ["gpt5-nano", "gpt-5-cheapest"],
displayName: "GPT-5 Nano",
contextWindow: 400_000,
maxOutputTokens: 128_000,
pricingPerMTok: { input: 0.05, output: 0.4, cacheRead: 0.0125 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_NANO]
// (src/lib/models/modelRegistry.ts:305-349).
curated: {
performance: { speed: "fast", quality: "medium", accuracy: "medium" },
useCases: {
coding: 6,
creative: 6,
analysis: 6,
conversation: 8,
reasoning: 6,
translation: 7,
summarization: 8,
},
category: "general",
},
},
"gpt-5.2": {
aliases: ["gpt52", "gpt-5.2-thinking", "openai-latest-reasoning"],
displayName: "GPT-5.2 Thinking",
contextWindow: 400_000,
maxOutputTokens: 64_000,
pricingPerMTok: { input: 1.75, output: 14.0, cacheRead: 0.4375 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_2]
// (src/lib/models/modelRegistry.ts:352-396).
curated: {
performance: { speed: "medium", quality: "high", accuracy: "high" },
useCases: {
coding: 10,
creative: 10,
analysis: 10,
conversation: 9,
reasoning: 10,
translation: 9,
summarization: 9,
},
category: "reasoning",
},
},
"gpt-5.2-chat-latest": {
aliases: ["gpt52-chat", "gpt-5.2-instant", "gpt52-fast"],
displayName: "GPT-5.2 Instant",
contextWindow: 128_000,
maxOutputTokens: 32_000,
// Inherits gpt-5.2's rate — matches findRates()'s existing prefix-match
// resolution for this id today (no distinct PRICING.openai key exists).
pricingPerMTok: { input: 1.75, output: 14.0, cacheRead: 0.4375 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_2_CHAT_LATEST]
// (src/lib/models/modelRegistry.ts:398-442).
curated: {
performance: { speed: "fast", quality: "high", accuracy: "high" },
useCases: {
coding: 9,
creative: 9,
analysis: 9,
conversation: 10,
reasoning: 9,
translation: 9,
summarization: 9,
},
category: "general",
},
},
"gpt-5.2-pro": {
aliases: ["gpt52-pro", "gpt-5.2-professional", "openai-science"],
displayName: "GPT-5.2 Pro",
contextWindow: 400_000,
maxOutputTokens: 128_000,
// Inherits gpt-5.2's rate — see gpt-5.2-chat-latest's comment above.
pricingPerMTok: { input: 1.75, output: 14.0, cacheRead: 0.4375 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_2_PRO]
// (src/lib/models/modelRegistry.ts:444-488).
curated: {
performance: { speed: "slow", quality: "high", accuracy: "high" },
useCases: {
coding: 10,
creative: 9,
analysis: 10,
conversation: 8,
reasoning: 10,
translation: 9,
summarization: 9,
},
category: "reasoning",
},
},
"gpt-4.1": {
aliases: ["gpt-4.1", "gpt41", "million-context"],
displayName: "GPT-4.1",
contextWindow: 1_047_576,
maxOutputTokens: 128_000,
pricingPerMTok: { input: 2.0, output: 8.0, cacheRead: 0.5 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4_1]
// (src/lib/models/modelRegistry.ts:491-534).
curated: {
performance: { speed: "medium", quality: "high", accuracy: "high" },
useCases: {
coding: 10,
creative: 8,
analysis: 9,
conversation: 8,
reasoning: 9,
translation: 8,
summarization: 9,
},
category: "coding",
},
},
"gpt-4.1-mini": {
aliases: ["gpt-4.1-mini", "gpt41-mini"],
displayName: "GPT-4.1 Mini",
contextWindow: 1_047_576,
maxOutputTokens: 128_000,
pricingPerMTok: { input: 0.4, output: 1.6, cacheRead: 0.1 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4_1_MINI]
// (src/lib/models/modelRegistry.ts:536-579).
curated: {
performance: { speed: "fast", quality: "high", accuracy: "high" },
useCases: {
coding: 9,
creative: 7,
analysis: 8,
conversation: 8,
reasoning: 8,
translation: 8,
summarization: 9,
},
category: "coding",
},
},
"gpt-4.1-nano": {
aliases: ["gpt-4.1-nano", "gpt41-nano"],
displayName: "GPT-4.1 Nano",
contextWindow: 1_047_576,
maxOutputTokens: 128_000,
pricingPerMTok: { input: 0.1, output: 0.4, cacheRead: 0.025 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4_1_NANO]
// (src/lib/models/modelRegistry.ts:581-624).
curated: {
performance: { speed: "fast", quality: "medium", accuracy: "medium" },
useCases: {
coding: 7,
creative: 6,
analysis: 7,
conversation: 7,
reasoning: 7,
translation: 7,
summarization: 8,
},
category: "coding",
},
},
"o3-pro": {
aliases: ["o3-pro", "o3-professional"],
displayName: "O3 Pro",
contextWindow: 200_000,
maxOutputTokens: 100_000,
// Inherits o3's rate — matches findRates()'s existing prefix-match
// resolution for this id today (no distinct PRICING.openai key exists).
pricingPerMTok: { input: 2.0, output: 8.0, cacheRead: 0.5 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O3_PRO]
// (src/lib/models/modelRegistry.ts:627-671).
curated: {
performance: { speed: "slow", quality: "high", accuracy: "high" },
useCases: {
coding: 10,
creative: 7,
analysis: 10,
conversation: 6,
reasoning: 10,
translation: 6,
summarization: 7,
},
category: "reasoning",
},
},
"o4-mini": {
aliases: ["o4-mini", "o4-fast"],
displayName: "O4 Mini",
contextWindow: 200_000,
maxOutputTokens: 100_000,
pricingPerMTok: { input: 1.1, output: 4.4, cacheRead: 0.275 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O4_MINI]
// (src/lib/models/modelRegistry.ts:673-717).
curated: {
performance: { speed: "medium", quality: "high", accuracy: "high" },
useCases: {
coding: 9,
creative: 6,
analysis: 9,
conversation: 7,
reasoning: 10,
translation: 6,
summarization: 7,
},
category: "reasoning",
},
},
o1: {
aliases: ["o1-full", "o1-premium"],
displayName: "O1",
contextWindow: 200_000,
maxOutputTokens: 32_768,
pricingPerMTok: { input: 15.0, output: 60.0, cacheRead: 3.75 },
// DELIBERATE DEVIATION FROM task-3-brief.md (which specifies `true`):
// set to `false` to mirror live behavior exactly. Today,
// ProviderImageAdapter.supportsVision("openai", "o1") returns false —
// VISION_CAPABILITIES.openai (providerImageAdapter.ts) has no "o1"
// entry (o1-preview/o1-mini are also absent, but so is o1 itself) and
// there is no "openai" key in VISION_FAMILY_RULES for a regex fallback
// to catch it. This manifest's job in this PR is to be a faithful,
// behavior-preserving replacement for the tables it will supersede
// (Tasks 7-11 migrate the consumers; Task 14 proves behavior was
// preserved) — that proof only holds if the manifest encodes what the
// system actually does today, not what it should do.
//
// This is very likely a live bug, not a fact about o1: OpenAI's real
// o1 (distinct from o1-preview/o1-mini) is believed to accept image
// input, and MODEL_REGISTRY[OpenAIModels.O1].capabilities.vision is
// itself `true` (modelRegistry.ts:726) — i.e. the existing hand-curated
// registry already disagrees with VISION_CAPABILITIES.openai on this
// exact point. Correcting VISION_CAPABILITIES.openai to add "o1" is a
// separate, deliberately deferred change with its own commit and its
// own test, not something to smuggle into a purely-additive data port.
vision: false,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O1]
// (src/lib/models/modelRegistry.ts:719-763).
curated: {
performance: { speed: "slow", quality: "high", accuracy: "high" },
useCases: {
coding: 10,
creative: 7,
analysis: 10,
conversation: 6,
reasoning: 10,
translation: 6,
summarization: 7,
},
category: "reasoning",
},
},
"o1-mini": {
aliases: ["o1-mini", "o1-budget"],
displayName: "O1 Mini",
contextWindow: 128_000,
maxOutputTokens: 65_536,
pricingPerMTok: { input: 0.55, output: 2.2, cacheRead: 0.1375 },
vision: false,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O1_MINI]
// (src/lib/models/modelRegistry.ts:810-853).
curated: {
performance: { speed: "medium", quality: "high", accuracy: "high" },
useCases: {
coding: 8,
creative: 5,
analysis: 8,
conversation: 6,
reasoning: 8,
translation: 5,
summarization: 6,
},
category: "reasoning",
},
},
"gpt-4": {
aliases: ["gpt4", "gpt-4-base"],
displayName: "GPT-4",
contextWindow: 8_192,
maxOutputTokens: 4_096,
pricingPerMTok: { input: 30.0, output: 60.0 },
vision: false,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4]
// (src/lib/models/modelRegistry.ts:856-899).
curated: {
performance: { speed: "slow", quality: "high", accuracy: "high" },
useCases: {
coding: 8,
creative: 8,
analysis: 8,
conversation: 8,
reasoning: 8,
translation: 8,
summarization: 8,
},
category: "general",
},
},
"gpt-4-turbo": {
aliases: ["gpt4-turbo", "gpt-4-turbo-preview"],
displayName: "GPT-4 Turbo",
contextWindow: 128_000,
maxOutputTokens: 4_096,
pricingPerMTok: { input: 10.0, output: 30.0 },
vision: true,
functionCalling: true,
reasoning: true,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4_TURBO]
// (src/lib/models/modelRegistry.ts:901-944).
curated: {
performance: { speed: "medium", quality: "high", accuracy: "high" },
useCases: {
coding: 8,
creative: 8,
analysis: 9,
conversation: 8,
reasoning: 8,
translation: 8,
summarization: 8,
},
category: "general",
},
},
"gpt-3.5-turbo": {
aliases: ["gpt35", "gpt-3.5", "chatgpt"],
displayName: "GPT-3.5 Turbo",
contextWindow: 16_385,
maxOutputTokens: 4_096,
pricingPerMTok: { input: 0.5, output: 1.0 },
vision: false,
functionCalling: true,
reasoning: false,
jsonMode: true,
// Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_3_5_TURBO]
// (src/lib/models/modelRegistry.ts:946-989).
curated: {
performance: { speed: "fast", quality: "medium", accuracy: "medium" },
useCases: {
coding: 6,
creative: 6,
analysis: 6,
conversation: 7,
reasoning: 5,
translation: 7,
summarization: 7,
},
category: "general",
},
},
},
};