@hueyexe/opencode-ensemble 0.14.1 → 0.15.0
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/README.md +15 -7
- package/dist/index.js +2093 -1639
- package/package.json +8 -4
- package/src/dashboard-html.ts +11 -3
- package/src/{dashboard-js-part1.ts → dashboard-js-core.ts} +11 -3
- package/src/{dashboard-js-part3.ts → dashboard-js-events.ts} +25 -4
- package/src/{dashboard-js-part2.ts → dashboard-js-render.ts} +13 -8
- package/src/dashboard.ts +154 -78
- package/src/db.ts +88 -5
- package/src/hooks.ts +72 -5
- package/src/index.ts +31 -20
- package/src/messaging.ts +1 -1
- package/src/notify.ts +1 -1
- package/src/process.ts +55 -0
- package/src/recovery.ts +56 -31
- package/src/schema.ts +123 -3
- package/src/system-prompt.ts +1 -1
- package/src/tools/merge-helper.ts +63 -27
- package/src/tools/shared.ts +7 -10
- package/src/tools/team-cleanup.ts +38 -28
- package/src/tools/team-create.ts +17 -5
- package/src/tools/team-shutdown.ts +8 -7
- package/src/tools/team-spawn.ts +3 -1
- package/src/types.ts +51 -5
- package/src/util.ts +17 -0
- package/src/watchdog.ts +5 -4
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@hueyexe/opencode-ensemble)
|
|
8
8
|
[](https://www.npmjs.com/package/@hueyexe/opencode-ensemble)
|
|
9
|
-
[]()
|
|
10
10
|
[]()
|
|
11
11
|
[]()
|
|
12
12
|
[](./LICENSE)
|
|
@@ -19,7 +19,7 @@ Plugin built on the public OpenCode SDK. No internal dependencies.
|
|
|
19
19
|
|
|
20
20
|
```json
|
|
21
21
|
{
|
|
22
|
-
"plugin": ["@hueyexe/opencode-ensemble@0.
|
|
22
|
+
"plugin": ["@hueyexe/opencode-ensemble@0.15.0"]
|
|
23
23
|
}
|
|
24
24
|
```
|
|
25
25
|
|
|
@@ -152,6 +152,7 @@ A real-time mission control dashboard runs at `http://localhost:4747` while Open
|
|
|
152
152
|
- **Timeline** — horizontal event strip showing spawns, messages, completions, shutdowns
|
|
153
153
|
- **Keyboard shortcuts** — `j/k` navigate agents, `Enter` opens drawer, `Esc` closes, `?` shows help
|
|
154
154
|
- **Live clock** — current time + team session duration
|
|
155
|
+
- **Project outline** — collapsible per-project grouping when teams span multiple working directories
|
|
155
156
|
|
|
156
157
|
Configure the port in `.opencode/ensemble.json`:
|
|
157
158
|
|
|
@@ -167,6 +168,13 @@ Set to `0` to disable. The dashboard starts automatically when OpenCode loads th
|
|
|
167
168
|
|
|
168
169
|
Two steps: add the plugin, then allowlist worktree paths.
|
|
169
170
|
|
|
171
|
+
### Runtime requirements
|
|
172
|
+
|
|
173
|
+
The plugin uses SQLite via the host's runtime adapter:
|
|
174
|
+
|
|
175
|
+
- **Bun**: any version with `bun:sqlite` (Bun ≥ 1.0).
|
|
176
|
+
- **Node / Electron** (e.g. opencode Desktop): **Node ≥ 24** for stable `node:sqlite`. Older Node (20.x) lacks the module entirely; Node 22.5–23 has it behind `--experimental-sqlite`. If you load the plugin under an older Node and see `Cannot find module 'node:sqlite'` at startup, your runtime is too old.
|
|
177
|
+
|
|
170
178
|
### 1. Add the plugin
|
|
171
179
|
|
|
172
180
|
Add to your OpenCode config with a pinned version. Project-level or global.
|
|
@@ -175,7 +183,7 @@ Add to your OpenCode config with a pinned version. Project-level or global.
|
|
|
175
183
|
|
|
176
184
|
```json
|
|
177
185
|
{
|
|
178
|
-
"plugin": ["@hueyexe/opencode-ensemble@0.
|
|
186
|
+
"plugin": ["@hueyexe/opencode-ensemble@0.15.0"]
|
|
179
187
|
}
|
|
180
188
|
```
|
|
181
189
|
|
|
@@ -183,7 +191,7 @@ Add to your OpenCode config with a pinned version. Project-level or global.
|
|
|
183
191
|
|
|
184
192
|
```json
|
|
185
193
|
{
|
|
186
|
-
"plugin": ["@hueyexe/opencode-ensemble@0.
|
|
194
|
+
"plugin": ["@hueyexe/opencode-ensemble@0.15.0"]
|
|
187
195
|
}
|
|
188
196
|
```
|
|
189
197
|
|
|
@@ -237,7 +245,7 @@ Build with `bun run build`, then restart OpenCode to pick up changes.
|
|
|
237
245
|
|
|
238
246
|
| Tool | What it does |
|
|
239
247
|
|------|-------------|
|
|
240
|
-
| `team_create` | Create a team. Caller becomes the lead. |
|
|
248
|
+
| `team_create` | Create a team. Caller becomes the lead. Accepts optional `project_name` to label the project. |
|
|
241
249
|
| `team_spawn` | Start a new teammate with a task. Supports `plan_approval` mode. |
|
|
242
250
|
| `team_shutdown` | Ask a teammate to stop. Preserves their branch before aborting. Supports `force` flag. |
|
|
243
251
|
| `team_merge` | Merge a shutdown teammate's branch into working directory (unstaged). Blocks if you have local changes to overlapping files. |
|
|
@@ -280,7 +288,7 @@ Teammate messages arrive in the lead's session as `[Team message from alice]: ..
|
|
|
280
288
|
|
|
281
289
|
## Architecture
|
|
282
290
|
|
|
283
|
-
- **SQLite** (
|
|
291
|
+
- **SQLite** (WAL mode) for teams, members, tasks, and messages. Uses `bun:sqlite` in Bun and `node:sqlite` in Node/Electron through the internal database adapter.
|
|
284
292
|
- **promptAsync** for message delivery: injects a message and starts the prompt loop in one call
|
|
285
293
|
- **Git worktree isolation**: each teammate gets their own worktree by default, so multiple agents can edit files without conflicts. Opt out with `worktree: false` for read-only agents.
|
|
286
294
|
- **System prompt injection**: the lead's system prompt includes team state (member statuses, task counts) on every LLM call. Teammates get a short role reminder.
|
|
@@ -447,7 +455,7 @@ Same coordination model (shared tasks, peer messaging, lead coordination) with s
|
|
|
447
455
|
```bash
|
|
448
456
|
bun install
|
|
449
457
|
bun run typecheck
|
|
450
|
-
bun test #
|
|
458
|
+
bun test # 623 tests
|
|
451
459
|
bun run build
|
|
452
460
|
```
|
|
453
461
|
|