Skip to content

Commit e4614e4

Browse files
authored
Merge pull request #1 from ArcadeAI/release-please--branches--main--changes--next
release: 0.1.0-alpha.1
2 parents 7a33653 + 870e521 commit e4614e4

262 files changed

Lines changed: 2820 additions & 1701 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.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# This workflow is triggered when a GitHub release is created.
2+
# It can also be run manually to re-publish to Sonatype in case it failed for some reason.
3+
# You can run this workflow by navigating to https://www.github.com/ArcadeAI/arcade-java/actions/workflows/publish-sonatype.yml
4+
name: Publish Sonatype
5+
on:
6+
workflow_dispatch:
7+
8+
release:
9+
types: [published]
10+
11+
jobs:
12+
publish:
13+
name: publish
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Set up Java
20+
uses: actions/setup-java@v3
21+
with:
22+
distribution: temurin
23+
java-version: |
24+
8
25+
17
26+
cache: gradle
27+
28+
- name: Set up Gradle
29+
uses: gradle/gradle-build-action@v2
30+
31+
- name: Publish to Sonatype
32+
run: |-
33+
export -- GPG_SIGNING_KEY_ID
34+
printenv -- GPG_SIGNING_KEY | gpg --batch --passphrase-fd 3 --import 3<<< "$GPG_SIGNING_PASSWORD"
35+
GPG_SIGNING_KEY_ID="$(gpg --with-colons --list-keys | awk -F : -- '/^pub:/ { getline; print "0x" substr($10, length($10) - 7) }')"
36+
./gradlew publish
37+
env:
38+
SONATYPE_USERNAME: ${{ secrets.ARCADE_SONATYPE_USERNAME || secrets.SONATYPE_USERNAME }}
39+
SONATYPE_PASSWORD: ${{ secrets.ARCADE_SONATYPE_PASSWORD || secrets.SONATYPE_PASSWORD }}
40+
GPG_SIGNING_KEY: ${{ secrets.ARCADE_SONATYPE_GPG_SIGNING_KEY || secrets.GPG_SIGNING_KEY }}
41+
GPG_SIGNING_PASSWORD: ${{ secrets.ARCADE_SONATYPE_GPG_SIGNING_PASSWORD || secrets.GPG_SIGNING_PASSWORD }}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Release Doctor
2+
on:
3+
pull_request:
4+
branches:
5+
- main
6+
workflow_dispatch:
7+
8+
jobs:
9+
release_doctor:
10+
name: release doctor
11+
runs-on: ubuntu-latest
12+
if: github.repository == 'ArcadeAI/arcade-java' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Check release environment
18+
run: |
19+
bash ./bin/check-release-environment
20+
env:
21+
SONATYPE_USERNAME: ${{ secrets.ARCADE_SONATYPE_USERNAME || secrets.SONATYPE_USERNAME }}
22+
SONATYPE_PASSWORD: ${{ secrets.ARCADE_SONATYPE_PASSWORD || secrets.SONATYPE_PASSWORD }}
23+
GPG_SIGNING_KEY: ${{ secrets.ARCADE_SONATYPE_GPG_SIGNING_KEY || secrets.GPG_SIGNING_KEY }}
24+
GPG_SIGNING_PASSWORD: ${{ secrets.ARCADE_SONATYPE_GPG_SIGNING_PASSWORD || secrets.GPG_SIGNING_PASSWORD }}

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.1.0-alpha.1"
3+
}

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
configured_endpoints: 29
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-8446c4e394ac1eeeab4eea23ba29649287af8cf410607dc8eea7ad6ec7d39861.yml
1+
configured_endpoints: 30
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-4dc4e58ef402ce5362e0a8988b3928a8bfa0d5ba847f7ad8b14226a0cf282f28.yml

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Changelog
2+
3+
## 0.1.0-alpha.1 (2025-12-08)
4+
5+
Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/ArcadeAI/arcade-java/compare/v0.0.1-alpha.0...v0.1.0-alpha.1)
6+
7+
### Features
8+
9+
* **api:** api update ([f2a8654](https://github.com/ArcadeAI/arcade-java/commit/f2a8654351c4a197d666dcb2b2eb0190bcdab2e2))
10+
* **api:** api update ([867c358](https://github.com/ArcadeAI/arcade-java/commit/867c358d06c3d5af9306d304a4e41320b1c0c67b))
11+
12+
13+
### Chores
14+
15+
* configure new SDK language ([7a33653](https://github.com/ArcadeAI/arcade-java/commit/7a336537713407720db5315850b1f0fcd3f79442))
16+
* **internal:** update java config ([e61bcc1](https://github.com/ArcadeAI/arcade-java/commit/e61bcc109789d0c8546626df6f50f4487bfa4da8))
17+
* update SDK settings ([cb6b641](https://github.com/ArcadeAI/arcade-java/commit/cb6b641e3fc81f0640a0712edaf0d42e549cb236))
18+
19+
20+
### Documentation
21+
22+
* add source file links to readme ([1801e21](https://github.com/ArcadeAI/arcade-java/commit/1801e21404a817fe4d68fdf1969af49f088ce154))

README.md

Lines changed: 61 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# Arcade Java API Library
22

3-
[![Maven Central](https://img.shields.io/maven-central/v/com.arcade_engine.api/arcade-java)](https://central.sonatype.com/artifact/com.arcade_engine.api/arcade-java/0.0.1-alpha.0)
3+
<!-- x-release-please-start-version -->
4+
5+
[![Maven Central](https://img.shields.io/maven-central/v/dev.arcade/arcade-java)](https://central.sonatype.com/artifact/dev.arcade/arcade-java/0.1.0-alpha.1)
6+
7+
<!-- x-release-please-end -->
48

59
The Arcade Java SDK provides convenient access to the Arcade REST API from applications written in Java.
610

@@ -10,34 +14,38 @@ The REST API documentation can be found on [docs.arcade.dev](https://docs.arcade
1014

1115
## Installation
1216

17+
<!-- x-release-please-start-version -->
18+
1319
### Gradle
1420

1521
```kotlin
16-
implementation("com.arcade_engine.api:arcade-java:0.0.1-alpha.0")
22+
implementation("dev.arcade:arcade-java:0.1.0-alpha.1")
1723
```
1824

1925
### Maven
2026

2127
```xml
2228
<dependency>
23-
<groupId>com.arcade_engine.api</groupId>
29+
<groupId>dev.arcade</groupId>
2430
<artifactId>arcade-java</artifactId>
25-
<version>0.0.1-alpha.0</version>
31+
<version>0.1.0-alpha.1</version>
2632
</dependency>
2733
```
2834

35+
<!-- x-release-please-end -->
36+
2937
## Requirements
3038

3139
This library requires Java 8 or later.
3240

3341
## Usage
3442

3543
```java
36-
import com.arcade_engine.api.client.ArcadeClient;
37-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClient;
38-
import com.arcade_engine.api.models.ExecuteToolRequest;
39-
import com.arcade_engine.api.models.ExecuteToolResponse;
40-
import com.arcade_engine.api.models.ToolExecuteParams;
44+
import dev.arcade.client.ArcadeClient;
45+
import dev.arcade.client.okhttp.ArcadeOkHttpClient;
46+
import dev.arcade.models.ExecuteToolRequest;
47+
import dev.arcade.models.ExecuteToolResponse;
48+
import dev.arcade.models.ToolExecuteParams;
4149

4250
// Configures using the `ARCADE_API_KEY` environment variable
4351
ArcadeClient client = ArcadeOkHttpClient.fromEnv();
@@ -55,8 +63,8 @@ ExecuteToolResponse executeToolResponse = client.tools().execute(params);
5563
Configure the client using environment variables:
5664

5765
```java
58-
import com.arcade_engine.api.client.ArcadeClient;
59-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClient;
66+
import dev.arcade.client.ArcadeClient;
67+
import dev.arcade.client.okhttp.ArcadeOkHttpClient;
6068

6169
// Configures using the `ARCADE_API_KEY` environment variable
6270
ArcadeClient client = ArcadeOkHttpClient.fromEnv();
@@ -65,8 +73,8 @@ ArcadeClient client = ArcadeOkHttpClient.fromEnv();
6573
Or manually:
6674

6775
```java
68-
import com.arcade_engine.api.client.ArcadeClient;
69-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClient;
76+
import dev.arcade.client.ArcadeClient;
77+
import dev.arcade.client.okhttp.ArcadeOkHttpClient;
7078

7179
ArcadeClient client = ArcadeOkHttpClient.builder()
7280
.apiKey("My API Key")
@@ -76,8 +84,8 @@ ArcadeClient client = ArcadeOkHttpClient.builder()
7684
Or using a combination of the two approaches:
7785

7886
```java
79-
import com.arcade_engine.api.client.ArcadeClient;
80-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClient;
87+
import dev.arcade.client.ArcadeClient;
88+
import dev.arcade.client.okhttp.ArcadeOkHttpClient;
8189

8290
ArcadeClient client = ArcadeOkHttpClient.builder()
8391
// Configures using the `ARCADE_API_KEY` environment variable
@@ -115,11 +123,11 @@ Because each class is immutable, builder modification will _never_ affect alread
115123
The default client is synchronous. To switch to asynchronous execution, call the `async()` method:
116124

117125
```java
118-
import com.arcade_engine.api.client.ArcadeClient;
119-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClient;
120-
import com.arcade_engine.api.models.ExecuteToolRequest;
121-
import com.arcade_engine.api.models.ExecuteToolResponse;
122-
import com.arcade_engine.api.models.ToolExecuteParams;
126+
import dev.arcade.client.ArcadeClient;
127+
import dev.arcade.client.okhttp.ArcadeOkHttpClient;
128+
import dev.arcade.models.ExecuteToolRequest;
129+
import dev.arcade.models.ExecuteToolResponse;
130+
import dev.arcade.models.ToolExecuteParams;
123131
import java.util.concurrent.CompletableFuture;
124132

125133
// Configures using the `ARCADE_API_KEY` environment variable
@@ -136,11 +144,11 @@ CompletableFuture<ExecuteToolResponse> executeToolResponse = client.async().tool
136144
Or create an asynchronous client from the beginning:
137145

138146
```java
139-
import com.arcade_engine.api.client.ArcadeClientAsync;
140-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClientAsync;
141-
import com.arcade_engine.api.models.ExecuteToolRequest;
142-
import com.arcade_engine.api.models.ExecuteToolResponse;
143-
import com.arcade_engine.api.models.ToolExecuteParams;
147+
import dev.arcade.client.ArcadeClientAsync;
148+
import dev.arcade.client.okhttp.ArcadeOkHttpClientAsync;
149+
import dev.arcade.models.ExecuteToolRequest;
150+
import dev.arcade.models.ExecuteToolResponse;
151+
import dev.arcade.models.ToolExecuteParams;
144152
import java.util.concurrent.CompletableFuture;
145153

146154
// Configures using the `ARCADE_API_KEY` environment variable
@@ -160,7 +168,7 @@ The asynchronous client supports the same options as the synchronous one, except
160168

161169
The SDK throws custom unchecked exception types:
162170

163-
- [`ArcadeServiceException`](arcade-java-core/src/main/kotlin/com/arcade_engine/api/errors/ArcadeServiceException.kt): Base class for HTTP errors. See this table for which exception subclass is thrown for each HTTP status code:
171+
- [`ArcadeServiceException`](arcade-java-core/src/main/kotlin/dev/arcade/errors/ArcadeServiceException.kt): Base class for HTTP errors. See this table for which exception subclass is thrown for each HTTP status code:
164172

165173
| Status | Exception |
166174
| ------ | ------------------------------- |
@@ -173,11 +181,11 @@ The SDK throws custom unchecked exception types:
173181
| 5xx | `InternalServerException` |
174182
| others | `UnexpectedStatusCodeException` |
175183

176-
- [`ArcadeIoException`](arcade-java-core/src/main/kotlin/com/arcade_engine/api/errors/ArcadeIoException.kt): I/O networking errors.
184+
- [`ArcadeIoException`](arcade-java-core/src/main/kotlin/dev/arcade/errors/ArcadeIoException.kt): I/O networking errors.
177185

178-
- [`ArcadeInvalidDataException`](arcade-java-core/src/main/kotlin/com/arcade_engine/api/errors/ArcadeInvalidDataException.kt): Failure to interpret successfully parsed data. For example, when accessing a property that's supposed to be required, but the API unexpectedly omitted it from the response.
186+
- [`ArcadeInvalidDataException`](arcade-java-core/src/main/kotlin/dev/arcade/errors/ArcadeInvalidDataException.kt): Failure to interpret successfully parsed data. For example, when accessing a property that's supposed to be required, but the API unexpectedly omitted it from the response.
179187

180-
- [`ArcadeException`](arcade-java-core/src/main/kotlin/com/arcade_engine/api/errors/ArcadeException.kt): Base class for all exceptions. Most errors will result in one of the previously mentioned ones, but completely generic errors may be thrown using the base class.
188+
- [`ArcadeException`](arcade-java-core/src/main/kotlin/dev/arcade/errors/ArcadeException.kt): Base class for all exceptions. Most errors will result in one of the previously mentioned ones, but completely generic errors may be thrown using the base class.
181189

182190
## Logging
183191

@@ -214,8 +222,8 @@ The API may also explicitly instruct the SDK to retry or not retry a response.
214222
To set a custom number of retries, configure the client using the `maxRetries` method:
215223

216224
```java
217-
import com.arcade_engine.api.client.ArcadeClient;
218-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClient;
225+
import dev.arcade.client.ArcadeClient;
226+
import dev.arcade.client.okhttp.ArcadeOkHttpClient;
219227

220228
ArcadeClient client = ArcadeOkHttpClient.builder()
221229
.fromEnv()
@@ -230,9 +238,9 @@ Requests time out after 1 minute by default.
230238
To set a custom timeout, configure the method call using the `timeout` method:
231239

232240
```java
233-
import com.arcade_engine.api.models.ExecuteToolRequest;
234-
import com.arcade_engine.api.models.ExecuteToolResponse;
235-
import com.arcade_engine.api.models.ToolExecuteParams;
241+
import dev.arcade.models.ExecuteToolRequest;
242+
import dev.arcade.models.ExecuteToolResponse;
243+
import dev.arcade.models.ToolExecuteParams;
236244

237245
ExecuteToolResponse executeToolResponse = client.tools().execute(
238246
params, RequestOptions.builder().timeout(Duration.ofSeconds(30)).build()
@@ -242,8 +250,8 @@ ExecuteToolResponse executeToolResponse = client.tools().execute(
242250
Or configure the default for all method calls at the client level:
243251

244252
```java
245-
import com.arcade_engine.api.client.ArcadeClient;
246-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClient;
253+
import dev.arcade.client.ArcadeClient;
254+
import dev.arcade.client.okhttp.ArcadeOkHttpClient;
247255
import java.time.Duration;
248256

249257
ArcadeClient client = ArcadeOkHttpClient.builder()
@@ -257,8 +265,8 @@ ArcadeClient client = ArcadeOkHttpClient.builder()
257265
To route requests through a proxy, configure the client using the `proxy` method:
258266

259267
```java
260-
import com.arcade_engine.api.client.ArcadeClient;
261-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClient;
268+
import dev.arcade.client.ArcadeClient;
269+
import dev.arcade.client.okhttp.ArcadeOkHttpClient;
262270
import java.net.InetSocketAddress;
263271
import java.net.Proxy;
264272

@@ -281,8 +289,8 @@ The SDK is typed for convenient usage of the documented API. However, it also su
281289
To set undocumented parameters, call the `putAdditionalHeader`, `putAdditionalQueryParam`, or `putAdditionalBodyProperty` methods on any `Params` class:
282290

283291
```java
284-
import com.arcade_engine.api.core.JsonValue;
285-
import com.arcade_engine.api.models.ToolExecuteParams;
292+
import dev.arcade.core.JsonValue;
293+
import dev.arcade.models.ToolExecuteParams;
286294

287295
ToolExecuteParams params = ToolExecuteParams.builder()
288296
.putAdditionalHeader("Secret-Header", "42")
@@ -293,11 +301,11 @@ ToolExecuteParams params = ToolExecuteParams.builder()
293301

294302
These can be accessed on the built object later using the `_additionalHeaders()`, `_additionalQueryParams()`, and `_additionalBodyProperties()` methods. You can also set undocumented parameters on nested headers, query params, or body classes using the `putAdditionalProperty` method. These properties can be accessed on the built object later using the `_additionalProperties()` method.
295303

296-
To set a documented parameter or property to an undocumented or not yet supported _value_, pass a [`JsonValue`](arcade-java-core/src/main/kotlin/com/arcade_engine/api/core/JsonValue.kt) object to its setter:
304+
To set a documented parameter or property to an undocumented or not yet supported _value_, pass a [`JsonValue`](arcade-java-core/src/main/kotlin/dev/arcade/core/JsonValue.kt) object to its setter:
297305

298306
```java
299-
import com.arcade_engine.api.models.ExecuteToolRequest;
300-
import com.arcade_engine.api.models.ToolExecuteParams;
307+
import dev.arcade.models.ExecuteToolRequest;
308+
import dev.arcade.models.ToolExecuteParams;
301309

302310
ToolExecuteParams params = ToolExecuteParams.builder()
303311
.executeToolRequest(ExecuteToolRequest.builder()
@@ -311,7 +319,7 @@ ToolExecuteParams params = ToolExecuteParams.builder()
311319
To access undocumented response properties, call the `_additionalProperties()` method:
312320

313321
```java
314-
import com.arcade_engine.api.core.JsonValue;
322+
import dev.arcade.core.JsonValue;
315323
import java.util.Map;
316324

317325
Map<String, JsonValue> additionalProperties = client.tools().execute(params)._additionalProperties();
@@ -341,7 +349,7 @@ String result = secretPropertyValue.accept(new JsonValue.Visitor<>() {
341349
To access a property's raw JSON value, which may be undocumented, call its `_` prefixed method:
342350

343351
```java
344-
import com.arcade_engine.api.core.JsonField;
352+
import dev.arcade.core.JsonField;
345353
import java.util.Optional;
346354

347355
JsonField<Object> field = client.tools().execute(params)._field();
@@ -364,22 +372,22 @@ if (field.isMissing()) {
364372

365373
In rare cases, the API may return a response that doesn't match the expected type. For example, the SDK may expect a property to contain a `String`, but the API could return something else.
366374

367-
By default, the SDK will not throw an exception in this case. It will throw [`ArcadeInvalidDataException`](arcade-java-core/src/main/kotlin/com/arcade_engine/api/errors/ArcadeInvalidDataException.kt) only if you directly access the property.
375+
By default, the SDK will not throw an exception in this case. It will throw [`ArcadeInvalidDataException`](arcade-java-core/src/main/kotlin/dev/arcade/errors/ArcadeInvalidDataException.kt) only if you directly access the property.
368376

369377
If you would prefer to check that the response is completely well-typed upfront, then either call `validate()`:
370378

371379
```java
372-
import com.arcade_engine.api.models.ExecuteToolResponse;
380+
import dev.arcade.models.ExecuteToolResponse;
373381

374382
ExecuteToolResponse executeToolResponse = client.tools().execute(params).validate();
375383
```
376384

377385
Or configure the method call to validate the response using the `responseValidation` method:
378386

379387
```java
380-
import com.arcade_engine.api.models.ExecuteToolRequest;
381-
import com.arcade_engine.api.models.ExecuteToolResponse;
382-
import com.arcade_engine.api.models.ToolExecuteParams;
388+
import dev.arcade.models.ExecuteToolRequest;
389+
import dev.arcade.models.ExecuteToolResponse;
390+
import dev.arcade.models.ToolExecuteParams;
383391

384392
ExecuteToolResponse executeToolResponse = client.tools().execute(
385393
params, RequestOptions.builder().responseValidation(true).build()
@@ -389,8 +397,8 @@ ExecuteToolResponse executeToolResponse = client.tools().execute(
389397
Or configure the default for all method calls at the client level:
390398

391399
```java
392-
import com.arcade_engine.api.client.ArcadeClient;
393-
import com.arcade_engine.api.client.okhttp.ArcadeOkHttpClient;
400+
import dev.arcade.client.ArcadeClient;
401+
import dev.arcade.client.okhttp.ArcadeOkHttpClient;
394402

395403
ArcadeClient client = ArcadeOkHttpClient.builder()
396404
.fromEnv()
@@ -436,4 +444,4 @@ This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) con
436444

437445
We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.
438446

439-
We are keen for your feedback; please open an [issue](https://www.github.com/stainless-sdks/arcade-engine-java/issues) with questions, bugs, or suggestions.
447+
We are keen for your feedback; please open an [issue](https://www.github.com/ArcadeAI/arcade-java/issues) with questions, bugs, or suggestions.

0 commit comments

Comments
 (0)