@@ -9,6 +9,7 @@ import { Plugin } from "../plugin"
99import { ModelsDev } from "./models"
1010import { NamedError } from "@opencode-ai/util/error"
1111import { Auth } from "../auth"
12+ import { Env } from "../env"
1213import { Instance } from "../project/instance"
1314import { Flag } from "../flag/flag"
1415import { iife } from "@/util/iife"
@@ -64,7 +65,8 @@ export namespace Provider {
6465 } ,
6566 async opencode ( input ) {
6667 const hasKey = await ( async ( ) => {
67- if ( input . env . some ( ( item ) => process . env [ item ] ) ) return true
68+ const env = Env . all ( )
69+ if ( input . env . some ( ( item ) => env [ item ] ) ) return true
6870 if ( await Auth . get ( input . id ) ) return true
6971 return false
7072 } ) ( )
@@ -128,7 +130,7 @@ export namespace Provider {
128130 }
129131 } ,
130132 "azure-cognitive-services" : async ( ) => {
131- const resourceName = process . env [ "AZURE_COGNITIVE_SERVICES_RESOURCE_NAME" ]
133+ const resourceName = Env . get ( "AZURE_COGNITIVE_SERVICES_RESOURCE_NAME" )
132134 return {
133135 autoload : false ,
134136 async getModel ( sdk : any , modelID : string , options ?: Record < string , any > ) {
@@ -144,10 +146,15 @@ export namespace Provider {
144146 }
145147 } ,
146148 "amazon-bedrock" : async ( ) => {
147- if ( ! process . env [ "AWS_PROFILE" ] && ! process . env [ "AWS_ACCESS_KEY_ID" ] && ! process . env [ "AWS_BEARER_TOKEN_BEDROCK" ] )
148- return { autoload : false }
149+ const [ awsProfile , awsAccessKeyId , awsBearerToken , awsRegion ] = await Promise . all ( [
150+ Env . get ( "AWS_PROFILE" ) ,
151+ Env . get ( "AWS_ACCESS_KEY_ID" ) ,
152+ Env . get ( "AWS_BEARER_TOKEN_BEDROCK" ) ,
153+ Env . get ( "AWS_REGION" ) ,
154+ ] )
155+ if ( ! awsProfile && ! awsAccessKeyId && ! awsBearerToken ) return { autoload : false }
149156
150- const region = process . env [ "AWS_REGION" ] ?? "us-east-1"
157+ const region = awsRegion ?? "us-east-1"
151158
152159 const { fromNodeProviderChain } = await import ( await BunProc . install ( "@aws-sdk/credential-providers" ) )
153160 return {
@@ -246,8 +253,8 @@ export namespace Provider {
246253 }
247254 } ,
248255 "google-vertex" : async ( ) => {
249- const project = process . env [ "GOOGLE_CLOUD_PROJECT" ] ?? process . env [ "GCP_PROJECT" ] ?? process . env [ "GCLOUD_PROJECT" ]
250- const location = process . env [ "GOOGLE_CLOUD_LOCATION" ] ?? process . env [ "VERTEX_LOCATION" ] ?? "us-east5"
256+ const project = Env . get ( "GOOGLE_CLOUD_PROJECT" ) ?? Env . get ( "GCP_PROJECT" ) ?? Env . get ( "GCLOUD_PROJECT" )
257+ const location = Env . get ( "GOOGLE_CLOUD_LOCATION" ) ?? Env . get ( "VERTEX_LOCATION" ) ?? "us-east5"
251258 const autoload = Boolean ( project )
252259 if ( ! autoload ) return { autoload : false }
253260 return {
@@ -263,8 +270,8 @@ export namespace Provider {
263270 }
264271 } ,
265272 "google-vertex-anthropic" : async ( ) => {
266- const project = process . env [ "GOOGLE_CLOUD_PROJECT" ] ?? process . env [ "GCP_PROJECT" ] ?? process . env [ "GCLOUD_PROJECT" ]
267- const location = process . env [ "GOOGLE_CLOUD_LOCATION" ] ?? process . env [ "VERTEX_LOCATION" ] ?? "global"
273+ const project = Env . get ( "GOOGLE_CLOUD_PROJECT" ) ?? Env . get ( "GCP_PROJECT" ) ?? Env . get ( "GCLOUD_PROJECT" )
274+ const location = Env . get ( "GOOGLE_CLOUD_LOCATION" ) ?? Env . get ( "VERTEX_LOCATION" ) ?? "global"
268275 const autoload = Boolean ( project )
269276 if ( ! autoload ) return { autoload : false }
270277 return {
@@ -435,9 +442,10 @@ export namespace Provider {
435442 }
436443
437444 // load env
445+ const env = Env . all ( )
438446 for ( const [ providerID , provider ] of Object . entries ( database ) ) {
439447 if ( disabled . has ( providerID ) ) continue
440- const apiKey = provider . env . map ( ( item ) => process . env [ item ] ) . at ( 0 )
448+ const apiKey = provider . env . map ( ( item ) => env [ item ] ) . find ( Boolean )
441449 if ( ! apiKey ) continue
442450 mergeProvider (
443451 providerID ,
0 commit comments