mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 20:51:37 +00:00
* fix(qa): repair verified end-to-end and channel regressions * fix(gateway): make interrupted restart recovery lifecycle-safe * test(heartbeat): target the canonical recovery session store * fix(gateway): prioritize durable restart recovery before heartbeat * fix(qa): preserve safe restart recovery and channel expiry * fix(qa): fail closed and fence restart recovery * test(agents): isolate restart recovery timing * test(agents): prove actual restart retry timing * fix(qa): report incompatible profile scenarios * fix(scripts): resolve symlinked docker scheduler entrypoints * fix(qa): require fresh native test evidence * fix(heartbeat): fence active restart recovery delivery * fix(gateway): consume untargeted restart acknowledgements * fix(qa): satisfy exhaustive hosted validation gates * fix(agents): fence stopped restart recovery dispatch * style(agents): format restart recovery lifecycle regression * test(gateway): isolate context prewarm sidecar lifecycle * test(qa): make scenario process timeout cleanup deterministic * fix(qa): stamp synthetic gateway configs with current version * fix(openai): preserve vision capabilities in stale model catalogs * test(qa): align profile channel rejection with current main * fix(openai): forward supported moderation for image edits * fix: restore latest-main CI and image edit documentation * fix(qa): retain relocated code-mode evidence validation * fix(openai): expose GPT-5.4 vision in static catalog * fix(pricing): honor explicit model cost overrides * test(pricing): keep isolated provider regressions deterministic * fix(openai): inherit transport for discovered static models * fix(gateway): honor agent-owned static image capabilities * test(gateway): preserve prepared-snapshot attachment races * test(gateway): isolate subagent persistence failure injection * test(gateway): exercise concurrent voice replay admission * fix(gateway): restore stale model image capabilities * fix(agents): publish configured model vision capabilities * fix(agents): isolate detached media transcript ownership * test(agents): preserve generic transcript lock regression * fix(gateway): require proven static model route identity * fix(qa): accept bounded full-size generated image attachments * fix(qa): require fresh script producer evidence * test(qa): prove native E2E scenario execution
314 lines
10 KiB
JSON
314 lines
10 KiB
JSON
{
|
|
"id": "openai",
|
|
"activation": {
|
|
"onStartup": false
|
|
},
|
|
"enabledByDefault": true,
|
|
"providers": ["openai"],
|
|
"providerUsageAuthEnvVars": {
|
|
"openai": ["OPENAI_ADMIN_KEY"]
|
|
},
|
|
"modelSupport": {
|
|
"modelPrefixes": ["gpt-", "o1", "o3", "o4"]
|
|
},
|
|
"providerEndpoints": [
|
|
{
|
|
"endpointClass": "openai-public",
|
|
"hosts": ["api.openai.com"],
|
|
"hostSuffixes": [".api.openai.com"]
|
|
},
|
|
{
|
|
"endpointClass": "openai",
|
|
"hosts": ["chatgpt.com"]
|
|
},
|
|
{
|
|
"endpointClass": "azure-openai",
|
|
"hostSuffixes": [".openai.azure.com"]
|
|
}
|
|
],
|
|
"providerRequest": {
|
|
"providers": {
|
|
"openai": {
|
|
"family": "openai-family"
|
|
}
|
|
}
|
|
},
|
|
"modelCatalog": {
|
|
"providers": {
|
|
"openai": {
|
|
"baseUrl": "https://api.openai.com/v1",
|
|
"api": "openai-responses",
|
|
"defaultUtilityModel": "gpt-5.6-luna",
|
|
"models": [
|
|
{
|
|
"id": "gpt-5.6",
|
|
"name": "GPT-5.6",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 272000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 5, "output": 30, "cacheRead": 0.5, "cacheWrite": 6.25 },
|
|
"thinkingLevelMap": { "off": "none", "xhigh": "xhigh", "max": "max" },
|
|
"compat": {
|
|
"supportsReasoningEffort": true,
|
|
"supportedReasoningEfforts": ["none", "low", "medium", "high", "xhigh", "max"],
|
|
"supportsTemperature": false,
|
|
"codeMode": "preferred"
|
|
}
|
|
},
|
|
{
|
|
"id": "gpt-5.6-sol",
|
|
"name": "GPT-5.6 Sol",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 272000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 5, "output": 30, "cacheRead": 0.5, "cacheWrite": 6.25 },
|
|
"thinkingLevelMap": { "off": "none", "xhigh": "xhigh", "max": "max" },
|
|
"compat": {
|
|
"supportsReasoningEffort": true,
|
|
"supportedReasoningEfforts": ["none", "low", "medium", "high", "xhigh", "max"],
|
|
"supportsTemperature": false,
|
|
"codeMode": "preferred"
|
|
}
|
|
},
|
|
{
|
|
"id": "gpt-5.6-terra",
|
|
"name": "GPT-5.6 Terra",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 272000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 2.5, "output": 15, "cacheRead": 0.25, "cacheWrite": 3.125 },
|
|
"thinkingLevelMap": { "off": "none", "xhigh": "xhigh", "max": "max" },
|
|
"compat": {
|
|
"supportsReasoningEffort": true,
|
|
"supportedReasoningEfforts": ["none", "low", "medium", "high", "xhigh", "max"],
|
|
"supportsTemperature": false,
|
|
"codeMode": "preferred"
|
|
}
|
|
},
|
|
{
|
|
"id": "gpt-5.6-luna",
|
|
"name": "GPT-5.6 Luna",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 272000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 1, "output": 6, "cacheRead": 0.1, "cacheWrite": 1.25 },
|
|
"thinkingLevelMap": { "off": "none", "xhigh": "xhigh", "max": "max" },
|
|
"compat": {
|
|
"supportsReasoningEffort": true,
|
|
"supportedReasoningEfforts": ["none", "low", "medium", "high", "xhigh", "max"],
|
|
"supportsTemperature": false,
|
|
"codeMode": "preferred"
|
|
}
|
|
},
|
|
{
|
|
"id": "gpt-5.5",
|
|
"name": "GPT-5.5",
|
|
"status": "deprecated",
|
|
"replacedBy": "gpt-5.6",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 6000, "preferredSidePx": 2048, "tokenMode": "detail" }
|
|
},
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 272000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 5, "output": 30, "cacheRead": 0.5, "cacheWrite": 0 },
|
|
"compat": { "codeMode": "preferred" }
|
|
},
|
|
{
|
|
"id": "gpt-5.5-pro",
|
|
"name": "gpt-5.5-pro",
|
|
"status": "deprecated",
|
|
"replacedBy": "gpt-5.6",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 6000, "preferredSidePx": 2048, "tokenMode": "detail" }
|
|
},
|
|
"contextWindow": 1050000,
|
|
"contextTokens": 272000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 30, "output": 180, "cacheRead": 0, "cacheWrite": 0 },
|
|
"compat": { "codeMode": "preferred" }
|
|
},
|
|
{
|
|
"id": "gpt-5.4",
|
|
"name": "GPT-5.4",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 2.5, "output": 15, "cacheRead": 0.25, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "gpt-5.4-pro",
|
|
"name": "GPT-5.4 Pro",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 1050000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 30, "output": 180, "cacheRead": 0, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "gpt-5.4-mini",
|
|
"name": "GPT-5.4 Mini",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 400000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 0.75, "output": 4.5, "cacheRead": 0.075, "cacheWrite": 0 }
|
|
},
|
|
{
|
|
"id": "gpt-5.4-nano",
|
|
"name": "GPT-5.4 Nano",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"contextWindow": 400000,
|
|
"maxTokens": 128000,
|
|
"cost": { "input": 0.2, "output": 1.25, "cacheRead": 0.02, "cacheWrite": 0 }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"aliases": {
|
|
"azure-openai-responses": {
|
|
"provider": "openai",
|
|
"api": "azure-openai-responses"
|
|
}
|
|
},
|
|
"discovery": {
|
|
"openai": "runtime"
|
|
},
|
|
"suppressions": [
|
|
{
|
|
"provider": "openai",
|
|
"model": "gpt-5.3-codex-spark",
|
|
"reason": "gpt-5.3-codex-spark is available only through ChatGPT/Codex OAuth. Run `openclaw models auth login --provider openai` and use openai/gpt-5.3-codex-spark with that OAuth profile; OpenAI API-key auth cannot use this model.",
|
|
"when": {
|
|
"baseUrlHosts": ["api.openai.com"]
|
|
}
|
|
},
|
|
{
|
|
"provider": "azure-openai-responses",
|
|
"model": "gpt-5.3-codex-spark",
|
|
"reason": "gpt-5.3-codex-spark is available only through ChatGPT/Codex OAuth. Run `openclaw models auth login --provider openai` and use openai/gpt-5.3-codex-spark with that OAuth profile; Azure/OpenAI API-key auth cannot use this model."
|
|
}
|
|
]
|
|
},
|
|
"setup": {
|
|
"providers": [
|
|
{
|
|
"id": "openai",
|
|
"envVars": ["OPENAI_API_KEY"]
|
|
}
|
|
]
|
|
},
|
|
"providerAuthChoices": [
|
|
{
|
|
"provider": "openai",
|
|
"method": "oauth",
|
|
"choiceId": "openai",
|
|
"appGuidedAuth": "oauth",
|
|
"choiceLabel": "ChatGPT Login",
|
|
"choiceHint": "Sign in with your ChatGPT or Codex subscription",
|
|
"assistantPriority": -40,
|
|
"groupId": "openai",
|
|
"groupLabel": "OpenAI",
|
|
"groupHint": "ChatGPT/Codex sign-in or API key",
|
|
"onboardingFeatured": true
|
|
},
|
|
{
|
|
"provider": "openai",
|
|
"method": "device-code",
|
|
"choiceId": "openai-device-code",
|
|
"appGuidedAuth": "device-code",
|
|
"choiceLabel": "ChatGPT Device Pairing",
|
|
"choiceHint": "Pair your ChatGPT account in browser with a device code",
|
|
"assistantPriority": -10,
|
|
"assistantVisibility": "manual-only",
|
|
"groupId": "openai",
|
|
"groupLabel": "OpenAI",
|
|
"groupHint": "ChatGPT/Codex sign-in or API key"
|
|
},
|
|
{
|
|
"provider": "openai",
|
|
"method": "api-key",
|
|
"choiceId": "openai-api-key",
|
|
"appGuidedSecret": true,
|
|
"choiceLabel": "OpenAI API Key",
|
|
"choiceHint": "Use your OpenAI API key directly",
|
|
"assistantPriority": 5,
|
|
"groupId": "openai",
|
|
"groupLabel": "OpenAI",
|
|
"groupHint": "ChatGPT/Codex sign-in or API key",
|
|
"onboardingFeatured": true,
|
|
"optionKey": "openaiApiKey",
|
|
"cliFlag": "--openai-api-key",
|
|
"cliOption": "--openai-api-key <key>",
|
|
"cliDescription": "OpenAI API Key"
|
|
}
|
|
],
|
|
"contracts": {
|
|
"speechProviders": ["openai"],
|
|
"realtimeTranscriptionProviders": ["openai"],
|
|
"realtimeVoiceProviders": ["openai"],
|
|
"memoryEmbeddingProviders": ["openai"],
|
|
"mediaUnderstandingProviders": ["openai"],
|
|
"imageGenerationProviders": ["openai"],
|
|
"videoGenerationProviders": ["openai"],
|
|
"usageProviders": ["openai"]
|
|
},
|
|
"imageGenerationProviderMetadata": {
|
|
"openai": {
|
|
"authSignals": [
|
|
{
|
|
"provider": "openai"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"videoGenerationProviderMetadata": {
|
|
"openai": {
|
|
"authSignals": [
|
|
{
|
|
"provider": "openai"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"mediaUnderstandingProviderMetadata": {
|
|
"openai": {
|
|
"capabilities": ["image", "audio"],
|
|
"defaultModels": {
|
|
"image": "gpt-5.6-sol",
|
|
"audio": "gpt-4o-transcribe"
|
|
},
|
|
"autoPriority": {
|
|
"image": 20,
|
|
"audio": 20
|
|
}
|
|
}
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"personality": {
|
|
"type": "string",
|
|
"enum": ["friendly", "on", "off"],
|
|
"default": "friendly",
|
|
"description": "Legacy compatibility fallback for the shared GPT-5 friendly interaction-style overlay. Prefer agents.defaults.promptOverlays.gpt5.personality. `friendly` and `on` enable the style overlay; `off` disables only that style layer."
|
|
}
|
|
}
|
|
}
|
|
}
|