( providerType: ProviderType, modelId: string, adapter: ProviderRuntimeAdapter, apiProtocol: ModelInfo['apiProtocol'] | undefined, )
| 115 | } |
| 116 | |
| 117 | function resolveModelRuntimeWire( |
| 118 | providerType: ProviderType, |
| 119 | modelId: string, |
| 120 | adapter: ProviderRuntimeAdapter, |
| 121 | apiProtocol: ModelInfo['apiProtocol'] | undefined, |
| 122 | ): ModelRuntimeWire { |
| 123 | switch (adapter.kind) { |
| 124 | case 'anthropic': |
| 125 | case 'claude-subscription': |
| 126 | return 'anthropic-messages'; |
| 127 | case 'openai-codex': |
| 128 | return 'openai-responses'; |
| 129 | case 'github-copilot': |
| 130 | return apiProtocol === 'anthropic-messages' |
| 131 | ? 'anthropic-messages' |
| 132 | : apiProtocol === 'openai-responses' |
| 133 | ? 'openai-responses' |
| 134 | : 'openai-chat'; |
| 135 | case 'openai': |
| 136 | return (adapter.apiProtocol ?? |
| 137 | apiProtocol ?? |
| 138 | openAiAdapterApiProtocol(modelId, providerType)) === 'openai-responses' |
| 139 | ? 'openai-responses' |
| 140 | : 'openai-chat'; |
| 141 | case 'openai-compatible': |
| 142 | return adapter.supportsOpenAiResponses === true && |
| 143 | (apiProtocol ?? openAiAdapterApiProtocol(modelId, providerType)) === 'openai-responses' |
| 144 | ? 'openai-responses' |
| 145 | : 'openai-chat'; |
| 146 | case 'google': |
| 147 | return 'google-generate'; |
| 148 | case 'cohere': |
| 149 | return 'cohere-v2'; |
| 150 | } |
| 151 | } |
| 152 | |
| 153 | function reasoningReplayContract( |
| 154 | adapter: ProviderRuntimeAdapter, |
no test coverage detected