docs: describe the shipped SDK surface instead of the 2026-05 scaffold status
Some checks failed
Security / Security check (push) Failing after 1s
Some checks failed
Security / Security check (push) Failing after 1s
README still claimed generated bindings would land later and Studio ran on mock data; CHANGELOG was the create-package stub. Both now state the actual surface (full Hub+HubAdmin client, streaming, detached invocations, gRPC + gRPC-Web, bearer auth) and the path/git-dep distribution model. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
c46dc58ac3
commit
51cdd6ea91
2 changed files with 57 additions and 25 deletions
25
CHANGELOG.md
25
CHANGELOG.md
|
|
@ -1,3 +1,24 @@
|
||||||
## 1.0.0
|
# Changelog
|
||||||
|
|
||||||
- Initial version.
|
The SDK version tracks the platform release that shipped the
|
||||||
|
matching wire surface; see the platform repo's `CHANGELOG.md`
|
||||||
|
for the authoritative per-release detail.
|
||||||
|
|
||||||
|
## 0.18.x (current)
|
||||||
|
|
||||||
|
- Full Hub + HubAdmin coverage: `submit` (incl. `detach:`),
|
||||||
|
`submitStreaming`, `runSavedFlow` (text/bytes/json inputs),
|
||||||
|
detached invocation status/result/cancel, saved flows, store +
|
||||||
|
module management, audit (`eventLog`, `streamEvents`,
|
||||||
|
`verifyEventChain`), approvals, federation admin
|
||||||
|
(`listSatellites`, `issueBootstrapToken`, `revokeSatellite`),
|
||||||
|
MCP/n8n endpoint management, System-AI administration.
|
||||||
|
- Bearer-token auth via `HubClient(authToken:)`.
|
||||||
|
- Native gRPC + gRPC-Web transports (conditional import).
|
||||||
|
- Generated bindings for the renamed `chain.v1` wire package.
|
||||||
|
|
||||||
|
## Earlier
|
||||||
|
|
||||||
|
- 0.x line grew alongside the platform (package started as a
|
||||||
|
scaffold named `fai_client_sdk`, renamed to
|
||||||
|
`chain_client_sdk` in the product rename, 2026-06).
|
||||||
|
|
|
||||||
55
README.md
55
README.md
|
|
@ -1,25 +1,36 @@
|
||||||
# chain_client_sdk (Dart)
|
# chain_client_sdk (Dart)
|
||||||
|
|
||||||
gRPC client SDK for the Ch∆In hub. Used by F∆I Studio
|
gRPC client SDK for the Ch∆In hub. Used by Ch∆In Studio
|
||||||
(Tier-2 generic GUI) and any Tier-3 Dart/Flutter domain app
|
(Tier-2 generic GUI) and any Tier-3 Dart/Flutter domain app
|
||||||
that wants to talk to a running `fai serve`.
|
that wants to talk to a running `chain serve`.
|
||||||
|
|
||||||
One of the three SDK families documented in
|
One of the three SDK families documented in the platform repo
|
||||||
`fai/platform/docs/architecture/sdks.md`:
|
(`docs/architecture/client-sdks.md`):
|
||||||
|
|
||||||
* `fai-module-sdk` (Rust) — flow modules
|
* `chain-module-sdk` (Rust) — flow modules
|
||||||
* `fai-plugin-sdk` (Rust) — Studio plugins
|
* `chain-plugin-sdk` (Rust) — Studio plugins
|
||||||
* `chain_client_sdk` (Dart) — clients ← this package
|
* `chain_client_sdk` (Dart) — clients ← this package
|
||||||
|
|
||||||
Dir / repo carries the `_dart` / `-dart` language suffix
|
Dir / repo carries the `_dart` / `-dart` language suffix
|
||||||
(`chain_client_sdk_dart` / `client-sdk-dart`); the Dart package
|
(`fai_chain_client_sdk_dart` / `chain-client-sdk-dart`); the
|
||||||
name itself does not (Dart-land doesn't need the suffix).
|
Dart package name itself does not (Dart-land doesn't need the
|
||||||
|
suffix).
|
||||||
|
|
||||||
> **Status (2026-05-05):** scaffold. Public surface (`HubClient`,
|
> **Status:** functional and in production use by Studio. The
|
||||||
> `HubEndpoint`) is committed; generated proto bindings land in
|
> generated proto bindings (`lib/src/generated/chain/v1/`) are
|
||||||
> a follow-up commit once the codegen step is wired in. Until
|
> committed and pinned to the platform's wire protocol
|
||||||
> then, downstream apps can compile against the stub and Studio
|
> (`chain.v1`). `HubClient` exposes the full Hub + HubAdmin
|
||||||
> uses mock data.
|
> surface — flow execution (`submit` incl. `detach`,
|
||||||
|
> `submitStreaming`, `runSavedFlow`), detached-invocation
|
||||||
|
> status/result/cancel, saved flows, store + module management,
|
||||||
|
> audit log (`eventLog`, `streamEvents`, `verifyEventChain`),
|
||||||
|
> approvals, federation admin, MCP/n8n endpoint management,
|
||||||
|
> System-AI administration, and bearer-token auth
|
||||||
|
> (`HubClient(authToken:)`). Works over native gRPC (desktop /
|
||||||
|
> CLI) and gRPC-Web (browser) via conditional channel factories.
|
||||||
|
>
|
||||||
|
> Not yet published to pub.dev (`publish_to: none`) — consume it
|
||||||
|
> as a path or git dependency.
|
||||||
|
|
||||||
## Why a separate SDK package
|
## Why a separate SDK package
|
||||||
|
|
||||||
|
|
@ -35,29 +46,29 @@ boilerplate. This package centralises that work:
|
||||||
## Layout
|
## Layout
|
||||||
|
|
||||||
```
|
```
|
||||||
chain_client_sdk_dart/
|
fai_chain_client_sdk_dart/
|
||||||
├── lib/
|
├── lib/
|
||||||
│ ├── chain_client_sdk.dart # Public API
|
│ ├── chain_client_sdk.dart # Public API
|
||||||
│ └── src/
|
│ └── src/
|
||||||
│ ├── hub_client.dart # Typed client wrapper
|
│ ├── hub_client.dart # Typed client wrapper (~55 methods)
|
||||||
│ ├── channel_factory_io.dart # Native ClientChannel (HTTP/2)
|
│ ├── channel_factory_io.dart # Native ClientChannel (HTTP/2)
|
||||||
│ ├── channel_factory_web.dart # GrpcWebClientChannel.xhr (HTTP/1.1)
|
│ ├── channel_factory_web.dart # GrpcWebClientChannel.xhr (HTTP/1.1)
|
||||||
│ └── generated/ # protoc output (committed; pinned to platform tag)
|
│ └── generated/ # protoc output (committed; pinned to platform proto)
|
||||||
├── tools/
|
├── tools/
|
||||||
│ └── generate.sh # Wraps `protoc --dart_out=...` against ../fai_platform/proto
|
│ └── generate.sh # Wraps `protoc --dart_out=...` against ../fai_chain/proto
|
||||||
├── example/
|
├── example/
|
||||||
└── pubspec.yaml
|
└── pubspec.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
## Repo placement
|
## Repo placement
|
||||||
|
|
||||||
Published as `fai/client-sdk-dart` on Forgejo
|
Published as `fai/chain-client-sdk-dart` on Forgejo
|
||||||
(`git.flemming.ai`).
|
(`git.flemming.ai`).
|
||||||
|
|
||||||
## Versioning
|
## Versioning
|
||||||
|
|
||||||
Tracks the platform's wire-protocol version, not the platform
|
Tracks the platform's wire-protocol version, not the platform
|
||||||
binary version. As long as `fai:platform@1.x` is current, this
|
binary version. As long as `chain.v1` is current, this SDK
|
||||||
SDK stays at `0.x` (will move to `1.0` once API stabilises);
|
stays at `0.x` (will move to `1.0` once the API stabilises);
|
||||||
when `fai:platform@2.0` lands, a `2.x` SDK ships in parallel
|
when a `chain.v2` wire package lands, a `2.x` SDK ships in
|
||||||
during the transition.
|
parallel during the transition.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue