From 8817d266989c481e20b1df4bad953042de438cf0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2026 22:50:43 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A6=8B=20New=20version=20release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/python-server-choices-interaction.md | 9 --------- typescript/server/CHANGELOG.md | 10 ++++++++++ typescript/server/package.json | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) delete mode 100644 .changeset/python-server-choices-interaction.md diff --git a/.changeset/python-server-choices-interaction.md b/.changeset/python-server-choices-interaction.md deleted file mode 100644 index 58712fac..00000000 --- a/.changeset/python-server-choices-interaction.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@smooai/smooth-operator-server': minor ---- - -Port the Rich Interactions runtime + the `choices` kind (AskUserQuestion) to the **Python** server (Wave 2 of the polyglot effort), mirroring the Rust reference (PR #475). - -New kind-agnostic framework (`interaction.py`): `InteractionKind` (kind / capability / tool_schema / parse_request / validate / fallback_directive), an `InteractionRegistry` catalog (default: `choices`), and a session-keyed `PendingInteractions` park/resume registry that generalizes the write-confirmation `ConfirmationRegistry`. Each turn registers per-kind `request_` raise tools — parking on a channel that declared the kind's render capability in `supports` (emit `interaction_required`, await `submit_interaction`, resume with the canonical payload), or degrading to the kind's conversational directive on text-only channels, where the model submits through the generic `submit_interaction` tool. A new `submit_interaction` dispatcher action routes values to the kind validator: invalid values emit retryable `interaction_invalid` (turn stays parked), valid values resume the turn. - -The `choices` kind (`choices.py`) mirrors `choices.rs`: `request_choices { questions (1–4), reason }` with 2–4 options and an optional `multiSelect`, the shared `validate_choices` (every question answered, labels ∈ options, single-select one pick XOR `other`, multi-select ≥1, blank `other` dropped, all errors in one pass), the enumerated fallback directive, and capability id `choice_chips`. Validated against the shared `spec/interactions/choices.schema.json` + conformance fixtures. diff --git a/typescript/server/CHANGELOG.md b/typescript/server/CHANGELOG.md index 116a0a40..e2d395ba 100644 --- a/typescript/server/CHANGELOG.md +++ b/typescript/server/CHANGELOG.md @@ -1,5 +1,15 @@ # @smooai/smooth-operator-server +## 1.13.0 + +### Minor Changes + +- c4911c8: Port the Rich Interactions runtime + the `choices` kind (AskUserQuestion) to the **Python** server (Wave 2 of the polyglot effort), mirroring the Rust reference (PR #475). + + New kind-agnostic framework (`interaction.py`): `InteractionKind` (kind / capability / tool*schema / parse_request / validate / fallback_directive), an `InteractionRegistry` catalog (default: `choices`), and a session-keyed `PendingInteractions` park/resume registry that generalizes the write-confirmation `ConfirmationRegistry`. Each turn registers per-kind `request*`raise tools — parking on a channel that declared the kind's render capability in`supports`(emit`interaction_required`, await `submit_interaction`, resume with the canonical payload), or degrading to the kind's conversational directive on text-only channels, where the model submits through the generic `submit_interaction`tool. A new`submit_interaction`dispatcher action routes values to the kind validator: invalid values emit retryable`interaction_invalid` (turn stays parked), valid values resume the turn. + + The `choices` kind (`choices.py`) mirrors `choices.rs`: `request_choices { questions (1–4), reason }` with 2–4 options and an optional `multiSelect`, the shared `validate_choices` (every question answered, labels ∈ options, single-select one pick XOR `other`, multi-select ≥1, blank `other` dropped, all errors in one pass), the enumerated fallback directive, and capability id `choice_chips`. Validated against the shared `spec/interactions/choices.schema.json` + conformance fixtures. + ## 1.12.1 ### Patch Changes diff --git a/typescript/server/package.json b/typescript/server/package.json index f9af4302..0de7b30f 100644 --- a/typescript/server/package.json +++ b/typescript/server/package.json @@ -1,6 +1,6 @@ { "name": "@smooai/smooth-operator-server", - "version": "1.12.1", + "version": "1.13.0", "private": true, "description": "Native TypeScript smooth-operator server: a WebSocket service that speaks the smooth-operator wire protocol and runs the @smooai/smooth-operator-core engine in-process per turn. The TS sibling of the Rust (rust/smooth-operator-server) and C# (dotnet/server) servers; the client lives in ../src and is untouched.", "license": "MIT",