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
@@ -6,7 +6,7 @@ export interface InstallArgs {
6
6
  reset?: boolean;
7
7
  }
8
8
  export interface OpenCodeConfig {
9
- plugin?: string[];
9
+ plugin?: unknown[];
10
10
  provider?: Record<string, unknown>;
11
11
  agent?: Record<string, unknown>;
12
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", "council-master"];
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", "council-master"];
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 Workflow Rules:\nUnderstand \u2192 build the best path (delegated based on Agent rules, split and parallelized as much as possible) \u2192 execute \u2192 verify.\nIf delegating, launch the specialist in the same turn you mention it.";
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
- * Per-preset master override. All fields are optional — any field
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
- * After parsing, the preset resolves to:
35
- * `{ councillors: Record<string, CouncillorConfig>, master?: PresetMasterOverride }`
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
- councillors: Record<string, {
39
- model: string;
40
- variant?: string | undefined;
41
- prompt?: string | undefined;
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,54 @@ export declare const CouncillorExecutionModeSchema: z.ZodDefault<z.ZodEnum<{
85
49
  * "gamma": { "model": "google/gemini-3-pro" }
86
50
  * }
87
51
  * },
88
- * "master_timeout": 300000,
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
- master: z.ZodObject<{
97
- model: z.ZodString;
98
- variant: z.ZodOptional<z.ZodString>;
99
- prompt: z.ZodOptional<z.ZodString>;
100
- }, z.core.$strip>;
101
- presets: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodTransform<{
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
- }, z.core.$strip>;
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
+ _legacyMasterModel: string | undefined;
86
+ }, {
87
+ presets: Record<string, Record<string, {
88
+ model: string;
89
+ variant?: string | undefined;
90
+ prompt?: string | undefined;
91
+ }>>;
92
+ timeout: number;
93
+ default_preset: string;
94
+ councillor_execution_mode: "parallel" | "serial";
95
+ councillor_retries: number;
96
+ master?: unknown;
97
+ master_timeout?: unknown;
98
+ master_fallback?: unknown;
99
+ }>>;
123
100
  export type CouncilConfig = z.infer<typeof CouncilConfigSchema>;
124
101
  export type CouncillorExecutionMode = z.infer<typeof CouncillorExecutionModeSchema>;
125
102
  /**
@@ -2,4 +2,4 @@ export * from './constants';
2
2
  export * from './council-schema';
3
3
  export { loadAgentPrompt, loadPluginConfig } from './loader';
4
4
  export * from './schema';
5
- export { getAgentOverride } from './utils';
5
+ export { getAgentOverride, getCustomAgentNames } from './utils';
@@ -59,9 +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>;
64
- }, z.core.$strip>;
66
+ }, z.core.$strict>;
65
67
  export declare const MultiplexerTypeSchema: z.ZodEnum<{
66
68
  auto: "auto";
67
69
  tmux: "tmux";
@@ -129,9 +131,11 @@ export declare const PresetSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
129
131
  variant: z.ZodCatch<z.ZodOptional<z.ZodString>>;
130
132
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
131
133
  mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
134
+ prompt: z.ZodOptional<z.ZodString>;
135
+ orchestratorPrompt: z.ZodOptional<z.ZodString>;
132
136
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
133
137
  displayName: z.ZodOptional<z.ZodString>;
134
- }, z.core.$strip>>;
138
+ }, z.core.$strict>>;
135
139
  export type Preset = z.infer<typeof PresetSchema>;
136
140
  export declare const WebsearchConfigSchema: z.ZodObject<{
137
141
  provider: z.ZodDefault<z.ZodEnum<{
@@ -146,10 +150,6 @@ export declare const McpNameSchema: z.ZodEnum<{
146
150
  grep_app: "grep_app";
147
151
  }>;
148
152
  export type McpName = z.infer<typeof McpNameSchema>;
149
- export declare const BackgroundTaskConfigSchema: z.ZodObject<{
150
- maxConcurrentStarts: z.ZodDefault<z.ZodNumber>;
151
- }, z.core.$strip>;
152
- export type BackgroundTaskConfig = z.infer<typeof BackgroundTaskConfigSchema>;
153
153
  export declare const InterviewConfigSchema: z.ZodObject<{
154
154
  maxQuestions: z.ZodDefault<z.ZodNumber>;
155
155
  outputFolder: z.ZodDefault<z.ZodString>;
@@ -237,9 +237,11 @@ export declare const PluginConfigSchema: z.ZodObject<{
237
237
  variant: z.ZodCatch<z.ZodOptional<z.ZodString>>;
238
238
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
239
239
  mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
240
+ prompt: z.ZodOptional<z.ZodString>;
241
+ orchestratorPrompt: z.ZodOptional<z.ZodString>;
240
242
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
241
243
  displayName: z.ZodOptional<z.ZodString>;
242
- }, z.core.$strip>>>>;
244
+ }, z.core.$strict>>>>;
243
245
  agents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
244
246
  model: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
245
247
  id: z.ZodString;
@@ -249,9 +251,11 @@ export declare const PluginConfigSchema: z.ZodObject<{
249
251
  variant: z.ZodCatch<z.ZodOptional<z.ZodString>>;
250
252
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
251
253
  mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
254
+ prompt: z.ZodOptional<z.ZodString>;
255
+ orchestratorPrompt: z.ZodOptional<z.ZodString>;
252
256
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
253
257
  displayName: z.ZodOptional<z.ZodString>;
254
- }, z.core.$strip>>>;
258
+ }, z.core.$strict>>>;
255
259
  disabled_agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
256
260
  disabled_mcps: z.ZodOptional<z.ZodArray<z.ZodString>>;
257
261
  multiplexer: z.ZodOptional<z.ZodObject<{
@@ -287,9 +291,6 @@ export declare const PluginConfigSchema: z.ZodObject<{
287
291
  tavily: "tavily";
288
292
  }>>;
289
293
  }, z.core.$strip>>;
290
- background: z.ZodOptional<z.ZodObject<{
291
- maxConcurrentStarts: z.ZodDefault<z.ZodNumber>;
292
- }, z.core.$strip>>;
293
294
  interview: z.ZodOptional<z.ZodObject<{
294
295
  maxQuestions: z.ZodDefault<z.ZodNumber>;
295
296
  outputFolder: z.ZodDefault<z.ZodString>;
@@ -317,34 +318,48 @@ export declare const PluginConfigSchema: z.ZodObject<{
317
318
  }, z.core.$catchall<z.ZodArray<z.ZodString>>>>;
318
319
  retry_on_empty: z.ZodDefault<z.ZodBoolean>;
319
320
  }, z.core.$strip>>;
320
- council: z.ZodOptional<z.ZodObject<{
321
- master: z.ZodObject<{
322
- model: z.ZodString;
323
- variant: z.ZodOptional<z.ZodString>;
324
- prompt: z.ZodOptional<z.ZodString>;
325
- }, z.core.$strip>;
326
- presets: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodTransform<{
327
- councillors: Record<string, {
328
- model: string;
329
- variant?: string | undefined;
330
- prompt?: string | undefined;
331
- }>;
332
- master: {
333
- model?: string | undefined;
334
- variant?: string | undefined;
335
- prompt?: string | undefined;
336
- } | undefined;
337
- }, Record<string, Record<string, unknown>>>>>;
338
- master_timeout: z.ZodDefault<z.ZodNumber>;
339
- 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>;
340
328
  default_preset: z.ZodDefault<z.ZodString>;
341
- master_fallback: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[] | undefined, string[] | undefined>>;
342
329
  councillor_execution_mode: z.ZodDefault<z.ZodEnum<{
343
330
  parallel: "parallel";
344
331
  serial: "serial";
345
332
  }>>;
346
333
  councillor_retries: z.ZodDefault<z.ZodNumber>;
347
- }, z.core.$strip>>;
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
+ _legacyMasterModel: string | undefined;
349
+ }, {
350
+ presets: Record<string, Record<string, {
351
+ model: string;
352
+ variant?: string | undefined;
353
+ prompt?: string | undefined;
354
+ }>>;
355
+ timeout: number;
356
+ default_preset: string;
357
+ councillor_execution_mode: "parallel" | "serial";
358
+ councillor_retries: number;
359
+ master?: unknown;
360
+ master_timeout?: unknown;
361
+ master_fallback?: unknown;
362
+ }>>>;
348
363
  }, z.core.$strip>;
349
364
  export type PluginConfig = z.infer<typeof PluginConfigSchema>;
350
365
  export type { AgentName } from './constants';
@@ -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,32 @@
2
2
  * Council Manager
3
3
  *
4
4
  * Orchestrates multi-LLM council sessions: launches councillors in
5
- * parallel, collects results, then runs the council master for synthesis.
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?;
18
+ private legacyMasterModel?;
17
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;
18
24
  /**
19
25
  * Run a full council session.
20
26
  *
21
27
  * 1. Look up the preset
22
28
  * 2. Launch all councillors in parallel
23
29
  * 3. Collect results (respecting timeout)
24
- * 4. Run master synthesis
25
- * 5. Return combined result
30
+ * 4. Return formatted councillor results for synthesis
26
31
  */
27
32
  runCouncil(prompt: string, presetName: string | undefined, parentSessionId: string): Promise<CouncilResult>;
28
33
  /**
@@ -32,7 +37,6 @@ export declare class CouncilManager {
32
37
  private sendStartNotification;
33
38
  /**
34
39
  * Run a single agent session: create → register → prompt → extract → cleanup.
35
- * Both councillors and the master follow this identical lifecycle.
36
40
  */
37
41
  private runAgentSession;
38
42
  private runCouncillors;
@@ -42,12 +46,4 @@ export declare class CouncilManager {
42
46
  * and other failures are returned immediately.
43
47
  */
44
48
  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
49
  }
@@ -3,7 +3,7 @@ export interface NpmDistTags {
3
3
  [key: string]: string;
4
4
  }
5
5
  export interface OpencodeConfig {
6
- plugin?: string[];
6
+ plugin?: unknown[];
7
7
  [key: string]: unknown;
8
8
  }
9
9
  export interface PackageJson {
@@ -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 BackgroundTaskManager's fallback loop but operates
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>Recall Workflow Rules:\nUnderstand \u2192 build the best path (delegated based on Agent rules, split and parallelized as much as possible) \u2192 execute \u2192 verify.\nIf delegating, launch the specialist in the same turn you mention it.</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;