oh-my-opencode-slim 2.0.0-beta.9 → 2.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.ja-JP.md +86 -32
- package/README.ko-KR.md +690 -0
- package/README.md +118 -45
- package/README.zh-CN.md +97 -37
- package/dist/cli/background-subagents.d.ts +13 -0
- package/dist/cli/companion.d.ts +4 -0
- package/dist/cli/index.d.ts +2 -1
- package/dist/cli/index.js +626 -82
- package/dist/cli/install.d.ts +6 -1
- package/dist/cli/providers.d.ts +2 -1
- package/dist/cli/types.d.ts +8 -0
- package/dist/companion/manager.d.ts +38 -0
- package/dist/config/constants.d.ts +4 -1
- package/dist/config/fallback-chains.d.ts +1 -0
- package/dist/config/schema.d.ts +46 -40
- package/dist/hooks/auto-update-checker/checker.d.ts +7 -1
- package/dist/hooks/auto-update-checker/constants.d.ts +1 -0
- package/dist/hooks/auto-update-checker/types.d.ts +10 -0
- package/dist/hooks/index.d.ts +0 -2
- package/dist/hooks/json-error-recovery/hook.d.ts +1 -1
- package/dist/hooks/phase-reminder/index.d.ts +1 -1
- package/dist/index.js +1861 -2149
- package/dist/mcp/grep-app.d.ts +1 -1
- package/dist/multiplexer/zellij/index.d.ts +17 -3
- package/dist/tools/cancel-task.d.ts +6 -0
- package/dist/tools/preset-manager.d.ts +6 -7
- package/dist/tui.js +56 -31
- package/dist/utils/background-job-board.d.ts +39 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/task.d.ts +2 -0
- package/oh-my-opencode-slim.schema.json +34 -91
- package/package.json +4 -3
- package/src/skills/codemap.md +3 -1
- package/src/skills/deepwork/SKILL.md +25 -3
- package/src/skills/oh-my-opencode-slim/SKILL.md +326 -0
- package/dist/divoom/council.gif +0 -0
- package/dist/divoom/designer.gif +0 -0
- package/dist/divoom/explorer.gif +0 -0
- package/dist/divoom/fixer.gif +0 -0
- package/dist/divoom/input.gif +0 -0
- package/dist/divoom/intro.gif +0 -0
- package/dist/divoom/librarian.gif +0 -0
- package/dist/divoom/manager.d.ts +0 -57
- package/dist/divoom/oracle.gif +0 -0
- package/dist/divoom/orchestrator.gif +0 -0
- package/dist/hooks/goal/index.d.ts +0 -38
- package/dist/hooks/todo-continuation/index.d.ts +0 -55
- package/dist/hooks/todo-continuation/todo-hygiene.d.ts +0 -35
- package/dist/utils/session-manager.d.ts +0 -55
|
@@ -0,0 +1,326 @@
|
|
|
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.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# oh-my-opencode-slim Configuration Skill
|
|
7
|
+
|
|
8
|
+
You help users configure, customize, and safely improve their
|
|
9
|
+
oh-my-opencode-slim setup.
|
|
10
|
+
|
|
11
|
+
The goal is not just to answer configuration questions. When useful, help the
|
|
12
|
+
user make their agent system better for future runs: tune models, adjust
|
|
13
|
+
agent prompts, add focused custom agents, enable or restrict tools, and document
|
|
14
|
+
restart requirements.
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
Use this skill when the user asks about or is likely to benefit from changes to:
|
|
19
|
+
|
|
20
|
+
- `~/.config/opencode/oh-my-opencode-slim.json` or `.jsonc`
|
|
21
|
+
- `.opencode/` or `~/.config/opencode/` plugin/agent configuration
|
|
22
|
+
- agent models, variants, presets, or provider routing
|
|
23
|
+
- orchestrator delegation behavior or specialist-agent prompts
|
|
24
|
+
- custom agents under `agents.<name>`
|
|
25
|
+
- custom agent `prompt` and `orchestratorPrompt` blocks
|
|
26
|
+
- skills, MCP permissions, tool access, or disabled agents
|
|
27
|
+
- background orchestration, session reuse, multiplexer panes, or deepwork
|
|
28
|
+
- recurring workflow friction that could be fixed by a prompt/config change
|
|
29
|
+
|
|
30
|
+
Also use it proactively, with restraint, when a session reveals a repeatable
|
|
31
|
+
improvement opportunity. Example: if the user repeatedly asks the same agent to
|
|
32
|
+
follow a project-specific rule, suggest adding that rule to a prompt or config.
|
|
33
|
+
|
|
34
|
+
## What Is Possible
|
|
35
|
+
|
|
36
|
+
oh-my-opencode-slim is configured through a plugin config file, usually:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
~/.config/opencode/oh-my-opencode-slim.json
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
or:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
~/.config/opencode/oh-my-opencode-slim.jsonc
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Concrete files agents should know:
|
|
49
|
+
|
|
50
|
+
| Path | Use |
|
|
51
|
+
|---|---|
|
|
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 |
|
|
60
|
+
| `~/.config/opencode/skills/<skill-name>/SKILL.md` | Installed skill prompt payload |
|
|
61
|
+
|
|
62
|
+
Built-in agent prompt file names are exact agent names:
|
|
63
|
+
|
|
64
|
+
- `orchestrator.md` / `orchestrator_append.md`
|
|
65
|
+
- `oracle.md` / `oracle_append.md`
|
|
66
|
+
- `librarian.md` / `librarian_append.md`
|
|
67
|
+
- `explorer.md` / `explorer_append.md`
|
|
68
|
+
- `designer.md` / `designer_append.md`
|
|
69
|
+
- `fixer.md` / `fixer_append.md`
|
|
70
|
+
- `observer.md` / `observer_append.md`
|
|
71
|
+
- `council.md` / `council_append.md`
|
|
72
|
+
|
|
73
|
+
Prefer `{agent}_append.md` for small behavior tuning. Use `{agent}.md` only when
|
|
74
|
+
the user intentionally wants to replace the bundled prompt entirely.
|
|
75
|
+
|
|
76
|
+
Prompt override lookup order:
|
|
77
|
+
|
|
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/`.
|
|
81
|
+
3. If both `{agent}.md` and `{agent}_append.md` exist, the replacement prompt is
|
|
82
|
+
loaded first and the append file is added after it.
|
|
83
|
+
4. If no prompt files exist, the built-in prompt from the plugin package is used.
|
|
84
|
+
|
|
85
|
+
Common customizations:
|
|
86
|
+
|
|
87
|
+
- **Switch presets**: choose which generated or custom preset is active.
|
|
88
|
+
- **Tune models**: assign different models/variants per agent.
|
|
89
|
+
- **Limit costs**: use cheaper models for `explorer`, `librarian`, and `fixer`.
|
|
90
|
+
- **Improve quality**: use stronger models for `orchestrator`, `oracle`, or
|
|
91
|
+
design-heavy `designer` work.
|
|
92
|
+
- **Control skills**: set `skills` per agent with `['*']`, explicit names, or
|
|
93
|
+
exclusions like `['*', '!codemap']`.
|
|
94
|
+
- **Control MCPs**: set `mcps` per agent with the same allow/exclude style.
|
|
95
|
+
- **Enable optional agents**: remove agents from `disabled_agents` and configure
|
|
96
|
+
an appropriate model, such as a vision-capable `observer`.
|
|
97
|
+
- **Add custom agents**: define focused specialists under `agents.<name>`.
|
|
98
|
+
- **Tune prompts**: override or extend an agent's prompt for local workflow
|
|
99
|
+
preferences.
|
|
100
|
+
- **Guide delegation**: add `orchestratorPrompt` for custom agents so the
|
|
101
|
+
Orchestrator knows when to call them and when not to.
|
|
102
|
+
|
|
103
|
+
Important schema boundary:
|
|
104
|
+
|
|
105
|
+
- Built-in agents (`orchestrator`, `oracle`, `librarian`, `explorer`,
|
|
106
|
+
`designer`, `fixer`, `observer`, `council`) can set models, variants, skills,
|
|
107
|
+
MCPs, options, and display names in config.
|
|
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.
|
|
110
|
+
- Unknown keys under top-level `agents` are custom agents. Custom agents may use
|
|
111
|
+
`prompt` and `orchestratorPrompt` directly in config.
|
|
112
|
+
|
|
113
|
+
## Config Shapes
|
|
114
|
+
|
|
115
|
+
### Tune a built-in agent model/skills/MCPs
|
|
116
|
+
|
|
117
|
+
Edit the active preset under `presets.<preset>.<agent>`:
|
|
118
|
+
|
|
119
|
+
```jsonc
|
|
120
|
+
{
|
|
121
|
+
"preset": "openai",
|
|
122
|
+
"presets": {
|
|
123
|
+
"openai": {
|
|
124
|
+
"orchestrator": {
|
|
125
|
+
"model": "openai/gpt-5.5",
|
|
126
|
+
"variant": "high",
|
|
127
|
+
"skills": ["*"],
|
|
128
|
+
"mcps": ["*", "!context7"]
|
|
129
|
+
},
|
|
130
|
+
"librarian": {
|
|
131
|
+
"model": "openai/gpt-5.4-mini",
|
|
132
|
+
"variant": "low",
|
|
133
|
+
"skills": [],
|
|
134
|
+
"mcps": ["websearch", "context7", "gh_grep"]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Append instructions to a built-in prompt
|
|
142
|
+
|
|
143
|
+
Create, for example:
|
|
144
|
+
|
|
145
|
+
```text
|
|
146
|
+
~/.config/opencode/oh-my-opencode-slim/orchestrator_append.md
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
or for only the `openai` preset:
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
~/.config/opencode/oh-my-opencode-slim/openai/orchestrator_append.md
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Example content:
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
## Local Orchestrator Preference
|
|
159
|
+
|
|
160
|
+
- Before spawning parallel writer agents, identify non-overlapping file ownership.
|
|
161
|
+
- If file ownership overlaps, ask the user or serialize the work.
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Replace a built-in prompt entirely
|
|
165
|
+
|
|
166
|
+
Create:
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
~/.config/opencode/oh-my-opencode-slim/orchestrator.md
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Use this rarely. Full replacements must restate all essential plugin behavior,
|
|
173
|
+
because they replace the bundled prompt.
|
|
174
|
+
|
|
175
|
+
## Safe Improvement Rules
|
|
176
|
+
|
|
177
|
+
Configuration changes affect future agent behavior, so treat them as user-owned.
|
|
178
|
+
|
|
179
|
+
1. **Ask before changing config or prompts.**
|
|
180
|
+
- Explain the proposed improvement briefly.
|
|
181
|
+
- State which file would change.
|
|
182
|
+
- Ask for confirmation unless the user explicitly requested the exact edit.
|
|
183
|
+
2. **Prefer narrow changes.**
|
|
184
|
+
- Do not rewrite large prompts when a small rule solves the problem.
|
|
185
|
+
- Do not add custom agents for one-off tasks.
|
|
186
|
+
3. **Preserve existing user settings.**
|
|
187
|
+
- Merge with current config rather than regenerating from scratch.
|
|
188
|
+
- Keep comments and formatting where practical for JSONC files.
|
|
189
|
+
4. **Avoid hidden behavior changes.**
|
|
190
|
+
- Mention cost, permissions, or delegation changes before applying them.
|
|
191
|
+
- Be explicit if a model/provider change may increase spend.
|
|
192
|
+
5. **Tell the user about restart requirements.**
|
|
193
|
+
- OpenCode may need a restart for config, prompt, agent, skill, MCP, or plugin
|
|
194
|
+
changes to take effect.
|
|
195
|
+
- Phrase it as: "This should apply on the next OpenCode run; restart OpenCode
|
|
196
|
+
if you need it immediately."
|
|
197
|
+
|
|
198
|
+
## Configuration Workflow
|
|
199
|
+
|
|
200
|
+
When making or proposing changes:
|
|
201
|
+
|
|
202
|
+
1. **Inspect current setup**
|
|
203
|
+
- Read the existing oh-my-opencode-slim config file.
|
|
204
|
+
- Identify active `preset` and relevant agent blocks.
|
|
205
|
+
- Check whether the user has local project `.opencode/` overrides.
|
|
206
|
+
2. **Decide the smallest useful change**
|
|
207
|
+
- Model/preset tuning for performance, quality, or cost.
|
|
208
|
+
- Prompt tuning for recurring behavior.
|
|
209
|
+
- Custom agent when a repeatable specialty deserves a separate lane.
|
|
210
|
+
- Skill/MCP permission change when access is too broad or too narrow.
|
|
211
|
+
3. **Ask for confirmation**
|
|
212
|
+
- Show a concise proposal.
|
|
213
|
+
- Include the target file path.
|
|
214
|
+
4. **Apply the edit carefully**
|
|
215
|
+
- Preserve unrelated settings.
|
|
216
|
+
- Prefer JSONC-compatible output if editing a JSONC file.
|
|
217
|
+
- Keep agent names and skill/MCP names exact.
|
|
218
|
+
5. **Validate**
|
|
219
|
+
- Ensure the file remains parseable.
|
|
220
|
+
- Run available config checks if the repository provides them.
|
|
221
|
+
6. **Explain activation**
|
|
222
|
+
- Tell the user whether the change applies immediately or on next OpenCode
|
|
223
|
+
run/restart.
|
|
224
|
+
|
|
225
|
+
## Custom Agent Pattern
|
|
226
|
+
|
|
227
|
+
Custom agents work best when they are narrow, repeatable, and easy for the
|
|
228
|
+
Orchestrator to route.
|
|
229
|
+
|
|
230
|
+
Use this shape as a starting point:
|
|
231
|
+
|
|
232
|
+
```jsonc
|
|
233
|
+
{
|
|
234
|
+
"agents": {
|
|
235
|
+
"api-reviewer": {
|
|
236
|
+
"model": "openai/gpt-5.5",
|
|
237
|
+
"variant": "high",
|
|
238
|
+
"prompt": "You review API design, compatibility, error semantics, and migration risk. Return concise findings with file references.",
|
|
239
|
+
"orchestratorPrompt": "Delegate to @api-reviewer for API contract changes, public SDK changes, backwards-compatibility questions, or migration-risk review. Do not use it for routine implementation.",
|
|
240
|
+
"skills": [],
|
|
241
|
+
"mcps": []
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Good custom agents have:
|
|
248
|
+
|
|
249
|
+
- a specific job;
|
|
250
|
+
- clear trigger conditions in `orchestratorPrompt`;
|
|
251
|
+
- explicit non-use conditions;
|
|
252
|
+
- only the skills and MCPs they actually need;
|
|
253
|
+
- a model appropriate to the task's judgment/cost needs.
|
|
254
|
+
|
|
255
|
+
Avoid custom agents that duplicate existing specialists:
|
|
256
|
+
|
|
257
|
+
- codebase scouting → `explorer`
|
|
258
|
+
- external docs/research → `librarian`
|
|
259
|
+
- architecture/debugging/review → `oracle`
|
|
260
|
+
- UI/UX polish → `designer`
|
|
261
|
+
- scoped mechanical implementation → `fixer`
|
|
262
|
+
|
|
263
|
+
## Prompt Tuning Pattern
|
|
264
|
+
|
|
265
|
+
Prompt edits are best for recurring behavior that should happen across many
|
|
266
|
+
sessions.
|
|
267
|
+
|
|
268
|
+
Good reasons to tune a prompt:
|
|
269
|
+
|
|
270
|
+
- The Orchestrator repeatedly delegates too much or too little for this user's
|
|
271
|
+
workflow.
|
|
272
|
+
- A specialist repeatedly misses a project-specific convention.
|
|
273
|
+
- The user wants a stable communication or verification style.
|
|
274
|
+
- The team has a recurring review checklist or deployment rule.
|
|
275
|
+
|
|
276
|
+
Poor reasons to tune a prompt:
|
|
277
|
+
|
|
278
|
+
- A one-off task failed once.
|
|
279
|
+
- The current problem can be solved by normal instruction in this session.
|
|
280
|
+
- The change would make the agent worse for general use.
|
|
281
|
+
|
|
282
|
+
When suggesting a prompt improvement, say:
|
|
283
|
+
|
|
284
|
+
```text
|
|
285
|
+
I noticed this is recurring. I can add a small rule to <agent/config path> so
|
|
286
|
+
future runs handle it automatically. Want me to make that config change?
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## Examples
|
|
290
|
+
|
|
291
|
+
### Make Orchestrator more conservative with background writers
|
|
292
|
+
|
|
293
|
+
Proposal:
|
|
294
|
+
|
|
295
|
+
```text
|
|
296
|
+
I can add a narrow Orchestrator prompt rule to avoid parallel writer agents in
|
|
297
|
+
the same directory unless their file ownership is explicit. Target:
|
|
298
|
+
~/.config/opencode/oh-my-opencode-slim/orchestrator_append.md. Apply it?
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Add a project-specific reviewer
|
|
302
|
+
|
|
303
|
+
Proposal:
|
|
304
|
+
|
|
305
|
+
```text
|
|
306
|
+
This looks repeatable enough for a custom read-only reviewer agent. I can add
|
|
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?
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Warn about restart
|
|
312
|
+
|
|
313
|
+
After editing:
|
|
314
|
+
|
|
315
|
+
```text
|
|
316
|
+
Updated the config. This should apply on the next OpenCode run; restart
|
|
317
|
+
OpenCode if you need it immediately.
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Final Checklist
|
|
321
|
+
|
|
322
|
+
- [ ] Did the user confirm config/prompt edits, unless explicitly requested?
|
|
323
|
+
- [ ] Did the edit preserve existing settings?
|
|
324
|
+
- [ ] Is the active preset still valid?
|
|
325
|
+
- [ ] Are skill/MCP/tool permissions intentional and minimal?
|
|
326
|
+
- [ ] Did you mention OpenCode restart/next-run behavior?
|
package/dist/divoom/council.gif
DELETED
|
Binary file
|
package/dist/divoom/designer.gif
DELETED
|
Binary file
|
package/dist/divoom/explorer.gif
DELETED
|
Binary file
|
package/dist/divoom/fixer.gif
DELETED
|
Binary file
|
package/dist/divoom/input.gif
DELETED
|
Binary file
|
package/dist/divoom/intro.gif
DELETED
|
Binary file
|
|
Binary file
|
package/dist/divoom/manager.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { DivoomConfig } from '../config';
|
|
2
|
-
export type DivoomSenderCall = {
|
|
3
|
-
command: string;
|
|
4
|
-
args: string[];
|
|
5
|
-
};
|
|
6
|
-
export type DivoomSender = (call: DivoomSenderCall) => Promise<void> | void;
|
|
7
|
-
type DivoomManagerOptions = {
|
|
8
|
-
assetDir?: string | null;
|
|
9
|
-
sender?: DivoomSender;
|
|
10
|
-
};
|
|
11
|
-
export declare function getDivoomOutDir(homeDir?: string): string;
|
|
12
|
-
export declare class DivoomManager {
|
|
13
|
-
private sender;
|
|
14
|
-
private assetDir;
|
|
15
|
-
private config;
|
|
16
|
-
private parentStates;
|
|
17
|
-
private pendingUserInputs;
|
|
18
|
-
private orchestratorBusy;
|
|
19
|
-
private latestRequestedGifPath?;
|
|
20
|
-
private lastGifPath?;
|
|
21
|
-
private sendQueue;
|
|
22
|
-
constructor(config?: Partial<DivoomConfig>, sender?: DivoomSender, options?: DivoomManagerOptions);
|
|
23
|
-
onPluginLoad(): void;
|
|
24
|
-
onTaskStart(input: {
|
|
25
|
-
parentSessionId?: string;
|
|
26
|
-
callId?: string;
|
|
27
|
-
args?: unknown;
|
|
28
|
-
}): void;
|
|
29
|
-
onTaskEnd(input: {
|
|
30
|
-
parentSessionId?: string;
|
|
31
|
-
callId?: string;
|
|
32
|
-
}): void;
|
|
33
|
-
onUserInputRequired(input: {
|
|
34
|
-
sessionId?: string;
|
|
35
|
-
requestId?: string;
|
|
36
|
-
}): void;
|
|
37
|
-
onUserInputResolved(input: {
|
|
38
|
-
sessionId?: string;
|
|
39
|
-
requestId?: string;
|
|
40
|
-
}): void;
|
|
41
|
-
onOrchestratorStatus(input: {
|
|
42
|
-
sessionId?: string;
|
|
43
|
-
status?: string;
|
|
44
|
-
isOrchestrator?: boolean;
|
|
45
|
-
}): void;
|
|
46
|
-
onSessionDeleted(input: {
|
|
47
|
-
sessionId?: string;
|
|
48
|
-
isOrchestrator?: boolean;
|
|
49
|
-
}): void;
|
|
50
|
-
private render;
|
|
51
|
-
private getParentState;
|
|
52
|
-
private show;
|
|
53
|
-
flush(): Promise<void>;
|
|
54
|
-
private clearLatestIfCurrent;
|
|
55
|
-
}
|
|
56
|
-
export declare function createDivoomManager(config?: Partial<DivoomConfig>): DivoomManager;
|
|
57
|
-
export {};
|
package/dist/divoom/oracle.gif
DELETED
|
Binary file
|
|
Binary file
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { PluginInput } from '@opencode-ai/plugin';
|
|
2
|
-
import type { PluginConfig } from '../../config';
|
|
3
|
-
interface GoalState {
|
|
4
|
-
text: string;
|
|
5
|
-
source?: 'manual' | 'interview';
|
|
6
|
-
sourcePath?: string;
|
|
7
|
-
inheritedFrom?: string;
|
|
8
|
-
createdAt: number;
|
|
9
|
-
}
|
|
10
|
-
interface SystemTransformOutput {
|
|
11
|
-
system: string[];
|
|
12
|
-
}
|
|
13
|
-
export declare function createGoalHook(ctx: PluginInput, config: PluginConfig, options?: {
|
|
14
|
-
getAgentName?: (sessionID: string) => string | undefined;
|
|
15
|
-
}): {
|
|
16
|
-
registerCommand: (config: Record<string, unknown>) => void;
|
|
17
|
-
handleCommandExecuteBefore: (input: {
|
|
18
|
-
command: string;
|
|
19
|
-
sessionID: string;
|
|
20
|
-
arguments: string;
|
|
21
|
-
}, output: {
|
|
22
|
-
parts: Array<{
|
|
23
|
-
type: string;
|
|
24
|
-
text?: string;
|
|
25
|
-
}>;
|
|
26
|
-
}) => Promise<void>;
|
|
27
|
-
handleEvent: (input: {
|
|
28
|
-
event: {
|
|
29
|
-
type: string;
|
|
30
|
-
properties?: Record<string, unknown>;
|
|
31
|
-
};
|
|
32
|
-
}) => void;
|
|
33
|
-
handleSystemTransform: (input: {
|
|
34
|
-
sessionID?: string;
|
|
35
|
-
}, output: SystemTransformOutput) => void;
|
|
36
|
-
getGoal: (sessionID: string) => GoalState | undefined;
|
|
37
|
-
};
|
|
38
|
-
export {};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import type { PluginInput } from '@opencode-ai/plugin';
|
|
2
|
-
import { type BackgroundJobBoard } from '../../utils';
|
|
3
|
-
interface MessagePart {
|
|
4
|
-
type?: string;
|
|
5
|
-
text?: string;
|
|
6
|
-
[key: string]: unknown;
|
|
7
|
-
}
|
|
8
|
-
interface ChatTransformMessage {
|
|
9
|
-
info: {
|
|
10
|
-
id?: string;
|
|
11
|
-
role?: string;
|
|
12
|
-
agent?: string;
|
|
13
|
-
sessionID?: string;
|
|
14
|
-
};
|
|
15
|
-
parts: MessagePart[];
|
|
16
|
-
}
|
|
17
|
-
export declare function createTodoContinuationHook(ctx: PluginInput, config?: {
|
|
18
|
-
maxContinuations?: number;
|
|
19
|
-
cooldownMs?: number;
|
|
20
|
-
autoEnable?: boolean;
|
|
21
|
-
autoEnableThreshold?: number;
|
|
22
|
-
backgroundJobBoard?: BackgroundJobBoard;
|
|
23
|
-
}): {
|
|
24
|
-
tool: Record<string, unknown>;
|
|
25
|
-
handleToolExecuteAfter: (input: {
|
|
26
|
-
tool: string;
|
|
27
|
-
sessionID?: string;
|
|
28
|
-
}, output?: {
|
|
29
|
-
output?: unknown;
|
|
30
|
-
}) => Promise<void>;
|
|
31
|
-
handleMessagesTransform: (output: {
|
|
32
|
-
messages: ChatTransformMessage[];
|
|
33
|
-
}) => Promise<void>;
|
|
34
|
-
handleEvent: (input: {
|
|
35
|
-
event: {
|
|
36
|
-
type: string;
|
|
37
|
-
properties?: Record<string, unknown>;
|
|
38
|
-
};
|
|
39
|
-
}) => Promise<void>;
|
|
40
|
-
handleChatMessage: (input: {
|
|
41
|
-
sessionID: string;
|
|
42
|
-
agent?: string;
|
|
43
|
-
}) => void;
|
|
44
|
-
handleCommandExecuteBefore: (input: {
|
|
45
|
-
command: string;
|
|
46
|
-
sessionID: string;
|
|
47
|
-
arguments: string;
|
|
48
|
-
}, output: {
|
|
49
|
-
parts: Array<{
|
|
50
|
-
type: string;
|
|
51
|
-
text?: string;
|
|
52
|
-
}>;
|
|
53
|
-
}) => Promise<void>;
|
|
54
|
-
};
|
|
55
|
-
export {};
|
|
@@ -1,35 +0,0 @@
|
|
|
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
|
-
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
|
-
interface ToolInput {
|
|
4
|
-
tool: string;
|
|
5
|
-
sessionID?: string;
|
|
6
|
-
}
|
|
7
|
-
interface EventInput {
|
|
8
|
-
type: string;
|
|
9
|
-
properties?: {
|
|
10
|
-
info?: {
|
|
11
|
-
id?: string;
|
|
12
|
-
};
|
|
13
|
-
sessionID?: string;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
interface RequestStartInput {
|
|
17
|
-
sessionID: string;
|
|
18
|
-
}
|
|
19
|
-
interface Options {
|
|
20
|
-
getTodoState: (sessionID: string) => Promise<{
|
|
21
|
-
hasOpenTodos: boolean;
|
|
22
|
-
openCount: number;
|
|
23
|
-
inProgressCount: number;
|
|
24
|
-
pendingCount: number;
|
|
25
|
-
}>;
|
|
26
|
-
shouldInject?: (sessionID: string) => boolean;
|
|
27
|
-
log?: (message: string, meta?: Record<string, unknown>) => void;
|
|
28
|
-
}
|
|
29
|
-
export declare function createTodoHygiene(options: Options): {
|
|
30
|
-
handleRequestStart(input: RequestStartInput): void;
|
|
31
|
-
handleToolExecuteAfter(input: ToolInput, _output?: unknown): Promise<void>;
|
|
32
|
-
getPendingReminder(sessionID: string): string | null;
|
|
33
|
-
handleEvent(event: EventInput): void;
|
|
34
|
-
};
|
|
35
|
-
export {};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import type { AgentName } from '../config';
|
|
2
|
-
export interface ContextFile {
|
|
3
|
-
path: string;
|
|
4
|
-
lineCount: number;
|
|
5
|
-
lineNumbers?: number[];
|
|
6
|
-
lastReadAt: number;
|
|
7
|
-
}
|
|
8
|
-
export interface RememberedTaskSession {
|
|
9
|
-
alias: string;
|
|
10
|
-
taskId: string;
|
|
11
|
-
agentType: AgentName;
|
|
12
|
-
label: string;
|
|
13
|
-
contextFiles: ContextFile[];
|
|
14
|
-
createdAt: number;
|
|
15
|
-
lastUsedAt: number;
|
|
16
|
-
}
|
|
17
|
-
interface SessionManagerOptions {
|
|
18
|
-
readContextMinLines?: number;
|
|
19
|
-
readContextMaxFiles?: number;
|
|
20
|
-
}
|
|
21
|
-
export declare function deriveTaskSessionLabel(input: {
|
|
22
|
-
description?: string;
|
|
23
|
-
prompt?: string;
|
|
24
|
-
agentType: AgentName;
|
|
25
|
-
}): string;
|
|
26
|
-
export declare class SessionManager {
|
|
27
|
-
private readonly maxSessionsPerAgent;
|
|
28
|
-
private readonly readContextMinLines;
|
|
29
|
-
private readonly readContextMaxFiles;
|
|
30
|
-
private readonly sessionsByParent;
|
|
31
|
-
private readonly nextAliasIndexByParent;
|
|
32
|
-
private orderCounter;
|
|
33
|
-
constructor(maxSessionsPerAgent: number, options?: SessionManagerOptions);
|
|
34
|
-
remember(input: {
|
|
35
|
-
parentSessionId: string;
|
|
36
|
-
taskId: string;
|
|
37
|
-
agentType: AgentName;
|
|
38
|
-
label: string;
|
|
39
|
-
}): RememberedTaskSession;
|
|
40
|
-
markUsed(parentSessionId: string, agentType: AgentName, key: string): void;
|
|
41
|
-
resolve(parentSessionId: string, agentType: AgentName, key: string): RememberedTaskSession | undefined;
|
|
42
|
-
drop(parentSessionId: string, agentType: AgentName, key: string): void;
|
|
43
|
-
dropTask(taskId: string): void;
|
|
44
|
-
taskIds(): Set<string>;
|
|
45
|
-
addContext(taskId: string, files: ContextFile[]): void;
|
|
46
|
-
clearParent(parentSessionId: string): void;
|
|
47
|
-
formatForPrompt(parentSessionId: string): string | undefined;
|
|
48
|
-
private getAgentGroup;
|
|
49
|
-
private setAgentGroup;
|
|
50
|
-
private nextAlias;
|
|
51
|
-
private trimGroup;
|
|
52
|
-
private trimContextFiles;
|
|
53
|
-
private nextOrder;
|
|
54
|
-
}
|
|
55
|
-
export {};
|