Skip to content

Commit 4a640c1

Browse files
release: 0.1.0-alpha.2 (#2)
* chore(internal): codegen related update * codegen metadata * codegen metadata * codegen metadata * docs: add more examples * feat(api): api update * codegen metadata * feat(client): add `HttpRequest#url()` method * feat(client): allow configuring dispatcher executor service * codegen metadata * chore(internal): support uploading Maven repo artifacts to stainless package server * refactor(client): handling of absent pagination total * chore(internal): clean up maven repo artifact script and add html documentation to repo root * codegen metadata * codegen metadata * chore: test on Jackson 2.14.0 to avoid encountering FasterXML/jackson-databind#3240 in tests fix: date time deserialization leniency * chore(internal): improve maven repo docs * fix(client): disallow coercion from float to int * chore(internal): update `actions/checkout` version * fix(client): fully respect max retries fix(client): send retry count header for max retries 0 chore(internal): depend on packages directly in example * chore(ci): upgrade `actions/setup-java` * chore(internal): update maven repo doc to include authentication * feat(client): send `X-Stainless-Kotlin-Version` header * feat(api): api update * fix(tests): add missing query/header params * docs: add comment for arbitrary value fields * chore(internal): correct cache invalidation for `SKIP_MOCK_TESTS` * fix(client): preserve time zone in lenient date-time parsing * chore(ci): upgrade `actions/github-script` * codegen metadata * codegen metadata * chore(internal): allow passing args to `./scripts/test` * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * chore(internal): upgrade AssertJ * codegen metadata * codegen metadata * feat(api): api update * Add CONTRIBUTING.md (#4) * Add a simple tool call example (#5) This example uses the Spotify.ResumePlayback tool * Add AuthService util methods to make getting started with Arcade easier (#6) Adds `client.auth().start(...)` and `client.auth().waitForCompletion(...)` In the async client: `asyncClient.auth().start()`, async clients must handle blocking polling call manually. * feat(api): api update * chore(internal): update `TestServerExtension` comment * feat(api): api update * chore(internal): make `OkHttp` constructor internal * feat(client): add connection pooling option * feat(api): api update * codegen metadata * chore: make `Properties` more resilient to `null` * chore: drop apache dependency * chore(internal): expand imports * feat(api): api update * feat(api): api update * Add Spring Boot starter for Arcade SDK (#8) * Add Spring Boot starter for Arcade SDK * Adds Spring AI example * feat: add Java-friendly convenience methods for JsonValue and tool response output (#9) * Cleanup and add more example code (#10) * Simplify and cleanup examples * Add examples from documentation * release: 0.1.0-alpha.2 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: Brian Demers <brian.demers@gmail.com>
1 parent e4614e4 commit 4a640c1

389 files changed

Lines changed: 63132 additions & 28934 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.

.github/workflows/ci.yml

Lines changed: 64 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,103 @@
11
name: CI
22
on:
33
push:
4-
branches:
5-
- main
4+
branches-ignore:
5+
- 'generated'
6+
- 'codegen/**'
7+
- 'integrated/**'
8+
- 'stl-preview-head/**'
9+
- 'stl-preview-base/**'
610
pull_request:
7-
branches:
8-
- main
9-
- next
11+
branches-ignore:
12+
- 'stl-preview-head/**'
13+
- 'stl-preview-base/**'
1014

1115
jobs:
1216
lint:
17+
timeout-minutes: 15
1318
name: lint
14-
runs-on: ubuntu-latest
15-
19+
runs-on: ${{ github.repository == 'stainless-sdks/arcade-engine-java' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
20+
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
1621

1722
steps:
18-
- uses: actions/checkout@v4
23+
- uses: actions/checkout@v6
1924

2025
- name: Set up Java
21-
uses: actions/setup-java@v4
26+
uses: actions/setup-java@v5
2227
with:
2328
distribution: temurin
2429
java-version: |
2530
8
26-
17
31+
21
2732
cache: gradle
2833

2934
- name: Set up Gradle
3035
uses: gradle/actions/setup-gradle@v4
3136

3237
- name: Run lints
3338
run: ./scripts/lint
39+
40+
build:
41+
timeout-minutes: 15
42+
name: build
43+
permissions:
44+
contents: read
45+
id-token: write
46+
runs-on: ${{ github.repository == 'stainless-sdks/arcade-engine-java' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
47+
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
48+
49+
steps:
50+
- uses: actions/checkout@v6
51+
52+
- name: Set up Java
53+
uses: actions/setup-java@v5
54+
with:
55+
distribution: temurin
56+
java-version: |
57+
8
58+
21
59+
cache: gradle
60+
61+
- name: Set up Gradle
62+
uses: gradle/actions/setup-gradle@v4
63+
64+
- name: Build SDK
65+
run: ./scripts/build
66+
67+
- name: Get GitHub OIDC Token
68+
if: github.repository == 'stainless-sdks/arcade-engine-java'
69+
id: github-oidc
70+
uses: actions/github-script@v8
71+
with:
72+
script: core.setOutput('github_token', await core.getIDToken());
73+
74+
- name: Build and upload Maven artifacts
75+
if: github.repository == 'stainless-sdks/arcade-engine-java'
76+
env:
77+
URL: https://pkg.stainless.com/s
78+
AUTH: ${{ steps.github-oidc.outputs.github_token }}
79+
SHA: ${{ github.sha }}
80+
PROJECT: arcade-engine-java
81+
run: ./scripts/upload-artifacts
3482
test:
83+
timeout-minutes: 15
3584
name: test
36-
runs-on: ubuntu-latest
37-
85+
runs-on: ${{ github.repository == 'stainless-sdks/arcade-engine-java' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
86+
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
3887
steps:
39-
- uses: actions/checkout@v4
88+
- uses: actions/checkout@v6
4089

4190
- name: Set up Java
42-
uses: actions/setup-java@v4
91+
uses: actions/setup-java@v5
4392
with:
4493
distribution: temurin
4594
java-version: |
4695
8
47-
17
96+
21
4897
cache: gradle
4998

5099
- name: Set up Gradle
51100
uses: gradle/gradle-build-action@v2
52101

53102
- name: Run tests
54103
run: ./scripts/test
55-

.github/workflows/publish-sonatype.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ jobs:
1414
runs-on: ubuntu-latest
1515

1616
steps:
17-
- uses: actions/checkout@v4
17+
- uses: actions/checkout@v6
1818

1919
- name: Set up Java
20-
uses: actions/setup-java@v3
20+
uses: actions/setup-java@v5
2121
with:
2222
distribution: temurin
2323
java-version: |
2424
8
25-
17
25+
21
2626
cache: gradle
2727

2828
- name: Set up Gradle
@@ -33,7 +33,7 @@ jobs:
3333
export -- GPG_SIGNING_KEY_ID
3434
printenv -- GPG_SIGNING_KEY | gpg --batch --passphrase-fd 3 --import 3<<< "$GPG_SIGNING_PASSWORD"
3535
GPG_SIGNING_KEY_ID="$(gpg --with-colons --list-keys | awk -F : -- '/^pub:/ { getline; print "0x" substr($10, length($10) - 7) }')"
36-
./gradlew publish
36+
./gradlew publish --no-configuration-cache
3737
env:
3838
SONATYPE_USERNAME: ${{ secrets.ARCADE_SONATYPE_USERNAME || secrets.SONATYPE_USERNAME }}
3939
SONATYPE_PASSWORD: ${{ secrets.ARCADE_SONATYPE_PASSWORD || secrets.SONATYPE_PASSWORD }}

.github/workflows/release-doctor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
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')
1313

1414
steps:
15-
- uses: actions/checkout@v4
15+
- uses: actions/checkout@v6
1616

1717
- name: Check release environment
1818
run: |

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.prism.log
22
.gradle
33
.idea
4-
build
4+
.kotlin
5+
build/
56
codegen.log
67
kls_database.db

.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.1"
2+
".": "0.1.0-alpha.2"
33
}

.stats.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
configured_endpoints: 30
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-4dc4e58ef402ce5362e0a8988b3928a8bfa0d5ba847f7ad8b14226a0cf282f28.yml
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-6ff494eafa2c154892716407682bb2296cff4f18c45765c5fb16bdf36f452ae1.yml
3+
openapi_spec_hash: 63dde2481a7d51042a241bfba232b0b0
4+
config_hash: bf64816643634a621cd0ffd93d9c4347

CHANGELOG.md

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

3+
## 0.1.0-alpha.2 (2026-02-28)
4+
5+
Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/ArcadeAI/arcade-java/compare/v0.1.0-alpha.1...v0.1.0-alpha.2)
6+
7+
### Features
8+
9+
* add Java-friendly convenience methods for JsonValue and tool response output ([#9](https://github.com/ArcadeAI/arcade-java/issues/9)) ([c44efc8](https://github.com/ArcadeAI/arcade-java/commit/c44efc838f588171cb9f5dc2ab75be58479567fc))
10+
* **api:** api update ([1c45d3e](https://github.com/ArcadeAI/arcade-java/commit/1c45d3ed9c42bcf23ffc18c4877599e5d793b4dc))
11+
* **api:** api update ([bb94f57](https://github.com/ArcadeAI/arcade-java/commit/bb94f5702271dd02242fcf349e4f6a454ba5cbda))
12+
* **api:** api update ([04fcbf1](https://github.com/ArcadeAI/arcade-java/commit/04fcbf1d46d1556e107f33d49e72ed906c2fabf8))
13+
* **api:** api update ([6b1998f](https://github.com/ArcadeAI/arcade-java/commit/6b1998f5e5b4be5fc38204fa5176a6cba6758cf3))
14+
* **api:** api update ([cb15386](https://github.com/ArcadeAI/arcade-java/commit/cb1538608fd7d030860ed13ed1ffcf6b01d94a28))
15+
* **api:** api update ([d965caa](https://github.com/ArcadeAI/arcade-java/commit/d965caad240981417886b04d41b7cfb6c6807425))
16+
* **api:** api update ([5f47131](https://github.com/ArcadeAI/arcade-java/commit/5f471314476dfce0cd0595fbdcabf7119ffd8266))
17+
* **api:** api update ([8edb811](https://github.com/ArcadeAI/arcade-java/commit/8edb811c4e9729e9b5ddc88a694bf9b81834327b))
18+
* **api:** api update ([bdacc08](https://github.com/ArcadeAI/arcade-java/commit/bdacc081f002a2ea9e44b4b8577b3f0f419a7f9d))
19+
* **client:** add `HttpRequest#url()` method ([8840c08](https://github.com/ArcadeAI/arcade-java/commit/8840c08871296bd8c8954e69d8b8d9a215383e28))
20+
* **client:** add connection pooling option ([c227e1f](https://github.com/ArcadeAI/arcade-java/commit/c227e1f817f7cc5bc96d545854a85709d1c9abfb))
21+
* **client:** allow configuring dispatcher executor service ([6a9cf95](https://github.com/ArcadeAI/arcade-java/commit/6a9cf95d67e77e46159d652442250d93aeb9b1a7))
22+
* **client:** send `X-Stainless-Kotlin-Version` header ([4708f4d](https://github.com/ArcadeAI/arcade-java/commit/4708f4d106ba6d1e250f652da7155f92a0be3a60))
23+
24+
25+
### Bug Fixes
26+
27+
* **client:** disallow coercion from float to int ([a73ee11](https://github.com/ArcadeAI/arcade-java/commit/a73ee115e09984525883d5334ceb6b5afad7934e))
28+
* **client:** fully respect max retries ([ff68350](https://github.com/ArcadeAI/arcade-java/commit/ff68350ed3a78064eee3dc46c2caccd71faf5f97))
29+
* **client:** preserve time zone in lenient date-time parsing ([ab98898](https://github.com/ArcadeAI/arcade-java/commit/ab988986ff4782e4218f189bd1cee26138a66516))
30+
* **client:** send retry count header for max retries 0 ([ff68350](https://github.com/ArcadeAI/arcade-java/commit/ff68350ed3a78064eee3dc46c2caccd71faf5f97))
31+
* date time deserialization leniency ([f7f0332](https://github.com/ArcadeAI/arcade-java/commit/f7f0332fbd4e6bb3de2f0738ca1072a2ccfed169))
32+
* **tests:** add missing query/header params ([63d142a](https://github.com/ArcadeAI/arcade-java/commit/63d142a789cd0bd2170cfb30ea04d0f9ff8cd6d5))
33+
34+
35+
### Chores
36+
37+
* **ci:** upgrade `actions/github-script` ([bc708e6](https://github.com/ArcadeAI/arcade-java/commit/bc708e664167b55d6da8adc5e5b5248151dd76fb))
38+
* **ci:** upgrade `actions/setup-java` ([cb10ea7](https://github.com/ArcadeAI/arcade-java/commit/cb10ea791a3ef48655eafe4cf0a42691cad4794d))
39+
* drop apache dependency ([cbf0f1e](https://github.com/ArcadeAI/arcade-java/commit/cbf0f1eab15563592bed7c6be68b11a38de68a5c))
40+
* **internal:** allow passing args to `./scripts/test` ([09fdab4](https://github.com/ArcadeAI/arcade-java/commit/09fdab4518905c63d49be270b68517c1b3e1436a))
41+
* **internal:** clean up maven repo artifact script and add html documentation to repo root ([54eaec7](https://github.com/ArcadeAI/arcade-java/commit/54eaec7dc0bc56c4059e5bdbf087cd14119e8f3e))
42+
* **internal:** codegen related update ([2a1703d](https://github.com/ArcadeAI/arcade-java/commit/2a1703d633b6f1ef888c84bb0f97a489707fdf2b))
43+
* **internal:** correct cache invalidation for `SKIP_MOCK_TESTS` ([3aa593e](https://github.com/ArcadeAI/arcade-java/commit/3aa593e3a04a5cb8d5d06d856fce71384550dfc1))
44+
* **internal:** depend on packages directly in example ([ff68350](https://github.com/ArcadeAI/arcade-java/commit/ff68350ed3a78064eee3dc46c2caccd71faf5f97))
45+
* **internal:** expand imports ([161104e](https://github.com/ArcadeAI/arcade-java/commit/161104ee63b0976f5d826af2e741c8f5174fe3e3))
46+
* **internal:** improve maven repo docs ([19dfe71](https://github.com/ArcadeAI/arcade-java/commit/19dfe71adecbf10499e215da519ad33829056e35))
47+
* **internal:** make `OkHttp` constructor internal ([6976ff2](https://github.com/ArcadeAI/arcade-java/commit/6976ff257c45b8eee1f6cc0ce942381aa87d6665))
48+
* **internal:** support uploading Maven repo artifacts to stainless package server ([1587d95](https://github.com/ArcadeAI/arcade-java/commit/1587d95ebf6354001281ddf48f90c6975d0ff42e))
49+
* **internal:** update `actions/checkout` version ([4e3d119](https://github.com/ArcadeAI/arcade-java/commit/4e3d1190db673cb73830d46e8f33ddd3282c081b))
50+
* **internal:** update `TestServerExtension` comment ([3d433ba](https://github.com/ArcadeAI/arcade-java/commit/3d433bafa9702fa980cff7ad77a6ae6d5c5406ac))
51+
* **internal:** update maven repo doc to include authentication ([9293d09](https://github.com/ArcadeAI/arcade-java/commit/9293d093fdfa5b73def69fa6ee378b9ed4a7c0b5))
52+
* **internal:** upgrade AssertJ ([83fbe85](https://github.com/ArcadeAI/arcade-java/commit/83fbe85d88fb970705ba160c9ecd78711aba0066))
53+
* make `Properties` more resilient to `null` ([a6e14e5](https://github.com/ArcadeAI/arcade-java/commit/a6e14e52dff5cb2d1bd22e47f62f9bc922dd9dfb))
54+
* test on Jackson 2.14.0 to avoid encountering FasterXML/jackson-databind[#3240](https://github.com/ArcadeAI/arcade-java/issues/3240) in tests ([f7f0332](https://github.com/ArcadeAI/arcade-java/commit/f7f0332fbd4e6bb3de2f0738ca1072a2ccfed169))
55+
56+
57+
### Documentation
58+
59+
* add comment for arbitrary value fields ([5697f14](https://github.com/ArcadeAI/arcade-java/commit/5697f14e1f875679a2c99990f3600776a58ad4b1))
60+
* add more examples ([ad5a7c6](https://github.com/ArcadeAI/arcade-java/commit/ad5a7c6b1a79255af06b764c2d609699b68414c9))
61+
62+
63+
### Refactors
64+
65+
* **client:** handling of absent pagination total ([d44e78d](https://github.com/ArcadeAI/arcade-java/commit/d44e78daeaf4a3421cc39102c78920cfc6f20322))
66+
367
## 0.1.0-alpha.1 (2025-12-08)
468

569
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)

CONTRIBUTING.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
## Modifying/Adding code
2+
3+
Most of the SDK is generated code. Modifications to code will be persisted between generations, but may
4+
result in merge conflicts between manual patches and changes from the generator. The generator will never
5+
modify the contents of the `arcade-java/lib/` and `arcade-java-examples/` directories.
6+
7+
## Adding and running examples
8+
9+
Set the following environment variables:
10+
11+
| ENV Var | Description |
12+
|-------------------|-------------------------------------------------------------------------|
13+
| `ARCADE_USER_ID` | Arcade user Id or email address |
14+
| `ARCADE_API_KEY` | [Arcade API key](https://docs.arcade.dev/en/get-started/setup/api-keys) |
15+
| `ARCADE_BASE_URL` | Arcade URL, defaults to: `https://api.arcade.dev` |
16+
17+
Use `./gradlew :arcade-java-example:run -Pexample=<Name>` to run `<Name>Example`
18+
19+
For example, if you have the `potify.ResumePlayback` tool configured, you can run:
20+
```shell
21+
export ARCADE_API_KEY='your-api-key'
22+
export ARCADE_USER_ID='your-arcade-user'
23+
./gradlew :arcade-java-example:run -Pexample=PlaySpotify
24+
```
25+
26+
## Building the repository from source
27+
28+
If you’d like to use the repository from source, you can build and install it from git:
29+
30+
```sh
31+
git clone git@github.com/ArcadeAI/arcade-java.git
32+
SKIP_MOCK_TESTS=true ./gradlew build publishToMavenLocal # This will skip the integration tests, see below on info on how to run them.
33+
```
34+
## Running tests
35+
36+
Most tests require you to [run a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests.
37+
38+
```sh
39+
# you will need npm installed
40+
./scripts/mock --daemon
41+
```
42+
43+
The mock serer will run in the background allowing you to run tests from the command line `./gradlew test` or from your IDE.
44+
45+
To stop the mock server run:
46+
```shell
47+
pkill -f prism
48+
```
49+
50+
## Linting and formatting
51+
52+
This repository uses [Spotless](https://github.com/diffplug/spotless/tree/main/plugin-gradle) to lint and format the code in the repository.
53+
54+
To lint:
55+
56+
```sh
57+
$ ./scripts/lint
58+
```
59+
60+
To format and fix all issues automatically:
61+
62+
```sh
63+
$ ./scripts/format
64+
```

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright 2025 Arcade
1+
Copyright 2026 Arcade
22

33
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
44

0 commit comments

Comments
 (0)