Files
sdk/settings.gradle.kts
zeekay 9f5d814fc2 ship one client, not two
This repo carried two clients for the same API: hanzo-kotlin-cloud, generated
from the openapi.yaml hanzoai/cloud emits from its own routers, and
hanzo-kotlin-core, a second hand-shaped client with its own okhttp transport,
umbrella, example and proguard modules.

Two clients for one API is two answers to one question, and a caller has no way
to tell which answer is current. Only one of them can be. The generated client
is a projection of the document at a named ref and digest, so it tracks the API
by construction; the other tracked whatever was last typed into it, which is why
it no longer compiled. Delete the hand-shaped one. Nothing is published to Maven
Central under either name, so no consumer breaks, and java-sdk already ships
exactly one client.

Removed with it: hanzo-kotlin-client-okhttp (core's transport, and meaningful
only as that), hanzo-kotlin (an umbrella that re-exported the transport),
hanzo-kotlin-example (a build file with no sources), hanzo-kotlin-proguard-test
(it tested core's keep rules), hanzo-kotlin-lib (a .keep), .stats.yml (it
recorded the spec the deleted client was cut from), and bin/check-release-
environment (it asserted secret names the release lane no longer uses).

The build gate had been narrowed to a hand-listed subset of modules, with a
comment to widen it back to ./scripts/build the day hanzo-kotlin-core compiles.
Every module is now part of the one client, so the gate is the whole build
again.

The rest is the same principle applied to what described the two: settings.gradle
names the one module rather than scanning the root for directories, the group is
ai.hanzo everywhere instead of one group per client line, and README, CLAUDE.md
and SECURITY.md describe the client that exists. hanzo-kotlin-cloud/README.md
goes too -- a second README for one module, already drifted, claiming 263 API
classes where the tree has 192.

Verified from clean with the build cache off: :hanzo-kotlin-cloud:assemble
compiles all 2666 generated sources in 4m 5s, all six examples assemble, and
the flow tests pass.
2026-08-14 13:39:11 -07:00

12 lines
577 B
Kotlin

rootProject.name = "kotlin-sdk"
// hanzo-kotlin-cloud is the client. It is named here rather than discovered by
// scanning the root for directories, because a scan answers "what happens to be
// on disk" when the question is "what does this repo publish".
include("hanzo-kotlin-cloud")
// The six canonical example flows (hanzoai/openapi `flows.yaml`), built by the
// same `./scripts/build` that builds the client. An example that does not
// compile is worse than no example.
listOf("hello", "chat", "money", "store", "agent", "tools").forEach { include("examples:$it") }