@sma1lboy/kobe 0.8.110 → 0.8.111

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.
@@ -3,15 +3,14 @@ name: rove
3
3
  description: Use when controlling Rove tasks, parallel coding attempts, hosted agent sessions, task lifecycle, or the daemon-owned issue tracker from a shell. Also the ONLY channel for messaging another agent session on this machine — `rove api send`, never a peer/MCP side channel.
4
4
  ---
5
5
 
6
- <!-- rove-skill-version: 23 — bump in lockstep with KOBE_SKILL_VERSION (src/lib/skill-install.ts). -->
6
+ <!-- rove-skill-version: 24 — bump in lockstep with KOBE_SKILL_VERSION (src/lib/skill-install.ts). -->
7
7
 
8
8
  # Rove shell control
9
9
 
10
10
  Use `rove api` to manage local coding tasks. Managed Tasks created by API
11
11
  automation own a git Worktree and branch plus Hosted PTY engine tabs; project
12
12
  main and directory Tasks reuse existing directories. API automation works
13
- without an open TUI; prompted `send`, `add`, and `fan-out` ensure a target
14
- engine tab.
13
+ without an open TUI; prompted `send` and `add` ensure a target engine tab.
15
14
 
16
15
  ## Inside a Rove session, Rove verbs come first
17
16
 
@@ -28,7 +27,7 @@ ad-hoc subprocesses never do: its own Worktree and branch (no file
28
27
  collisions with you), a sidebar row with live state the user can watch,
29
28
  lifecycle tracking, and an explicit outcome contract.
30
29
 
31
- - Parallel attempts of one prompt → `fan-out`, not N hand-rolled subagents.
30
+ - Parallel attempts of one prompt → `add --count N`, not N hand-rolled subagents.
32
31
  - Delegating a scoped piece of work → `add --prompt`, not a raw `claude -p`
33
32
  child the user cannot see or manage.
34
33
  - Following up on a task you started → `send`; comparing → `collect`;
@@ -108,11 +107,11 @@ the first row that fits:
108
107
  | The user says | Lands in | Command |
109
108
  |---|---|---|
110
109
  | "you do it", "just fix it", "change X to Y" | you, right here | no Rove verb — edit the files yourself |
111
- | "try it N ways", "compare approaches" | N new tasks | `rove api fan-out --repo "$PWD" --count N --prompt "…"` |
110
+ | "try it N ways", "compare approaches" | N new tasks | `rove api add --repo "$PWD" --count N --prompt "…"` |
112
111
  | "split", "side by side", "keep an eye on X while…" | a new region in the CURRENT tab | `rove api pane-open --command "…"` |
113
112
  | names a tab: "tell the agent in tab 3" | that exact tab | `rove api send --task-id <id> --tab tab-3 --prompt "…"` |
114
113
  | a LOCATION word: "in this workspace/worktree/checkout", "on this branch", "here", "same task" | THIS task, a NEW Terminal Tab | `rove api send --task-id "$ROVE_TASK_ID" --tab new --prompt "…"` |
115
- | names an ENGINE for the same files: "let codex take over here", "try this one with claude instead" | THIS task, a new tab pinned to that engine | `rove api send --task-id "$ROVE_TASK_ID" --tab new --vendor codex --prompt "…"` |
114
+ | names an ENGINE for the same files: "let codex take over here", "try this one with claude instead" | THIS task, a new tab pinned to that engine | `rove api send --task-id "$ROVE_TASK_ID" --tab new --command codex --prompt "…"` |
116
115
  | **anything else — no row above matched** | a NEW task — new worktree + branch | `rove api add --repo "$PWD" --prompt "…"` |
117
116
 
118
117
  Order is the tiebreak: a count ("3 ways in this workspace") beats a location
@@ -125,7 +124,7 @@ not asking for a fleet. Two more rules the table can't show:
125
124
  not the checkout. Only worktree-scoped words route to a tab.
126
125
 
127
126
  Outside a Rove session none of this applies: there is no "this task" to add
128
- a tab to, so `add` / `fan-out` are the only routings available.
127
+ a tab to, so `add` (single or `--count`) is the only routing available.
129
128
 
130
129
  ### Know where you are before you route
131
130
 
@@ -147,6 +146,7 @@ rove api schema
147
146
  rove api schema --verb add
148
147
  rove api schema --group create
149
148
  rove api <verb> --help
149
+ rove api engine-list # what you can launch, and with what command
150
150
  ```
151
151
 
152
152
  Do not guess flags. Commands emit one JSON object; errors use
@@ -159,12 +159,12 @@ after `TASK_NOT_FOUND`). Add `--pretty` for readable output.
159
159
 
160
160
  ```bash
161
161
  # Create one task and start its first engine turn.
162
- rove api add --repo "$PWD" --title "focused title" --vendor claude \
162
+ rove api add --repo "$PWD" --title "focused title" --command claude \
163
163
  --prompt "<complete scoped instruction>"
164
164
 
165
165
  # Parallel attempts of the same prompt (hard cap 10; prefer 3-4).
166
- rove api fan-out --repo "$PWD" --count 3 --prompt "<prompt>"
167
- rove api fan-out --repo "$PWD" --agents claude:2,codex:1 --prompt "<prompt>"
166
+ rove api add --repo "$PWD" --count 3 --prompt "<prompt>"
167
+ rove api add --repo "$PWD" --agents claude:2,codex:1 --prompt "<prompt>"
168
168
 
169
169
  # Follow up. Use an explicit id for unattended work; the active task can drift.
170
170
  # From inside a Rove task this auto-prefixes [KOBE PEER] provenance
@@ -182,8 +182,8 @@ rove api send --task-id <id> --tab tab-3 --prompt "<turn>" # exact alive tab
182
182
  rove api send --task-id <id> --tab new --prompt "<turn>" # fresh engine tab
183
183
  # Same worktree, DIFFERENT agent — the API twin of the TUI's ctrl+e pick. The
184
184
  # engine is pinned to that tab (survives restarts, unaffected by a later
185
- # set-vendor) and the task's own vendor is left alone. --tab new only.
186
- rove api send --task-id <id> --tab new --vendor codex --prompt "<turn>"
185
+ # set-command) and the task's own engine is left alone. --tab new only.
186
+ rove api send --task-id <id> --tab new --command codex --prompt "<turn>"
187
187
 
188
188
  rove api get-task --task-id <id>
189
189
  rove api collect --task-ids <id1>,<id2>,<id3> --pretty
@@ -228,7 +228,7 @@ Defaults: the caller's own task (`$ROVE_TASK_ID`, then the active task),
228
228
  grid; screen size bounds splitting — a split that would shrink any pane
229
229
  below the minimum usable size (20×6 cells) falls back to a tab.
230
230
  Panes land in the USER'S live workspace — open them when asked (monitors,
231
- logs, dashboards), don't scatter panes for work `add`/`fan-out` should own.
231
+ logs, dashboards), don't scatter panes for work `add` should own.
232
232
 
233
233
  ## Lifecycle
234
234
 
@@ -236,7 +236,7 @@ logs, dashboards), don't scatter panes for work `add`/`fan-out` should own.
236
236
  |---|---|
237
237
  | `rename --task-id ID --title T` | Rename a task |
238
238
  | `set-branch --task-id ID --branch B` | Rename its branch |
239
- | `set-vendor --task-id ID --vendor V` | Change engine for the next launch |
239
+ | `set-command --task-id ID --command CMD` | Change the engine launch command for the next launch |
240
240
  | `set-status --task-id ID --status S` | Set lifecycle status |
241
241
  | `archive --task-id ID [--archived=false]` | Archive/unarchive; stops live sessions |
242
242
  | `pin --task-id ID [--pinned=false]` | Pin/unpin |
@@ -276,10 +276,31 @@ columns derive from the issue's own lifecycle — do NOT move cards with
276
276
  linked task finishes.
277
277
  - **Backlog** = everything else (`open`/`doing`/`hold`, unlinked).
278
278
 
279
- ## Fan-out rules
279
+ ## Choosing the engine (`--command`)
280
280
 
281
- Fan out only when the user requests parallel approaches, comparison, or an
282
- explicit count. Give each task a scoped prompt, report returned IDs, then use
281
+ Rove picks an engine by COMMAND, not by a vendor name. `--command` on `add`
282
+ and `send --tab new` takes either an engine id from `rove api engine-list`
283
+ (`claude`, `codex`, …, plus any preset the user registered) or a full command
284
+ line Rove runs verbatim:
285
+
286
+ ```bash
287
+ rove api engine-list --pretty # ids + the RAW command each runs
288
+ rove api add --repo "$PWD" --command "codex --search" --prompt "…"
289
+ ```
290
+
291
+ **Nothing validates an engine's flags — that is your job.** Before dispatching
292
+ an unfamiliar engine or an unfamiliar flag, probe it yourself (`<cmd> --help`,
293
+ `<cmd> --version`) and only then compose the command. A bad command line
294
+ starts a session that dies or ignores you; Rove will not catch it for you.
295
+
296
+ Omit `--command` to use the repo's default engine. `engine-list`'s `protocol`
297
+ field says how much Rove understands about an entry — `generic` means it
298
+ launches fine but Rove reads no history and pre-answers no trust dialog.
299
+
300
+ ## Parallel-round rules
301
+
302
+ Spawn a parallel round (`add --count N` / `--agents`) only when the user
303
+ requests parallel approaches, comparison, or an Give each round a scoped prompt, report returned IDs, then use
283
304
  `collect` to compare. Do not recursively fan out from spawned tasks. Do not
284
305
  poll `send` in a tight loop or use it as casual chat; every call is a full
285
306
  engine turn.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@sma1lboy/kobe",
4
- "version": "0.8.110",
4
+ "version": "0.8.111",
5
5
  "description": "Rove — the agent multiplexer for your terminal. Run coding agents on parallel tasks with isolated worktrees and persistent sessions.",
6
6
  "type": "module",
7
7
  "packageManager": "bun@1.3.13",