@@ -69,13 +69,13 @@ function shouldSkipProvider(providerID: string): boolean {
6969 * Attempts to import OpencodeAI with retry logic to handle plugin initialization timing issues.
7070 * Some providers (like openai via @openhax/codex) may not be fully initialized on first attempt.
7171 */
72- async function importOpencodeAI ( logger ?: Logger , maxRetries : number = 3 , delayMs : number = 100 ) : Promise < any > {
72+ async function importOpencodeAI ( logger ?: Logger , maxRetries : number = 3 , delayMs : number = 100 , workspaceDir ?: string ) : Promise < any > {
7373 let lastError : Error | undefined ;
7474
7575 for ( let attempt = 1 ; attempt <= maxRetries ; attempt ++ ) {
7676 try {
7777 const { OpencodeAI } = await import ( '@tarquinen/opencode-auth-provider' ) ;
78- return new OpencodeAI ( ) ;
78+ return new OpencodeAI ( { workspaceDir } ) ;
7979 } catch ( error : any ) {
8080 lastError = error ;
8181
@@ -117,13 +117,15 @@ async function importOpencodeAI(logger?: Logger, maxRetries: number = 3, delayMs
117117export async function selectModel (
118118 currentModel ?: ModelInfo ,
119119 logger ?: Logger ,
120- configModel ?: string
120+ configModel ?: string ,
121+ workspaceDir ?: string
121122) : Promise < ModelSelectionResult > {
122- logger ?. info ( 'model-selector' , 'Model selection started' , { currentModel, configModel } ) ;
123+ logger ?. info ( 'model-selector' , 'Model selection started' , { currentModel, configModel, workspaceDir } ) ;
123124
124125 // Lazy import with retry logic - handles plugin initialization timing issues
125126 // Some providers (like openai via @openhax/codex) may not be ready on first attempt
126- const opencodeAI = await importOpencodeAI ( logger ) ;
127+ // Pass workspaceDir so OpencodeAI can find project-level config and plugins
128+ const opencodeAI = await importOpencodeAI ( logger , 3 , 100 , workspaceDir ) ;
127129
128130 let failedModelInfo : ModelInfo | undefined ;
129131
0 commit comments