@@ -243,10 +243,55 @@ const ApiOptions = ({
243243 [ selectedProvider ] ,
244244 )
245245
246+ // Base URL for provider documentation
247+ const DOC_BASE_URL = "https://docs.roocode.com/providers"
248+
249+ // Custom URL path mappings for providers with different slugs
250+ const providerUrlSlugs : Record < string , string > = {
251+ "openai-native" : "openai" ,
252+ openai : "openai-compatible" ,
253+ }
254+
255+ // Helper function to get provider display name from PROVIDERS constant
256+ const getProviderDisplayName = ( providerKey : string ) : string | undefined => {
257+ const provider = PROVIDERS . find ( ( p ) => p . value === providerKey )
258+ return provider ?. label
259+ }
260+
261+ // Helper function to get the documentation URL and name for the currently selected provider
262+ const getSelectedProviderDocUrl = ( ) : { url : string ; name : string } | undefined => {
263+ const displayName = getProviderDisplayName ( selectedProvider )
264+ if ( ! displayName ) {
265+ return undefined
266+ }
267+
268+ // Get the URL slug - use custom mapping if available, otherwise use the provider key
269+ const urlSlug = providerUrlSlugs [ selectedProvider ] || selectedProvider
270+
271+ return {
272+ url : `${ DOC_BASE_URL } /${ urlSlug } ` ,
273+ name : displayName ,
274+ }
275+ }
276+
246277 return (
247278 < div className = "flex flex-col gap-3" >
248- < div >
249- < label className = "block font-medium mb-1" > { t ( "settings:providers.apiProvider" ) } </ label >
279+ < div className = "flex flex-col gap-1 relative" >
280+ < div className = "flex justify-between items-center" >
281+ < label className = "block font-medium mb-1" > { t ( "settings:providers.apiProvider" ) } </ label >
282+ { getSelectedProviderDocUrl ( ) && (
283+ < div className = "text-xs text-vscode-descriptionForeground" >
284+ < VSCodeLink
285+ href = { getSelectedProviderDocUrl ( ) ! . url }
286+ className = "hover:text-vscode-foreground"
287+ target = "_blank" >
288+ { t ( "settings:providers.providerDocumentation" , {
289+ provider : getSelectedProviderDocUrl ( ) ! . name ,
290+ } ) }
291+ </ VSCodeLink >
292+ </ div >
293+ ) }
294+ </ div >
250295 < Select
251296 value = { selectedProvider }
252297 onValueChange = { ( value ) => setApiConfigurationField ( "apiProvider" , value as ApiProvider ) } >
@@ -256,7 +301,7 @@ const ApiOptions = ({
256301 < SelectContent >
257302 < SelectItem value = "openrouter" > OpenRouter</ SelectItem >
258303 < SelectSeparator />
259- { PROVIDERS . map ( ( { value, label } ) => (
304+ { PROVIDERS . filter ( ( p ) => p . value !== "openrouter" ) . map ( ( { value, label } ) => (
260305 < SelectItem key = { value } value = { value } >
261306 { label }
262307 </ SelectItem >
0 commit comments