diff --git a/config/provider_secrets.go b/config/provider_secrets.go index 157d43a..9fe2e21 100644 --- a/config/provider_secrets.go +++ b/config/provider_secrets.go @@ -109,6 +109,12 @@ func LegacyProviderSecretsStrict(cfg ProviderConfig) (map[string]string, error) return nil, fmt.Errorf("provider deployment %q contains unsupported credential fields", id) } put("VERTEX_ACCESS_TOKEN", firstNonEmpty(deployment.Token, deployment.APIKey)) + case "agnes-direct": + if strings.TrimSpace(deployment.Token) != "" || strings.TrimSpace(deployment.SecretAccessKey) != "" || + strings.TrimSpace(deployment.AccessKeyID) != "" || strings.TrimSpace(deployment.SessionToken) != "" { + return nil, fmt.Errorf("provider deployment %q contains unsupported credential fields", id) + } + put("AGNES_API_KEY", deployment.APIKey) default: envKey := legacyDeploymentCredentialEnv(id) if envKey == "" && deploymentContainsSecrets(deployment) { diff --git a/config/provider_secrets_test.go b/config/provider_secrets_test.go index c6e4ca9..0ebdc06 100644 --- a/config/provider_secrets_test.go +++ b/config/provider_secrets_test.go @@ -52,6 +52,18 @@ func TestLegacyProviderSecretsStrictRejectsUnmappedDeploymentFields(t *testing.T } } +func TestLegacyProviderSecretsStrictMapsAgnesDirect(t *testing.T) { + secrets, err := LegacyProviderSecretsStrict(ProviderConfig{Deployments: map[string]DeploymentConfig{ + "agnes-direct": {APIKey: "agnes-secret-1234567890"}, + }}) + if err != nil { + t.Fatal(err) + } + if secrets["AGNES_API_KEY"] != "agnes-secret-1234567890" { + t.Fatalf("AGNES_API_KEY mismatch: got %q, want %q", secrets["AGNES_API_KEY"], "agnes-secret-1234567890") + } +} + func TestLegacyProviderSecretsStrictMapsBedrockCompatibilityFields(t *testing.T) { secrets, err := LegacyProviderSecretsStrict(ProviderConfig{Deployments: map[string]DeploymentConfig{ "anthropic-bedrock": {APIKey: "AKIALEGACY123456789", Token: "legacy-secret-1234567890"},