oh-my-opencode-serverlocal 0.1.1 → 0.1.3
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 +128 -220
- package/dist/config/constants.d.ts +3 -3
- package/dist/config/index.d.ts +0 -1
- package/dist/config/loader.d.ts +4 -4
- package/dist/config/schema.d.ts +0 -41
- package/dist/hooks/auto-update-checker/skill-sync.d.ts +2 -2
- package/dist/hooks/phase-reminder/index.d.ts +1 -1
- package/dist/hooks/task-session-manager/index.d.ts +1 -1
- package/dist/index.js +576 -1298
- package/dist/tools/index.d.ts +0 -1
- package/dist/tui.js +103 -203
- package/dist/utils/internal-initiator.d.ts +2 -2
- package/dist/utils/session.d.ts +1 -1
- package/dist/utils/subagent-depth.d.ts +2 -2
- package/package.json +1 -1
- package/src/companion/companion-manifest.json +6 -6
- package/src/skills/clonedeps/SKILL.md +4 -4
- package/src/skills/codemap/README.md +1 -1
- package/src/skills/codemap/SKILL.md +3 -3
- package/src/skills/codemap.md +2 -2
- package/src/skills/{oh-my-opencode-slim → oh-my-opencode-serverlocal}/SKILL.md +24 -24
- package/src/skills/reflect/SKILL.md +5 -5
- package/src/skills/simplify/README.md +1 -1
- package/src/skills/worktrees/SKILL.md +4 -4
- package/dist/agents/council.d.ts +0 -27
- package/dist/agents/councillor.d.ts +0 -2
- package/dist/config/council-schema.d.ts +0 -137
- package/dist/council/council-manager.d.ts +0 -53
- package/dist/council/index.d.ts +0 -1
- package/dist/tools/council.d.ts +0 -10
- package/dist/utils/councillor-models.d.ts +0 -20
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: oh-my-opencode-
|
|
3
|
-
description: Configure and improve oh-my-opencode-
|
|
2
|
+
name: oh-my-opencode-serverlocal
|
|
3
|
+
description: Configure and improve oh-my-opencode-serverlocal for the current user. Use when users want to tune agents, models, prompts, custom agents, skills, MCPs, presets, or plugin behavior. Also use when recurring workflow friction suggests a safe config or prompt improvement.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# oh-my-opencode-
|
|
6
|
+
# oh-my-opencode-serverlocal Configuration Skill
|
|
7
7
|
|
|
8
8
|
You help users configure, customize, and safely improve their
|
|
9
|
-
oh-my-opencode-
|
|
9
|
+
oh-my-opencode-serverlocal setup.
|
|
10
10
|
|
|
11
11
|
The goal is not just to answer configuration questions. When useful, help the
|
|
12
12
|
user make their agent system better for future runs: tune models, adjust
|
|
@@ -17,7 +17,7 @@ restart requirements.
|
|
|
17
17
|
|
|
18
18
|
Use this skill when the user asks about or is likely to benefit from changes to:
|
|
19
19
|
|
|
20
|
-
- `~/.config/opencode/oh-my-opencode-
|
|
20
|
+
- `~/.config/opencode/oh-my-opencode-serverlocal.json` or `.jsonc`
|
|
21
21
|
- `.opencode/` or `~/.config/opencode/` plugin/agent configuration
|
|
22
22
|
- agent models, variants, presets, or provider routing
|
|
23
23
|
- orchestrator delegation behavior or specialist-agent prompts
|
|
@@ -33,16 +33,16 @@ follow a project-specific rule, suggest adding that rule to a prompt or config.
|
|
|
33
33
|
|
|
34
34
|
## What Is Possible
|
|
35
35
|
|
|
36
|
-
oh-my-opencode-
|
|
36
|
+
oh-my-opencode-serverlocal is configured through a plugin config file, usually:
|
|
37
37
|
|
|
38
38
|
```text
|
|
39
|
-
~/.config/opencode/oh-my-opencode-
|
|
39
|
+
~/.config/opencode/oh-my-opencode-serverlocal.json
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
or:
|
|
43
43
|
|
|
44
44
|
```text
|
|
45
|
-
~/.config/opencode/oh-my-opencode-
|
|
45
|
+
~/.config/opencode/oh-my-opencode-serverlocal.jsonc
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Concrete files agents should know:
|
|
@@ -50,13 +50,13 @@ Concrete files agents should know:
|
|
|
50
50
|
| Path | Use |
|
|
51
51
|
|---|---|
|
|
52
52
|
| `~/.config/opencode/opencode.json` | OpenCode core config: plugin registration and providers |
|
|
53
|
-
| `~/.config/opencode/oh-my-opencode-
|
|
54
|
-
| `~/.config/opencode/oh-my-opencode-
|
|
55
|
-
| `<project>/.opencode/oh-my-opencode-
|
|
56
|
-
| `~/.config/opencode/oh-my-opencode-
|
|
57
|
-
| `~/.config/opencode/oh-my-opencode-
|
|
58
|
-
| `~/.config/opencode/oh-my-opencode-
|
|
59
|
-
| `~/.config/opencode/oh-my-opencode-
|
|
53
|
+
| `~/.config/opencode/oh-my-opencode-serverlocal.jsonc` | User plugin config with comments/trailing commas; takes precedence over `.json` |
|
|
54
|
+
| `~/.config/opencode/oh-my-opencode-serverlocal.json` | User plugin config generated by installer |
|
|
55
|
+
| `<project>/.opencode/oh-my-opencode-serverlocal.json` | Project-local plugin overrides checked before user config |
|
|
56
|
+
| `~/.config/opencode/oh-my-opencode-serverlocal/{agent}.md` | Full prompt replacement for a built-in agent |
|
|
57
|
+
| `~/.config/opencode/oh-my-opencode-serverlocal/{agent}_append.md` | Append-only prompt tuning for a built-in agent |
|
|
58
|
+
| `~/.config/opencode/oh-my-opencode-serverlocal/{preset}/{agent}.md` | Preset-specific full prompt replacement |
|
|
59
|
+
| `~/.config/opencode/oh-my-opencode-serverlocal/{preset}/{agent}_append.md` | Preset-specific append-only prompt tuning |
|
|
60
60
|
| `~/.config/opencode/skills/<skill-name>/SKILL.md` | Installed skill prompt payload |
|
|
61
61
|
|
|
62
62
|
Built-in agent prompt file names are exact agent names:
|
|
@@ -76,8 +76,8 @@ the user intentionally wants to replace the bundled prompt entirely.
|
|
|
76
76
|
Prompt override lookup order:
|
|
77
77
|
|
|
78
78
|
1. If a `preset` is active, check
|
|
79
|
-
`~/.config/opencode/oh-my-opencode-
|
|
80
|
-
2. Fall back to `~/.config/opencode/oh-my-opencode-
|
|
79
|
+
`~/.config/opencode/oh-my-opencode-serverlocal/{preset}/` first.
|
|
80
|
+
2. Fall back to `~/.config/opencode/oh-my-opencode-serverlocal/`.
|
|
81
81
|
3. If both `{agent}.md` and `{agent}_append.md` exist, the replacement prompt is
|
|
82
82
|
loaded first and the append file is added after it.
|
|
83
83
|
4. If no prompt files exist, the built-in prompt from the plugin package is used.
|
|
@@ -106,7 +106,7 @@ Important schema boundary:
|
|
|
106
106
|
`designer`, `fixer`, `observer`, `council`) can set models, variants, skills,
|
|
107
107
|
MCPs, options, and display names in config.
|
|
108
108
|
- Built-in agent `prompt` and `orchestratorPrompt` fields are **not** supported
|
|
109
|
-
in `oh-my-opencode-
|
|
109
|
+
in `oh-my-opencode-serverlocal.json[c]`; use markdown prompt override files instead.
|
|
110
110
|
- Unknown keys under top-level `agents` are custom agents. Custom agents may use
|
|
111
111
|
`prompt` and `orchestratorPrompt` directly in config.
|
|
112
112
|
|
|
@@ -143,13 +143,13 @@ Edit the active preset under `presets.<preset>.<agent>`:
|
|
|
143
143
|
Create, for example:
|
|
144
144
|
|
|
145
145
|
```text
|
|
146
|
-
~/.config/opencode/oh-my-opencode-
|
|
146
|
+
~/.config/opencode/oh-my-opencode-serverlocal/orchestrator_append.md
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
or for only the `openai` preset:
|
|
150
150
|
|
|
151
151
|
```text
|
|
152
|
-
~/.config/opencode/oh-my-opencode-
|
|
152
|
+
~/.config/opencode/oh-my-opencode-serverlocal/openai/orchestrator_append.md
|
|
153
153
|
```
|
|
154
154
|
|
|
155
155
|
Example content:
|
|
@@ -166,7 +166,7 @@ Example content:
|
|
|
166
166
|
Create:
|
|
167
167
|
|
|
168
168
|
```text
|
|
169
|
-
~/.config/opencode/oh-my-opencode-
|
|
169
|
+
~/.config/opencode/oh-my-opencode-serverlocal/orchestrator.md
|
|
170
170
|
```
|
|
171
171
|
|
|
172
172
|
Use this rarely. Full replacements must restate all essential plugin behavior,
|
|
@@ -200,7 +200,7 @@ Configuration changes affect future agent behavior, so treat them as user-owned.
|
|
|
200
200
|
When making or proposing changes:
|
|
201
201
|
|
|
202
202
|
1. **Inspect current setup**
|
|
203
|
-
- Read the existing oh-my-opencode-
|
|
203
|
+
- Read the existing oh-my-opencode-serverlocal config file.
|
|
204
204
|
- Identify active `preset` and relevant agent blocks.
|
|
205
205
|
- Check whether the user has local project `.opencode/` overrides.
|
|
206
206
|
2. **Decide the smallest useful change**
|
|
@@ -295,7 +295,7 @@ Proposal:
|
|
|
295
295
|
```text
|
|
296
296
|
I can add a narrow Orchestrator prompt rule to avoid parallel writer agents in
|
|
297
297
|
the same directory unless their file ownership is explicit. Target:
|
|
298
|
-
~/.config/opencode/oh-my-opencode-
|
|
298
|
+
~/.config/opencode/oh-my-opencode-serverlocal/orchestrator_append.md. Apply it?
|
|
299
299
|
```
|
|
300
300
|
|
|
301
301
|
### Add a project-specific reviewer
|
|
@@ -305,7 +305,7 @@ Proposal:
|
|
|
305
305
|
```text
|
|
306
306
|
This looks repeatable enough for a custom read-only reviewer agent. I can add
|
|
307
307
|
`api-reviewer` with no skills or MCPs and an `orchestratorPrompt` that routes
|
|
308
|
-
public API changes to it. Apply to your oh-my-opencode-
|
|
308
|
+
public API changes to it. Apply to your oh-my-opencode-serverlocal config?
|
|
309
309
|
```
|
|
310
310
|
|
|
311
311
|
### Warn about restart
|
|
@@ -20,7 +20,7 @@ Use Reflect when the user asks to:
|
|
|
20
20
|
- run `/reflect --sessions` for session archaeology;
|
|
21
21
|
- learn from recent sessions or repeated workflows;
|
|
22
22
|
- find work they keep doing manually;
|
|
23
|
-
- improve their oh-my-opencode-
|
|
23
|
+
- improve their oh-my-opencode-serverlocal setup based on actual usage using oh-my-opencode-serverlocal skill;
|
|
24
24
|
- review whether a recurring process should become a reusable playbook;
|
|
25
25
|
- turn repeated workflow friction into a safer future default.
|
|
26
26
|
|
|
@@ -57,7 +57,7 @@ For each session, analyze and produce a structured summary:
|
|
|
57
57
|
```json
|
|
58
58
|
{
|
|
59
59
|
"session": "ses_14de9c68effegtZtlATm42wnz7",
|
|
60
|
-
"project": "/home/user/Projects/oh-my-opencode-
|
|
60
|
+
"project": "/home/user/Projects/oh-my-opencode-serverlocal",
|
|
61
61
|
"timestamp": "2026-06-10T15:08:45.427Z",
|
|
62
62
|
"goal": "Fix CI failure",
|
|
63
63
|
"success": true,
|
|
@@ -84,7 +84,7 @@ For each session, analyze and produce a structured summary:
|
|
|
84
84
|
|
|
85
85
|
### Storage and Caching
|
|
86
86
|
|
|
87
|
-
Store session summaries in `~/.config/opencode/oh-my-opencode-
|
|
87
|
+
Store session summaries in `~/.config/opencode/oh-my-opencode-serverlocal/reflections/sessions/`.
|
|
88
88
|
|
|
89
89
|
**Cache logic:**
|
|
90
90
|
1. Check if `<session-id>.json` exists in reflections directory
|
|
@@ -180,7 +180,7 @@ Use available evidence in this order:
|
|
|
180
180
|
2. Project-local guidance and memories, such as `AGENTS.md`, `.opencode/`,
|
|
181
181
|
`.slim/`, notes, checkpoints, task progress files, and codemaps.
|
|
182
182
|
3. Existing skills, commands, agents, prompt overrides, MCP permissions, and
|
|
183
|
-
oh-my-opencode-
|
|
183
|
+
oh-my-opencode-serverlocal configuration.
|
|
184
184
|
4. Recent OpenCode logs or session artifacts if they are available and safe to
|
|
185
185
|
inspect.
|
|
186
186
|
5. External docs only when a proposed workflow depends on a third-party tool or
|
|
@@ -213,7 +213,7 @@ Before proposing anything, identify what already exists:
|
|
|
213
213
|
- custom agents and their `orchestratorPrompt` guidance;
|
|
214
214
|
- custom commands;
|
|
215
215
|
- prompt overrides and append files;
|
|
216
|
-
- active oh-my-opencode-
|
|
216
|
+
- active oh-my-opencode-serverlocal preset, model routing, skills, and MCP permissions;
|
|
217
217
|
- project playbooks, docs, codemaps, and local workflow notes.
|
|
218
218
|
|
|
219
219
|
If an existing asset already covers the candidate, recommend extending or using
|
|
@@ -90,21 +90,21 @@ keeps them readable to OpenCode.
|
|
|
90
90
|
`.gitignore`:
|
|
91
91
|
|
|
92
92
|
```gitignore
|
|
93
|
-
# BEGIN oh-my-opencode-
|
|
93
|
+
# BEGIN oh-my-opencode-serverlocal worktrees
|
|
94
94
|
.slim/worktrees/
|
|
95
95
|
.slim/worktrees.json
|
|
96
|
-
# END oh-my-opencode-
|
|
96
|
+
# END oh-my-opencode-serverlocal worktrees
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
`.ignore`:
|
|
100
100
|
|
|
101
101
|
```ignore
|
|
102
|
-
# BEGIN oh-my-opencode-
|
|
102
|
+
# BEGIN oh-my-opencode-serverlocal worktrees
|
|
103
103
|
!.slim/
|
|
104
104
|
!.slim/worktrees.json
|
|
105
105
|
!.slim/worktrees/
|
|
106
106
|
!.slim/worktrees/**
|
|
107
|
-
# END oh-my-opencode-
|
|
107
|
+
# END oh-my-opencode-serverlocal worktrees
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
---
|
package/dist/agents/council.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { type AgentDefinition } from './orchestrator';
|
|
2
|
-
export declare function createCouncilAgent(model: string, customPrompt?: string, customAppendPrompt?: string): AgentDefinition;
|
|
3
|
-
/**
|
|
4
|
-
* Build the prompt for a specific councillor session.
|
|
5
|
-
*
|
|
6
|
-
* Returns the raw user prompt - the agent factory (councillor.ts) provides
|
|
7
|
-
* the system prompt with tool-aware instructions. No duplication.
|
|
8
|
-
*
|
|
9
|
-
* If a per-councillor prompt override is provided, it is prepended as
|
|
10
|
-
* role/guidance context before the user's question.
|
|
11
|
-
*/
|
|
12
|
-
export declare function formatCouncillorPrompt(userPrompt: string, councillorPrompt?: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Format councillor results for the council agent to synthesize.
|
|
15
|
-
*
|
|
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.
|
|
20
|
-
*/
|
|
21
|
-
export declare function formatCouncillorResults(originalPrompt: string, councillorResults: Array<{
|
|
22
|
-
name: string;
|
|
23
|
-
model: string;
|
|
24
|
-
status: string;
|
|
25
|
-
result?: string;
|
|
26
|
-
error?: string;
|
|
27
|
-
}>): string;
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { type CouncillorModelEntry } from '../utils/councillor-models';
|
|
3
|
-
export type { CouncillorModelEntry };
|
|
4
|
-
/**
|
|
5
|
-
* Configuration for a single councillor within a preset.
|
|
6
|
-
* Each councillor is an independent LLM that processes the same prompt.
|
|
7
|
-
*
|
|
8
|
-
* Councillors run as agent sessions with read-only codebase access
|
|
9
|
-
* (read, glob, grep, lsp, list). They can examine the codebase but
|
|
10
|
-
* cannot modify files or spawn subagents.
|
|
11
|
-
*
|
|
12
|
-
* `model` accepts a single ID or an ordered fallback chain. The parsed config
|
|
13
|
-
* exposes `models` (the normalized chain) plus `model` (the primary, for
|
|
14
|
-
* backward compatibility).
|
|
15
|
-
*/
|
|
16
|
-
export declare const CouncillorConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
17
|
-
model: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
18
|
-
id: z.ZodString;
|
|
19
|
-
variant: z.ZodOptional<z.ZodString>;
|
|
20
|
-
}, z.core.$strip>]>>]>;
|
|
21
|
-
variant: z.ZodOptional<z.ZodString>;
|
|
22
|
-
prompt: z.ZodOptional<z.ZodString>;
|
|
23
|
-
}, z.core.$strip>, z.ZodTransform<{
|
|
24
|
-
model: string;
|
|
25
|
-
variant: string | undefined;
|
|
26
|
-
prompt: string | undefined;
|
|
27
|
-
models: CouncillorModelEntry[];
|
|
28
|
-
}, {
|
|
29
|
-
model: string | (string | {
|
|
30
|
-
id: string;
|
|
31
|
-
variant?: string | undefined;
|
|
32
|
-
})[];
|
|
33
|
-
variant?: string | undefined;
|
|
34
|
-
prompt?: string | undefined;
|
|
35
|
-
}>>;
|
|
36
|
-
export type CouncillorConfig = z.infer<typeof CouncillorConfigSchema>;
|
|
37
|
-
/**
|
|
38
|
-
* A named preset grouping several councillors.
|
|
39
|
-
*
|
|
40
|
-
* All keys are treated as councillor names mapping to councillor configs.
|
|
41
|
-
* The reserved key `"master"` is silently ignored (legacy from when
|
|
42
|
-
* council-master was a separate agent).
|
|
43
|
-
*/
|
|
44
|
-
export declare const CouncilPresetSchema: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodTransform<Record<string, {
|
|
45
|
-
model: string;
|
|
46
|
-
variant: string | undefined;
|
|
47
|
-
prompt: string | undefined;
|
|
48
|
-
models: CouncillorModelEntry[];
|
|
49
|
-
}>, Record<string, Record<string, unknown>>>>;
|
|
50
|
-
export type CouncilPreset = z.infer<typeof CouncilPresetSchema>;
|
|
51
|
-
/**
|
|
52
|
-
* Execution mode for councillors.
|
|
53
|
-
* - parallel: Run all councillors concurrently (default, fastest for multi-model systems)
|
|
54
|
-
* - serial: Run councillors one at a time (required for single-model systems to avoid conflicts)
|
|
55
|
-
*/
|
|
56
|
-
export declare const CouncillorExecutionModeSchema: z.ZodDefault<z.ZodEnum<{
|
|
57
|
-
parallel: "parallel";
|
|
58
|
-
serial: "serial";
|
|
59
|
-
}>>;
|
|
60
|
-
/**
|
|
61
|
-
* Top-level council configuration.
|
|
62
|
-
*
|
|
63
|
-
* Example JSONC:
|
|
64
|
-
* ```jsonc
|
|
65
|
-
* {
|
|
66
|
-
* "council": {
|
|
67
|
-
* "presets": {
|
|
68
|
-
* "default": {
|
|
69
|
-
* "alpha": { "model": "openai/gpt-5.6-luna" },
|
|
70
|
-
* "beta": { "model": "openai/gpt-5.3-codex" },
|
|
71
|
-
* "gamma": { "model": "google/gemini-3-pro" }
|
|
72
|
-
* }
|
|
73
|
-
* },
|
|
74
|
-
* "timeout": 180000,
|
|
75
|
-
* "councillor_execution_mode": "serial"
|
|
76
|
-
* }
|
|
77
|
-
* }
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
export declare const CouncilConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
81
|
-
presets: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodTransform<Record<string, {
|
|
82
|
-
model: string;
|
|
83
|
-
variant: string | undefined;
|
|
84
|
-
prompt: string | undefined;
|
|
85
|
-
models: CouncillorModelEntry[];
|
|
86
|
-
}>, Record<string, Record<string, unknown>>>>>;
|
|
87
|
-
timeout: z.ZodDefault<z.ZodNumber>;
|
|
88
|
-
default_preset: z.ZodDefault<z.ZodString>;
|
|
89
|
-
councillor_execution_mode: z.ZodDefault<z.ZodEnum<{
|
|
90
|
-
parallel: "parallel";
|
|
91
|
-
serial: "serial";
|
|
92
|
-
}>>;
|
|
93
|
-
councillor_retries: z.ZodDefault<z.ZodNumber>;
|
|
94
|
-
master: z.ZodOptional<z.ZodUnknown>;
|
|
95
|
-
}, z.core.$strip>, z.ZodTransform<{
|
|
96
|
-
presets: Record<string, Record<string, {
|
|
97
|
-
model: string;
|
|
98
|
-
variant: string | undefined;
|
|
99
|
-
prompt: string | undefined;
|
|
100
|
-
models: CouncillorModelEntry[];
|
|
101
|
-
}>>;
|
|
102
|
-
timeout: number;
|
|
103
|
-
default_preset: string;
|
|
104
|
-
councillor_execution_mode: "parallel" | "serial";
|
|
105
|
-
councillor_retries: number;
|
|
106
|
-
_deprecated: string[] | undefined;
|
|
107
|
-
_legacyMasterModel: string | undefined;
|
|
108
|
-
}, {
|
|
109
|
-
presets: Record<string, Record<string, {
|
|
110
|
-
model: string;
|
|
111
|
-
variant: string | undefined;
|
|
112
|
-
prompt: string | undefined;
|
|
113
|
-
models: CouncillorModelEntry[];
|
|
114
|
-
}>>;
|
|
115
|
-
timeout: number;
|
|
116
|
-
default_preset: string;
|
|
117
|
-
councillor_execution_mode: "parallel" | "serial";
|
|
118
|
-
councillor_retries: number;
|
|
119
|
-
master?: unknown;
|
|
120
|
-
}>>;
|
|
121
|
-
export type CouncilConfig = z.infer<typeof CouncilConfigSchema>;
|
|
122
|
-
export type CouncillorExecutionMode = z.infer<typeof CouncillorExecutionModeSchema>;
|
|
123
|
-
/**
|
|
124
|
-
* Result of a council session.
|
|
125
|
-
*/
|
|
126
|
-
export interface CouncilResult {
|
|
127
|
-
success: boolean;
|
|
128
|
-
result?: string;
|
|
129
|
-
error?: string;
|
|
130
|
-
councillorResults: Array<{
|
|
131
|
-
name: string;
|
|
132
|
-
model: string;
|
|
133
|
-
status: 'completed' | 'failed' | 'timed_out';
|
|
134
|
-
result?: string;
|
|
135
|
-
error?: string;
|
|
136
|
-
}>;
|
|
137
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Council Manager
|
|
3
|
-
*
|
|
4
|
-
* Orchestrates multi-LLM council sessions: launches councillors in
|
|
5
|
-
* parallel and collects their results for the council agent to synthesize.
|
|
6
|
-
*/
|
|
7
|
-
import type { PluginInput } from '@opencode-ai/plugin';
|
|
8
|
-
import type { PluginConfig } from '../config';
|
|
9
|
-
import type { CouncilResult } from '../config/council-schema';
|
|
10
|
-
import type { SubagentDepthTracker } from '../utils/subagent-depth';
|
|
11
|
-
export declare class CouncilManager {
|
|
12
|
-
private client;
|
|
13
|
-
private directory;
|
|
14
|
-
private config?;
|
|
15
|
-
private depthTracker?;
|
|
16
|
-
private tmuxEnabled;
|
|
17
|
-
private deprecatedFields?;
|
|
18
|
-
private legacyMasterModel?;
|
|
19
|
-
constructor(ctx: PluginInput, config?: PluginConfig, depthTracker?: SubagentDepthTracker, tmuxEnabled?: boolean);
|
|
20
|
-
/** Return deprecated config fields detected during parsing (for tool warnings). */
|
|
21
|
-
getDeprecatedFields(): string[] | undefined;
|
|
22
|
-
/** Return the legacy master.model if it was used as fallback. */
|
|
23
|
-
getLegacyMasterModel(): string | undefined;
|
|
24
|
-
/**
|
|
25
|
-
* Run a full council session.
|
|
26
|
-
*
|
|
27
|
-
* 1. Look up the preset
|
|
28
|
-
* 2. Launch all councillors in parallel
|
|
29
|
-
* 3. Collect results (respecting timeout)
|
|
30
|
-
* 4. Return formatted councillor results for synthesis
|
|
31
|
-
*/
|
|
32
|
-
runCouncil(prompt: string, presetName: string | undefined, parentSessionId: string): Promise<CouncilResult>;
|
|
33
|
-
/**
|
|
34
|
-
* Inject a start notification into the parent session so the user
|
|
35
|
-
* sees immediate feedback while councillors are spinning up.
|
|
36
|
-
*/
|
|
37
|
-
private sendStartNotification;
|
|
38
|
-
/**
|
|
39
|
-
* Run a single agent session: create → register → prompt → extract → cleanup.
|
|
40
|
-
*/
|
|
41
|
-
private runAgentSession;
|
|
42
|
-
private runCouncillors;
|
|
43
|
-
/**
|
|
44
|
-
* Run a single councillor across its configured model chain.
|
|
45
|
-
*
|
|
46
|
-
* For each model in the chain, empty responses are retried up to
|
|
47
|
-
* `maxRetries` times (providers that silently rate-limit). Any other
|
|
48
|
-
* failure or timeout advances to the next model in the chain. The
|
|
49
|
-
* councillor only fails once every model has been exhausted; the reported
|
|
50
|
-
* `model` and `error` reflect the last model tried.
|
|
51
|
-
*/
|
|
52
|
-
private runCouncillorWithRetry;
|
|
53
|
-
}
|
package/dist/council/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { CouncilManager } from './council-manager';
|
package/dist/tools/council.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type PluginInput, type ToolDefinition } from '@opencode-ai/plugin';
|
|
2
|
-
import type { CouncilManager } from '../council/council-manager';
|
|
3
|
-
/**
|
|
4
|
-
* Creates the council_session tool for multi-LLM orchestration.
|
|
5
|
-
*
|
|
6
|
-
* This tool triggers a full council session: parallel councillors →
|
|
7
|
-
* formatted results returned to the council agent for synthesis.
|
|
8
|
-
* Available to the council agent.
|
|
9
|
-
*/
|
|
10
|
-
export declare function createCouncilTool(_ctx: PluginInput, councilManager: CouncilManager): Record<string, ToolDefinition>;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure helpers for councillor model fallback chains.
|
|
3
|
-
*
|
|
4
|
-
* Kept free of any schema/validation library import so that runtime consumers
|
|
5
|
-
* (e.g. `CouncilManager`) can resolve a councillor's ordered model chain
|
|
6
|
-
* without pulling in zod or the config schema module.
|
|
7
|
-
*/
|
|
8
|
-
/** A single model in a councillor fallback chain, with optional variant. */
|
|
9
|
-
export type CouncillorModelEntry = {
|
|
10
|
-
id: string;
|
|
11
|
-
variant?: string;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Flatten a councillor model config into an ordered list of model entries.
|
|
15
|
-
*
|
|
16
|
-
* Accepts either a single "provider/model" string or an ordered fallback
|
|
17
|
-
* chain (array of strings and/or `{ id, variant }` entries). Entries that
|
|
18
|
-
* don't carry their own variant fall back to the shared `fallbackVariant`.
|
|
19
|
-
*/
|
|
20
|
-
export declare function normalizeCouncillorModels(model: string | Array<string | CouncillorModelEntry>, fallbackVariant?: string): CouncillorModelEntry[];
|