Skip to content

Commit 14634be

Browse files
stainless-app[bot]dependabot[bot]jkennedyvzclaudejacoblee93
authored
release: 0.1.0-beta.0 (#132)
* codegen metadata * codegen metadata * codegen metadata * feat(api): sandbox apis add sandbox apis * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * feat(api): api update * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * chore(deps): bump the minor-and-patch group across 1 directory with 5 updates (#123) * chore(deps): bump the minor-and-patch group with 5 updates Bumps the minor-and-patch group with 5 updates: | Package | From | To | | --- | --- | --- | | [org.jetbrains.dokka](https://github.com/Kotlin/dokka) | `2.0.0` | `2.2.0` | | [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.20` | | [com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin) | `0.28.0` | `0.36.0` | | [jvm](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.20` | | [com.vanniktech.maven.publish](https://github.com/vanniktech/gradle-maven-publish-plugin) | `0.28.0` | `0.36.0` | Updates `org.jetbrains.dokka` from 2.0.0 to 2.2.0 - [Release notes](https://github.com/Kotlin/dokka/releases) - [Commits](Kotlin/dokka@v2.0.0...v2.2.0) Updates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.0.21 to 2.3.20 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](JetBrains/kotlin@v2.0.21...v2.3.20) Updates `com.vanniktech:gradle-maven-publish-plugin` from 0.28.0 to 0.36.0 - [Release notes](https://github.com/vanniktech/gradle-maven-publish-plugin/releases) - [Changelog](https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md) - [Commits](vanniktech/gradle-maven-publish-plugin@0.28.0...0.36.0) Updates `jvm` from 2.0.21 to 2.3.20 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](JetBrains/kotlin@v2.0.21...v2.3.20) Updates `com.vanniktech.maven.publish` from 0.28.0 to 0.36.0 - [Release notes](https://github.com/vanniktech/gradle-maven-publish-plugin/releases) - [Changelog](https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md) - [Commits](vanniktech/gradle-maven-publish-plugin@0.28.0...0.36.0) --- updated-dependencies: - dependency-name: org.jetbrains.dokka dependency-version: 2.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin dependency-version: 2.3.20 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: com.vanniktech:gradle-maven-publish-plugin dependency-version: 0.36.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: jvm dependency-version: 2.3.20 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: com.vanniktech.maven.publish dependency-version: 0.36.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Fix build failures from dependency bumps Remove SonatypeHost reference removed in gradle-maven-publish-plugin 0.34.0+ (publishToMavenCentral() defaults to Central Portal). Bump proguard-gradle 7.6.0 → 7.9.0 to support Kotlin 2.3.x metadata. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Revert Kotlin to 2.3.0 to match Gradle 9.4.1 embedded version Kotlin 2.3.20 is not yet supported by CodeQL and conflicts with the kotlin-dsl plugin's embedded Kotlin 2.3.0. Keeping the Kotlin version aligned with the Gradle wrapper avoids both issues. Bump proguard-gradle to 7.8.0 (from 7.6.0) to support Kotlin 2.3.0 metadata. 7.9.0 has a null pointer regression; 7.8.x is the sweet spot. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * feat(evaluators): add list evaluators (GET /api/v1/runs/rules) Exposes `GET /api/v1/runs/rules`. Will result in `client.evaluators.list()` in the Go SDK. The endpoint returns online evaluators (internally called "run rules") — automated rules that trigger on incoming runs to apply LLM/code evaluators, add runs to annotation queues, trigger webhooks, etc. The `runs/rules` URL path is an implementation detail; `evaluators` matches the user-facing branding. * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * feat: support setting headers via env * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat: Add autobatch tracing mode (#134) * Add autobatch mode * Fix * Update signature * Add async impl * Fix optin * Fix * Fix * Fix tests * Add test * Refactor to be more idiomatic * Feedback * Use explicit lock, add to AGENTS.md * Remove test script * codegen metadata * feat: Merge enqueued posts and patches to optimize batching (#135) * Merge enqueued posts and patches to optimize batching * Exclude patched inputs by default * Logs * Fix import order * Feedback * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat: Make autobatch queue denote batches by payload size, add aggregation delay (#137) * Make autobatch queue denote batches by payload size, add aggregation delay * Fully drain queue when batch delay is hit * Feedback on locks * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat: Add multipart batching (#138) * Add multipart batching * Handle 404s better * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * feat(api): add workspaces * feat(api): manual updates * codegen metadata * feat(api): manual updates * codegen metadata * codegen metadata * codegen metadata * feat: Add zstd compression to runs service (#136) * Add zstd compression * Merge * Fix * nits * Feedback * Fix build * codegen metadata * release: 0.1.0-beta.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Jacob Lee <jacoblee93@gmail.com>
1 parent 3220bc5 commit 14634be

215 files changed

Lines changed: 46392 additions & 1036 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.1.0-alpha.28"
2+
".": "0.1.0-beta.0"
33
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 103
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/langsmith%2Flangsmith-api-f5481e770416018428b94a86efc21f8a93befdba8a887a2fcc4a2978e4c45ee8.yml
3-
openapi_spec_hash: 5f66fdb1f7c676fc078dad686cce2879
4-
config_hash: c217b34d458f1b65f260715693d447f9
1+
configured_endpoints: 122
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/langsmith/langsmith-api-85fd6ce6b945257eb9cca344912b7f6a4c7a37619042be8536af161e07f6eacb.yml
3+
openapi_spec_hash: de473ffe5bd42a277abd0225820f4f0c
4+
config_hash: 57e1c5d2f7d3f4c50121dda73a181670

AGENTS.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ fun format(variables: Map<String, Any>): PromptMessages {
4444

4545
## Kotlin idioms
4646

47+
### Prefer immutable collection transformations
48+
49+
Avoid mutable accumulators when `map`, `filter`, `partition`, `associate`, `buildMap`, or `buildList` express the same logic clearly. Use mutation only when it materially improves readability, performance, or is required by an API.
50+
4751
### Use `buildMap` / `buildList` instead of mutable + convert
4852

4953
```kotlin
@@ -229,6 +233,12 @@ Tests skip gracefully via `assumeTrue` if keys are missing.
229233

230234
## Code style
231235

236+
- For cross-method concurrency coordination, prefer an explicit named `ReentrantLock` over `synchronized` when review clarity matters. Use Kotlin's `withLock { ... }` extension instead of manual `lock()` / `try` / `finally { unlock() }` unless explicit lock management is required. Keep the locked section minimal and do slow/blocking work outside the lock.
237+
- Choose the simplest concurrency primitive that fits the state being protected:
238+
- Use atomic types (`AtomicBoolean`, `AtomicInteger`, etc.) for simple flags, counters, and compare-and-set state.
239+
- Use `synchronized` only for small, local critical sections where a named lock would not improve clarity.
240+
- Use `ReentrantReadWriteLock` when reads are frequent, writes are infrequent, and concurrent reads materially help.
241+
- Use coroutine `Mutex.withLock { ... }` for coroutine-based concurrency instead of blocking thread locks.
232242
- `toString()` should be single-line, following the `ClassName{field=value, field=value}` convention used by the rest of the SDK.
233243
- Avoid `@Suppress("UNCHECKED_CAST")` — restructure code to use safe patterns (`as? String`, `is Map<*, *>` with `entries.associate`, etc). When unavoidable (e.g. generic type erasure after an `is` check), add a comment explaining why the cast is safe.
234244
- Use named arguments for constructor/function calls with 2+ parameters, especially when types could be confused:

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# Changelog
22

3+
## 0.1.0-beta.0 (2026-04-30)
4+
5+
Full Changelog: [v0.1.0-alpha.28...v0.1.0-beta.0](https://github.com/langchain-ai/langsmith-java/compare/v0.1.0-alpha.28...v0.1.0-beta.0)
6+
7+
### Features
8+
9+
* Add autobatch tracing mode ([#134](https://github.com/langchain-ai/langsmith-java/issues/134)) ([230959e](https://github.com/langchain-ai/langsmith-java/commit/230959e124ec705648c4cd1e48da915d945154b8))
10+
* Add multipart batching ([#138](https://github.com/langchain-ai/langsmith-java/issues/138)) ([288221c](https://github.com/langchain-ai/langsmith-java/commit/288221c44835d472eb9f0ff59d1f22d0ec150ccb))
11+
* Add zstd compression to runs service ([#136](https://github.com/langchain-ai/langsmith-java/issues/136)) ([e412191](https://github.com/langchain-ai/langsmith-java/commit/e4121913a5d5a8a6de2a16e272925c947694e7c0))
12+
* **api:** add workspaces ([cc88cdf](https://github.com/langchain-ai/langsmith-java/commit/cc88cdf706b9f2ff7a1e66e00273af027c60f203))
13+
* **api:** api update ([c3252b8](https://github.com/langchain-ai/langsmith-java/commit/c3252b8becd6ee89c95dc6ae39bf701d76629e18))
14+
* **api:** api update ([af1ba52](https://github.com/langchain-ai/langsmith-java/commit/af1ba5242ec894847e0dc007674681858cb37a42))
15+
* **api:** api update ([e1cca2b](https://github.com/langchain-ai/langsmith-java/commit/e1cca2b004858451074865be8b9fb4e532f2f5f5))
16+
* **api:** api update ([fd1fc58](https://github.com/langchain-ai/langsmith-java/commit/fd1fc5830a739a88c221e682d1520612c0e45e66))
17+
* **api:** api update ([b487509](https://github.com/langchain-ai/langsmith-java/commit/b4875093d10d752fcc8c3757e33d6c2bbe334c15))
18+
* **api:** api update ([0758583](https://github.com/langchain-ai/langsmith-java/commit/0758583e5cc42b465c662a2897fff92a6fd61394))
19+
* **api:** api update ([1310303](https://github.com/langchain-ai/langsmith-java/commit/131030331c0bab2568498a2bff96112f0fe46fee))
20+
* **api:** manual updates ([0be4215](https://github.com/langchain-ai/langsmith-java/commit/0be4215e63ce63ee562ce1c48b001a6848cce704))
21+
* **api:** manual updates ([f35b312](https://github.com/langchain-ai/langsmith-java/commit/f35b31249d59265e74d6d33f4e3298fe416757ae))
22+
* **api:** sandbox apis ([bd21a1d](https://github.com/langchain-ai/langsmith-java/commit/bd21a1df96b708ac04712aaed7ef1a95505cf1f1))
23+
* **evaluators:** add list evaluators (GET /api/v1/runs/rules) ([be32489](https://github.com/langchain-ai/langsmith-java/commit/be324893c09e4ab6e2176dda1d2f6a6cf15413e6))
24+
* Make autobatch queue denote batches by payload size, add aggregation delay ([#137](https://github.com/langchain-ai/langsmith-java/issues/137)) ([2fb72ae](https://github.com/langchain-ai/langsmith-java/commit/2fb72ae9681964dd2e798642d88ded506c8189b5))
25+
* Merge enqueued posts and patches to optimize batching ([#135](https://github.com/langchain-ai/langsmith-java/issues/135)) ([d65e301](https://github.com/langchain-ai/langsmith-java/commit/d65e3019910bb077ea59056aa37c9d0ef30bfb1a))
26+
* support setting headers via env ([567af0c](https://github.com/langchain-ai/langsmith-java/commit/567af0c1eba8bf2dc6648529c11260f36e586bd3))
27+
28+
29+
### Chores
30+
31+
* **deps:** bump the minor-and-patch group across 1 directory with 5 updates ([#123](https://github.com/langchain-ai/langsmith-java/issues/123)) ([1f88790](https://github.com/langchain-ai/langsmith-java/commit/1f887908d8d851dc641905b7beb8cf4f7cf935b1))
32+
333
## 0.1.0-alpha.28 (2026-04-14)
434

535
Full Changelog: [v0.1.0-alpha.27...v0.1.0-alpha.28](https://github.com/langchain-ai/langsmith-java/compare/v0.1.0-alpha.27...v0.1.0-alpha.28)

README.md

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
<!-- x-release-please-start-version -->
44

5-
[![Maven Central](https://img.shields.io/maven-central/v/com.langchain.smith/langsmith-java)](https://central.sonatype.com/artifact/com.langchain.smith/langsmith-java/0.1.0-alpha.28)
6-
[![javadoc](https://javadoc.io/badge2/com.langchain.smith/langsmith-java/0.1.0-alpha.28/javadoc.svg)](https://javadoc.io/doc/com.langchain.smith/langsmith-java/0.1.0-alpha.28)
5+
[![Maven Central](https://img.shields.io/maven-central/v/com.langchain.smith/langsmith-java)](https://central.sonatype.com/artifact/com.langchain.smith/langsmith-java/0.1.0-beta.0)
6+
[![javadoc](https://javadoc.io/badge2/com.langchain.smith/langsmith-java/0.1.0-beta.0/javadoc.svg)](https://javadoc.io/doc/com.langchain.smith/langsmith-java/0.1.0-beta.0)
77

88
<!-- x-release-please-end -->
99

@@ -13,7 +13,7 @@ To learn more about LangSmith, check out the [docs](https://docs.smith.langchain
1313

1414
<!-- x-release-please-start-version -->
1515

16-
The REST API documentation can be found on [docs.smith.langchain.com](https://docs.smith.langchain.com/). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.langchain.smith/langsmith-java/0.1.0-alpha.28).
16+
The REST API documentation can be found on [docs.smith.langchain.com](https://docs.smith.langchain.com/). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.langchain.smith/langsmith-java/0.1.0-beta.0).
1717

1818
<!-- x-release-please-end -->
1919

@@ -24,7 +24,7 @@ The REST API documentation can be found on [docs.smith.langchain.com](https://do
2424
### Gradle
2525

2626
```kotlin
27-
implementation("com.langchain.smith:langsmith-java:0.1.0-alpha.28")
27+
implementation("com.langchain.smith:langsmith-java:0.1.0-beta.0")
2828
```
2929

3030
### Maven
@@ -33,7 +33,7 @@ implementation("com.langchain.smith:langsmith-java:0.1.0-alpha.28")
3333
<dependency>
3434
<groupId>com.langchain.smith</groupId>
3535
<artifactId>langsmith-java</artifactId>
36-
<version>0.1.0-alpha.28</version>
36+
<version>0.1.0-beta.0</version>
3737
</dependency>
3838
```
3939

@@ -50,8 +50,8 @@ import com.langchain.smith.client.LangsmithClient;
5050
import com.langchain.smith.client.okhttp.LangsmithOkHttpClient;
5151
import com.langchain.smith.models.runs.RunQueryParams;
5252

53-
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId`, `langchain.langsmithBearerToken`, `langchain.langsmithOrganizationId` and `langchain.baseUrl` system properties
54-
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID`, `LANGSMITH_BEARER_TOKEN`, `LANGSMITH_ORGANIZATION_ID` and `LANGSMITH_ENDPOINT` environment variables
53+
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId` and `langchain.baseUrl` system properties
54+
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID` and `LANGSMITH_ENDPOINT` environment variables
5555
LangsmithClient client = LangsmithOkHttpClient.fromEnv();
5656

5757
RunQueryParams params = RunQueryParams.builder()
@@ -103,8 +103,8 @@ Configure the client using system properties or environment variables:
103103
import com.langchain.smith.client.LangsmithClient;
104104
import com.langchain.smith.client.okhttp.LangsmithOkHttpClient;
105105

106-
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId`, `langchain.langsmithBearerToken`, `langchain.langsmithOrganizationId` and `langchain.baseUrl` system properties
107-
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID`, `LANGSMITH_BEARER_TOKEN`, `LANGSMITH_ORGANIZATION_ID` and `LANGSMITH_ENDPOINT` environment variables
106+
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId` and `langchain.baseUrl` system properties
107+
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID` and `LANGSMITH_ENDPOINT` environment variables
108108
LangsmithClient client = LangsmithOkHttpClient.fromEnv();
109109
```
110110

@@ -117,7 +117,6 @@ import com.langchain.smith.client.okhttp.LangsmithOkHttpClient;
117117
LangsmithClient client = LangsmithOkHttpClient.builder()
118118
.apiKey("My API Key")
119119
.tenantId("My Tenant ID")
120-
.organizationId("My Organization ID")
121120
.build();
122121
```
123122

@@ -128,22 +127,20 @@ import com.langchain.smith.client.LangsmithClient;
128127
import com.langchain.smith.client.okhttp.LangsmithOkHttpClient;
129128

130129
LangsmithClient client = LangsmithOkHttpClient.builder()
131-
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId`, `langchain.langsmithBearerToken`, `langchain.langsmithOrganizationId` and `langchain.baseUrl` system properties
132-
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID`, `LANGSMITH_BEARER_TOKEN`, `LANGSMITH_ORGANIZATION_ID` and `LANGSMITH_ENDPOINT` environment variables
130+
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId` and `langchain.baseUrl` system properties
131+
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID` and `LANGSMITH_ENDPOINT` environment variables
133132
.fromEnv()
134133
.apiKey("My API Key")
135134
.build();
136135
```
137136

138137
See this table for the available options:
139138

140-
| Setter | System property | Environment variable | Required | Default value |
141-
| ---------------- | ----------------------------------- | --------------------------- | -------- | ------------------------------------ |
142-
| `apiKey` | `langchain.langsmithApiKey` | `LANGSMITH_API_KEY` | false | - |
143-
| `tenantId` | `langchain.langsmithTenantId` | `LANGSMITH_TENANT_ID` | false | - |
144-
| `bearerToken` | `langchain.langsmithBearerToken` | `LANGSMITH_BEARER_TOKEN` | false | - |
145-
| `organizationId` | `langchain.langsmithOrganizationId` | `LANGSMITH_ORGANIZATION_ID` | false | - |
146-
| `baseUrl` | `langchain.baseUrl` | `LANGSMITH_ENDPOINT` | true | `"https://api.smith.langchain.com/"` |
139+
| Setter | System property | Environment variable | Required | Default value |
140+
| ---------- | ----------------------------- | --------------------- | -------- | ------------------------------------ |
141+
| `apiKey` | `langchain.langsmithApiKey` | `LANGSMITH_API_KEY` | false | - |
142+
| `tenantId` | `langchain.langsmithTenantId` | `LANGSMITH_TENANT_ID` | false | - |
143+
| `baseUrl` | `langchain.baseUrl` | `LANGSMITH_ENDPOINT` | true | `"https://api.smith.langchain.com/"` |
147144

148145
System properties take precedence over environment variables.
149146

@@ -192,8 +189,8 @@ import com.langchain.smith.models.sessions.CustomChartsSectionRequest;
192189
import com.langchain.smith.models.sessions.SessionDashboardParams;
193190
import java.util.concurrent.CompletableFuture;
194191

195-
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId`, `langchain.langsmithBearerToken`, `langchain.langsmithOrganizationId` and `langchain.baseUrl` system properties
196-
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID`, `LANGSMITH_BEARER_TOKEN`, `LANGSMITH_ORGANIZATION_ID` and `LANGSMITH_ENDPOINT` environment variables
192+
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId` and `langchain.baseUrl` system properties
193+
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID` and `LANGSMITH_ENDPOINT` environment variables
197194
LangsmithClient client = LangsmithOkHttpClient.fromEnv();
198195

199196
SessionDashboardParams params = SessionDashboardParams.builder()
@@ -213,8 +210,8 @@ import com.langchain.smith.models.sessions.CustomChartsSectionRequest;
213210
import com.langchain.smith.models.sessions.SessionDashboardParams;
214211
import java.util.concurrent.CompletableFuture;
215212

216-
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId`, `langchain.langsmithBearerToken`, `langchain.langsmithOrganizationId` and `langchain.baseUrl` system properties
217-
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID`, `LANGSMITH_BEARER_TOKEN`, `LANGSMITH_ORGANIZATION_ID` and `LANGSMITH_ENDPOINT` environment variables
213+
// Configures using the `langchain.langsmithApiKey`, `langchain.langsmithTenantId` and `langchain.baseUrl` system properties
214+
// Or configures using the `LANGSMITH_API_KEY`, `LANGSMITH_TENANT_ID` and `LANGSMITH_ENDPOINT` environment variables
218215
LangsmithClientAsync client = LangsmithOkHttpClientAsync.fromEnv();
219216

220217
SessionDashboardParams params = SessionDashboardParams.builder()

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
2-
id("org.jetbrains.dokka") version "2.0.0"
2+
id("org.jetbrains.dokka") version "2.2.0"
33
}
44

55
repositories {
@@ -8,7 +8,7 @@ repositories {
88

99
allprojects {
1010
group = "com.langchain.smith"
11-
version = "0.1.0-alpha.28" // x-release-please-version
11+
version = "0.1.0-beta.0" // x-release-please-version
1212
}
1313

1414
subprojects {

buildSrc/build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
plugins {
22
`kotlin-dsl`
3-
kotlin("jvm") version "2.1.20"
4-
id("com.vanniktech.maven.publish") version "0.28.0"
3+
kotlin("jvm") version "2.3.0"
4+
id("com.vanniktech.maven.publish") version "0.36.0"
55
}
66

77
repositories {
@@ -16,6 +16,6 @@ java {
1616
}
1717

1818
dependencies {
19-
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.20")
20-
implementation("com.vanniktech:gradle-maven-publish-plugin:0.28.0")
19+
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
20+
implementation("com.vanniktech:gradle-maven-publish-plugin:0.36.0")
2121
}

buildSrc/src/main/kotlin/langchain.publish.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import com.vanniktech.maven.publish.JavadocJar
22
import com.vanniktech.maven.publish.KotlinJvm
33
import com.vanniktech.maven.publish.MavenPublishBaseExtension
4-
import com.vanniktech.maven.publish.SonatypeHost
54

65
plugins {
76
id("com.vanniktech.maven.publish")
@@ -30,7 +29,7 @@ extra["signingInMemoryKeyPassword"] = System.getenv("GPG_SIGNING_PASSWORD")
3029
configure<MavenPublishBaseExtension> {
3130
if (!project.hasProperty("publishLocal")) {
3231
signAllPublications()
33-
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL)
32+
publishToMavenCentral()
3433
}
3534

3635
coordinates(project.group.toString(), project.name, project.version.toString())

langsmith-java-client-okhttp/src/main/kotlin/com/langchain/smith/client/okhttp/LangsmithOkHttpClient.kt

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,16 @@ class LangsmithOkHttpClient private constructor() {
271271
*/
272272
fun maxRetries(maxRetries: Int) = apply { clientOptions.maxRetries(maxRetries) }
273273

274+
/**
275+
* Whether run create/update calls should be automatically batched for tracing.
276+
*
277+
* Defaults to true. Set to false to send run create/update calls synchronously through the
278+
* single-run endpoints.
279+
*/
280+
fun autoBatchTracing(autoBatchTracing: Boolean) = apply {
281+
clientOptions.autoBatchTracing(autoBatchTracing)
282+
}
283+
274284
fun apiKey(apiKey: String?) = apply { clientOptions.apiKey(apiKey) }
275285

276286
/** Alias for calling [Builder.apiKey] with `apiKey.orElse(null)`. */
@@ -281,23 +291,6 @@ class LangsmithOkHttpClient private constructor() {
281291
/** Alias for calling [Builder.tenantId] with `tenantId.orElse(null)`. */
282292
fun tenantId(tenantId: Optional<String>) = tenantId(tenantId.getOrNull())
283293

284-
/**
285-
* Bearer tokens are used to authenticate from the UI. Must also specify x-tenant-id or
286-
* x-organization-id (for org scoped apis).
287-
*/
288-
fun bearerToken(bearerToken: String?) = apply { clientOptions.bearerToken(bearerToken) }
289-
290-
/** Alias for calling [Builder.bearerToken] with `bearerToken.orElse(null)`. */
291-
fun bearerToken(bearerToken: Optional<String>) = bearerToken(bearerToken.getOrNull())
292-
293-
fun organizationId(organizationId: String?) = apply {
294-
clientOptions.organizationId(organizationId)
295-
}
296-
297-
/** Alias for calling [Builder.organizationId] with `organizationId.orElse(null)`. */
298-
fun organizationId(organizationId: Optional<String>) =
299-
organizationId(organizationId.getOrNull())
300-
301294
fun headers(headers: Headers) = apply { clientOptions.headers(headers) }
302295

303296
fun headers(headers: Map<String, Iterable<String>>) = apply {

langsmith-java-client-okhttp/src/main/kotlin/com/langchain/smith/client/okhttp/LangsmithOkHttpClientAsync.kt

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,16 @@ class LangsmithOkHttpClientAsync private constructor() {
271271
*/
272272
fun maxRetries(maxRetries: Int) = apply { clientOptions.maxRetries(maxRetries) }
273273

274+
/**
275+
* Whether run create/update calls should be automatically batched for tracing.
276+
*
277+
* Defaults to true. Set to false to send run create/update calls through the single-run
278+
* endpoints.
279+
*/
280+
fun autoBatchTracing(autoBatchTracing: Boolean) = apply {
281+
clientOptions.autoBatchTracing(autoBatchTracing)
282+
}
283+
274284
fun apiKey(apiKey: String?) = apply { clientOptions.apiKey(apiKey) }
275285

276286
/** Alias for calling [Builder.apiKey] with `apiKey.orElse(null)`. */
@@ -281,23 +291,6 @@ class LangsmithOkHttpClientAsync private constructor() {
281291
/** Alias for calling [Builder.tenantId] with `tenantId.orElse(null)`. */
282292
fun tenantId(tenantId: Optional<String>) = tenantId(tenantId.getOrNull())
283293

284-
/**
285-
* Bearer tokens are used to authenticate from the UI. Must also specify x-tenant-id or
286-
* x-organization-id (for org scoped apis).
287-
*/
288-
fun bearerToken(bearerToken: String?) = apply { clientOptions.bearerToken(bearerToken) }
289-
290-
/** Alias for calling [Builder.bearerToken] with `bearerToken.orElse(null)`. */
291-
fun bearerToken(bearerToken: Optional<String>) = bearerToken(bearerToken.getOrNull())
292-
293-
fun organizationId(organizationId: String?) = apply {
294-
clientOptions.organizationId(organizationId)
295-
}
296-
297-
/** Alias for calling [Builder.organizationId] with `organizationId.orElse(null)`. */
298-
fun organizationId(organizationId: Optional<String>) =
299-
organizationId(organizationId.getOrNull())
300-
301294
fun headers(headers: Headers) = apply { clientOptions.headers(headers) }
302295

303296
fun headers(headers: Map<String, Iterable<String>>) = apply {

0 commit comments

Comments
 (0)