oh-my-opencode-slim 0.9.14 → 1.0.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.
Files changed (74) hide show
  1. package/README.md +131 -56
  2. package/dist/agents/council.d.ts +7 -8
  3. package/dist/agents/orchestrator.d.ts +1 -0
  4. package/dist/background/background-manager.d.ts +20 -1
  5. package/dist/background/index.d.ts +1 -1
  6. package/dist/background/multiplexer-session-manager.d.ts +2 -0
  7. package/dist/cli/index.js +351 -13849
  8. package/dist/cli/types.d.ts +1 -2
  9. package/dist/config/constants.d.ts +3 -3
  10. package/dist/config/council-schema.d.ts +45 -69
  11. package/dist/config/index.d.ts +1 -1
  12. package/dist/config/schema.d.ts +52 -33
  13. package/dist/config/utils.d.ts +7 -0
  14. package/dist/council/council-manager.d.ts +6 -13
  15. package/dist/hooks/auto-update-checker/types.d.ts +1 -1
  16. package/dist/hooks/foreground-fallback/index.d.ts +1 -1
  17. package/dist/hooks/phase-reminder/index.d.ts +1 -1
  18. package/dist/hooks/todo-continuation/todo-hygiene.d.ts +0 -1
  19. package/dist/index.js +7339 -26210
  20. package/dist/interview/service.d.ts +1 -0
  21. package/dist/multiplexer/factory.d.ts +5 -1
  22. package/dist/multiplexer/index.d.ts +1 -0
  23. package/dist/multiplexer/session-manager.d.ts +46 -0
  24. package/dist/multiplexer/tmux/index.d.ts +3 -1
  25. package/dist/multiplexer/types.d.ts +3 -3
  26. package/dist/multiplexer/zellij/index.d.ts +1 -1
  27. package/dist/tools/ast-grep/index.d.ts +1 -1
  28. package/dist/tools/background.d.ts +1 -1
  29. package/dist/tools/council.d.ts +2 -1
  30. package/dist/tools/index.d.ts +0 -2
  31. package/dist/tools/lsp/types.d.ts +1 -1
  32. package/dist/utils/agent-variant.d.ts +15 -1
  33. package/dist/utils/subagent-depth.d.ts +35 -0
  34. package/dist/utils/tmux-debug-log.d.ts +2 -0
  35. package/oh-my-opencode-slim.schema.json +47 -50
  36. package/package.json +11 -10
  37. package/src/skills/{cartography → codemap}/README.md +11 -9
  38. package/src/skills/{cartography → codemap}/SKILL.md +21 -18
  39. package/src/skills/codemap/codemap.md +36 -0
  40. package/src/skills/codemap/scripts/codemap.mjs +483 -0
  41. package/src/skills/codemap/scripts/codemap.test.ts +129 -0
  42. package/src/skills/codemap.md +40 -0
  43. package/src/skills/simplify/README.md +19 -0
  44. package/src/skills/simplify/SKILL.md +138 -0
  45. package/src/skills/simplify/codemap.md +36 -0
  46. package/dist/background/tmux-session-manager.d.ts +0 -63
  47. package/dist/cli/chutes-selection.d.ts +0 -3
  48. package/dist/cli/dynamic-model-selection.d.ts +0 -14
  49. package/dist/cli/external-rankings.d.ts +0 -8
  50. package/dist/cli/model-selection.d.ts +0 -30
  51. package/dist/cli/opencode-models.d.ts +0 -18
  52. package/dist/cli/opencode-selection.d.ts +0 -3
  53. package/dist/cli/precedence-resolver.d.ts +0 -16
  54. package/dist/cli/scoring-v2/engine.d.ts +0 -4
  55. package/dist/cli/scoring-v2/features.d.ts +0 -3
  56. package/dist/cli/scoring-v2/index.d.ts +0 -4
  57. package/dist/cli/scoring-v2/types.d.ts +0 -17
  58. package/dist/cli/scoring-v2/weights.d.ts +0 -2
  59. package/dist/hooks/post-read-nudge/index.d.ts +0 -18
  60. package/dist/interview/store.d.ts +0 -9
  61. package/dist/tools/grep/cli.d.ts +0 -3
  62. package/dist/tools/grep/constants.d.ts +0 -18
  63. package/dist/tools/grep/downloader.d.ts +0 -3
  64. package/dist/tools/grep/index.d.ts +0 -5
  65. package/dist/tools/grep/tools.d.ts +0 -2
  66. package/dist/tools/grep/types.d.ts +0 -35
  67. package/dist/tools/grep/utils.d.ts +0 -2
  68. package/dist/tools/quota/api.d.ts +0 -5
  69. package/dist/tools/quota/command.d.ts +0 -1
  70. package/dist/tools/quota/index.d.ts +0 -21
  71. package/dist/tools/quota/types.d.ts +0 -41
  72. package/dist/utils/tmux.d.ts +0 -32
  73. package/src/skills/cartography/scripts/cartographer.py +0 -456
  74. package/src/skills/cartography/scripts/test_cartographer.py +0 -87
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  <div align="center">
2
- <img src="img/team.png" alt="Pantheon agents" style="border-radius: 10px;" width="620">
2
+ <img src="img/team.jpeg" alt="Pantheon agents" style="border-radius: 10px;">
3
3
  <p><i>Seven divine beings emerged from the dawn of code, each an immortal master of their craft await your command to forge order from chaos and build what was once thought impossible.</i></p>
4
4
  <p><b>Open Multi Agent Suite</b> · Mix any models · Auto delegate tasks</p>
5
- <p><a href="https://moltfounders.com/jobs/09d1c6e7-9e0e-4683-8d78-e2376aaa2333"><img src="https://moltfounders.com/badges/4.png" alt="MoltFounders" height="30"></a></p>
5
+
6
6
  <p><sub>by <b>Boring Dystopia Development</b></sub></p>
7
7
  <p>
8
8
  <a href="https://boringdystopia.ai/"><img src="https://img.shields.io/badge/boringdystopia.ai-111111?style=for-the-badge&logo=vercel&logoColor=white" alt="boringdystopia.ai"></a>&nbsp;
@@ -13,57 +13,81 @@
13
13
 
14
14
  ---
15
15
 
16
- ## 📦 Installation
16
+ ## What's This Plugin
17
+
18
+ oh-my-opencode-slim is an agent orchestration plugin for OpenCode. It includes a built-in team of specialized agents that can scout a codebase, look up fresh documentation, review architecture, handle UI work, and execute well-scoped implementation tasks under one orchestrator.
19
+
20
+ The main idea is simple: instead of forcing one model to do everything, the plugin routes each part of the job to the agent best suited for it, balancing **quality, speed and cost**.
21
+
22
+ To explore the agents themselves, see **[Meet the Pantheon](#meet-the-pantheon)**. For the full feature set, see **[Features & Workflows](#features-and-workflows)** below.
17
23
 
18
24
  ### Quick Start
19
25
 
20
- ```bash
21
- bunx oh-my-opencode-slim@latest install
26
+ Copy and paste this prompt to your LLM agent (Claude Code, AmpCode, Cursor, etc.):
27
+
28
+
29
+ ```
30
+ Install and configure oh-my-opencode-slim: https://raw.githubusercontent.com/alvinunreal/oh-my-opencode-slim/refs/heads/master/README.md
22
31
  ```
23
32
 
24
- The installer generates an OpenAI configuration by default (using `gpt-5.4` and `gpt-5.4-mini`). No provider questions asked.
25
33
 
26
- For non-interactive mode:
34
+ ### Manual Installation
27
35
 
28
36
  ```bash
29
- bunx oh-my-opencode-slim@latest install --no-tui --tmux=yes --skills=yes
37
+ bunx oh-my-opencode-slim@latest install
30
38
  ```
31
39
 
32
- To force overwrite of an existing configuration:
33
- ```bash
34
- bunx oh-my-opencode-slim@latest install --reset
35
- ```
40
+ ### Getting Started
36
41
 
37
- ### For Alternative Providers
42
+ The installer generates an OpenAI preset by default, using `openai/gpt-5.4` for the higher-judgment agents and `openai/gpt-5.4-mini` for the faster scoped agents.
38
43
 
39
- The default configuration uses OpenAI. To use Kimi, GitHub Copilot, or ZAI Coding Plan, see **[Provider Configurations](docs/provider-configurations.md)** for step-by-step instructions and config examples.
44
+ Then:
40
45
 
41
- > [!TIP]
42
- > Want to see the latest models OpenCode knows about? Run `opencode models --refresh` to refresh the cache and list currently available models.
46
+ 1. **Log in to the providers you want to use if you haven't already**:
47
+
48
+ ```bash
49
+ opencode auth login
50
+ ```
51
+ 2. **Refresh and list the models OpenCode can see**:
43
52
 
44
- ### JSON Schema
53
+ ```bash
54
+ opencode models --refresh
55
+ ```
56
+ 3. **Open your plugin config** at `~/.config/opencode/oh-my-opencode-slim.json`
45
57
 
46
- An official JSON Schema is included in the package for editor validation and autocomplete. Add a `$schema` reference to your config file:
58
+ 4. **Update the models you want for each agent**
59
+
60
+ > [!TIP]
61
+ > Want to understand how automatic delegation works in practice? Review the **[Orchestrator prompt](https://github.com/alvinunreal/oh-my-opencode-slim/blob/master/src/agents/orchestrator.ts#L28)** — it contains the delegation rules, specialist routing logic, and the thresholds for when the main agent should hand work off to subagents.
62
+
63
+ The default generated configuration looks like this:
47
64
 
48
65
  ```jsonc
49
66
  {
50
67
  "$schema": "https://unpkg.com/oh-my-opencode-slim@latest/oh-my-opencode-slim.schema.json",
51
- // your config...
68
+ "preset": "openai",
69
+ "presets": {
70
+ "openai": {
71
+ "orchestrator": { "model": "openai/gpt-5.4", "variant": "high", "skills": ["*"], "mcps": ["*", "!context7"] },
72
+ "oracle": { "model": "openai/gpt-5.4", "variant": "high", "skills": ["simplify"], "mcps": [] },
73
+ "librarian": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": ["websearch", "context7", "grep_app"] },
74
+ "explorer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] },
75
+ "designer": { "model": "openai/gpt-5.4-mini", "variant": "medium", "skills": ["agent-browser"], "mcps": [] },
76
+ "fixer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] }
77
+ }
78
+ }
52
79
  }
53
80
  ```
54
81
 
55
- This enables autocomplete and inline validation in VS Code, Neovim, and other editors that support JSON Schema.
56
-
57
- ### For LLM Agents
82
+ ### For Alternative Providers
58
83
 
59
- Paste this into any coding agent:
84
+ To use Kimi, GitHub Copilot, ZAI Coding Plan, or a mixed-provider setup, use **[Configuration](docs/configuration.md)** for the full reference. If you want a ready-made starting point, check the **[Author's Preset](docs/authors-preset.md)** and **[$30 Preset](docs/thirty-dollars-preset.md)** - the `$30` preset is the best cheap setup.
60
85
 
61
- ```
62
- Install and configure by following the instructions here:
63
- https://raw.githubusercontent.com/alvinunreal/oh-my-opencode-slim/refs/heads/master/README.md
64
- ```
86
+ The configuration guide also covers custom subagents via `agents.<name>`, where
87
+ you can define both a normal `prompt` and an `orchestratorPrompt` block for
88
+ delegation.
65
89
 
66
- **Detailed installation guide:** [docs/installation.md](docs/installation.md)
90
+ You can also mix and match any models per agent. For model suggestions, see the **Recommended Models** listed under each agent below.
67
91
 
68
92
  ### ✅ Verify Your Setup
69
93
 
@@ -88,6 +112,8 @@ If any agent fails to respond, check your provider authentication and config fil
88
112
 
89
113
  ---
90
114
 
115
+ <a id="meet-the-pantheon"></a>
116
+
91
117
  ## 🏛️ Meet the Pantheon
92
118
 
93
119
  ### 01. Orchestrator: The Embodiment Of Order
@@ -122,6 +148,11 @@ If any agent fails to respond, check your provider authentication and config fil
122
148
  <b>Recommended Models:</b> <code>openai/gpt-5.4</code> <code>anthropic/claude-opus-4.6</code>
123
149
  </td>
124
150
  </tr>
151
+ <tr>
152
+ <td colspan="2">
153
+ <b>Model Guidance:</b> Choose your default, strongest all-around coding model. Orchestrator is both the main coding agent and the delegator, so it needs strong implementation ability, good judgment, and reliable instruction-following.
154
+ </td>
155
+ </tr>
125
156
  </table>
126
157
 
127
158
  ---
@@ -158,6 +189,11 @@ If any agent fails to respond, check your provider authentication and config fil
158
189
  <b>Recommended Models:</b> <code>cerebras/zai-glm-4.7</code> <code>fireworks-ai/accounts/fireworks/routers/kimi-k2p5-turbo</code> <code>openai/gpt-5.4-mini</code>
159
190
  </td>
160
191
  </tr>
192
+ <tr>
193
+ <td colspan="2">
194
+ <b>Model Guidance:</b> Choose a fast, low-cost model. Explorer handles broad scouting work, so speed and efficiency usually matter more than using your strongest reasoning model.
195
+ </td>
196
+ </tr>
161
197
  </table>
162
198
 
163
199
  ---
@@ -194,12 +230,20 @@ If any agent fails to respond, check your provider authentication and config fil
194
230
  <b>Recommended Models:</b> <code>openai/gpt-5.4 (high)</code> <code>google/gemini-3.1-pro-preview (high)</code>
195
231
  </td>
196
232
  </tr>
233
+ <tr>
234
+ <td colspan="2">
235
+ <b>Model Guidance:</b> Choose your strongest high-reasoning model for architecture, hard debugging, trade-offs, and code review.
236
+ </td>
237
+ </tr>
197
238
  </table>
198
239
 
199
240
  ---
200
241
 
201
242
  ### Council: The Chorus of Minds
202
243
 
244
+ > [!NOTE]
245
+ > **Why doesn't Orchestrator auto-call Council more often?** This is intentional. Council runs multiple models at once, so automatic delegation is kept strict because it is usually the highest-cost path in the system. In practice, Council is meant to be used manually when you want it, for example: <code>@council compare these two architectures</code>.
246
+
203
247
  <table>
204
248
  <tr>
205
249
  <td width="30%" align="center" valign="top">
@@ -227,7 +271,7 @@ If any agent fails to respond, check your provider authentication and config fil
227
271
  </tr>
228
272
  <tr>
229
273
  <td colspan="2">
230
- <b>Default Setup:</b> <code>Config-driven</code> — council master + councillors are chosen from your configured preset
274
+ <b>Default Setup:</b> <code>Config-driven</code> — councillors are chosen from your configured preset and the council agent synthesizes their responses
231
275
  </td>
232
276
  </tr>
233
277
  <tr>
@@ -235,6 +279,11 @@ If any agent fails to respond, check your provider authentication and config fil
235
279
  <b>Recommended Setup:</b> <code>Strong master</code> + <code>diverse councillors</code> across providers
236
280
  </td>
237
281
  </tr>
282
+ <tr>
283
+ <td colspan="2">
284
+ <b>Model Guidance:</b> Use a strong synthesis model as the master and diverse models as councillors. The value of Council comes from comparing different model perspectives, not just picking the single strongest model everywhere.
285
+ </td>
286
+ </tr>
238
287
  </table>
239
288
 
240
289
  ---
@@ -271,6 +320,11 @@ If any agent fails to respond, check your provider authentication and config fil
271
320
  <b>Recommended Models:</b> <code>cerebras/zai-glm-4.7</code> <code>fireworks-ai/accounts/fireworks/routers/kimi-k2p5-turbo</code> <code>openai/gpt-5.4-mini</code>
272
321
  </td>
273
322
  </tr>
323
+ <tr>
324
+ <td colspan="2">
325
+ <b>Model Guidance:</b> Choose a fast, low-cost model. Librarian handles research and documentation lookups, so speed and efficiency usually matter more than using your strongest reasoning model.
326
+ </td>
327
+ </tr>
274
328
  </table>
275
329
 
276
330
  ---
@@ -307,6 +361,11 @@ If any agent fails to respond, check your provider authentication and config fil
307
361
  <b>Recommended Models:</b> <code>google/gemini-3.1-pro-preview</code> <code>kimi-for-coding/k2p5</code>
308
362
  </td>
309
363
  </tr>
364
+ <tr>
365
+ <td colspan="2">
366
+ <b>Model Guidance:</b> Choose a model that is strong at UI/UX judgment, frontend implementation, and visual polish.
367
+ </td>
368
+ </tr>
310
369
  </table>
311
370
 
312
371
  ---
@@ -343,12 +402,17 @@ If any agent fails to respond, check your provider authentication and config fil
343
402
  <b>Recommended Models:</b> <code>cerebras/zai-glm-4.7</code> <code>fireworks-ai/accounts/fireworks/routers/kimi-k2p5-turbo</code> <code>openai/gpt-5.4-mini</code>
344
403
  </td>
345
404
  </tr>
405
+ <tr>
406
+ <td colspan="2">
407
+ <b>Model Guidance:</b> Choose a fast, reliable coding model for routine, scoped implementation work. Fixer usually receives a concrete plan or bounded instructions from Orchestrator, making it a good place for efficient execution tasks such as tests, test updates, and straightforward code changes.
408
+ </td>
409
+ </tr>
346
410
  </table>
347
411
 
348
412
  ### 07. Observer: The Silent Witness
349
413
 
350
414
  > [!NOTE]
351
- > **Why a separate agent?** Not all models support vision. Your strongest coding model (e.g. for design decisions) may not be able to read images, while a vision-capable model may not be the best for reasoning. Observer solves this by having its **own model** configure a vision-capable model for it while keeping Designer on your strongest reasoning model. Disabled by default; enable via `disabled_agents: []` in config.
415
+ > **Why a separate agent?** If your Orchestrator model is not multimodal, enable Observer to handle images, screenshots, PDFs, and other visual files. Observer is disabled by default and gives the Orchestrator a dedicated multimodal reader without forcing you to change your main reasoning model. Set `disabled_agents: []` and an `observer` model in your configuration.
352
416
 
353
417
  <table>
354
418
  <tr>
@@ -376,45 +440,53 @@ If any agent fails to respond, check your provider authentication and config fil
376
440
  <b>Default Model:</b> <code>openai/gpt-5.4-mini</code> — <i>configure a vision-capable model to enable</i>
377
441
  </td>
378
442
  </tr>
443
+ <tr>
444
+ <td colspan="2">
445
+ <b>Model Guidance:</b> Choose a vision-capable model if you want the agent to read screenshots, images, PDFs, and other visual files.
446
+ </td>
447
+ </tr>
379
448
  </table>
380
449
 
381
450
  ---
382
451
 
383
452
  ## 📚 Documentation
384
453
 
385
- ### 🚀 Getting Started
454
+ Use this section as a map: start with installation, then jump to features, configuration, or example presets depending on what you need.
386
455
 
387
- | Doc | Contents |
388
- |-----|----------|
389
- | **[Installation Guide](docs/installation.md)** | CLI flags, `--reset`, auth, troubleshooting |
390
- | **[Provider Configurations](docs/provider-configurations.md)** | OpenAI, Kimi, Copilot, ZAI, Fireworks AI — mixing providers, fallback chains |
456
+ ### 🚀 Start Here
391
457
 
392
- ### Features
458
+ | Doc | What it covers |
459
+ |-----|----------------|
460
+ | **[Installation Guide](docs/installation.md)** | Install the plugin, use CLI flags, reset config, and troubleshoot setup |
393
461
 
394
- | Feature | Doc | What it does |
395
- |---------|-----|--------------|
396
- | **Council** | [council.md](docs/council.md) | Run N models in parallel, synthesize one answer (`@council`) |
397
- | **Interview** | [interview.md](docs/interview.md) | Browser-based Q&A flow for turning rough ideas into a live markdown spec |
398
- | **Multiplexer Integration** | [multiplexer-integration.md](docs/multiplexer-integration.md) | Watch agents work in real-time with auto-spawned panes (Tmux/Zellij) |
399
- | **Cartography Skill** | [cartography.md](docs/cartography.md) | Auto-generate hierarchical codemaps for any codebase |
462
+ <a id="features-and-workflows"></a>
400
463
 
401
- ### ⚙️ Config & Reference
464
+ ### Features & Workflows
465
+
466
+ | Doc | What it covers |
467
+ |-----|----------------|
468
+ | **[Council](docs/council.md)** | Run multiple models in parallel and synthesize a single answer with `@council` |
469
+ | **[Interview](docs/interview.md)** | Turn rough ideas into a structured markdown spec through a browser-based Q&A flow |
470
+ | **[Multiplexer Integration](docs/multiplexer-integration.md)** | Watch agents work live in Tmux or Zellij panes |
471
+ | **[Todo Continuation](docs/todo-continuation.md)** | Auto-continue orchestrator sessions with cooldowns and safety checks |
472
+ | **[Codemap](docs/codemap.md)** | Generate hierarchical codemaps to understand large codebases faster |
402
473
 
403
- | Doc | Contents |
404
- |-----|----------|
405
- | **[Skills](docs/skills.md)** | `simplify`, `agent-browser`, `cartography` — assignment syntax |
406
- | **[MCPs](docs/mcps.md)** | `websearch`, `context7`, `grep_app` — permissions per agent |
407
- | **[Tools](docs/tools.md)** | Background tasks, LSP, code search, formatters |
408
- | **[Configuration](docs/configuration.md)** | Config files, prompt overriding, JSONC, full option reference |
474
+ ### ⚙️ Config & Reference
409
475
 
410
- Slim only intercepts `apply_patch` before native execution. It rewrites recoverable stale patches, canonizes safe tolerant matches against the real file when unicode/trim drift is the only mismatch, keeps the authored `new_lines` bytes intact, preserves existing file EOL/final-newline state for updates, validates malformed patches strictly before helper execution, uses a conservative bounded LCS fallback, supports sequential `Update File` hunks on the same path through accumulated helper state, and blocks `apply_patch` before the native tool runs if any patch path falls outside the allowed root/worktree. This rescue does not extend to `edit` or `write`.
476
+ | Doc | What it covers |
477
+ |-----|----------------|
478
+ | **[Configuration](docs/configuration.md)** | Config file locations, JSONC support, prompt overrides, and full option reference |
479
+ | **[Maintainer Guide](docs/maintainers.md)** | Issue triage rules, label meanings, support routing, and repo maintenance workflow |
480
+ | **[Skills](docs/skills.md)** | Built-in and recommended skills such as `simplify`, `agent-browser`, and `codemap` |
481
+ | **[MCPs](docs/mcps.md)** | `websearch`, `context7`, `grep_app`, and how MCP permissions work per agent |
482
+ | **[Tools](docs/tools.md)** | Built-in tool capabilities like `webfetch`, LSP tools, code search, and formatters |
411
483
 
412
- ### 💡 Presets
484
+ ### 💡 Example Presets
413
485
 
414
- | Doc | Contents |
415
- |-----|----------|
416
- | **[Author's Preset](docs/authors-preset.md)** | The exact config the author runs daily OpenAI Pro + GitHub Copilot |
417
- | **[$30 Preset](docs/thirty-dollars-preset.md)** | A mixed setup using Codex Plus ($20) + GitHub Copilot Pro ($10) for about $30/month total |
486
+ | Doc | What it covers |
487
+ |-----|----------------|
488
+ | **[Author's Preset](docs/authors-preset.md)** | The author's daily mixed-provider setup |
489
+ | **[$30 Preset](docs/thirty-dollars-preset.md)** | A budget mixed-provider setup for around $30/month |
418
490
 
419
491
  ---
420
492
 
@@ -425,7 +497,7 @@ Slim only intercepts `apply_patch` before native execution. It rewrites recovera
425
497
  <p><sub>Every merged contribution leaves a mark on the realm.</sub></p>
426
498
 
427
499
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
428
- [![All Contributors](https://img.shields.io/badge/all_contributors-38-orange.svg?style=flat-square)](#contributors-)
500
+ [![All Contributors](https://img.shields.io/badge/all_contributors-41-orange.svg?style=flat-square)](#contributors-)
429
501
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
430
502
  </div>
431
503
 
@@ -487,6 +559,9 @@ Slim only intercepts `apply_patch` before native execution. It rewrites recovera
487
559
  <tr>
488
560
  <td align="center" valign="top" width="16.66%"><a href="https://github.com/dkovacevic15"><img src="https://avatars.githubusercontent.com/u/24757821?v=4?s=100" width="100px;" alt="Dusan Kovacevic"/><br /><sub><b>Dusan Kovacevic</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=dkovacevic15" title="Code">💻</a></td>
489
561
  <td align="center" valign="top" width="16.66%"><a href="https://github.com/jwcrystal"><img src="https://avatars.githubusercontent.com/u/121911854?v=4?s=100" width="100px;" alt="jwcrystal"/><br /><sub><b>jwcrystal</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=jwcrystal" title="Code">💻</a></td>
562
+ <td align="center" valign="top" width="16.66%"><a href="https://zenstudio.cv/"><img src="https://avatars.githubusercontent.com/u/10528635?v=4?s=100" width="100px;" alt="Nguyen Canh Toan"/><br /><sub><b>Nguyen Canh Toan</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=ZenStudioLab" title="Code">💻</a></td>
563
+ <td align="center" valign="top" width="16.66%"><a href="https://github.com/tom-dyar"><img src="https://avatars.githubusercontent.com/u/8899513?v=4?s=100" width="100px;" alt="Thomas Dyar"/><br /><sub><b>Thomas Dyar</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=tom-dyar" title="Code">💻</a></td>
564
+ <td align="center" valign="top" width="16.66%"><a href="https://github.com/zuuky"><img src="https://avatars.githubusercontent.com/u/6713415?v=4?s=100" width="100px;" alt="zero"/><br /><sub><b>zero</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=zuuky" title="Code">💻</a></td>
490
565
  </tr>
491
566
  </tbody>
492
567
  </table>
@@ -11,18 +11,17 @@ export declare function createCouncilAgent(model: string, customPrompt?: string,
11
11
  */
12
12
  export declare function formatCouncillorPrompt(userPrompt: string, councillorPrompt?: string): string;
13
13
  /**
14
- * Build the synthesis prompt for the council master.
14
+ * Format councillor results for the council agent to synthesize.
15
15
  *
16
- * Formats councillor results as structured data the agent factory
17
- * (council-master.ts) provides the system prompt with synthesis instructions.
18
- * Returns a special prompt when all councillors failed to produce output.
19
- *
20
- * @param masterPrompt - Optional per-master guidance appended to the synthesis.
16
+ * Formats councillor results as structured data that the council agent
17
+ * (which called the tool) will receive as the tool response. The council
18
+ * agent's system prompt contains synthesis instructions.
19
+ * Returns a special message when all councillors failed to produce output.
21
20
  */
22
- export declare function formatMasterSynthesisPrompt(originalPrompt: string, councillorResults: Array<{
21
+ export declare function formatCouncillorResults(originalPrompt: string, councillorResults: Array<{
23
22
  name: string;
24
23
  model: string;
25
24
  status: string;
26
25
  result?: string;
27
26
  error?: string;
28
- }>, masterPrompt?: string): string;
27
+ }>): string;
@@ -1,6 +1,7 @@
1
1
  import type { AgentConfig } from '@opencode-ai/sdk/v2';
2
2
  export interface AgentDefinition {
3
3
  name: string;
4
+ displayName?: string;
4
5
  description?: string;
5
6
  config: AgentConfig;
6
7
  /** Priority-ordered model entries for runtime fallback resolution. */
@@ -16,6 +16,7 @@ import type { PluginInput } from '@opencode-ai/plugin';
16
16
  import type { BackgroundTaskConfig, PluginConfig } from '../config';
17
17
  import type { MultiplexerConfig } from '../config/schema';
18
18
  import { SubagentDepthTracker } from './subagent-depth';
19
+ export declare function loadPersistedTask(taskId: string): BackgroundTask | null;
19
20
  /**
20
21
  * Represents a background task running in an isolated session.
21
22
  * Tasks are tracked from creation through completion or failure.
@@ -33,6 +34,7 @@ export interface BackgroundTask {
33
34
  startedAt: Date;
34
35
  completedAt?: Date;
35
36
  prompt: string;
37
+ questions: string[];
36
38
  }
37
39
  /**
38
40
  * Options for launching a new background task.
@@ -65,6 +67,11 @@ export declare class BackgroundTaskManager {
65
67
  * to add new background agent types without updating SUBAGENT_DELEGATION_RULES.
66
68
  */
67
69
  private getSubagentRules;
70
+ /**
71
+ * Resolve the agent associated with a session.
72
+ * Untracked sessions are treated as orchestrator sessions by default.
73
+ */
74
+ private getSessionAgent;
68
75
  /**
69
76
  * Check if a parent session is allowed to delegate to a specific agent type.
70
77
  * @param parentSessionId - The session ID of the parent
@@ -154,10 +161,22 @@ export declare class BackgroundTaskManager {
154
161
  /**
155
162
  * Retrieve the current state of a background task.
156
163
  *
164
+ * Checks in-memory first. If not found (e.g. after plugin reinitialization
165
+ * caused by context compaction), falls back to the persisted state on disk.
166
+ *
157
167
  * @param taskId - The task ID to retrieve
158
- * @returns The task object, or null if not found
168
+ * @returns The task object, or null if not found in memory or on disk
159
169
  */
160
170
  getResult(taskId: string): BackgroundTask | null;
171
+ /**
172
+ * Add a question relayed from a background subagent via ask_orchestrator.
173
+ * Resolves the task from the session ID in toolContext.
174
+ * Returns true if the question was recorded, false if the task wasn't found
175
+ * or is no longer active (completed/failed/cancelled).
176
+ *
177
+ * Questions are persisted to disk immediately for crash safety.
178
+ */
179
+ addQuestion(sessionId: string, question: string): 'recorded' | 'not-found' | 'terminal' | 'cap-reached';
161
180
  /**
162
181
  * Wait for a task to complete.
163
182
  *
@@ -1,3 +1,3 @@
1
- export { type BackgroundTask, BackgroundTaskManager, type LaunchOptions, } from './background-manager';
1
+ export { type BackgroundTask, BackgroundTaskManager, type LaunchOptions, loadPersistedTask, } from './background-manager';
2
2
  export { MultiplexerSessionManager, TmuxSessionManager, } from './multiplexer-session-manager';
3
3
  export { SubagentDepthTracker } from './subagent-depth';
@@ -10,6 +10,7 @@ interface SessionEvent {
10
10
  id?: string;
11
11
  parentID?: string;
12
12
  title?: string;
13
+ directory?: string;
13
14
  };
14
15
  sessionID?: string;
15
16
  status?: {
@@ -26,6 +27,7 @@ interface SessionEvent {
26
27
  export declare class MultiplexerSessionManager {
27
28
  private client;
28
29
  private serverUrl;
30
+ private directory;
29
31
  private multiplexer;
30
32
  private sessions;
31
33
  private pollInterval?;