II.
ProviderTranslation JSON
Structured · liveprovider-translation:pi:openai
provider-translation:pi:openai json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "provider-translation:pi:openai",
"_kind": "ProviderTranslation",
"_file": "extensions/provider-translations/pi-translations.yaml",
"_cluster": "extensions",
"attributes": {
"harness": "pi",
"provider": "openai",
"proxyRequired": false,
"envMapping": [
{
"envVar": "OPENAI_API_KEY",
"source": "auth.apiKey",
"condition": "present"
}
],
"args": [],
"codexResponses": {
"httpIdleTimeoutMsAppliesToWebSocketIdle": true,
"websocketConnectTimeoutMs": "configurable",
"sseResponseHeaderTimeoutMs": 10000,
"providerRetryControl": "retry.provider.maxRetries",
"sdkMaxRetriesDefault": 0,
"cacheAffinityHeader": "session-id",
"legacyProxyIncompatibleHeader": "session_id"
},
"notes": "Native OpenAI provider for Pi - direct API key pass-through. Pi 0.76.0 bounds OpenAI Codex Responses WebSocket/SSE waits, honors retry.provider.maxRetries with SDK retries defaulting to zero, and sends the cache-affinity header as session-id instead of session_id.\n"
},
"outgoingEdges": [
{
"from": "provider-translation:pi:openai",
"to": "agent:pi",
"kind": "translates_for",
"attributes": {}
},
{
"from": "provider-translation:pi:openai",
"to": "provider:openai",
"kind": "uses_provider",
"attributes": {}
}
],
"incomingEdges": []
}