Skip to content
Draft
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ updates:
ignore:
- dependency-name: "zod"
update-types: ["version-update:semver-major"]
- dependency-name: "inquirer"
update-types: ["version-update:semver-major"]
- dependency-name: "typescript"
update-types: ["version-update:semver-major"]
cooldown:
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ Flags are NOT global. Each command explicitly declares only the flags it needs v
- **`durationFlag`** — `--duration` / `-D`. Use for long-running subscribe/stream commands that auto-exit after N seconds.
- **`rewindFlag`** — `--rewind`. Use for subscribe commands that support message replay (default: 0).
- **`timeRangeFlags`** — `--start`, `--end`. Use for history and stats commands. Parse with `parseTimestamp()` from `src/utils/time.ts`. Accepts ISO 8601, Unix ms, or relative (e.g., `"1h"`, `"30m"`, `"2d"`).
- **`forceFlag`** — `--force` / `-f`. Use for destructive commands (delete, revoke) that require user confirmation. When `--force` is provided, skip the interactive prompt. When `--json` is used without `--force`, fail with an error requiring `--force`. Use `promptForConfirmation()` from `src/utils/prompt-confirmation.js` for the interactive prompt — do NOT use `interactiveHelper.confirm()` (inquirer-based, inconsistent UX).
- **`forceFlag`** — `--force` / `-f`. Use for destructive commands (delete, revoke) that require user confirmation. When `--force` is provided, skip the interactive prompt. When `--json` is used without `--force`, fail with an error requiring `--force`. Use `promptForConfirmation()` from `src/utils/prompt-confirmation.js` for the interactive prompt.
- **`endpointFlag`** — `--endpoint`. Hidden, only on `accounts login` and `accounts switch`.

**Flags vs positional arguments (POSIX / docopt convention):**
Expand Down
2 changes: 1 addition & 1 deletion docs/Interactive-REPL.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ I would like to explore an alternative route where the Ably CLI supports an inte
There are some relevant Node.js projects we can draw inspiration from:

- [Vorpal interactive CLI](https://vorpal.js.org/) with source code at https://github.com/dthree/vorpal
- [Inquirer package](https://www.npmjs.com/package/inquirer) for common interactive command line user interface commands
- Node.js built-in `node:readline` module for interactive prompts (confirmation, selection)

[oclif](https://oclif.io/) does not appear to have any plugins to support an interactive/embedded CLI mode.
However, a [REPL plugin](https://github.com/sisou/oclif-plugin-repl) exists, although that's unlikely to share much with the goals of interactive CLI.
Expand Down
3 changes: 0 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@
"dependencies": {
"@ably/chat": "^1.3.1",
"@ably/spaces": "^0.5.2",
"@inquirer/prompts": "^5.5.0",
"@oclif/core": "^4.10.5",
"@oclif/plugin-autocomplete": "^3.2.45",
"@oclif/plugin-warn-if-update-available": "^3.1.60",
Expand All @@ -125,7 +124,6 @@
"cli-table3": "^0.6.5",
"color-json": "^3.0.5",
"fast-levenshtein": "^3.0.0",
"inquirer": "^9.3.8",
"jsonwebtoken": "^9.0.3",
"node-fetch": "^3.3.2",
"open": "^11.0.0",
Expand All @@ -143,7 +141,6 @@
"@oclif/test": "^4.1.18",
"@types/fast-levenshtein": "^0.0.4",
"@types/fs-extra": "^11.0.4",
"@types/inquirer": "^9.0.9",
"@types/jsonwebtoken": "^9.0.10",
"@types/node": "^25.6.0",
"@types/node-fetch": "^2.6.13",
Expand Down
Loading
Loading