diff --git a/CHANGELOG.md b/CHANGELOG.md index 8075fae..679db26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,18 +2,19 @@ ## [Unreleased] +## [0.2.0] - 2026-10-29 + +Bring Forward additions and Managed API support together in one Java 8 compatible release. + ### Added - Add `ManagedClient` / `AsyncManagedClient` and 108 documented Managed operations: Agents and versions, Deployments and Runs, Sessions/Threads/events/resources, Environments/self-hosted Work, Files, Skills/Versions, Vaults/Credentials/OAuth, Memory Stores, Models and Dreams. - Add typed Managed budget and Credits, Agent runtime patches, versioned multiagent references, OSS storage, repository resources and exact Session provenance markers. Preserve null/omitted values and unknown response fields; retain POST search filters and opaque cursors. -- Add Managed independent JAR examples, opt-in CN/Global PAT/SA integration groups, official-response contract fixtures and API coverage documentation. Forward and Managed additions target one combined 0.2.0 release. - +- Add Managed independent JAR examples, opt-in CN/Global PAT/SA integration groups, official-response contract fixtures and API coverage documentation. - Add typed synchronous/asynchronous Forward resource Search for Environments, Files, Skills and Vaults, retaining body filters, Identity query scope and Beta selectors across cursor pages. - Add Forward Dream create/list/retrieve/cancel/archive, Channel Pairing list/retrieve/update, and Decision create/retrieve/list with typed input, output and precise score values. - Add Identity auto-memory configuration, independent mount access and pagination, Schedule file resources, optional Run input snapshots, and Credits accessors for Session events. - Mark typed Session creation with `__qca_sdk_created`, `__qca_sdk_language` and the actual package version; preserve custom metadata and reject conflicting reserved values before HTTP. - - - Add Forward Webhook endpoint creation, listing, retrieval, partial update, deletion, enable/disable and synthetic test delivery. - Add raw-body webhook signature verification with HMAC-SHA256, multiple v1 signatures and a 300-second timestamp window; include receiver examples and offline contracts. - Public Java 8 HTTP transport and per-attempt interceptor contracts for custom networking and tracing, without exposing OkHttp types. Cancellation reaches downstream transport futures; SSE bodies remain streaming. Storage downloads use the transport without API credentials or interceptors. WebSockets and SA Key exchange retain their existing transports. @@ -23,10 +24,7 @@ ### Fixed - Use a plain-text greeting in Schedule/Batch live checks so model identifier-protection refusals do not obscure API verification; retain exact reply, ownership and terminal-state assertions. - - Serialize text Outcome rubrics with the documented `content` field. Keep `text()` and `Builder.text(...)` as deprecated aliases for content. - - - Add typed image `file_id`, Memory Store creation-mount `access`, Schedule/Run `initial_events_version` and Pairing `created_at` / `updated_at` fields. Missing versions remain unknown rather than becoming zero. ### Migration @@ -34,7 +32,6 @@ - Prefer `OutcomeRubric.content()` / `Builder.content(...)`; raw JSON callers must replace the old rubric `text` key with `content`. - Typed Session creation now adds three metadata entries. Do not use different values/types for these exact reserved keys, and allow for them within the service metadata limit. Other metadata, including future prefixed keys, remains unchanged. - ## [0.1.0] - 2026-10-21 First stable release of the Java SDK for the Forward API, using `com.qoder.sdk:qoder-cloud-agents-sdk:0.1.0`. diff --git a/README.md b/README.md index e3cfead..2487ba0 100644 --- a/README.md +++ b/README.md @@ -4,21 +4,21 @@ The Qoder Cloud Agents Java SDK provides typed synchronous and asynchronous clients, with shared authentication, timeouts, retries, pagination, streaming and error handling. -Version **0.1.0** supports the **Forward API**. The development branch adds [Managed API support](docs/managed.md) for the planned combined **0.2.0** release; it is not available in the published 0.1.0 JAR. +Version **0.2.0** supports both the **Forward API** and the **[Managed API](docs/managed.md)** in one package. Use `ForwardClient` / `AsyncForwardClient` for Forward and `ManagedClient` / `AsyncManagedClient` for Managed. | Capability | Resources | | --- | --- | -| Agent configuration | Template, Identity and per-Identity configuration | +| Agent configuration | Forward Template, Identity and per-Identity configuration; Managed Agent and versions | | Conversations | Session, Thread, event history and SSE subscriptions | -| Execution | Schedule, Schedule Run, Batch and Batch Task | -| Resources | Environment, File, Skill, Vault, Memory Store and Drive | -| Channels | Channel configuration, Pairing creation/deletion and QR authorization | +| Execution | Forward Schedule, Schedule Run, Batch and Batch Task; Managed Deployment, Run and self-hosted Work | +| Resources | Environment, File, Skill, Vault, Memory Store and resource Search; Forward Drive | +| Channels and notifications | Forward Channel configuration, Pairing management, QR authorization and Webhooks | | Authentication and usage | PAT, Service Account credentials, Forward SAT issuance/revocation, Model and Usage | -| Realtime (Beta) | Text/audio WebSocket conversations and persisted History | +| Realtime (Forward, Beta) | Text/audio WebSocket conversations and persisted History | -See [API coverage and resource guides](docs/forward-api-coverage.md) for the supported operations. +See the [Forward](docs/forward-api-coverage.md) and [Managed](docs/managed-api-coverage.md) coverage inventories and resource guides for the supported operations. -The development branch also includes [Forward Search, Dreams, Decisions, pairing management and contract updates](docs/forward-parity.md), alongside Webhooks, client extensions and [108 Managed operations](docs/managed-api-coverage.md). These additions are unreleased and are not included in the published `0.1.0` JAR. +The [0.2.0 changelog](CHANGELOG.md) covers Forward Search, Dreams, Decisions, pairing management, contract updates, Session creation metadata, Webhooks, client extensions and 108 Managed operations. See the [Forward migration guide](docs/forward-parity.md) for the rubric field and reserved metadata changes. - [Installation](#installation) - [Quick start](#quick-start) @@ -39,7 +39,7 @@ Add the Maven dependency; published versions require no local SDK build or addit com.qoder.sdk qoder-cloud-agents-sdk - 0.1.0 + 0.2.0 ``` @@ -50,7 +50,7 @@ Requirements: ## Quick start -Set `QODER_PAT` in your environment. This complete program connects to Global and lists the enabled models: +Set `QODER_PAT` in your environment. This complete Forward program connects to Global and lists the enabled models. For Managed client creation, authentication and resource examples, see the [Managed quick start](docs/managed.md#client-and-authentication). ```java import com.qoder.cloudagents.ForwardClient; @@ -229,7 +229,8 @@ Microphone capture and audio playback belong to the application. Connections do - [Runnable examples](examples/README.md): shared PAT/SA setup, resource lifecycles, Session SSE and Realtime. - [API coverage](docs/forward-api-coverage.md): supported operations and guides for each resource. -- [Client extensions (unreleased)](docs/client-configuration.md#client-extensions-unreleased): custom HTTP transport, interceptors, generic JSON requests and configuration copies. +- [Managed API](docs/managed.md): Agents, Deployments, Sessions, resources and self-hosted Work. +- [Client extensions](docs/client-configuration.md#client-extensions): custom HTTP transport, interceptors, generic JSON requests and configuration copies. - [Files and downloads](docs/environments-files.md) and [Drive, Usage and SAT management](docs/usage-sat-drive.md). - [Live testing](docs/live-testing.md): opt-in CN/Global verification and coverage boundaries. diff --git a/docs/channels.md b/docs/channels.md index df04521..80c3e71 100644 --- a/docs/channels.md +++ b/docs/channels.md @@ -102,7 +102,7 @@ DeletedChannelPairing removed = client.channelPairings().delete(pairing.id()); Use the returned Pairing ID for revocation and Schedule sinks. Current API supports completion by pending Pairing ID as well as code; code-only older SDK types are not copied. An ID-based completion can be retried against the same binding without depending on code expiry. Used/expired codes cannot be treated as fresh pairing requests. Permission, ownership and concurrent-change errors remain server decisions. -The development SDK also exposes nullable `createdAt()` and `updatedAt()` strings on `ChannelPairing`, preserving timestamps returned by the service. These getters are not included in the published `0.1.0` JAR. +Since 0.2.0, `ChannelPairing` exposes nullable `createdAt()` and `updatedAt()` strings, preserving timestamps returned by the service. `delete` removes the Channel connection; it is distinct from `channelPairings().delete`, which revokes one binding. Already absent/unpaired bindings can return `deleted=true`. SDK keeps the declared deletion response and accepts an empty 204 without inventing a JSON body; use `withResponse()` for metadata in that case. diff --git a/docs/client-configuration.md b/docs/client-configuration.md index 1c8a011..0318319 100644 --- a/docs/client-configuration.md +++ b/docs/client-configuration.md @@ -87,9 +87,9 @@ com.qoder.cloudagents.core.ApiResponse r - Models provide `requestId()`, `field(name)` for unknown fields and `rawJson()`. Unknown fields and numeric precision are preserved; invalid typed field access raises `ResponseValidationException`. Request metadata is separate from the JSON body. - Template list parameters support `limit`, `status`, `afterId` or `beforeId`. Use `page.data()` for one page, `getNextPage()` / `getNextPageAsync()` for manual pagination, or `for (Template template : page)` for lazy synchronous iteration. Server order is retained; filters and request options follow subsequent pages. Check `hasNextPage()` before fetching; an exhausted page or repeated cursor raises `PaginationException`. -## Client extensions (unreleased) +## Client extensions -The following client extensions are on the development branch and are not included in the published `0.1.0` JAR. Build and install the local SDK to try them. +The following client extensions are included in `0.2.0`. ### Derived clients diff --git a/docs/forward-api-coverage.md b/docs/forward-api-coverage.md index ed7fa7b..afd412e 100644 --- a/docs/forward-api-coverage.md +++ b/docs/forward-api-coverage.md @@ -1,16 +1,16 @@ # Forward API 覆盖基线 -更新:2026-10-28。开发分支覆盖 **146 个 HTTP 操作及 Realtime WebSocket**:首版 123 项、未发布 Webhook 8 项、本轮 Forward Search / Dream / Pairing / Decision 15 项。公共 Maven Central 仍为 0.1.0;新增内容尚未发布。离线验证与真实环境验收分别记录,不能把操作覆盖数当作线上通过率。 +契约核对:2026-10-28。**0.2.0** 覆盖 **146 个 HTTP 操作及 Realtime WebSocket**:首版 123 项、Webhook 8 项、Forward Search / Dream / Pairing / Decision 15 项。同一版本还提供 [108 个 Managed 操作](managed-api-coverage.md)。离线验证与真实环境验收分别记录,不能把操作覆盖数当作线上通过率。 HTTP BaseURL 为 CN `https://api.qoder.com.cn/api/v1/forward` 或 Global `https://api.qoder.com/api/v1/forward`;表内路径均相对于 BaseURL。 来源:TypeScript main `597ff047be4fb0afb72fc6bd024ce957cf3e1fc1` 的 `src/forward/api-inventory.json`(120 项),补充 `service-account-token.ts` 和 `identity-service-account-token.ts` 的 3 项;operation ID 集合与 Go main `735f13c8bf5888bf70b5a93b9ba89bd0e078d4b9` 的 `forward/testdata/api-contracts.json`(123 项)交叉核对一致。 -共 **123 个 HTTP 操作**:121 个普通 HTTP 操作、2 个 SSE 订阅操作;另有 1 个 WebSocket 连接入口。Java 资源方法见下表;Maven 接入方式见 [README](../README.md#installation),已发布版本见 [Releases](https://github.com/QoderAI/qoder-cloud-agents-sdk-java/releases)。相同方法的同步/异步形式只计一个协议操作。 +首版基线共 **123 个 HTTP 操作**:121 个普通 HTTP 操作、2 个 SSE 订阅操作;另有 1 个 WebSocket 连接入口。Java 资源方法见下表,0.2.0 新增的 23 项列在本文末尾;Maven 接入方式见 [README](../README.md#installation),已发布版本见 [Releases](https://github.com/QoderAI/qoder-cloud-agents-sdk-java/releases)。相同方法的同步/异步形式只计一个协议操作。 这里只盘点协议入口;参数、响应、分页、认证和重试行为由对应资源指南与契约测试说明。 -开发分支已按 Go `a996a88`、Python `2f8c625`、TypeScript `f4e3a4f` 的 main 补齐 ImageSource `file_id`、创建 Memory Store 时的 mount `access`、Schedule/Run `initial_events_version` 和 ChannelPairing 时间戳。接口操作集合仍为 123 项;客户端 HTTP 扩展、通用 JSON 请求和配置复制见[客户端配置](client-configuration.md),这些新增能力尚不在已发布的 `0.1.0` 中。 +0.2.0 已按 Go `a996a88`、Python `2f8c625`、TypeScript `f4e3a4f` 的 main 补齐 ImageSource `file_id`、创建 Memory Store 时的 mount `access`、Schedule/Run `initial_events_version` 和 ChannelPairing 时间戳。这些字段不新增协议操作;客户端 HTTP 扩展、通用 JSON 请求和配置复制见[客户端配置](client-configuration.md)。 ## 使用指南 @@ -166,9 +166,8 @@ HTTP BaseURL 为 CN `https://api.qoder.com.cn/api/v1/forward` 或 Global `https: | SA Credential | `ServiceAccountCredential` | 平台 Token 置换、缓存、按需续期,与 Forward SAT 管理 API 分开 | 已实现 | | 同步/异步与响应元信息 | `ForwardClient / AsyncForwardClient / withResponse` | 同一协议核心;取消和资源所有权明确;保留 request ID | 已实现 | -## 当前开发分支未提供 +## 当前未提供 -- Managed API:计划在后续版本支持,当前 0.1.0 尚未提供。 - Realtime Template 专用配置 GET/POST;普通 Template 的 managed_tool_config 已实现。 - Agent 运行时内部工具调用和免 Token 的内部服务认证模式。 - 新增 Drive 本地文件同步框架、采集/播放音频设备实现。 @@ -181,7 +180,7 @@ HTTP BaseURL 为 CN `https://api.qoder.com.cn/api/v1/forward` 或 Global `https: 维护检查见[维护指南](maintaining.md),线上验证入口见[真实环境测试](live-testing.md)。 -## 未发布的 Webhooks 与 Forward 补齐 +## 0.2.0 新增的 Webhooks 与 Forward 操作 Webhook 的 8 个操作已实现同步/异步、分页、原始请求体验签及示例,详见 [Webhook 指南](webhooks.md)。本轮补齐之前记录为范围外的三个 Pairing 操作,以及 Search、Dream 和 Decision。 diff --git a/docs/forward-parity.md b/docs/forward-parity.md index 2e68fa7..fd08764 100644 --- a/docs/forward-parity.md +++ b/docs/forward-parity.md @@ -1,6 +1,6 @@ -# Forward API additions (unreleased) +# Forward API additions in 0.2.0 -This guide describes the development SDK after `0.1.0`, checked against the official Forward documentation on 2026-10-28. These additions are not available from the published `0.1.0` JAR. Both `ForwardClient` and `AsyncForwardClient` expose the same resources, including `withResponse()` for status, headers and request IDs. The same planned 0.2.0 release also includes [Managed support](managed.md). +This guide describes the Forward additions in `0.2.0`, checked against the official Forward documentation on 2026-10-28. Both `ForwardClient` and `AsyncForwardClient` expose the same resources, including `withResponse()` for status, headers and request IDs. The same release also includes [Managed support](managed.md). ## Search resources diff --git a/docs/maintaining.md b/docs/maintaining.md index 44320f2..a429b89 100644 --- a/docs/maintaining.md +++ b/docs/maintaining.md @@ -1,6 +1,6 @@ # Java SDK maintenance -The development SDK covers Forward and Managed and targets Java 8. Use JDK 17 or later for maintenance tools; the runtime compatibility matrix remains Java 8, 11, 17, 21 and 25. +SDK 0.2.0 covers Forward and Managed and targets Java 8. Use JDK 17 or later for maintenance tools; the runtime compatibility matrix remains Java 8, 11, 17, 21 and 25. ## Local checks and pull requests @@ -34,10 +34,10 @@ The SDK's embedded version is filtered from `${project.version}`; do not replace ```sh python3 .github/scripts/release_notes.py check # After adding the actual release entry: -python3 .github/scripts/release_notes.py extract --version 0.1.0 +python3 .github/scripts/release_notes.py extract --version 0.2.0 ``` -The release version in this checkout is `0.1.0`. Also update the README dependency and version-specific maintenance examples. Acceptance records must include the resolved version, source SHA and JAR digest. Release versions must not be overwritten; a successful test of an older build is not evidence for a newer one. +The release version in this checkout is `0.2.0`. Also update the README dependency and version-specific maintenance examples. Acceptance records must include the resolved version, source SHA and JAR digest. Release versions must not be overwritten; a successful test of an older build is not evidence for a newer one. ### RC qualification for 0.1.0 diff --git a/docs/managed-api-coverage.md b/docs/managed-api-coverage.md index 1f0cb0c..6d9f92d 100644 --- a/docs/managed-api-coverage.md +++ b/docs/managed-api-coverage.md @@ -1,6 +1,6 @@ # Managed API 覆盖基线 -更新:2026-10-28。以当日官方文档为准,开发分支实现 **108 个协议操作:106 个普通 HTTP 操作、2 个 SSE 操作**。同步/异步/响应封装只计一个操作。目标与 Forward 更新合并为 **0.2.0**,公共 0.1.0 不包含本表能力。 +契约核对:2026-10-28。**0.2.0** 与 Forward 更新一起提供 **108 个 Managed 协议操作:106 个普通 HTTP 操作、2 个 SSE 操作**。同步/异步/响应封装只计一个操作;0.1.0 不包含本表能力。 Base URL:CN `https://api.qoder.com.cn/api/v1/cloud`,Global `https://api.qoder.com/api/v1/cloud`。使用方法见 [Managed 指南](managed.md);验收范围见 [真实环境测试](managed-live-testing.md)。接口存在与离线通过不等于线上权限或执行结果已验证。 diff --git a/docs/managed.md b/docs/managed.md index c2e397b..940f281 100644 --- a/docs/managed.md +++ b/docs/managed.md @@ -1,6 +1,6 @@ -# Managed API (development) +# Managed API -Managed support is being prepared together with the unreleased Forward changes for **0.2.0**. It is not in the published 0.1.0 JAR. The [coverage inventory](managed-api-coverage.md) records 108 documented operations, including two SSE endpoints, checked against the [official documentation](https://docs.qoder.com/cloud-agents/overview) on 2026-10-28. +Managed support is included with the Forward additions in **0.2.0**. The [coverage inventory](managed-api-coverage.md) records 108 documented operations, including two SSE endpoints, checked against the [official documentation](https://docs.qoder.com/cloud-agents/overview) on 2026-10-28. ## Client and authentication @@ -93,4 +93,4 @@ Cursor lists retain supported filters and request options; `getNextPageAsync()` The offline suite tests all 106 HTTP operations in four call styles, both SSE routes, exact wire placement, pagination, metadata/budget semantics, and response examples from the official docs. The independent examples project compiles and tests against the installed JAR. Run [the opt-in Managed integration entry](managed-live-testing.md) separately; offline coverage is not a claim that all operations passed against production. -Both Forward and Managed remain under `Unreleased` until the combined 0.2.0 version PR. After merging implementation PRs, run internal integration tests from the merged GitHub SHA and accept that build's QA package before preparing the release. +Forward and Managed are delivered together in 0.2.0. Before publishing, run internal integration tests from the merged version commit and accept that build's QA package; results from an earlier development package do not replace version-package acceptance. diff --git a/docs/memory-stores.md b/docs/memory-stores.md index e435f82..443c00e 100644 --- a/docs/memory-stores.md +++ b/docs/memory-stores.md @@ -42,7 +42,7 @@ MemoryStoreCreateMount mount = MemoryStoreCreateMount.builder() // Supply .mount(mount) on MemoryStoreCreateParams.builder(). ``` -Both IDs are required when supplying `mount`. The development SDK also supports `.access("read_only")` or `.access("read_write")`; omitting it leaves the default to the service. This typed setter is not included in the published `0.1.0` JAR. Store `bindingInfo().identityTemplateCount()` reports active mounts; unknown binding fields remain available through `field(...)`. +Both IDs are required when supplying `mount`. Since 0.2.0, `.access("read_only")` and `.access("read_write")` are supported; omitting access leaves the default to the service. Store `bindingInfo().identityTemplateCount()` reports active mounts; unknown binding fields remain available through `field(...)`. Store metadata is a string map with at most 15 user keys. `created_by` is reserved and added by the service. Memory metadata allows 16 keys and does not reserve `created_by`. Key/value size rules and other business constraints are enforced by the service. The SDK does not insert reserved metadata. diff --git a/docs/releasing.md b/docs/releasing.md index ec51bd4..29be835 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -1,6 +1,6 @@ # Java SDK release setup -The release version in this checkout is `com.qoder.sdk:qoder-cloud-agents-sdk:0.1.0`. The manual [Release workflow](../.github/workflows/release.yml) publishes using repository Actions secrets. Dispatching it from `main` authorizes publication after all automated checks pass; there is no separate environment approval. The Central account, namespace, signing key and repository settings below must be configured first. The GitHub repository and internal Maven access do not grant Maven Central publishing access. +The release version in this checkout is `com.qoder.sdk:qoder-cloud-agents-sdk:0.2.0`. The manual [Release workflow](../.github/workflows/release.yml) publishes using repository Actions secrets. Dispatching it from `main` authorizes publication after all automated checks pass; there is no separate environment approval. The Central account, namespace, signing key and repository settings below must be configured first. The GitHub repository and internal Maven access do not grant Maven Central publishing access. `0.1.0-rc.1` was published to Maven Central on 2026-10-21; see its [Release](https://github.com/QoderAI/qoder-cloud-agents-sdk-java/releases/tag/v0.1.0-rc.1) and [successful publication workflow](https://github.com/QoderAI/qoder-cloud-agents-sdk-java/actions/runs/39572349619). A version committed to a POM is not yet a published package: check the workflow's public verification and matching GitHub Release for each version. @@ -70,13 +70,13 @@ The namespace variable is a maintainer's setup confirmation, not an automatic ow Prepare a PR that updates the root POM, the example project's version and SDK dependency, plus the changelog version section. Keep an empty `Unreleased` section. Review any version-specific install examples. Merge only after `quality` and all five Java checks succeed. The workflow does not bump versions or merge the PR. -For promotion from `0.1.0-rc.1` to `0.1.0`, review the [RC qualification and its limitations](maintaining.md#rc-qualification-for-010). Use the merged `0.1.0` main SHA and a new batch ID; leave recovery inputs empty. This creates a new version and tag, with its own signed bundle and public-package checks. Do not reuse the RC deployment, change its tag or copy/rename its JAR as the final release. +For the combined Forward and Managed `0.2.0` release, run internal integration tests and accept a QA package built from the merged version commit. Record both API surfaces, the Java runtime, cleanup warnings and untested scenarios. Earlier development-package results do not replace this check. Use the merged `0.2.0` main SHA and a new batch ID; leave recovery inputs empty for the first publication. Open **Actions → Release → Run workflow**, select **main**, and verify the following inputs before dispatch. Successful preflight automatically proceeds to signing and publication; it does not pause for an additional approval. | Input | First publication | | --- | --- | -| `version` | The reviewed version without `v` or `SNAPSHOT`, for example `0.1.0` | +| `version` | The reviewed version without `v` or `SNAPSHOT`, for example `0.2.0` | | `commit_sha` | Full 40-character lowercase SHA of the current GitHub main | | `batch_id` | 1–64 letters/digits/dots/underscores/hyphens, starting with a letter or digit | | `resume_run_id` | Empty | diff --git a/docs/schedules-batches.md b/docs/schedules-batches.md index 906019e..0a97fd1 100644 --- a/docs/schedules-batches.md +++ b/docs/schedules-batches.md @@ -24,7 +24,7 @@ Schedule schedule = client.schedules().create( Schedule initial events use string `content` as documented by this endpoint; ordinary Session events have their own content-block model. `ScheduleTriggerPolicyParams` exposes request fields (`type`, `expression`, `timezone`), while `ScheduleTriggerPolicy` includes computed response fields such as `upcomingRunsAt` and `lastRunAt`. Cron/timezone, once-time and interval rules are validated by the server. -The development SDK exposes `initialEventsVersion()` on both `Schedule` and `ScheduleRun`. It returns a nullable `Long`: an absent version remains unknown, distinct from an explicit zero. This getter is not included in the published `0.1.0` JAR. +Since 0.2.0, `initialEventsVersion()` is available on both `Schedule` and `ScheduleRun`. It returns a nullable `Long`: an absent version remains unknown, distinct from an explicit zero. - `schedules().list/create/retrieve/update/archive/archiveMany/pause/unpause/run` cover the nine Schedule operations. - `scheduleRuns().list/retrieve` cover Run queries. Listing requires `ScheduleRunListParams.identityId`; retrieval accepts optional `ScheduleRunRetrieveParams.identityId`. diff --git a/docs/sessions.md b/docs/sessions.md index 5b040dd..84bae7c 100644 --- a/docs/sessions.md +++ b/docs/sessions.md @@ -66,7 +66,7 @@ System.out.println(accepted.requestId()); `EventContent.text(...)` creates the content-block array required for a user message. Use `EventContent.blocks(...)` with typed `ContentBlock` and `ImageSource` for text/image inputs. `EventContent.ofString(...)` represents string content for event types such as tool results; do not use it for a `user.message`. -The development SDK adds `ImageSource.builder().type("file").fileId(fileId)` and `fileId()` for images referenced by file ID. These typed methods are not included in the published `0.1.0` JAR; the service validates the image source and file permissions. +Since 0.2.0, `ImageSource.builder().type("file").fileId(fileId)` and `fileId()` support images referenced by file ID. The service validates the image source and file permissions. `SessionEventParam` also exposes tool confirmation/result fields, custom tool result IDs, interrupt reason and outcome definition. `OutcomeRubric` uses `content` for `type="text"` and `fileId` for `type="file"`. The deprecated `text` setter now writes `content`; migrate raw JSON explicitly. Event-specific validation and permissions remain server-side. diff --git a/docs/webhooks.md b/docs/webhooks.md index f5175a6..2b6b234 100644 --- a/docs/webhooks.md +++ b/docs/webhooks.md @@ -1,6 +1,6 @@ # Forward Webhooks -Available in the next SDK release. Configure account notifications with a PAT or +Included in SDK 0.2.0. Configure account notifications with a PAT or administrator SAT. Identity SATs cannot manage webhook endpoints. Use the same regional Forward client and shared authentication configuration as other APIs. diff --git a/examples/README.md b/examples/README.md index 39ae907..298509c 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ -# Forward examples +# Forward and Managed examples This independent Maven project consumes `com.qoder.sdk:qoder-cloud-agents-sdk` as a JAR dependency. `ForwardReadOnlyExample` lists Models and the first Template page, then optionally retrieves `QODER_TEMPLATE_ID`, without mutating resources. `TemplateLifecycleExample` creates, updates, clones and retrieves isolated Templates, then archives every created ID. `IdentityConfigExample` creates an isolated Identity, configures it for an existing Template, retrieves effective configuration, then clears and deletes that Identity. All share PAT/SA setup through `ExampleClient`. @@ -17,7 +17,7 @@ For SDK development or an unpublished version, install the local SDK first: Verification uses a local fake service and asserts the SDK was loaded from a JAR. It does not use production credentials. -`ClientExtensionsExample` demonstrates a read-only generic JSON request, a per-attempt tracing interceptor and an independently closeable client copy. It also accepts an application-owned `HttpTransport`. These extension APIs are unreleased; install the development SDK first, then run with `-Dexec.mainClass=com.qoder.cloudagents.examples.ClientExtensionsExample`. The packaged-consumer test verifies an adapter built with Java 8 `HttpURLConnection`, without importing SDK internals. +`ClientExtensionsExample` demonstrates a read-only generic JSON request, a per-attempt tracing interceptor and an independently closeable client copy. It also accepts an application-owned `HttpTransport`. These extension APIs are included in 0.2.0; run with `-Dexec.mainClass=com.qoder.cloudagents.examples.ClientExtensionsExample`. The packaged-consumer test verifies an adapter built with Java 8 `HttpURLConnection`, without importing SDK internals. To run against your environment, configure credentials in your shell and choose one mode: @@ -245,10 +245,10 @@ See [the opt-in live runner](../docs/live-testing.md) for the `read`, `resources Forward Webhook listing and receiver verification: see [Webhook guide](../docs/webhooks.md). The example does not create subscriptions or emit test deliveries. -## Forward additions (development JAR) +## Forward additions in 0.2.0 -[ForwardCapabilitiesExample](src/main/java/com/qoder/cloudagents/examples/ForwardCapabilitiesExample.java) demonstrates resource Search, Decision creation, Dream creation and Pairing listing. See [parameters, opt-in flags and side effects](../docs/forward-parity.md#verification-and-executable-example). It uses the installed development JAR; these APIs are not in Maven Central `0.1.0`. +[ForwardCapabilitiesExample](src/main/java/com/qoder/cloudagents/examples/ForwardCapabilitiesExample.java) demonstrates resource Search, Decision creation, Dream creation and Pairing listing. See [parameters, opt-in flags and side effects](../docs/forward-parity.md#verification-and-executable-example). These APIs require SDK 0.2.0 or later. -## Managed API (unreleased, planned for 0.2.0) +## Managed API -`ManagedExampleClient` configures PAT / SA Key / SAT authentication with `QODER_BASE_URL` for `/api/v1/cloud`. `ManagedLiveCheck` provides explicit `read`, `resources`, `session`, `deployment` and `work` integration groups against the resolved JAR. See [Managed usage](../docs/managed.md) and [opt-in live testing](../docs/managed-live-testing.md) for permissions, test resources and cleanup. These classes are not in the published 0.1.0 SDK. +`ManagedExampleClient` configures PAT / SA Key / SAT authentication with `QODER_BASE_URL` for `/api/v1/cloud`. `ManagedLiveCheck` provides explicit `read`, `resources`, `session`, `deployment` and `work` integration groups against the resolved JAR. See [Managed usage](../docs/managed.md) and [opt-in live testing](../docs/managed-live-testing.md) for permissions, test resources and cleanup. These examples require SDK 0.2.0 or later. diff --git a/examples/pom.xml b/examples/pom.xml index c2d95ef..a407db3 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -2,11 +2,11 @@ 4.0.0 - com.qoder.examplesqca-forward-examples0.1.0 + com.qoder.examplesqca-forward-examples0.2.0 8UTF-8 - com.qoder.sdkqoder-cloud-agents-sdk0.1.0 + com.qoder.sdkqoder-cloud-agents-sdk0.2.0 org.junit.jupiterjunit-jupiter5.13.4test com.squareup.okhttp3mockwebserver5.5.0test diff --git a/pom.xml b/pom.xml index fe1bfcb..a157c01 100644 --- a/pom.xml +++ b/pom.xml @@ -4,9 +4,9 @@ 4.0.0 com.qoder.sdk qoder-cloud-agents-sdk - 0.1.0 + 0.2.0 Qoder Cloud Agents Java SDK - Java 8 compatible Qoder Cloud Agents Forward API client. + Java 8 compatible Qoder Cloud Agents Forward and Managed API clients. https://github.com/QoderAI/qoder-cloud-agents-sdk-java scm:git:https://github.com/QoderAI/qoder-cloud-agents-sdk-java.git