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.
- package/README.md +131 -56
- package/dist/agents/council.d.ts +7 -8
- package/dist/agents/orchestrator.d.ts +1 -0
- package/dist/background/background-manager.d.ts +20 -1
- package/dist/background/index.d.ts +1 -1
- package/dist/background/multiplexer-session-manager.d.ts +2 -0
- package/dist/cli/index.js +351 -13849
- package/dist/cli/types.d.ts +1 -2
- package/dist/config/constants.d.ts +3 -3
- package/dist/config/council-schema.d.ts +45 -69
- package/dist/config/index.d.ts +1 -1
- package/dist/config/schema.d.ts +52 -33
- package/dist/config/utils.d.ts +7 -0
- package/dist/council/council-manager.d.ts +6 -13
- package/dist/hooks/auto-update-checker/types.d.ts +1 -1
- package/dist/hooks/foreground-fallback/index.d.ts +1 -1
- package/dist/hooks/phase-reminder/index.d.ts +1 -1
- package/dist/hooks/todo-continuation/todo-hygiene.d.ts +0 -1
- package/dist/index.js +7339 -26210
- package/dist/interview/service.d.ts +1 -0
- package/dist/multiplexer/factory.d.ts +5 -1
- package/dist/multiplexer/index.d.ts +1 -0
- package/dist/multiplexer/session-manager.d.ts +46 -0
- package/dist/multiplexer/tmux/index.d.ts +3 -1
- package/dist/multiplexer/types.d.ts +3 -3
- package/dist/multiplexer/zellij/index.d.ts +1 -1
- package/dist/tools/ast-grep/index.d.ts +1 -1
- package/dist/tools/background.d.ts +1 -1
- package/dist/tools/council.d.ts +2 -1
- package/dist/tools/index.d.ts +0 -2
- package/dist/tools/lsp/types.d.ts +1 -1
- package/dist/utils/agent-variant.d.ts +15 -1
- package/dist/utils/subagent-depth.d.ts +35 -0
- package/dist/utils/tmux-debug-log.d.ts +2 -0
- package/oh-my-opencode-slim.schema.json +47 -50
- package/package.json +11 -10
- package/src/skills/{cartography → codemap}/README.md +11 -9
- package/src/skills/{cartography → codemap}/SKILL.md +21 -18
- package/src/skills/codemap/codemap.md +36 -0
- package/src/skills/codemap/scripts/codemap.mjs +483 -0
- package/src/skills/codemap/scripts/codemap.test.ts +129 -0
- package/src/skills/codemap.md +40 -0
- package/src/skills/simplify/README.md +19 -0
- package/src/skills/simplify/SKILL.md +138 -0
- package/src/skills/simplify/codemap.md +36 -0
- package/dist/background/tmux-session-manager.d.ts +0 -63
- package/dist/cli/chutes-selection.d.ts +0 -3
- package/dist/cli/dynamic-model-selection.d.ts +0 -14
- package/dist/cli/external-rankings.d.ts +0 -8
- package/dist/cli/model-selection.d.ts +0 -30
- package/dist/cli/opencode-models.d.ts +0 -18
- package/dist/cli/opencode-selection.d.ts +0 -3
- package/dist/cli/precedence-resolver.d.ts +0 -16
- package/dist/cli/scoring-v2/engine.d.ts +0 -4
- package/dist/cli/scoring-v2/features.d.ts +0 -3
- package/dist/cli/scoring-v2/index.d.ts +0 -4
- package/dist/cli/scoring-v2/types.d.ts +0 -17
- package/dist/cli/scoring-v2/weights.d.ts +0 -2
- package/dist/hooks/post-read-nudge/index.d.ts +0 -18
- package/dist/interview/store.d.ts +0 -9
- package/dist/tools/grep/cli.d.ts +0 -3
- package/dist/tools/grep/constants.d.ts +0 -18
- package/dist/tools/grep/downloader.d.ts +0 -3
- package/dist/tools/grep/index.d.ts +0 -5
- package/dist/tools/grep/tools.d.ts +0 -2
- package/dist/tools/grep/types.d.ts +0 -35
- package/dist/tools/grep/utils.d.ts +0 -2
- package/dist/tools/quota/api.d.ts +0 -5
- package/dist/tools/quota/command.d.ts +0 -1
- package/dist/tools/quota/index.d.ts +0 -21
- package/dist/tools/quota/types.d.ts +0 -41
- package/dist/utils/tmux.d.ts +0 -32
- package/src/skills/cartography/scripts/cartographer.py +0 -456
- package/src/skills/cartography/scripts/test_cartographer.py +0 -87
package/dist/cli/types.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
export type BooleanArg = 'yes' | 'no';
|
|
2
2
|
export interface InstallArgs {
|
|
3
3
|
tui: boolean;
|
|
4
|
-
tmux?: BooleanArg;
|
|
5
4
|
skills?: BooleanArg;
|
|
6
5
|
dryRun?: boolean;
|
|
7
6
|
reset?: boolean;
|
|
8
7
|
}
|
|
9
8
|
export interface OpenCodeConfig {
|
|
10
|
-
plugin?:
|
|
9
|
+
plugin?: unknown[];
|
|
11
10
|
provider?: Record<string, unknown>;
|
|
12
11
|
agent?: Record<string, unknown>;
|
|
13
12
|
[key: string]: unknown;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const AGENT_ALIASES: Record<string, string>;
|
|
2
|
-
export declare const SUBAGENT_NAMES: readonly ["explorer", "librarian", "oracle", "designer", "fixer", "observer", "council", "councillor"
|
|
2
|
+
export declare const SUBAGENT_NAMES: readonly ["explorer", "librarian", "oracle", "designer", "fixer", "observer", "council", "councillor"];
|
|
3
3
|
export declare const ORCHESTRATOR_NAME: "orchestrator";
|
|
4
|
-
export declare const ALL_AGENT_NAMES: readonly ["orchestrator", "explorer", "librarian", "oracle", "designer", "fixer", "observer", "council", "councillor"
|
|
4
|
+
export declare const ALL_AGENT_NAMES: readonly ["orchestrator", "explorer", "librarian", "oracle", "designer", "fixer", "observer", "council", "councillor"];
|
|
5
5
|
export type AgentName = (typeof ALL_AGENT_NAMES)[number];
|
|
6
6
|
export declare const ORCHESTRATABLE_AGENTS: readonly ["explorer", "librarian", "oracle", "designer", "fixer", "observer", "council"];
|
|
7
7
|
/** Agents that cannot be disabled even if listed in disabled_agents config. */
|
|
@@ -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 = "Recall
|
|
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 don't prefer solo \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;
|
|
@@ -14,53 +14,18 @@ export declare const CouncillorConfigSchema: z.ZodObject<{
|
|
|
14
14
|
}, z.core.$strip>;
|
|
15
15
|
export type CouncillorConfig = z.infer<typeof CouncillorConfigSchema>;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
* provided here overrides the global `council.master` for this preset.
|
|
19
|
-
* Fields not provided fall back to the global master config.
|
|
20
|
-
*/
|
|
21
|
-
export declare const PresetMasterOverrideSchema: z.ZodObject<{
|
|
22
|
-
model: z.ZodOptional<z.ZodString>;
|
|
23
|
-
variant: z.ZodOptional<z.ZodString>;
|
|
24
|
-
prompt: z.ZodOptional<z.ZodString>;
|
|
25
|
-
}, z.core.$strip>;
|
|
26
|
-
export type PresetMasterOverride = z.infer<typeof PresetMasterOverrideSchema>;
|
|
27
|
-
/**
|
|
28
|
-
* A named preset grouping several councillors with an optional master override.
|
|
29
|
-
*
|
|
30
|
-
* The reserved key `"master"` provides per-preset overrides for the council
|
|
31
|
-
* master (model, variant, prompt). All other keys are treated as councillor
|
|
32
|
-
* names mapping to councillor configs.
|
|
17
|
+
* A named preset grouping several councillors.
|
|
33
18
|
*
|
|
34
|
-
*
|
|
35
|
-
* `
|
|
19
|
+
* All keys are treated as councillor names mapping to councillor configs.
|
|
20
|
+
* The reserved key `"master"` is silently ignored (legacy from when
|
|
21
|
+
* council-master was a separate agent).
|
|
36
22
|
*/
|
|
37
|
-
export declare const CouncilPresetSchema: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodTransform<{
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}>;
|
|
43
|
-
master: {
|
|
44
|
-
model?: string | undefined;
|
|
45
|
-
variant?: string | undefined;
|
|
46
|
-
prompt?: string | undefined;
|
|
47
|
-
} | undefined;
|
|
48
|
-
}, Record<string, Record<string, unknown>>>>;
|
|
23
|
+
export declare const CouncilPresetSchema: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodTransform<Record<string, {
|
|
24
|
+
model: string;
|
|
25
|
+
variant?: string | undefined;
|
|
26
|
+
prompt?: string | undefined;
|
|
27
|
+
}>, Record<string, Record<string, unknown>>>>;
|
|
49
28
|
export type CouncilPreset = z.infer<typeof CouncilPresetSchema>;
|
|
50
|
-
/**
|
|
51
|
-
* Council Master configuration.
|
|
52
|
-
* The master receives all councillor responses and produces the final synthesis.
|
|
53
|
-
*
|
|
54
|
-
* Note: The master runs as a council-master agent session with zero
|
|
55
|
-
* permissions (deny all). Synthesis is a text-in/text-out operation —
|
|
56
|
-
* no tools or MCPs are needed.
|
|
57
|
-
*/
|
|
58
|
-
export declare const CouncilMasterConfigSchema: z.ZodObject<{
|
|
59
|
-
model: z.ZodString;
|
|
60
|
-
variant: z.ZodOptional<z.ZodString>;
|
|
61
|
-
prompt: z.ZodOptional<z.ZodString>;
|
|
62
|
-
}, z.core.$strip>;
|
|
63
|
-
export type CouncilMasterConfig = z.infer<typeof CouncilMasterConfigSchema>;
|
|
64
29
|
/**
|
|
65
30
|
* Execution mode for councillors.
|
|
66
31
|
* - parallel: Run all councillors concurrently (default, fastest for multi-model systems)
|
|
@@ -77,7 +42,6 @@ export declare const CouncillorExecutionModeSchema: z.ZodDefault<z.ZodEnum<{
|
|
|
77
42
|
* ```jsonc
|
|
78
43
|
* {
|
|
79
44
|
* "council": {
|
|
80
|
-
* "master": { "model": "anthropic/claude-opus-4-6" },
|
|
81
45
|
* "presets": {
|
|
82
46
|
* "default": {
|
|
83
47
|
* "alpha": { "model": "openai/gpt-5.4-mini" },
|
|
@@ -85,41 +49,53 @@ export declare const CouncillorExecutionModeSchema: z.ZodDefault<z.ZodEnum<{
|
|
|
85
49
|
* "gamma": { "model": "google/gemini-3-pro" }
|
|
86
50
|
* }
|
|
87
51
|
* },
|
|
88
|
-
* "
|
|
89
|
-
* "councillors_timeout": 180000,
|
|
52
|
+
* "timeout": 180000,
|
|
90
53
|
* "councillor_execution_mode": "serial"
|
|
91
54
|
* }
|
|
92
55
|
* }
|
|
93
56
|
* ```
|
|
94
57
|
*/
|
|
95
|
-
export declare const CouncilConfigSchema: z.ZodObject<{
|
|
96
|
-
|
|
97
|
-
model:
|
|
98
|
-
variant
|
|
99
|
-
prompt
|
|
100
|
-
},
|
|
101
|
-
|
|
102
|
-
councillors: Record<string, {
|
|
103
|
-
model: string;
|
|
104
|
-
variant?: string | undefined;
|
|
105
|
-
prompt?: string | undefined;
|
|
106
|
-
}>;
|
|
107
|
-
master: {
|
|
108
|
-
model?: string | undefined;
|
|
109
|
-
variant?: string | undefined;
|
|
110
|
-
prompt?: string | undefined;
|
|
111
|
-
} | undefined;
|
|
112
|
-
}, Record<string, Record<string, unknown>>>>>;
|
|
113
|
-
master_timeout: z.ZodDefault<z.ZodNumber>;
|
|
114
|
-
councillors_timeout: z.ZodDefault<z.ZodNumber>;
|
|
58
|
+
export declare const CouncilConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
59
|
+
presets: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodTransform<Record<string, {
|
|
60
|
+
model: string;
|
|
61
|
+
variant?: string | undefined;
|
|
62
|
+
prompt?: string | undefined;
|
|
63
|
+
}>, Record<string, Record<string, unknown>>>>>;
|
|
64
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
115
65
|
default_preset: z.ZodDefault<z.ZodString>;
|
|
116
|
-
master_fallback: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[] | undefined, string[] | undefined>>;
|
|
117
66
|
councillor_execution_mode: z.ZodDefault<z.ZodEnum<{
|
|
118
67
|
parallel: "parallel";
|
|
119
68
|
serial: "serial";
|
|
120
69
|
}>>;
|
|
121
70
|
councillor_retries: z.ZodDefault<z.ZodNumber>;
|
|
122
|
-
|
|
71
|
+
master: z.ZodOptional<z.ZodUnknown>;
|
|
72
|
+
master_timeout: z.ZodOptional<z.ZodUnknown>;
|
|
73
|
+
master_fallback: z.ZodOptional<z.ZodUnknown>;
|
|
74
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
75
|
+
presets: Record<string, Record<string, {
|
|
76
|
+
model: string;
|
|
77
|
+
variant?: string | undefined;
|
|
78
|
+
prompt?: string | undefined;
|
|
79
|
+
}>>;
|
|
80
|
+
timeout: number;
|
|
81
|
+
default_preset: string;
|
|
82
|
+
councillor_execution_mode: "parallel" | "serial";
|
|
83
|
+
councillor_retries: number;
|
|
84
|
+
_deprecated: string[] | undefined;
|
|
85
|
+
}, {
|
|
86
|
+
presets: Record<string, Record<string, {
|
|
87
|
+
model: string;
|
|
88
|
+
variant?: string | undefined;
|
|
89
|
+
prompt?: string | undefined;
|
|
90
|
+
}>>;
|
|
91
|
+
timeout: number;
|
|
92
|
+
default_preset: string;
|
|
93
|
+
councillor_execution_mode: "parallel" | "serial";
|
|
94
|
+
councillor_retries: number;
|
|
95
|
+
master?: unknown;
|
|
96
|
+
master_timeout?: unknown;
|
|
97
|
+
master_fallback?: unknown;
|
|
98
|
+
}>>;
|
|
123
99
|
export type CouncilConfig = z.infer<typeof CouncilConfigSchema>;
|
|
124
100
|
export type CouncillorExecutionMode = z.infer<typeof CouncillorExecutionModeSchema>;
|
|
125
101
|
/**
|
package/dist/config/index.d.ts
CHANGED
package/dist/config/schema.d.ts
CHANGED
|
@@ -59,8 +59,11 @@ export declare const AgentOverrideConfigSchema: z.ZodObject<{
|
|
|
59
59
|
variant: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
60
60
|
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
61
61
|
mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
62
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
63
|
+
orchestratorPrompt: z.ZodOptional<z.ZodString>;
|
|
62
64
|
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
63
|
-
|
|
65
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
66
|
+
}, z.core.$strict>;
|
|
64
67
|
export declare const MultiplexerTypeSchema: z.ZodEnum<{
|
|
65
68
|
auto: "auto";
|
|
66
69
|
tmux: "tmux";
|
|
@@ -128,8 +131,11 @@ export declare const PresetSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
|
128
131
|
variant: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
129
132
|
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
130
133
|
mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
134
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
135
|
+
orchestratorPrompt: z.ZodOptional<z.ZodString>;
|
|
131
136
|
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
132
|
-
|
|
137
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
138
|
+
}, z.core.$strict>>;
|
|
133
139
|
export type Preset = z.infer<typeof PresetSchema>;
|
|
134
140
|
export declare const WebsearchConfigSchema: z.ZodObject<{
|
|
135
141
|
provider: z.ZodDefault<z.ZodEnum<{
|
|
@@ -144,10 +150,6 @@ export declare const McpNameSchema: z.ZodEnum<{
|
|
|
144
150
|
grep_app: "grep_app";
|
|
145
151
|
}>;
|
|
146
152
|
export type McpName = z.infer<typeof McpNameSchema>;
|
|
147
|
-
export declare const BackgroundTaskConfigSchema: z.ZodObject<{
|
|
148
|
-
maxConcurrentStarts: z.ZodDefault<z.ZodNumber>;
|
|
149
|
-
}, z.core.$strip>;
|
|
150
|
-
export type BackgroundTaskConfig = z.infer<typeof BackgroundTaskConfigSchema>;
|
|
151
153
|
export declare const InterviewConfigSchema: z.ZodObject<{
|
|
152
154
|
maxQuestions: z.ZodDefault<z.ZodNumber>;
|
|
153
155
|
outputFolder: z.ZodDefault<z.ZodString>;
|
|
@@ -187,6 +189,7 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
187
189
|
v2: "v2";
|
|
188
190
|
}>>;
|
|
189
191
|
balanceProviderUsage: z.ZodOptional<z.ZodBoolean>;
|
|
192
|
+
showStartupToast: z.ZodOptional<z.ZodBoolean>;
|
|
190
193
|
manualPlan: z.ZodOptional<z.ZodObject<{
|
|
191
194
|
orchestrator: z.ZodObject<{
|
|
192
195
|
primary: z.ZodString;
|
|
@@ -234,8 +237,11 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
234
237
|
variant: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
235
238
|
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
236
239
|
mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
240
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
241
|
+
orchestratorPrompt: z.ZodOptional<z.ZodString>;
|
|
237
242
|
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
238
|
-
|
|
243
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
244
|
+
}, z.core.$strict>>>>;
|
|
239
245
|
agents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
240
246
|
model: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
241
247
|
id: z.ZodString;
|
|
@@ -245,8 +251,11 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
245
251
|
variant: z.ZodCatch<z.ZodOptional<z.ZodString>>;
|
|
246
252
|
skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
247
253
|
mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
254
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
255
|
+
orchestratorPrompt: z.ZodOptional<z.ZodString>;
|
|
248
256
|
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
249
|
-
|
|
257
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
258
|
+
}, z.core.$strict>>>;
|
|
250
259
|
disabled_agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
251
260
|
disabled_mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
252
261
|
multiplexer: z.ZodOptional<z.ZodObject<{
|
|
@@ -282,9 +291,6 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
282
291
|
tavily: "tavily";
|
|
283
292
|
}>>;
|
|
284
293
|
}, z.core.$strip>>;
|
|
285
|
-
background: z.ZodOptional<z.ZodObject<{
|
|
286
|
-
maxConcurrentStarts: z.ZodDefault<z.ZodNumber>;
|
|
287
|
-
}, z.core.$strip>>;
|
|
288
294
|
interview: z.ZodOptional<z.ZodObject<{
|
|
289
295
|
maxQuestions: z.ZodDefault<z.ZodNumber>;
|
|
290
296
|
outputFolder: z.ZodDefault<z.ZodString>;
|
|
@@ -312,34 +318,47 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
312
318
|
}, z.core.$catchall<z.ZodArray<z.ZodString>>>>;
|
|
313
319
|
retry_on_empty: z.ZodDefault<z.ZodBoolean>;
|
|
314
320
|
}, z.core.$strip>>;
|
|
315
|
-
council: z.ZodOptional<z.ZodObject<{
|
|
316
|
-
|
|
317
|
-
model:
|
|
318
|
-
variant
|
|
319
|
-
prompt
|
|
320
|
-
},
|
|
321
|
-
|
|
322
|
-
councillors: Record<string, {
|
|
323
|
-
model: string;
|
|
324
|
-
variant?: string | undefined;
|
|
325
|
-
prompt?: string | undefined;
|
|
326
|
-
}>;
|
|
327
|
-
master: {
|
|
328
|
-
model?: string | undefined;
|
|
329
|
-
variant?: string | undefined;
|
|
330
|
-
prompt?: string | undefined;
|
|
331
|
-
} | undefined;
|
|
332
|
-
}, Record<string, Record<string, unknown>>>>>;
|
|
333
|
-
master_timeout: z.ZodDefault<z.ZodNumber>;
|
|
334
|
-
councillors_timeout: z.ZodDefault<z.ZodNumber>;
|
|
321
|
+
council: z.ZodOptional<z.ZodPipe<z.ZodObject<{
|
|
322
|
+
presets: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodTransform<Record<string, {
|
|
323
|
+
model: string;
|
|
324
|
+
variant?: string | undefined;
|
|
325
|
+
prompt?: string | undefined;
|
|
326
|
+
}>, Record<string, Record<string, unknown>>>>>;
|
|
327
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
335
328
|
default_preset: z.ZodDefault<z.ZodString>;
|
|
336
|
-
master_fallback: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[] | undefined, string[] | undefined>>;
|
|
337
329
|
councillor_execution_mode: z.ZodDefault<z.ZodEnum<{
|
|
338
330
|
parallel: "parallel";
|
|
339
331
|
serial: "serial";
|
|
340
332
|
}>>;
|
|
341
333
|
councillor_retries: z.ZodDefault<z.ZodNumber>;
|
|
342
|
-
|
|
334
|
+
master: z.ZodOptional<z.ZodUnknown>;
|
|
335
|
+
master_timeout: z.ZodOptional<z.ZodUnknown>;
|
|
336
|
+
master_fallback: z.ZodOptional<z.ZodUnknown>;
|
|
337
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
338
|
+
presets: Record<string, Record<string, {
|
|
339
|
+
model: string;
|
|
340
|
+
variant?: string | undefined;
|
|
341
|
+
prompt?: string | undefined;
|
|
342
|
+
}>>;
|
|
343
|
+
timeout: number;
|
|
344
|
+
default_preset: string;
|
|
345
|
+
councillor_execution_mode: "parallel" | "serial";
|
|
346
|
+
councillor_retries: number;
|
|
347
|
+
_deprecated: string[] | undefined;
|
|
348
|
+
}, {
|
|
349
|
+
presets: Record<string, Record<string, {
|
|
350
|
+
model: string;
|
|
351
|
+
variant?: string | undefined;
|
|
352
|
+
prompt?: string | undefined;
|
|
353
|
+
}>>;
|
|
354
|
+
timeout: number;
|
|
355
|
+
default_preset: string;
|
|
356
|
+
councillor_execution_mode: "parallel" | "serial";
|
|
357
|
+
councillor_retries: number;
|
|
358
|
+
master?: unknown;
|
|
359
|
+
master_timeout?: unknown;
|
|
360
|
+
master_fallback?: unknown;
|
|
361
|
+
}>>>;
|
|
343
362
|
}, z.core.$strip>;
|
|
344
363
|
export type PluginConfig = z.infer<typeof PluginConfigSchema>;
|
|
345
364
|
export type { AgentName } from './constants';
|
package/dist/config/utils.d.ts
CHANGED
|
@@ -8,3 +8,10 @@ import type { AgentOverrideConfig, PluginConfig } from './schema';
|
|
|
8
8
|
* @returns The agent-specific override configuration if found
|
|
9
9
|
*/
|
|
10
10
|
export declare function getAgentOverride(config: PluginConfig | undefined, name: string): AgentOverrideConfig | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Get custom agent names declared in config.agents.
|
|
13
|
+
*
|
|
14
|
+
* Custom agents are unknown keys that are neither built-in agent names nor
|
|
15
|
+
* legacy aliases.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getCustomAgentNames(config: PluginConfig | undefined): string[];
|
|
@@ -2,27 +2,29 @@
|
|
|
2
2
|
* Council Manager
|
|
3
3
|
*
|
|
4
4
|
* Orchestrates multi-LLM council sessions: launches councillors in
|
|
5
|
-
* parallel
|
|
5
|
+
* parallel and collects their results for the council agent to synthesize.
|
|
6
6
|
*/
|
|
7
7
|
import type { PluginInput } from '@opencode-ai/plugin';
|
|
8
|
-
import type { SubagentDepthTracker } from '../background/subagent-depth';
|
|
9
8
|
import type { PluginConfig } from '../config';
|
|
10
9
|
import type { CouncilResult } from '../config/council-schema';
|
|
10
|
+
import type { SubagentDepthTracker } from '../utils/subagent-depth';
|
|
11
11
|
export declare class CouncilManager {
|
|
12
12
|
private client;
|
|
13
13
|
private directory;
|
|
14
14
|
private config?;
|
|
15
15
|
private depthTracker?;
|
|
16
16
|
private tmuxEnabled;
|
|
17
|
+
private deprecatedFields?;
|
|
17
18
|
constructor(ctx: PluginInput, config?: PluginConfig, depthTracker?: SubagentDepthTracker, tmuxEnabled?: boolean);
|
|
19
|
+
/** Return deprecated config fields detected during parsing (for tool warnings). */
|
|
20
|
+
getDeprecatedFields(): string[] | undefined;
|
|
18
21
|
/**
|
|
19
22
|
* Run a full council session.
|
|
20
23
|
*
|
|
21
24
|
* 1. Look up the preset
|
|
22
25
|
* 2. Launch all councillors in parallel
|
|
23
26
|
* 3. Collect results (respecting timeout)
|
|
24
|
-
* 4.
|
|
25
|
-
* 5. Return combined result
|
|
27
|
+
* 4. Return formatted councillor results for synthesis
|
|
26
28
|
*/
|
|
27
29
|
runCouncil(prompt: string, presetName: string | undefined, parentSessionId: string): Promise<CouncilResult>;
|
|
28
30
|
/**
|
|
@@ -32,7 +34,6 @@ export declare class CouncilManager {
|
|
|
32
34
|
private sendStartNotification;
|
|
33
35
|
/**
|
|
34
36
|
* Run a single agent session: create → register → prompt → extract → cleanup.
|
|
35
|
-
* Both councillors and the master follow this identical lifecycle.
|
|
36
37
|
*/
|
|
37
38
|
private runAgentSession;
|
|
38
39
|
private runCouncillors;
|
|
@@ -42,12 +43,4 @@ export declare class CouncilManager {
|
|
|
42
43
|
* and other failures are returned immediately.
|
|
43
44
|
*/
|
|
44
45
|
private runCouncillorWithRetry;
|
|
45
|
-
/**
|
|
46
|
-
* Run a single master model with retry logic for empty responses.
|
|
47
|
-
* Only retries on "Empty response from provider" — timeouts and
|
|
48
|
-
* other failures throw immediately so runMaster can try the next
|
|
49
|
-
* fallback model.
|
|
50
|
-
*/
|
|
51
|
-
private runMasterModelWithRetry;
|
|
52
|
-
private runMaster;
|
|
53
46
|
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* with the new model — promptAsync returns immediately so we never
|
|
10
10
|
* block the event handler waiting for a full LLM response.
|
|
11
11
|
*
|
|
12
|
-
* This mirrors the
|
|
12
|
+
* This mirrors the same fallback loop used for delegated sessions, but operates
|
|
13
13
|
* reactively through the event system instead of wrapping prompt() in a
|
|
14
14
|
* try/catch, which is not possible for interactive (foreground) sessions.
|
|
15
15
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const PHASE_REMINDER = "<reminder
|
|
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 don't prefer solo \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;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export declare const TODO_HYGIENE_REMINDER = "If the active task changed or finished, update the todo list to match the current work state.";
|
|
2
2
|
export declare const TODO_FINAL_ACTIVE_REMINDER = "If you are finishing now, do not leave the active todo in_progress. Mark it completed, or move unfinished work back to pending.";
|
|
3
|
-
export declare const TODO_DELEGATION_RESUME_REMINDER = "A delegated result just returned. Reconcile the todo list before continuing or delegating again.";
|
|
4
3
|
interface ToolInput {
|
|
5
4
|
tool: string;
|
|
6
5
|
sessionID?: string;
|