@@ -358,26 +358,27 @@ export class MockProvider implements LLMProvider {
358358/**
359359 * Provider Factory
360360 */
361- export function createLLMProvider ( config : LLMConfig ) : LLMProvider {
361+ export function createLLMProvider ( config : LLMConfig , allowedHosts ?: string [ ] ) : LLMProvider {
362362 const { provider, endpoint, apiKey } = config ;
363363
364364 if ( provider === 'mock' ) {
365365 return new MockProvider ( ) ;
366366 }
367367
368368 // SECURITY: Validate endpoint is localhost only
369- const allowedHosts = [ 'localhost' , '127.0.0.1' , '::1' ] ;
370- validateEndpoint ( endpoint , allowedHosts ) ;
369+ const resolvedAllowedHosts =
370+ allowedHosts && allowedHosts . length > 0 ? allowedHosts : [ 'localhost' , '127.0.0.1' , '::1' ] ;
371+ validateEndpoint ( endpoint , resolvedAllowedHosts ) ;
371372
372373 switch ( provider ) {
373374 case 'ollama' :
374- return new OllamaProvider ( endpoint , apiKey , allowedHosts ) ;
375+ return new OllamaProvider ( endpoint , apiKey , resolvedAllowedHosts ) ;
375376 case 'vllm' :
376- return new VLLMProvider ( endpoint , apiKey , allowedHosts ) ;
377+ return new VLLMProvider ( endpoint , apiKey , resolvedAllowedHosts ) ;
377378 case 'llamacpp' :
378- return new LlamaCppProvider ( endpoint , apiKey , allowedHosts ) ;
379+ return new LlamaCppProvider ( endpoint , apiKey , resolvedAllowedHosts ) ;
379380 case 'openai-compatible' :
380- return new OpenAICompatibleProvider ( endpoint , apiKey , allowedHosts ) ;
381+ return new OpenAICompatibleProvider ( endpoint , apiKey , resolvedAllowedHosts ) ;
381382 default :
382383 throw new ConfigError ( `Unknown LLM provider: ${ provider } ` ) ;
383384 }
0 commit comments