skydive-cli 0.2.0 → 0.3.0-beta.764

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +114 -22
  3. package/dist/js/bin.mjs +1261 -128
  4. package/dist/js/{boot-CGaXUEer.mjs → boot-Bs-IF23f.mjs} +2573 -199
  5. package/dist/js/chat/tui/chunks/grammars/assets/bash.highlights.scm +56 -0
  6. package/dist/js/chat/tui/chunks/grammars/assets/bash.wasm +0 -0
  7. package/dist/js/chat/tui/chunks/grammars/assets/c.highlights.scm +81 -0
  8. package/dist/js/chat/tui/chunks/grammars/assets/c.wasm +0 -0
  9. package/dist/js/chat/tui/chunks/grammars/assets/cpp.highlights.scm +70 -0
  10. package/dist/js/chat/tui/chunks/grammars/assets/cpp.wasm +0 -0
  11. package/dist/js/chat/tui/chunks/grammars/assets/css.highlights.scm +76 -0
  12. package/dist/js/chat/tui/chunks/grammars/assets/css.wasm +0 -0
  13. package/dist/js/chat/tui/chunks/grammars/assets/go.highlights.scm +123 -0
  14. package/dist/js/chat/tui/chunks/grammars/assets/go.wasm +0 -0
  15. package/dist/js/chat/tui/chunks/grammars/assets/html.highlights.scm +13 -0
  16. package/dist/js/chat/tui/chunks/grammars/assets/html.wasm +0 -0
  17. package/dist/js/chat/tui/chunks/grammars/assets/java.highlights.scm +149 -0
  18. package/dist/js/chat/tui/chunks/grammars/assets/java.wasm +0 -0
  19. package/dist/js/chat/tui/chunks/grammars/assets/json.highlights.scm +16 -0
  20. package/dist/js/chat/tui/chunks/grammars/assets/json.wasm +0 -0
  21. package/dist/js/chat/tui/chunks/grammars/assets/lua.highlights.scm +201 -0
  22. package/dist/js/chat/tui/chunks/grammars/assets/lua.wasm +0 -0
  23. package/dist/js/chat/tui/chunks/grammars/assets/python.highlights.scm +137 -0
  24. package/dist/js/chat/tui/chunks/grammars/assets/python.wasm +0 -0
  25. package/dist/js/chat/tui/chunks/grammars/assets/ruby.highlights.scm +154 -0
  26. package/dist/js/chat/tui/chunks/grammars/assets/ruby.wasm +0 -0
  27. package/dist/js/chat/tui/chunks/grammars/assets/rust.highlights.scm +161 -0
  28. package/dist/js/chat/tui/chunks/grammars/assets/rust.wasm +0 -0
  29. package/dist/js/chat/tui/chunks/grammars/assets/toml.highlights.scm +53 -0
  30. package/dist/js/chat/tui/chunks/grammars/assets/toml.wasm +0 -0
  31. package/dist/js/chat/tui/chunks/grammars/assets/yaml.highlights.scm +79 -0
  32. package/dist/js/chat/tui/chunks/grammars/assets/yaml.wasm +0 -0
  33. package/dist/js/chat/tui/chunks/grammars/grammars.ts +146 -0
  34. package/dist/js/{client-B3ZhhF7e.mjs → client-Dc7GZ3PG.mjs} +148 -8
  35. package/dist/js/client-DuwxEDG4.mjs +5 -0
  36. package/dist/js/daemon-Ch_MSDmQ.mjs +6 -0
  37. package/dist/js/daemon-Co4CtpXZ.mjs +607 -0
  38. package/dist/js/{theme-CuQhvqzN.mjs → install-DEZmJLGH.mjs} +256 -186
  39. package/dist/js/{print-BZH0b3KB.mjs → print-CPCFci60.mjs} +2 -2
  40. package/dist/js/{print-Bin4u16d.mjs → print-Cd-bVSEJ.mjs} +224 -10
  41. package/dist/js/{print-share-D7OSxvE2.mjs → print-share-7qfpQtWK.mjs} +3 -3
  42. package/dist/js/{raw-pty-GAvxm2ol.mjs → raw-pty-BcjbTjHJ.mjs} +1 -1
  43. package/dist/js/raw-pty-ChUHav4d.mjs +5 -0
  44. package/dist/js/{rest-CamHVOce.mjs → rest-BlN_uWmL.mjs} +150 -19
  45. package/dist/js/rest-CDTXCmUb.mjs +4 -0
  46. package/package.json +3 -1
  47. package/dist/js/api-CDTKq_5Q.mjs +0 -145
  48. package/dist/js/client-D6NAkL9e.mjs +0 -6
  49. package/dist/js/raw-pty-2_VA1kw_.mjs +0 -5
  50. package/dist/js/rest-COkLEZOB.mjs +0 -4
  51. package/dist/js/util-CeisaZVY.mjs +0 -15
  52. /package/dist/js/{client-CpEvH2Pq.mjs → client-DfcJFEbh.mjs} +0 -0
  53. /package/dist/js/{output-B4cW10Ph.mjs → output-DYzzdXYV.mjs} +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,48 @@ All notable changes to the Skydive CLI are documented here.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [Unreleased]
9
+
10
+ ## [0.3.0] - 2026-08-04
11
+
12
+ ### Added
13
+
14
+ **Chat TUI**
15
+
16
+ - `/fork` slash command to fork a conversation at any point and continue in a new thread.
17
+ - `/conversation` switches threads from inside a live session.
18
+ - `/compact` triggers manual conversation compaction.
19
+ - `/portal` and `/copy` slash commands.
20
+ - Archive the current conversation from the chat TUI.
21
+ - `--new` flag on `skydive chat` to start a fresh conversation.
22
+ - Debounced server-side conversation search in the picker, with title matches ranked first.
23
+ - File review pane orientation toggle, and review comments in the file pane.
24
+ - Pinned plan card controls and a jump-to-latest hint.
25
+ - Terminal title (OSC) follows the live conversation title on every screen; inside cmux the workspace is renamed too, and linked PRs are pushed to the cmux sidebar.
26
+ - Every participating agent shows in the conversation list; connect cards each have their own identity, and ctrl+r asks which connect card to act on.
27
+ - Colored Skydive splash art in `skydive --help` and the TUI pickers.
28
+ - New-agent name prefilled from the server's suggestion.
29
+
30
+ **CLI & platform**
31
+
32
+ - `skydive update` self-updater, with an update notice when a new version is available.
33
+ - Shell completions for bash, zsh, and fish via `completion install`.
34
+ - Portal daemon: one connection per host with per-conversation working directories.
35
+ - Agent-led coding-agent import (`skydive import`).
36
+ - Per-workspace scoping on the REST client, and cross-org `--agent <uuid>` auto-switches workspace.
37
+ - `skydive-beta` wrapper for the canary channel.
38
+
39
+ ### Fixed
40
+
41
+ - `skydive update` no longer claims an update is available on every npm install.
42
+ - Chat memory is bounded (payload clamps + windowed rows) with a memory watchdog and OOM diagnostic report; transcript rows are memoized so streaming stops re-rendering the whole chat.
43
+ - Chat-send failures map to real error messages.
44
+ - Notification and sidebar previews use the last text block of the reply and strip inline markdown.
45
+ - Picker rows no longer overlap when a conversation title contains a newline, tab, or control character.
46
+ - Sending to non-web channel conversations is blocked in the TUI.
47
+ - GitHub bot connect opens on the web front door, not api.skydive.com.
48
+ - TUI activity counter times from the run, not the screen.
49
+
8
50
  ## [0.2.0] - 2026-07-29
9
51
 
10
52
  ### Added
package/README.md CHANGED
@@ -6,6 +6,53 @@ The Skydive CLI — manage agents and chat with them from the terminal.
6
6
  npx skydive-cli --help
7
7
  ```
8
8
 
9
+ ## Installing
10
+
11
+ Two ways to install, depending on whether you have a Node toolchain:
12
+
13
+ **npm (needs Node ≥ 20):**
14
+
15
+ ```sh
16
+ npm install -g skydive-cli # then: skydive --help
17
+ # or run without installing:
18
+ npx skydive-cli --help
19
+ ```
20
+
21
+ **Standalone binary (no Node required):**
22
+
23
+ ```sh
24
+ curl -fsSL https://skydive.com/api/v1/cli/install.sh | sh
25
+ ```
26
+
27
+ Installs a self-contained `skydive` to `~/.local/bin`. The installer detects
28
+ your OS/arch, downloads the matching binary from the release CDN, verifies its
29
+ sha256, and installs it. Options via env vars: `SKYDIVE_CHANNEL=canary` for the
30
+ canary line, `SKYDIVE_VERSION=X.Y.Z` to pin a version, `SKYDIVE_INSTALL_DIR` to
31
+ choose the directory.
32
+
33
+ ## Updating
34
+
35
+ ```sh
36
+ skydive update # update to the latest release
37
+ skydive update --check # just report whether an update is available
38
+ ```
39
+
40
+ A **binary** install self-updates in place (download → verify sha256 → atomic
41
+ replace). An **npm/yarn/pnpm/bun** install is owned by your package manager, so
42
+ `skydive update` offers to run the right upgrade command for it and relaunches
43
+ the CLI on the new version.
44
+
45
+ The CLI also checks for updates in the background (at most once a day, never
46
+ blocking a command) and prints a one-line notice when a newer version exists.
47
+ Control this in `config.json` or via env vars:
48
+
49
+ - `autoupdate`: `"patch"` (default — silently self-apply a stable **patch**
50
+ release of a binary install; notify for minor/major, canary, and
51
+ package-manager installs), `"notify"` (only ever print the notice), or
52
+ `false` (no auto-update and no notice). Env override: `SKYDIVE_AUTOUPDATE`.
53
+ - `updateCheck: false` (or `SKYDIVE_NO_UPDATE_CHECK` / `NO_UPDATE_NOTIFIER`)
54
+ turns the background check off entirely.
55
+
9
56
  ## Authentication
10
57
 
11
58
  Sign in once via the browser — the same shape as `doppler login`: the CLI
@@ -84,10 +131,45 @@ skydive portal open # open the portal to this machine, headless
84
131
  skydive portal grant --agent <id|name>
85
132
  skydive portal revoke --agent <id|name>
86
133
  skydive portal status
134
+
135
+ skydive completion install # set up TAB completion for your shell
87
136
  ```
88
137
 
89
138
  Global flags: `--json`, `--quiet`, `--api-url <url>`.
90
139
 
140
+ ## Shell completions
141
+
142
+ bash, zsh, and fish. One command sets them up for the shell you're in:
143
+
144
+ ```sh
145
+ skydive completion install
146
+ ```
147
+
148
+ It writes to `~/.bashrc` (or `~/.bash_profile` on macOS), `~/.zshrc`, or
149
+ `~/.config/fish/completions/skydive.fish`, respecting `ZDOTDIR` and
150
+ `XDG_CONFIG_HOME`, and picking whichever bash startup file you already have.
151
+ Open a new shell to pick them up. Re-running it — after an upgrade, say —
152
+ refreshes the block it wrote instead of appending a second copy, and leaves
153
+ the rest of the file alone. Pass a shell explicitly to set up one you're not
154
+ currently in: `skydive completion install fish`.
155
+
156
+ To see the script instead of installing it, or to source it from somewhere of
157
+ your own choosing:
158
+
159
+ ```sh
160
+ skydive completion zsh # print it
161
+ eval "$(skydive completion bash)" # this shell only
162
+ ```
163
+
164
+ The script doesn't contain the command list — it asks the CLI for candidates
165
+ on each TAB, so completions never drift from the installed version. That
166
+ covers commands, subcommands, flags, and the values of flags with a fixed set
167
+ (`skydive agents list --scope <TAB>` → `mine org`). One TAB costs one short
168
+ CLI invocation (~150 ms).
169
+
170
+ zsh and fish show each command's description alongside it; bash lists names
171
+ only.
172
+
91
173
  ## `skydive import`
92
174
 
93
175
  Migrating from Claude Code, Cursor, or OpenCode? `skydive import` opens a
@@ -176,6 +258,13 @@ internal API. On launch it walks you through:
176
258
  formatting, collapsed reasoning, and rich rendering of tool calls
177
259
  (`bash`, `edit`/`write` diffs, `read`, `grep`/`glob`).
178
260
 
261
+ You can change conversation without leaving chat. `/conversation` (aliases
262
+ `/conversations`, `/conv`) reopens the conversation list, and
263
+ `/conversation <id>` — an id, its `/c/<id>` link, or a pasted
264
+ `skydive chat --resume <id>` line — jumps straight into that thread, including
265
+ one belonging to a **different** agent. Either way the run you leave behind
266
+ keeps going server-side; reopening it reattaches to the stream.
267
+
179
268
  Runs under **Node** like every other command. The TUI renders through
180
269
  OpenTUI, whose native core needs the [Bun](https://bun.sh) runtime, so the
181
270
  first `chat` run downloads a private, pinned Bun and re-execs under it
@@ -237,28 +326,31 @@ management API used by `agents`/`keys`.
237
326
 
238
327
  ### Keybindings
239
328
 
240
- | Context | Key | Action |
241
- | ------------------- | ------------- | ------------------------------------- |
242
- | Pickers | _type_ | filter the list |
243
- | Pickers | `↑` / `↓` | move selection |
244
- | Pickers | `↵` | open / select |
245
- | Pickers | `esc` | back |
246
- | Agent picker | `ctrl+n` | create an agent |
247
- | Agent picker | `ctrl+w` | switch workspace |
248
- | Agent picker | `tab` | toggle mine / whole-org agents |
249
- | Conversation picker | `ctrl+d` | delete the highlighted conversation |
250
- | Chat | `↵` | send (or queue, while streaming) |
251
- | Chat | `pgup`/`pgdn` | scroll the transcript |
252
- | Chat | `ctrl+c` | cancel the active run; again to quit |
253
- | Chat | `esc` | back to the conversation picker |
254
- | Chat | `ctrl+p` | switch model |
255
- | Chat | `ctrl+o` | switch theme |
256
- | Chat | `ctrl+t` | grant / revoke local machine access |
257
- | Chat | `ctrl+l` | open this conversation in the browser |
258
- | Chat | `ctrl+r` | run the newest pending connect card |
259
- | Chat | `ctrl+v` | paste an image from the clipboard |
260
- | Chat | `ctrl+x` | drop the most recently staged image |
261
- | Chat | `?` | show the keybinding reference |
329
+ | Context | Key | Action |
330
+ | ------------------- | ------------- | ------------------------------------------ |
331
+ | Pickers | _type_ | filter the list |
332
+ | Pickers | `↑` / `↓` | move selection |
333
+ | Pickers | `↵` | open / select |
334
+ | Pickers | `esc` | back |
335
+ | Agent picker | `ctrl+n` | create an agent |
336
+ | Agent picker | `ctrl+w` | switch workspace |
337
+ | Agent picker | `tab` | toggle mine / whole-org agents |
338
+ | Conversation picker | `ctrl+a` | archive / restore it for you only |
339
+ | Conversation picker | `ctrl+d` | delete the highlighted conversation |
340
+ | Conversation picker | `shift+tab` | show / hide the ones you archived |
341
+ | Chat | `↵` | send (or queue, while streaming) |
342
+ | Chat | `pgup`/`pgdn` | scroll the transcript |
343
+ | Chat | `ctrl+c` | cancel the active run; again to quit |
344
+ | Chat | `esc` | back to the conversation picker |
345
+ | Chat | `ctrl+a` | archive this conversation (empty composer) |
346
+ | Chat | `ctrl+p` | switch model |
347
+ | Chat | `ctrl+o` | switch theme |
348
+ | Chat | `ctrl+t` | grant / revoke local machine access |
349
+ | Chat | `ctrl+l` | open this conversation in the browser |
350
+ | Chat | `ctrl+r` | run the newest pending connect card |
351
+ | Chat | `ctrl+v` | paste an image from the clipboard |
352
+ | Chat | `ctrl+x` | drop the most recently staged image |
353
+ | Chat | `?` | show the keybinding reference |
262
354
 
263
355
  Messages typed while a response is streaming are **queued** and sent in
264
356
  order as each run finishes; `ctrl+c` cancels the current run and clears the