oh-my-opencode-slim 0.9.15 → 1.0.1

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 (41) hide show
  1. package/README.md +38 -18
  2. package/dist/agents/council.d.ts +7 -8
  3. package/dist/agents/orchestrator.d.ts +1 -1
  4. package/dist/background/background-manager.d.ts +11 -0
  5. package/dist/background/index.d.ts +1 -1
  6. package/dist/cli/index.js +309 -13804
  7. package/dist/cli/types.d.ts +1 -1
  8. package/dist/config/constants.d.ts +3 -3
  9. package/dist/config/council-schema.d.ts +46 -69
  10. package/dist/config/index.d.ts +1 -1
  11. package/dist/config/schema.d.ts +48 -33
  12. package/dist/config/utils.d.ts +7 -0
  13. package/dist/council/council-manager.d.ts +9 -13
  14. package/dist/hooks/auto-update-checker/types.d.ts +1 -1
  15. package/dist/hooks/foreground-fallback/index.d.ts +1 -1
  16. package/dist/hooks/phase-reminder/index.d.ts +1 -1
  17. package/dist/hooks/todo-continuation/todo-hygiene.d.ts +0 -1
  18. package/dist/index.js +7670 -26628
  19. package/dist/interview/service.d.ts +1 -0
  20. package/dist/multiplexer/index.d.ts +1 -0
  21. package/dist/multiplexer/session-manager.d.ts +46 -0
  22. package/dist/multiplexer/types.d.ts +1 -1
  23. package/dist/tools/ast-grep/index.d.ts +1 -1
  24. package/dist/tools/background.d.ts +1 -1
  25. package/dist/tools/council.d.ts +2 -1
  26. package/dist/tools/index.d.ts +2 -2
  27. package/dist/tools/lsp/types.d.ts +1 -1
  28. package/dist/tools/preset-manager.d.ts +27 -0
  29. package/dist/utils/subagent-depth.d.ts +35 -0
  30. package/dist/utils/tmux-debug-log.d.ts +2 -0
  31. package/oh-my-opencode-slim.schema.json +35 -50
  32. package/package.json +9 -10
  33. package/src/skills/{cartography → codemap}/README.md +11 -9
  34. package/src/skills/{cartography → codemap}/SKILL.md +21 -18
  35. package/src/skills/codemap/codemap.md +36 -0
  36. package/src/skills/codemap/scripts/codemap.mjs +483 -0
  37. package/src/skills/codemap/scripts/codemap.test.ts +129 -0
  38. package/src/skills/codemap.md +40 -0
  39. package/src/skills/simplify/codemap.md +36 -0
  40. package/src/skills/cartography/scripts/cartographer.py +0 -456
  41. package/src/skills/cartography/scripts/test_cartographer.py +0 -87
package/README.md CHANGED
@@ -23,6 +23,16 @@ To explore the agents themselves, see **[Meet the Pantheon](#meet-the-pantheon)*
23
23
 
24
24
  ### Quick Start
25
25
 
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
31
+ ```
32
+
33
+
34
+ ### Manual Installation
35
+
26
36
  ```bash
27
37
  bunx oh-my-opencode-slim@latest install
28
38
  ```
@@ -61,7 +71,7 @@ The default generated configuration looks like this:
61
71
  "orchestrator": { "model": "openai/gpt-5.4", "variant": "high", "skills": ["*"], "mcps": ["*", "!context7"] },
62
72
  "oracle": { "model": "openai/gpt-5.4", "variant": "high", "skills": ["simplify"], "mcps": [] },
63
73
  "librarian": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": ["websearch", "context7", "grep_app"] },
64
- "explorer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": ["cartography"], "mcps": [] },
74
+ "explorer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] },
65
75
  "designer": { "model": "openai/gpt-5.4-mini", "variant": "medium", "skills": ["agent-browser"], "mcps": [] },
66
76
  "fixer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] }
67
77
  }
@@ -71,7 +81,11 @@ The default generated configuration looks like this:
71
81
 
72
82
  ### For Alternative Providers
73
83
 
74
- To use Kimi, GitHub Copilot, ZAI Coding Plan, or a mixed-provider setup, see **[Provider Configurations](docs/provider-configurations.md)** for step-by-step config examples. 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.
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.
85
+
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.
75
89
 
76
90
  You can also mix and match any models per agent. For model suggestions, see the **Recommended Models** listed under each agent below.
77
91
 
@@ -91,7 +105,7 @@ ping all agents
91
105
 
92
106
  <div align="center">
93
107
  <img src="img/ping.png" alt="Ping all agents" width="600">
94
- <p><i>Confirmation that all six agents are online and ready.</i></p>
108
+ <p><i>Confirmation that all configured agents are online and ready.</i></p>
95
109
  </div>
96
110
 
97
111
  If any agent fails to respond, check your provider authentication and config file.
@@ -225,7 +239,7 @@ If any agent fails to respond, check your provider authentication and config fil
225
239
 
226
240
  ---
227
241
 
228
- ### Council: The Chorus of Minds
242
+ ### 04. Council: The Chorus of Minds
229
243
 
230
244
  > [!NOTE]
231
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>.
@@ -257,7 +271,7 @@ If any agent fails to respond, check your provider authentication and config fil
257
271
  </tr>
258
272
  <tr>
259
273
  <td colspan="2">
260
- <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
261
275
  </td>
262
276
  </tr>
263
277
  <tr>
@@ -274,7 +288,7 @@ If any agent fails to respond, check your provider authentication and config fil
274
288
 
275
289
  ---
276
290
 
277
- ### 04. Librarian: The Weaver of Knowledge
291
+ ### 05. Librarian: The Weaver of Knowledge
278
292
 
279
293
  <table>
280
294
  <tr>
@@ -315,7 +329,7 @@ If any agent fails to respond, check your provider authentication and config fil
315
329
 
316
330
  ---
317
331
 
318
- ### 05. Designer: The Guardian of Aesthetics
332
+ ### 06. Designer: The Guardian of Aesthetics
319
333
 
320
334
  <table>
321
335
  <tr>
@@ -356,7 +370,7 @@ If any agent fails to respond, check your provider authentication and config fil
356
370
 
357
371
  ---
358
372
 
359
- ### 06. Fixer: The Last Builder
373
+ ### 07. Fixer: The Last Builder
360
374
 
361
375
  <table>
362
376
  <tr>
@@ -395,18 +409,22 @@ If any agent fails to respond, check your provider authentication and config fil
395
409
  </tr>
396
410
  </table>
397
411
 
398
- ### 07. Observer: The Silent Witness
412
+ ---
413
+
414
+ ## Optional Agents
415
+
416
+ ### Observer: The Silent Witness
399
417
 
400
418
  > [!NOTE]
401
419
  > **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.
402
420
 
403
421
  <table>
404
422
  <tr>
405
- <td width="240" valign="top">
406
- <b>Observer</b><br>
407
- <i>Visual & binary analysis</i>
423
+ <td width="30%" align="center" valign="top">
424
+ <img src="img/observer.jpg" width="240" style="border-radius: 10px;">
425
+ <br><sub><i>The eye that reads what others cannot.</i></sub>
408
426
  </td>
409
- <td>
427
+ <td width="70%" valign="top">
410
428
 
411
429
  **Read-only visual analysis** — interprets images, screenshots, PDFs, and diagrams. Returns structured observations to the orchestrator without loading raw file bytes into the main context window.
412
430
 
@@ -444,7 +462,6 @@ Use this section as a map: start with installation, then jump to features, confi
444
462
  | Doc | What it covers |
445
463
  |-----|----------------|
446
464
  | **[Installation Guide](docs/installation.md)** | Install the plugin, use CLI flags, reset config, and troubleshoot setup |
447
- | **[Provider Configurations](docs/provider-configurations.md)** | Configure OpenAI, Kimi, GitHub Copilot, ZAI, Fireworks AI, or mixed-provider presets |
448
465
 
449
466
  <a id="features-and-workflows"></a>
450
467
 
@@ -456,16 +473,18 @@ Use this section as a map: start with installation, then jump to features, confi
456
473
  | **[Interview](docs/interview.md)** | Turn rough ideas into a structured markdown spec through a browser-based Q&A flow |
457
474
  | **[Multiplexer Integration](docs/multiplexer-integration.md)** | Watch agents work live in Tmux or Zellij panes |
458
475
  | **[Todo Continuation](docs/todo-continuation.md)** | Auto-continue orchestrator sessions with cooldowns and safety checks |
459
- | **[Cartography](docs/cartography.md)** | Generate hierarchical codemaps to understand large codebases faster |
476
+ | **[Preset Switching](docs/preset-switching.md)** | Switch agent model presets at runtime with `/preset` |
477
+ | **[Codemap](docs/codemap.md)** | Generate hierarchical codemaps to understand large codebases faster |
460
478
 
461
479
  ### ⚙️ Config & Reference
462
480
 
463
481
  | Doc | What it covers |
464
482
  |-----|----------------|
465
483
  | **[Configuration](docs/configuration.md)** | Config file locations, JSONC support, prompt overrides, and full option reference |
466
- | **[Skills](docs/skills.md)** | Built-in and recommended skills such as `simplify`, `agent-browser`, and `cartography` |
484
+ | **[Maintainer Guide](docs/maintainers.md)** | Issue triage rules, label meanings, support routing, and repo maintenance workflow |
485
+ | **[Skills](docs/skills.md)** | Built-in and recommended skills such as `simplify`, `agent-browser`, and `codemap` |
467
486
  | **[MCPs](docs/mcps.md)** | `websearch`, `context7`, `grep_app`, and how MCP permissions work per agent |
468
- | **[Tools](docs/tools.md)** | Built-in tool capabilities like background tasks, `webfetch`, LSP tools, code search, and formatters |
487
+ | **[Tools](docs/tools.md)** | Built-in tool capabilities like `webfetch`, LSP tools, code search, and formatters |
469
488
 
470
489
  ### 💡 Example Presets
471
490
 
@@ -483,7 +502,7 @@ Use this section as a map: start with installation, then jump to features, confi
483
502
  <p><sub>Every merged contribution leaves a mark on the realm.</sub></p>
484
503
 
485
504
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
486
- [![All Contributors](https://img.shields.io/badge/all_contributors-40-orange.svg?style=flat-square)](#contributors-)
505
+ [![All Contributors](https://img.shields.io/badge/all_contributors-41-orange.svg?style=flat-square)](#contributors-)
487
506
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
488
507
  </div>
489
508
 
@@ -547,6 +566,7 @@ Use this section as a map: start with installation, then jump to features, confi
547
566
  <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>
548
567
  <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>
549
568
  <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>
569
+ <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>
550
570
  </tr>
551
571
  </tbody>
552
572
  </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,4 +1,4 @@
1
- import type { AgentConfig } from "@opencode-ai/sdk/v2";
1
+ import type { AgentConfig } from '@opencode-ai/sdk/v2';
2
2
  export interface AgentDefinition {
3
3
  name: string;
4
4
  displayName?: string;
@@ -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.
@@ -166,6 +168,15 @@ export declare class BackgroundTaskManager {
166
168
  * @returns The task object, or null if not found in memory or on disk
167
169
  */
168
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';
169
180
  /**
170
181
  * Wait for a task to complete.
171
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';