From fd8fe1603f77919bacfeaca10a161d93c4722f63 Mon Sep 17 00:00:00 2001 From: stainless-bot Date: Fri, 25 Oct 2024 16:15:03 +0000 Subject: [PATCH] chore: rebuild project due to codegen change --- .../api/client/BraintrustClientAsyncImpl.kt | 64 +++++++++++++------ .../api/client/BraintrustClientImpl.kt | 56 ++++++++++------ .../braintrustdata/api/core/ClientOptions.kt | 23 +++++++ 3 files changed, 107 insertions(+), 36 deletions(-) diff --git a/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/client/BraintrustClientAsyncImpl.kt b/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/client/BraintrustClientAsyncImpl.kt index d5a7c733..1165de16 100755 --- a/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/client/BraintrustClientAsyncImpl.kt +++ b/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/client/BraintrustClientAsyncImpl.kt @@ -3,6 +3,7 @@ package com.braintrustdata.api.client import com.braintrustdata.api.core.ClientOptions +import com.braintrustdata.api.core.getPackageVersion import com.braintrustdata.api.models.* import com.braintrustdata.api.services.async.* @@ -11,51 +12,78 @@ constructor( private val clientOptions: ClientOptions, ) : BraintrustClientAsync { + private val clientOptionsWithUserAgent = + if (clientOptions.headers.containsKey("User-Agent")) clientOptions + else + clientOptions + .toBuilder() + .putHeader("User-Agent", "${javaClass.simpleName}/Java ${getPackageVersion()}") + .build() + + // Pass the original clientOptions so that this client sets its own User-Agent. private val sync: BraintrustClient by lazy { BraintrustClientImpl(clientOptions) } - private val topLevel: TopLevelServiceAsync by lazy { TopLevelServiceAsyncImpl(clientOptions) } + private val topLevel: TopLevelServiceAsync by lazy { + TopLevelServiceAsyncImpl(clientOptionsWithUserAgent) + } - private val projects: ProjectServiceAsync by lazy { ProjectServiceAsyncImpl(clientOptions) } + private val projects: ProjectServiceAsync by lazy { + ProjectServiceAsyncImpl(clientOptionsWithUserAgent) + } private val experiments: ExperimentServiceAsync by lazy { - ExperimentServiceAsyncImpl(clientOptions) + ExperimentServiceAsyncImpl(clientOptionsWithUserAgent) } - private val datasets: DatasetServiceAsync by lazy { DatasetServiceAsyncImpl(clientOptions) } + private val datasets: DatasetServiceAsync by lazy { + DatasetServiceAsyncImpl(clientOptionsWithUserAgent) + } - private val prompts: PromptServiceAsync by lazy { PromptServiceAsyncImpl(clientOptions) } + private val prompts: PromptServiceAsync by lazy { + PromptServiceAsyncImpl(clientOptionsWithUserAgent) + } - private val roles: RoleServiceAsync by lazy { RoleServiceAsyncImpl(clientOptions) } + private val roles: RoleServiceAsync by lazy { RoleServiceAsyncImpl(clientOptionsWithUserAgent) } - private val groups: GroupServiceAsync by lazy { GroupServiceAsyncImpl(clientOptions) } + private val groups: GroupServiceAsync by lazy { + GroupServiceAsyncImpl(clientOptionsWithUserAgent) + } - private val acls: AclServiceAsync by lazy { AclServiceAsyncImpl(clientOptions) } + private val acls: AclServiceAsync by lazy { AclServiceAsyncImpl(clientOptionsWithUserAgent) } - private val users: UserServiceAsync by lazy { UserServiceAsyncImpl(clientOptions) } + private val users: UserServiceAsync by lazy { UserServiceAsyncImpl(clientOptionsWithUserAgent) } private val projectScores: ProjectScoreServiceAsync by lazy { - ProjectScoreServiceAsyncImpl(clientOptions) + ProjectScoreServiceAsyncImpl(clientOptionsWithUserAgent) } private val projectTags: ProjectTagServiceAsync by lazy { - ProjectTagServiceAsyncImpl(clientOptions) + ProjectTagServiceAsyncImpl(clientOptionsWithUserAgent) } - private val functions: FunctionServiceAsync by lazy { FunctionServiceAsyncImpl(clientOptions) } + private val functions: FunctionServiceAsync by lazy { + FunctionServiceAsyncImpl(clientOptionsWithUserAgent) + } - private val views: ViewServiceAsync by lazy { ViewServiceAsyncImpl(clientOptions) } + private val views: ViewServiceAsync by lazy { ViewServiceAsyncImpl(clientOptionsWithUserAgent) } private val organizations: OrganizationServiceAsync by lazy { - OrganizationServiceAsyncImpl(clientOptions) + OrganizationServiceAsyncImpl(clientOptionsWithUserAgent) } - private val apiKeys: ApiKeyServiceAsync by lazy { ApiKeyServiceAsyncImpl(clientOptions) } + private val apiKeys: ApiKeyServiceAsync by lazy { + ApiKeyServiceAsyncImpl(clientOptionsWithUserAgent) + } - private val aiSecrets: AiSecretServiceAsync by lazy { AiSecretServiceAsyncImpl(clientOptions) } + private val aiSecrets: AiSecretServiceAsync by lazy { + AiSecretServiceAsyncImpl(clientOptionsWithUserAgent) + } - private val envVars: EnvVarServiceAsync by lazy { EnvVarServiceAsyncImpl(clientOptions) } + private val envVars: EnvVarServiceAsync by lazy { + EnvVarServiceAsyncImpl(clientOptionsWithUserAgent) + } - private val evals: EvalServiceAsync by lazy { EvalServiceAsyncImpl(clientOptions) } + private val evals: EvalServiceAsync by lazy { EvalServiceAsyncImpl(clientOptionsWithUserAgent) } override fun sync(): BraintrustClient = sync diff --git a/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/client/BraintrustClientImpl.kt b/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/client/BraintrustClientImpl.kt index e770915e..482983f8 100755 --- a/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/client/BraintrustClientImpl.kt +++ b/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/client/BraintrustClientImpl.kt @@ -3,6 +3,7 @@ package com.braintrustdata.api.client import com.braintrustdata.api.core.ClientOptions +import com.braintrustdata.api.core.getPackageVersion import com.braintrustdata.api.models.* import com.braintrustdata.api.services.blocking.* @@ -11,47 +12,66 @@ constructor( private val clientOptions: ClientOptions, ) : BraintrustClient { + private val clientOptionsWithUserAgent = + if (clientOptions.headers.containsKey("User-Agent")) clientOptions + else + clientOptions + .toBuilder() + .putHeader("User-Agent", "${javaClass.simpleName}/Java ${getPackageVersion()}") + .build() + + // Pass the original clientOptions so that this client sets its own User-Agent. private val async: BraintrustClientAsync by lazy { BraintrustClientAsyncImpl(clientOptions) } - private val topLevel: TopLevelService by lazy { TopLevelServiceImpl(clientOptions) } + private val topLevel: TopLevelService by lazy { + TopLevelServiceImpl(clientOptionsWithUserAgent) + } - private val projects: ProjectService by lazy { ProjectServiceImpl(clientOptions) } + private val projects: ProjectService by lazy { ProjectServiceImpl(clientOptionsWithUserAgent) } - private val experiments: ExperimentService by lazy { ExperimentServiceImpl(clientOptions) } + private val experiments: ExperimentService by lazy { + ExperimentServiceImpl(clientOptionsWithUserAgent) + } - private val datasets: DatasetService by lazy { DatasetServiceImpl(clientOptions) } + private val datasets: DatasetService by lazy { DatasetServiceImpl(clientOptionsWithUserAgent) } - private val prompts: PromptService by lazy { PromptServiceImpl(clientOptions) } + private val prompts: PromptService by lazy { PromptServiceImpl(clientOptionsWithUserAgent) } - private val roles: RoleService by lazy { RoleServiceImpl(clientOptions) } + private val roles: RoleService by lazy { RoleServiceImpl(clientOptionsWithUserAgent) } - private val groups: GroupService by lazy { GroupServiceImpl(clientOptions) } + private val groups: GroupService by lazy { GroupServiceImpl(clientOptionsWithUserAgent) } - private val acls: AclService by lazy { AclServiceImpl(clientOptions) } + private val acls: AclService by lazy { AclServiceImpl(clientOptionsWithUserAgent) } - private val users: UserService by lazy { UserServiceImpl(clientOptions) } + private val users: UserService by lazy { UserServiceImpl(clientOptionsWithUserAgent) } private val projectScores: ProjectScoreService by lazy { - ProjectScoreServiceImpl(clientOptions) + ProjectScoreServiceImpl(clientOptionsWithUserAgent) } - private val projectTags: ProjectTagService by lazy { ProjectTagServiceImpl(clientOptions) } + private val projectTags: ProjectTagService by lazy { + ProjectTagServiceImpl(clientOptionsWithUserAgent) + } - private val functions: FunctionService by lazy { FunctionServiceImpl(clientOptions) } + private val functions: FunctionService by lazy { + FunctionServiceImpl(clientOptionsWithUserAgent) + } - private val views: ViewService by lazy { ViewServiceImpl(clientOptions) } + private val views: ViewService by lazy { ViewServiceImpl(clientOptionsWithUserAgent) } private val organizations: OrganizationService by lazy { - OrganizationServiceImpl(clientOptions) + OrganizationServiceImpl(clientOptionsWithUserAgent) } - private val apiKeys: ApiKeyService by lazy { ApiKeyServiceImpl(clientOptions) } + private val apiKeys: ApiKeyService by lazy { ApiKeyServiceImpl(clientOptionsWithUserAgent) } - private val aiSecrets: AiSecretService by lazy { AiSecretServiceImpl(clientOptions) } + private val aiSecrets: AiSecretService by lazy { + AiSecretServiceImpl(clientOptionsWithUserAgent) + } - private val envVars: EnvVarService by lazy { EnvVarServiceImpl(clientOptions) } + private val envVars: EnvVarService by lazy { EnvVarServiceImpl(clientOptionsWithUserAgent) } - private val evals: EvalService by lazy { EvalServiceImpl(clientOptions) } + private val evals: EvalService by lazy { EvalServiceImpl(clientOptionsWithUserAgent) } override fun async(): BraintrustClientAsync = async diff --git a/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/core/ClientOptions.kt b/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/core/ClientOptions.kt index 4700499e..93a4f613 100755 --- a/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/core/ClientOptions.kt +++ b/braintrust-java-core/src/main/kotlin/com/braintrustdata/api/core/ClientOptions.kt @@ -19,8 +19,11 @@ private constructor( @get:JvmName("headers") val headers: ListMultimap, @get:JvmName("queryParams") val queryParams: ListMultimap, @get:JvmName("responseValidation") val responseValidation: Boolean, + @get:JvmName("maxRetries") val maxRetries: Int, ) { + fun toBuilder() = Builder().from(this) + companion object { const val PRODUCTION_URL = "https://api.braintrust.dev" @@ -42,6 +45,25 @@ private constructor( private var maxRetries: Int = 2 private var apiKey: String? = null + @JvmSynthetic + internal fun from(clientOptions: ClientOptions) = apply { + httpClient = clientOptions.httpClient + jsonMapper = clientOptions.jsonMapper + clock = clientOptions.clock + baseUrl = clientOptions.baseUrl + headers = + clientOptions.headers.asMap().mapValuesTo(mutableMapOf()) { (_, value) -> + value.toMutableList() + } + queryParams = + clientOptions.queryParams.asMap().mapValuesTo(mutableMapOf()) { (_, value) -> + value.toMutableList() + } + responseValidation = clientOptions.responseValidation + maxRetries = clientOptions.maxRetries + apiKey = clientOptions.apiKey + } + fun httpClient(httpClient: HttpClient) = apply { this.httpClient = httpClient } fun jsonMapper(jsonMapper: JsonMapper) = apply { this.jsonMapper = jsonMapper } @@ -129,6 +151,7 @@ private constructor( headers.toUnmodifiable(), queryParams.toUnmodifiable(), responseValidation, + maxRetries, ) } }