@@ -91,13 +91,14 @@ export function buildProviders(
9191 * Environment variable mappings for each provider.
9292 * Used to construct a provider adapter without a agents.yaml config file.
9393 */
94- const PROVIDER_ENV_VARS : Record < string , Record < string , { env : string [ ] ; required : boolean } > > = {
94+ const PROVIDER_ENV_VARS : Record < string , Record < string , { env : string [ ] ; required : boolean ; placeholder ?: boolean } > > = {
9595 bailian : {
9696 api_key : { env : [ "DASHSCOPE_API_KEY" , "BAILIAN_API_KEY" ] , required : true } ,
9797 // Neither workspace_id nor base_url is required on its own; the config schema
9898 // enforces "at least one" so a host can supply just base_url (BAILIAN_BASE_URL).
99+ // base_url is the preferred placeholder emitted by `agents sync`.
99100 workspace_id : { env : [ "BAILIAN_WORKSPACE_ID" ] , required : false } ,
100- base_url : { env : [ "BAILIAN_BASE_URL" ] , required : false } ,
101+ base_url : { env : [ "BAILIAN_BASE_URL" ] , required : false , placeholder : true } ,
101102 } ,
102103 qoder : {
103104 api_key : { env : [ "QODER_PAT" , "QODER_API_KEY" ] , required : true } ,
@@ -115,15 +116,17 @@ const PROVIDER_ENV_VARS: Record<string, Record<string, { env: string[]; required
115116
116117/**
117118 * Build a `providers` config block for a single provider using `${ENV}`
118- * placeholders for its required fields. Used by `agents sync` to emit a providers
119- * block without leaking resolved secrets when the original file is unavailable.
119+ * placeholders. Emits fields that are either required for env resolution or
120+ * explicitly marked as the provider's preferred placeholder (e.g. bailian's
121+ * base_url). Used by `agents sync` to emit a providers block without leaking
122+ * resolved secrets when the original file is unavailable.
120123 */
121124export function placeholderProviderConfig ( providerName : string ) : Record < string , string > {
122125 const envMap = PROVIDER_ENV_VARS [ providerName ] ;
123126 if ( ! envMap ) return { } ;
124127 const out : Record < string , string > = { } ;
125- for ( const [ field , { env, required } ] of Object . entries ( envMap ) ) {
126- if ( required && env [ 0 ] ) out [ field ] = `\${${ env [ 0 ] } }` ;
128+ for ( const [ field , { env, required, placeholder } ] of Object . entries ( envMap ) ) {
129+ if ( ( required || placeholder ) && env [ 0 ] ) out [ field ] = `\${${ env [ 0 ] } }` ;
127130 }
128131 return out ;
129132}
0 commit comments