From 41708c0f544a716b45f15fbfc8c8f6d56c072465 Mon Sep 17 00:00:00 2001 From: Matthew O'Riordan Date: Wed, 15 Apr 2026 16:22:36 +0200 Subject: [PATCH 01/17] feat: add ai-transport demo command skeleton and dependencies Add @ably/ai-transport SDK, Ink TUI framework, and command topic structure for interactive AI Transport demos. The streaming demo command is a placeholder with --role, --channel, --endpoint, and --auth-endpoint flags. Bump ably to ^2.21.0 for SDK compatibility, move get-port to runtime dependencies. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 89 +++++- package.json | 7 +- pnpm-lock.yaml | 297 +++++++++++++++++- src/commands/ai-transport/demo/index.ts | 14 + src/commands/ai-transport/demo/streaming.ts | 60 ++++ src/commands/ai-transport/index.ts | 13 + .../ai-transport/demo/streaming.test.ts | 103 ++++++ 7 files changed, 558 insertions(+), 25 deletions(-) create mode 100644 src/commands/ai-transport/demo/index.ts create mode 100644 src/commands/ai-transport/demo/streaming.ts create mode 100644 src/commands/ai-transport/index.ts create mode 100644 test/unit/commands/ai-transport/demo/streaming.test.ts diff --git a/README.md b/README.md index 9c27fc824..f5b5fe17a 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ $ npm install -g @ably/cli $ ably COMMAND running command... $ ably (--version) -@ably/cli/0.17.0 darwin-arm64 node-v24.4.1 +@ably/cli/0.17.0 darwin-arm64 node-v22.14.0 $ ably --help [COMMAND] USAGE $ ably COMMAND @@ -76,6 +76,9 @@ $ ably-interactive * [`ably accounts login [TOKEN]`](#ably-accounts-login-token) * [`ably accounts logout [ALIAS]`](#ably-accounts-logout-alias) * [`ably accounts switch [ALIAS]`](#ably-accounts-switch-alias) +* [`ably ai-transport`](#ably-ai-transport) +* [`ably ai-transport demo`](#ably-ai-transport-demo) +* [`ably ai-transport demo streaming`](#ably-ai-transport-demo-streaming) * [`ably apps`](#ably-apps) * [`ably apps create`](#ably-apps-create) * [`ably apps current`](#ably-apps-current) @@ -382,6 +385,81 @@ EXAMPLES _See code: [src/commands/accounts/switch.ts](https://github.com/ably/ably-cli/blob/v0.17.0/src/commands/accounts/switch.ts)_ +## `ably ai-transport` + +Interact with Ably AI Transport + +``` +USAGE + $ ably ai-transport + +DESCRIPTION + Interact with Ably AI Transport + +EXAMPLES + $ ably ai-transport demo streaming + + $ ably ai-transport demo barge-in + +COMMANDS + ably ai-transport demo Interactive demos of AI Transport features +``` + +_See code: [src/commands/ai-transport/index.ts](https://github.com/ably/ably-cli/blob/v0.17.0/src/commands/ai-transport/index.ts)_ + +## `ably ai-transport demo` + +Interactive demos of AI Transport features + +``` +USAGE + $ ably ai-transport demo + +DESCRIPTION + Interactive demos of AI Transport features + +EXAMPLES + $ ably ai-transport demo streaming + + $ ably ai-transport demo barge-in + + $ ably ai-transport demo cancel +``` + +_See code: [src/commands/ai-transport/demo/index.ts](https://github.com/ably/ably-cli/blob/v0.17.0/src/commands/ai-transport/demo/index.ts)_ + +## `ably ai-transport demo streaming` + +Demo AI Transport token streaming in a split-pane TUI + +``` +USAGE + $ ably ai-transport demo streaming [-v] [--json | --pretty-json] [--role both|client|server] [--channel ] [--endpoint + ] [--auth-endpoint ] + +FLAGS + -v, --verbose Output verbose logs + --auth-endpoint= Auth endpoint returning JWT tokens (client-only, for external servers) + --channel= Channel name to use (auto-generated if not provided) + --endpoint= Server HTTP endpoint for sending messages (client-only, skips presence discovery) + --json Output in JSON format + --pretty-json Output in colorized JSON format + --role=