@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.
- package/dist/cli/index.js +397 -397
- package/dist/cli/kobe.js +397 -397
- package/dist/cli/rove.js +397 -397
- package/dist/skills/rove/SKILL.md +38 -17
- package/package.json +1 -1
|
@@ -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:
|
|
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
|
|
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 → `
|
|
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
|
|
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 --
|
|
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`
|
|
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" --
|
|
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
|
|
167
|
-
rove api
|
|
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-
|
|
186
|
-
rove api send --task-id <id> --tab new --
|
|
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
|
|
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-
|
|
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
|
-
##
|
|
279
|
+
## Choosing the engine (`--command`)
|
|
280
280
|
|
|
281
|
-
|
|
282
|
-
|
|
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.
|
|
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",
|