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.
@@ -1,12 +1,12 @@
1
1
  ---
2
- name: oh-my-opencode-slim
3
- description: Configure and improve oh-my-opencode-slim 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.
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-slim Configuration Skill
6
+ # oh-my-opencode-serverlocal Configuration Skill
7
7
 
8
8
  You help users configure, customize, and safely improve their
9
- oh-my-opencode-slim setup.
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-slim.json` or `.jsonc`
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-slim is configured through a plugin config file, usually:
36
+ oh-my-opencode-serverlocal is configured through a plugin config file, usually:
37
37
 
38
38
  ```text
39
- ~/.config/opencode/oh-my-opencode-slim.json
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-slim.jsonc
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-slim.jsonc` | User plugin config with comments/trailing commas; takes precedence over `.json` |
54
- | `~/.config/opencode/oh-my-opencode-slim.json` | User plugin config generated by installer |
55
- | `<project>/.opencode/oh-my-opencode-slim.json` | Project-local plugin overrides checked before user config |
56
- | `~/.config/opencode/oh-my-opencode-slim/{agent}.md` | Full prompt replacement for a built-in agent |
57
- | `~/.config/opencode/oh-my-opencode-slim/{agent}_append.md` | Append-only prompt tuning for a built-in agent |
58
- | `~/.config/opencode/oh-my-opencode-slim/{preset}/{agent}.md` | Preset-specific full prompt replacement |
59
- | `~/.config/opencode/oh-my-opencode-slim/{preset}/{agent}_append.md` | Preset-specific append-only prompt tuning |
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-slim/{preset}/` first.
80
- 2. Fall back to `~/.config/opencode/oh-my-opencode-slim/`.
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-slim.json[c]`; use markdown prompt override files instead.
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-slim/orchestrator_append.md
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-slim/openai/orchestrator_append.md
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-slim/orchestrator.md
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-slim config file.
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-slim/orchestrator_append.md. Apply it?
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-slim config?
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-slim setup based on actual usage using oh-my-opencode-slim skill;
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-slim",
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-slim/reflections/sessions/`.
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-slim configuration.
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-slim preset, model routing, skills, and MCP permissions;
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
@@ -15,5 +15,5 @@ Adapted from Addy Osmani's
15
15
 
16
16
  ## Installation
17
17
 
18
- Bundled with `oh-my-opencode-slim` and installed automatically when bundled
18
+ Bundled with `oh-my-opencode-serverlocal` and installed automatically when bundled
19
19
  skills are enabled via the installer.
@@ -90,21 +90,21 @@ keeps them readable to OpenCode.
90
90
  `.gitignore`:
91
91
 
92
92
  ```gitignore
93
- # BEGIN oh-my-opencode-slim worktrees
93
+ # BEGIN oh-my-opencode-serverlocal worktrees
94
94
  .slim/worktrees/
95
95
  .slim/worktrees.json
96
- # END oh-my-opencode-slim worktrees
96
+ # END oh-my-opencode-serverlocal worktrees
97
97
  ```
98
98
 
99
99
  `.ignore`:
100
100
 
101
101
  ```ignore
102
- # BEGIN oh-my-opencode-slim worktrees
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-slim worktrees
107
+ # END oh-my-opencode-serverlocal worktrees
108
108
  ```
109
109
 
110
110
  ---
@@ -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,2 +0,0 @@
1
- import { type AgentDefinition } from './orchestrator';
2
- export declare function createCouncillorAgent(model: string, customPrompt?: string, customAppendPrompt?: string): AgentDefinition;
@@ -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
- }
@@ -1 +0,0 @@
1
- export { CouncilManager } from './council-manager';
@@ -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[];