oh-my-opencode-slim 1.0.0 → 1.0.2
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 +39 -23
- package/dist/cli/index.js +11 -4
- package/dist/cli/install.d.ts +1 -1
- package/dist/cli/providers.d.ts +4 -4
- package/dist/config/constants.d.ts +1 -1
- package/dist/config/council-schema.d.ts +3 -2
- package/dist/config/schema.d.ts +9 -0
- package/dist/council/council-manager.d.ts +3 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/phase-reminder/index.d.ts +1 -1
- package/dist/hooks/task-session-manager/index.d.ts +36 -0
- package/dist/index.js +863 -75
- package/dist/multiplexer/session-manager.d.ts +4 -0
- package/dist/tools/council.d.ts +2 -2
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/preset-manager.d.ts +27 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/session-manager.d.ts +38 -0
- package/dist/utils/session.d.ts +4 -4
- package/dist/utils/system-collapse.d.ts +6 -0
- package/dist/utils/task.d.ts +4 -0
- package/oh-my-opencode-slim.schema.json +15 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
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>
|
|
9
9
|
<a href="https://x.com/alvinunreal"><img src="https://img.shields.io/badge/X-@alvinunreal-000000?style=for-the-badge&logo=x&logoColor=white" alt="X @alvinunreal"></a>
|
|
10
|
-
<a href="https://t.me/boringdystopiadevelopment"><img src="https://img.shields.io/badge/Telegram-Join%20channel-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white" alt="Telegram Join channel"></a
|
|
10
|
+
<a href="https://t.me/boringdystopiadevelopment"><img src="https://img.shields.io/badge/Telegram-Join%20channel-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white" alt="Telegram Join channel"></a>
|
|
11
|
+
<a href="https://deepwiki.com/alvinunreal/oh-my-opencode-slim"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
|
|
11
12
|
</p>
|
|
12
13
|
</div>
|
|
13
14
|
|
|
@@ -39,7 +40,7 @@ bunx oh-my-opencode-slim@latest install
|
|
|
39
40
|
|
|
40
41
|
### Getting Started
|
|
41
42
|
|
|
42
|
-
The installer generates an OpenAI preset by default, using `openai/gpt-5.
|
|
43
|
+
The installer generates an OpenAI preset by default, using `openai/gpt-5.5` for the higher-judgment agents and `openai/gpt-5.4-mini` for the faster scoped agents.
|
|
43
44
|
|
|
44
45
|
Then:
|
|
45
46
|
|
|
@@ -68,8 +69,8 @@ The default generated configuration looks like this:
|
|
|
68
69
|
"preset": "openai",
|
|
69
70
|
"presets": {
|
|
70
71
|
"openai": {
|
|
71
|
-
"orchestrator": { "model": "openai/gpt-5.
|
|
72
|
-
"oracle": { "model": "openai/gpt-5.
|
|
72
|
+
"orchestrator": { "model": "openai/gpt-5.5", "variant": "high", "skills": ["*"], "mcps": ["*", "!context7"] },
|
|
73
|
+
"oracle": { "model": "openai/gpt-5.5", "variant": "high", "skills": ["simplify"], "mcps": [] },
|
|
73
74
|
"librarian": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": ["websearch", "context7", "grep_app"] },
|
|
74
75
|
"explorer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] },
|
|
75
76
|
"designer": { "model": "openai/gpt-5.4-mini", "variant": "medium", "skills": ["agent-browser"], "mcps": [] },
|
|
@@ -79,6 +80,10 @@ The default generated configuration looks like this:
|
|
|
79
80
|
}
|
|
80
81
|
```
|
|
81
82
|
|
|
83
|
+
Session management is enabled by default even though it is not shown in the
|
|
84
|
+
starter config. See **[Session Management](docs/session-management.md)** if you
|
|
85
|
+
want to customize how many resumable child-agent sessions are remembered.
|
|
86
|
+
|
|
82
87
|
### For Alternative Providers
|
|
83
88
|
|
|
84
89
|
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.
|
|
@@ -105,7 +110,7 @@ ping all agents
|
|
|
105
110
|
|
|
106
111
|
<div align="center">
|
|
107
112
|
<img src="img/ping.png" alt="Ping all agents" width="600">
|
|
108
|
-
<p><i>Confirmation that all
|
|
113
|
+
<p><i>Confirmation that all configured agents are online and ready.</i></p>
|
|
109
114
|
</div>
|
|
110
115
|
|
|
111
116
|
If any agent fails to respond, check your provider authentication and config file.
|
|
@@ -140,12 +145,12 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
140
145
|
</tr>
|
|
141
146
|
<tr>
|
|
142
147
|
<td colspan="2">
|
|
143
|
-
<b>Default Model:</b> <code>openai/gpt-5.
|
|
148
|
+
<b>Default Model:</b> <code>openai/gpt-5.5</code>
|
|
144
149
|
</td>
|
|
145
150
|
</tr>
|
|
146
151
|
<tr>
|
|
147
152
|
<td colspan="2">
|
|
148
|
-
<b>Recommended Models:</b> <code>openai/gpt-5.
|
|
153
|
+
<b>Recommended Models:</b> <code>openai/gpt-5.5</code> <code>anthropic/claude-opus-4.6</code>
|
|
149
154
|
</td>
|
|
150
155
|
</tr>
|
|
151
156
|
<tr>
|
|
@@ -222,12 +227,12 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
222
227
|
</tr>
|
|
223
228
|
<tr>
|
|
224
229
|
<td colspan="2">
|
|
225
|
-
<b>Default Model:</b> <code>openai/gpt-5.
|
|
230
|
+
<b>Default Model:</b> <code>openai/gpt-5.5 (high)</code>
|
|
226
231
|
</td>
|
|
227
232
|
</tr>
|
|
228
233
|
<tr>
|
|
229
234
|
<td colspan="2">
|
|
230
|
-
<b>Recommended Models:</b> <code>openai/gpt-5.
|
|
235
|
+
<b>Recommended Models:</b> <code>openai/gpt-5.5 (high)</code> <code>google/gemini-3.1-pro-preview (high)</code>
|
|
231
236
|
</td>
|
|
232
237
|
</tr>
|
|
233
238
|
<tr>
|
|
@@ -239,7 +244,7 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
239
244
|
|
|
240
245
|
---
|
|
241
246
|
|
|
242
|
-
### Council: The Chorus of Minds
|
|
247
|
+
### 04. Council: The Chorus of Minds
|
|
243
248
|
|
|
244
249
|
> [!NOTE]
|
|
245
250
|
> **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>.
|
|
@@ -251,7 +256,7 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
251
256
|
<br><sub><i>Many minds, one verdict.</i></sub>
|
|
252
257
|
</td>
|
|
253
258
|
<td width="70%" valign="top">
|
|
254
|
-
The Council is not a lone being but a chamber of minds summoned when one answer is not enough. It sends your question to multiple models in parallel, gathers their competing judgments, and
|
|
259
|
+
The Council is not a lone being but a chamber of minds summoned when one answer is not enough. It sends your question to multiple models in parallel, gathers their competing judgments, and then the Council agent itself distills the strongest ideas into a single verdict. Where a solitary agent may miss a path, the Council cross-examines possibility itself.
|
|
255
260
|
</td>
|
|
256
261
|
</tr>
|
|
257
262
|
<tr>
|
|
@@ -271,24 +276,24 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
271
276
|
</tr>
|
|
272
277
|
<tr>
|
|
273
278
|
<td colspan="2">
|
|
274
|
-
<b>Default Setup:</b> <code>Config-driven</code> — councillors
|
|
279
|
+
<b>Default Setup:</b> <code>Config-driven</code> — councillors come from <code>council.presets</code> and the Council agent model comes from your normal <code>council</code> agent config
|
|
275
280
|
</td>
|
|
276
281
|
</tr>
|
|
277
282
|
<tr>
|
|
278
283
|
<td colspan="2">
|
|
279
|
-
<b>Recommended Setup:</b> <code>Strong
|
|
284
|
+
<b>Recommended Setup:</b> <code>Strong Council model</code> + <code>diverse councillors</code> across providers
|
|
280
285
|
</td>
|
|
281
286
|
</tr>
|
|
282
287
|
<tr>
|
|
283
288
|
<td colspan="2">
|
|
284
|
-
<b>Model Guidance:</b> Use a strong synthesis model
|
|
289
|
+
<b>Model Guidance:</b> Use a strong synthesis model for the Council agent and diverse models as councillors. The value of Council comes from comparing different model perspectives, not just picking the single strongest model everywhere.
|
|
285
290
|
</td>
|
|
286
291
|
</tr>
|
|
287
292
|
</table>
|
|
288
293
|
|
|
289
294
|
---
|
|
290
295
|
|
|
291
|
-
###
|
|
296
|
+
### 05. Librarian: The Weaver of Knowledge
|
|
292
297
|
|
|
293
298
|
<table>
|
|
294
299
|
<tr>
|
|
@@ -329,7 +334,7 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
329
334
|
|
|
330
335
|
---
|
|
331
336
|
|
|
332
|
-
###
|
|
337
|
+
### 06. Designer: The Guardian of Aesthetics
|
|
333
338
|
|
|
334
339
|
<table>
|
|
335
340
|
<tr>
|
|
@@ -370,7 +375,7 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
370
375
|
|
|
371
376
|
---
|
|
372
377
|
|
|
373
|
-
###
|
|
378
|
+
### 07. Fixer: The Last Builder
|
|
374
379
|
|
|
375
380
|
<table>
|
|
376
381
|
<tr>
|
|
@@ -409,18 +414,22 @@ If any agent fails to respond, check your provider authentication and config fil
|
|
|
409
414
|
</tr>
|
|
410
415
|
</table>
|
|
411
416
|
|
|
412
|
-
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## Optional Agents
|
|
420
|
+
|
|
421
|
+
### Observer: The Silent Witness
|
|
413
422
|
|
|
414
423
|
> [!NOTE]
|
|
415
424
|
> **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.
|
|
416
425
|
|
|
417
426
|
<table>
|
|
418
427
|
<tr>
|
|
419
|
-
<td width="
|
|
420
|
-
<
|
|
421
|
-
<i>
|
|
428
|
+
<td width="30%" align="center" valign="top">
|
|
429
|
+
<img src="img/observer.jpg" width="240" style="border-radius: 10px;">
|
|
430
|
+
<br><sub><i>The eye that reads what others cannot.</i></sub>
|
|
422
431
|
</td>
|
|
423
|
-
<td>
|
|
432
|
+
<td width="70%" valign="top">
|
|
424
433
|
|
|
425
434
|
**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.
|
|
426
435
|
|
|
@@ -468,7 +477,9 @@ Use this section as a map: start with installation, then jump to features, confi
|
|
|
468
477
|
| **[Council](docs/council.md)** | Run multiple models in parallel and synthesize a single answer with `@council` |
|
|
469
478
|
| **[Interview](docs/interview.md)** | Turn rough ideas into a structured markdown spec through a browser-based Q&A flow |
|
|
470
479
|
| **[Multiplexer Integration](docs/multiplexer-integration.md)** | Watch agents work live in Tmux or Zellij panes |
|
|
480
|
+
| **[Session Management](docs/session-management.md)** | Reuse recent child-agent sessions with short aliases instead of starting over |
|
|
471
481
|
| **[Todo Continuation](docs/todo-continuation.md)** | Auto-continue orchestrator sessions with cooldowns and safety checks |
|
|
482
|
+
| **[Preset Switching](docs/preset-switching.md)** | Switch agent model presets at runtime with `/preset` |
|
|
472
483
|
| **[Codemap](docs/codemap.md)** | Generate hierarchical codemaps to understand large codebases faster |
|
|
473
484
|
|
|
474
485
|
### ⚙️ Config & Reference
|
|
@@ -497,7 +508,7 @@ Use this section as a map: start with installation, then jump to features, confi
|
|
|
497
508
|
<p><sub>Every merged contribution leaves a mark on the realm.</sub></p>
|
|
498
509
|
|
|
499
510
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
500
|
-
[](#contributors-)
|
|
501
512
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
502
513
|
</div>
|
|
503
514
|
|
|
@@ -562,6 +573,11 @@ Use this section as a map: start with installation, then jump to features, confi
|
|
|
562
573
|
<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
574
|
<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
575
|
<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>
|
|
576
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/DenisBalan"><img src="https://avatars.githubusercontent.com/u/33955091?v=4?s=100" width="100px;" alt="Denis Balan"/><br /><sub><b>Denis Balan</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=DenisBalan" title="Code">💻</a></td>
|
|
577
|
+
</tr>
|
|
578
|
+
<tr>
|
|
579
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/gustavocaiano"><img src="https://avatars.githubusercontent.com/u/104129313?v=4?s=100" width="100px;" alt="Gustavo Caiano"/><br /><sub><b>Gustavo Caiano</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=gustavocaiano" title="Code">💻</a></td>
|
|
580
|
+
<td align="center" valign="top" width="16.66%"><a href="https://github.com/ThomasMldr"><img src="https://avatars.githubusercontent.com/u/6631765?v=4?s=100" width="100px;" alt="Thomas Mulder"/><br /><sub><b>Thomas Mulder</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=ThomasMldr" title="Code">💻</a></td>
|
|
565
581
|
</tr>
|
|
566
582
|
</tbody>
|
|
567
583
|
</table>
|
package/dist/cli/index.js
CHANGED
|
@@ -158,13 +158,15 @@ var CouncilConfigSchema = z.object({
|
|
|
158
158
|
deprecated.push("master_timeout");
|
|
159
159
|
if (data.master_fallback !== undefined)
|
|
160
160
|
deprecated.push("master_fallback");
|
|
161
|
+
const legacyMasterModel = typeof data.master === "object" && data.master !== null && "model" in data.master && typeof data.master.model === "string" ? data.master.model : undefined;
|
|
161
162
|
return {
|
|
162
163
|
presets: data.presets,
|
|
163
164
|
timeout: data.timeout,
|
|
164
165
|
default_preset: data.default_preset,
|
|
165
166
|
councillor_execution_mode: data.councillor_execution_mode,
|
|
166
167
|
councillor_retries: data.councillor_retries,
|
|
167
|
-
_deprecated: deprecated.length > 0 ? deprecated : undefined
|
|
168
|
+
_deprecated: deprecated.length > 0 ? deprecated : undefined,
|
|
169
|
+
_legacyMasterModel: legacyMasterModel
|
|
168
170
|
};
|
|
169
171
|
});
|
|
170
172
|
// src/config/schema.ts
|
|
@@ -257,6 +259,9 @@ var InterviewConfigSchema = z2.object({
|
|
|
257
259
|
port: z2.number().int().min(0).max(65535).default(0),
|
|
258
260
|
dashboard: z2.boolean().default(false)
|
|
259
261
|
});
|
|
262
|
+
var SessionManagerConfigSchema = z2.object({
|
|
263
|
+
maxSessionsPerAgent: z2.number().int().min(1).max(10).default(2)
|
|
264
|
+
});
|
|
260
265
|
var TodoContinuationConfigSchema = z2.object({
|
|
261
266
|
maxContinuations: z2.number().int().min(1).max(50).default(5).describe("Maximum consecutive auto-continuations before stopping to ask user"),
|
|
262
267
|
cooldownMs: z2.number().int().min(0).max(30000).default(3000).describe("Delay in ms before auto-continuing (gives user time to abort)"),
|
|
@@ -298,6 +303,7 @@ var PluginConfigSchema = z2.object({
|
|
|
298
303
|
scoringEngineVersion: z2.enum(["v1", "v2-shadow", "v2"]).optional(),
|
|
299
304
|
balanceProviderUsage: z2.boolean().optional(),
|
|
300
305
|
showStartupToast: z2.boolean().optional().describe("Show the startup activation toast when OpenCode starts. Defaults to true."),
|
|
306
|
+
autoUpdate: z2.boolean().optional().describe("Disable automatic installation of plugin updates when false. Defaults to true."),
|
|
301
307
|
manualPlan: ManualPlanSchema.optional(),
|
|
302
308
|
presets: z2.record(z2.string(), PresetSchema).optional(),
|
|
303
309
|
agents: z2.record(z2.string(), AgentOverrideConfigSchema).optional(),
|
|
@@ -307,6 +313,7 @@ var PluginConfigSchema = z2.object({
|
|
|
307
313
|
tmux: TmuxConfigSchema.optional(),
|
|
308
314
|
websearch: WebsearchConfigSchema.optional(),
|
|
309
315
|
interview: InterviewConfigSchema.optional(),
|
|
316
|
+
sessionManager: SessionManagerConfigSchema.optional(),
|
|
310
317
|
todoContinuation: TodoContinuationConfigSchema.optional(),
|
|
311
318
|
fallback: FailoverConfigSchema.optional(),
|
|
312
319
|
council: CouncilConfigSchema.optional()
|
|
@@ -451,8 +458,8 @@ function installSkill(skill) {
|
|
|
451
458
|
var SCHEMA_URL = "https://unpkg.com/oh-my-opencode-slim@latest/oh-my-opencode-slim.schema.json";
|
|
452
459
|
var MODEL_MAPPINGS = {
|
|
453
460
|
openai: {
|
|
454
|
-
orchestrator: { model: "openai/gpt-5.
|
|
455
|
-
oracle: { model: "openai/gpt-5.
|
|
461
|
+
orchestrator: { model: "openai/gpt-5.5" },
|
|
462
|
+
oracle: { model: "openai/gpt-5.5", variant: "high" },
|
|
456
463
|
librarian: { model: "openai/gpt-5.4-mini", variant: "low" },
|
|
457
464
|
explorer: { model: "openai/gpt-5.4-mini", variant: "low" },
|
|
458
465
|
designer: { model: "openai/gpt-5.4-mini", variant: "medium" },
|
|
@@ -1133,7 +1140,7 @@ ${JSON.stringify(liteConfig, null, 2)}
|
|
|
1133
1140
|
console.log(" 5. Verify the agents are responding:");
|
|
1134
1141
|
console.log(` ${BLUE}> ping all agents${RESET}`);
|
|
1135
1142
|
console.log();
|
|
1136
|
-
const modelsInfo = "Default configuration uses OpenAI models (gpt-5.
|
|
1143
|
+
const modelsInfo = "Default configuration uses OpenAI models (gpt-5.5 / gpt-5.4-mini).";
|
|
1137
1144
|
console.log(`${modelsInfo}`);
|
|
1138
1145
|
const altProviders = "For the full configuration reference, see:";
|
|
1139
1146
|
console.log(altProviders);
|
package/dist/cli/install.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { InstallArgs } from
|
|
1
|
+
import type { InstallArgs } from "./types";
|
|
2
2
|
export declare function install(args: InstallArgs): Promise<number>;
|
package/dist/cli/providers.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { InstallConfig } from
|
|
1
|
+
import type { InstallConfig } from "./types";
|
|
2
2
|
export declare const MODEL_MAPPINGS: {
|
|
3
3
|
readonly openai: {
|
|
4
4
|
readonly orchestrator: {
|
|
5
|
-
readonly model: "openai/gpt-5.
|
|
5
|
+
readonly model: "openai/gpt-5.5";
|
|
6
6
|
};
|
|
7
7
|
readonly oracle: {
|
|
8
|
-
readonly model: "openai/gpt-5.
|
|
8
|
+
readonly model: "openai/gpt-5.5";
|
|
9
9
|
readonly variant: "high";
|
|
10
10
|
};
|
|
11
11
|
readonly librarian: {
|
|
@@ -75,7 +75,7 @@ export declare const MODEL_MAPPINGS: {
|
|
|
75
75
|
readonly variant: "low";
|
|
76
76
|
};
|
|
77
77
|
};
|
|
78
|
-
readonly
|
|
78
|
+
readonly "zai-plan": {
|
|
79
79
|
readonly orchestrator: {
|
|
80
80
|
readonly model: "zai-coding-plan/glm-5";
|
|
81
81
|
};
|
|
@@ -20,7 +20,7 @@ export declare const DEFAULT_TIMEOUT_MS: number;
|
|
|
20
20
|
export declare const MAX_POLL_TIME_MS: number;
|
|
21
21
|
export declare const FALLBACK_FAILOVER_TIMEOUT_MS = 15000;
|
|
22
22
|
export declare const DEFAULT_MAX_SUBAGENT_DEPTH = 3;
|
|
23
|
-
export declare const PHASE_REMINDER_TEXT = "!IMPORTANT! Recall the workflow rules:\nUnderstand \u2192 choose the best parallelized path based on your agents delegation rules \u2192
|
|
23
|
+
export declare const PHASE_REMINDER_TEXT = "!IMPORTANT! Recall the workflow rules:\nUnderstand \u2192 choose the best parallelized path based on your capabilities and agents delegation rules \u2192 execute \u2192 verify.\nIf delegating, launch the specialist in the same turn you mention it !END!";
|
|
24
24
|
export declare const TMUX_SPAWN_DELAY_MS = 500;
|
|
25
25
|
export declare const COUNCILLOR_STAGGER_MS = 250;
|
|
26
26
|
export declare const STABLE_POLLS_THRESHOLD = 3;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
/**
|
|
3
3
|
* Configuration for a single councillor within a preset.
|
|
4
4
|
* Each councillor is an independent LLM that processes the same prompt.
|
|
@@ -82,6 +82,7 @@ export declare const CouncilConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
82
82
|
councillor_execution_mode: "parallel" | "serial";
|
|
83
83
|
councillor_retries: number;
|
|
84
84
|
_deprecated: string[] | undefined;
|
|
85
|
+
_legacyMasterModel: string | undefined;
|
|
85
86
|
}, {
|
|
86
87
|
presets: Record<string, Record<string, {
|
|
87
88
|
model: string;
|
|
@@ -119,7 +120,7 @@ export interface CouncilResult {
|
|
|
119
120
|
councillorResults: Array<{
|
|
120
121
|
name: string;
|
|
121
122
|
model: string;
|
|
122
|
-
status:
|
|
123
|
+
status: "completed" | "failed" | "timed_out";
|
|
123
124
|
result?: string;
|
|
124
125
|
error?: string;
|
|
125
126
|
}>;
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -158,6 +158,10 @@ export declare const InterviewConfigSchema: z.ZodObject<{
|
|
|
158
158
|
dashboard: z.ZodDefault<z.ZodBoolean>;
|
|
159
159
|
}, z.core.$strip>;
|
|
160
160
|
export type InterviewConfig = z.infer<typeof InterviewConfigSchema>;
|
|
161
|
+
export declare const SessionManagerConfigSchema: z.ZodObject<{
|
|
162
|
+
maxSessionsPerAgent: z.ZodDefault<z.ZodNumber>;
|
|
163
|
+
}, z.core.$strip>;
|
|
164
|
+
export type SessionManagerConfig = z.infer<typeof SessionManagerConfigSchema>;
|
|
161
165
|
export declare const TodoContinuationConfigSchema: z.ZodObject<{
|
|
162
166
|
maxContinuations: z.ZodDefault<z.ZodNumber>;
|
|
163
167
|
cooldownMs: z.ZodDefault<z.ZodNumber>;
|
|
@@ -190,6 +194,7 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
190
194
|
}>>;
|
|
191
195
|
balanceProviderUsage: z.ZodOptional<z.ZodBoolean>;
|
|
192
196
|
showStartupToast: z.ZodOptional<z.ZodBoolean>;
|
|
197
|
+
autoUpdate: z.ZodOptional<z.ZodBoolean>;
|
|
193
198
|
manualPlan: z.ZodOptional<z.ZodObject<{
|
|
194
199
|
orchestrator: z.ZodObject<{
|
|
195
200
|
primary: z.ZodString;
|
|
@@ -298,6 +303,9 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
298
303
|
port: z.ZodDefault<z.ZodNumber>;
|
|
299
304
|
dashboard: z.ZodDefault<z.ZodBoolean>;
|
|
300
305
|
}, z.core.$strip>>;
|
|
306
|
+
sessionManager: z.ZodOptional<z.ZodObject<{
|
|
307
|
+
maxSessionsPerAgent: z.ZodDefault<z.ZodNumber>;
|
|
308
|
+
}, z.core.$strip>>;
|
|
301
309
|
todoContinuation: z.ZodOptional<z.ZodObject<{
|
|
302
310
|
maxContinuations: z.ZodDefault<z.ZodNumber>;
|
|
303
311
|
cooldownMs: z.ZodDefault<z.ZodNumber>;
|
|
@@ -345,6 +353,7 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
345
353
|
councillor_execution_mode: "parallel" | "serial";
|
|
346
354
|
councillor_retries: number;
|
|
347
355
|
_deprecated: string[] | undefined;
|
|
356
|
+
_legacyMasterModel: string | undefined;
|
|
348
357
|
}, {
|
|
349
358
|
presets: Record<string, Record<string, {
|
|
350
359
|
model: string;
|
|
@@ -15,9 +15,12 @@ export declare class CouncilManager {
|
|
|
15
15
|
private depthTracker?;
|
|
16
16
|
private tmuxEnabled;
|
|
17
17
|
private deprecatedFields?;
|
|
18
|
+
private legacyMasterModel?;
|
|
18
19
|
constructor(ctx: PluginInput, config?: PluginConfig, depthTracker?: SubagentDepthTracker, tmuxEnabled?: boolean);
|
|
19
20
|
/** Return deprecated config fields detected during parsing (for tool warnings). */
|
|
20
21
|
getDeprecatedFields(): string[] | undefined;
|
|
22
|
+
/** Return the legacy master.model if it was used as fallback. */
|
|
23
|
+
getLegacyMasterModel(): string | undefined;
|
|
21
24
|
/**
|
|
22
25
|
* Run a full council session.
|
|
23
26
|
*
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -9,4 +9,5 @@ export { processImageAttachments } from './image-hook';
|
|
|
9
9
|
export { createJsonErrorRecoveryHook } from './json-error-recovery';
|
|
10
10
|
export { createPhaseReminderHook } from './phase-reminder';
|
|
11
11
|
export { createPostFileToolNudgeHook } from './post-file-tool-nudge';
|
|
12
|
+
export { createTaskSessionManagerHook } from './task-session-manager';
|
|
12
13
|
export { createTodoContinuationHook } from './todo-continuation';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const PHASE_REMINDER = "<reminder>!IMPORTANT! Recall the workflow rules:\nUnderstand \u2192 choose the best parallelized path based on your agents delegation rules \u2192
|
|
1
|
+
export declare const PHASE_REMINDER = "<reminder>!IMPORTANT! Recall the workflow rules:\nUnderstand \u2192 choose the best parallelized path based on your capabilities and agents delegation rules \u2192 execute \u2192 verify.\nIf delegating, launch the specialist in the same turn you mention it !END!</reminder>";
|
|
2
2
|
interface MessageInfo {
|
|
3
3
|
role: string;
|
|
4
4
|
agent?: string;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { PluginInput } from '@opencode-ai/plugin';
|
|
2
|
+
export declare function createTaskSessionManagerHook(_ctx: PluginInput, options: {
|
|
3
|
+
maxSessionsPerAgent: number;
|
|
4
|
+
shouldManageSession: (sessionID: string) => boolean;
|
|
5
|
+
}): {
|
|
6
|
+
'tool.execute.before': (input: {
|
|
7
|
+
tool: string;
|
|
8
|
+
sessionID?: string;
|
|
9
|
+
callID?: string;
|
|
10
|
+
}, output: {
|
|
11
|
+
args?: unknown;
|
|
12
|
+
}) => Promise<void>;
|
|
13
|
+
'tool.execute.after': (input: {
|
|
14
|
+
tool: string;
|
|
15
|
+
sessionID?: string;
|
|
16
|
+
callID?: string;
|
|
17
|
+
}, output: {
|
|
18
|
+
output: unknown;
|
|
19
|
+
}) => Promise<void>;
|
|
20
|
+
'experimental.chat.system.transform': (input: {
|
|
21
|
+
sessionID?: string;
|
|
22
|
+
}, output: {
|
|
23
|
+
system: string[];
|
|
24
|
+
}) => Promise<void>;
|
|
25
|
+
event: (input: {
|
|
26
|
+
event: {
|
|
27
|
+
type: string;
|
|
28
|
+
properties?: {
|
|
29
|
+
info?: {
|
|
30
|
+
id?: string;
|
|
31
|
+
};
|
|
32
|
+
sessionID?: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
}) => Promise<void>;
|
|
36
|
+
};
|