oh-my-opencode 0.3.3 → 0.3.4
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.ko.md +26 -0
- package/README.md +26 -0
- package/dist/config/schema.d.ts +442 -68
- package/dist/index.js +30 -12
- package/package.json +1 -1
package/README.ko.md
CHANGED
|
@@ -242,6 +242,32 @@ OpenCode 는 아주 확장가능하고 아주 커스터마이저블합니다.
|
|
|
242
242
|
|
|
243
243
|
Oh My OpenCode는 Claude Code 설정과 완벽하게 호환됩니다. Claude Code를 사용하셨다면, 기존 설정을 그대로 사용할 수 있습니다.
|
|
244
244
|
|
|
245
|
+
#### 호환성 토글
|
|
246
|
+
|
|
247
|
+
특정 Claude Code 호환 기능을 비활성화하려면 `claude_code` 설정 객체를 사용하세요:
|
|
248
|
+
|
|
249
|
+
```json
|
|
250
|
+
{
|
|
251
|
+
"claude_code": {
|
|
252
|
+
"mcp": false,
|
|
253
|
+
"commands": false,
|
|
254
|
+
"skills": false,
|
|
255
|
+
"agents": false,
|
|
256
|
+
"hooks": false
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
| 토글 | `false`일 때 로딩 비활성화 경로 | 영향 받지 않음 |
|
|
262
|
+
|------|-------------------------------|---------------|
|
|
263
|
+
| `mcp` | `~/.claude/.mcp.json`, `./.mcp.json`, `./.claude/.mcp.json` | 내장 MCP (context7, websearch_exa) |
|
|
264
|
+
| `commands` | `~/.claude/commands/*.md`, `./.claude/commands/*.md` | `~/.config/opencode/command/`, `./.opencode/command/` |
|
|
265
|
+
| `skills` | `~/.claude/skills/*/SKILL.md`, `./.claude/skills/*/SKILL.md` | - |
|
|
266
|
+
| `agents` | `~/.claude/agents/*.md`, `./.claude/agents/*.md` | 내장 에이전트 (oracle, librarian 등) |
|
|
267
|
+
| `hooks` | `~/.claude/settings.json`, `./.claude/settings.json`, `./.claude/settings.local.json` | - |
|
|
268
|
+
|
|
269
|
+
모든 토글은 기본값이 `true` (활성화)입니다. 완전한 Claude Code 호환성을 원하면 `claude_code` 객체를 생략하세요.
|
|
270
|
+
|
|
245
271
|
#### Hooks 통합
|
|
246
272
|
|
|
247
273
|
Claude Code의 `settings.json` 훅 시스템을 통해 커스텀 스크립트를 실행합니다. Oh My OpenCode는 다음 위치의 훅을 읽고 실행합니다:
|
package/README.md
CHANGED
|
@@ -240,6 +240,32 @@ Don't need these? Disable them via `oh-my-opencode.json`:
|
|
|
240
240
|
|
|
241
241
|
Oh My OpenCode provides seamless Claude Code configuration compatibility. If you've been using Claude Code, your existing setup works out of the box.
|
|
242
242
|
|
|
243
|
+
#### Compatibility Toggles
|
|
244
|
+
|
|
245
|
+
If you want to disable specific Claude Code compatibility features, use the `claude_code` configuration object:
|
|
246
|
+
|
|
247
|
+
```json
|
|
248
|
+
{
|
|
249
|
+
"claude_code": {
|
|
250
|
+
"mcp": false,
|
|
251
|
+
"commands": false,
|
|
252
|
+
"skills": false,
|
|
253
|
+
"agents": false,
|
|
254
|
+
"hooks": false
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
| Toggle | When `false`, disables loading from... | NOT affected |
|
|
260
|
+
|--------|----------------------------------------|--------------|
|
|
261
|
+
| `mcp` | `~/.claude/.mcp.json`, `./.mcp.json`, `./.claude/.mcp.json` | Built-in MCPs (context7, websearch_exa) |
|
|
262
|
+
| `commands` | `~/.claude/commands/*.md`, `./.claude/commands/*.md` | `~/.config/opencode/command/`, `./.opencode/command/` |
|
|
263
|
+
| `skills` | `~/.claude/skills/*/SKILL.md`, `./.claude/skills/*/SKILL.md` | - |
|
|
264
|
+
| `agents` | `~/.claude/agents/*.md`, `./.claude/agents/*.md` | Built-in agents (oracle, librarian, etc.) |
|
|
265
|
+
| `hooks` | `~/.claude/settings.json`, `./.claude/settings.json`, `./.claude/settings.local.json` | - |
|
|
266
|
+
|
|
267
|
+
All toggles default to `true` (enabled). Omit the entire `claude_code` object for full Claude Code compatibility.
|
|
268
|
+
|
|
243
269
|
#### Hooks Integration
|
|
244
270
|
|
|
245
271
|
Execute custom scripts via Claude Code's `settings.json` hook system. Oh My OpenCode reads and executes hooks defined in:
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -52,78 +52,192 @@ export declare const AgentOverrideConfigSchema: z.ZodObject<{
|
|
|
52
52
|
}>>;
|
|
53
53
|
}, z.core.$strip>>;
|
|
54
54
|
}, z.core.$strip>;
|
|
55
|
-
export declare const AgentOverridesSchema: z.
|
|
56
|
-
oracle:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
description: z.ZodOptional<z.ZodString>;
|
|
69
|
-
mode: z.ZodOptional<z.ZodEnum<{
|
|
70
|
-
subagent: "subagent";
|
|
71
|
-
primary: "primary";
|
|
72
|
-
all: "all";
|
|
73
|
-
}>>;
|
|
74
|
-
color: z.ZodOptional<z.ZodString>;
|
|
75
|
-
permission: z.ZodOptional<z.ZodObject<{
|
|
76
|
-
edit: z.ZodOptional<z.ZodEnum<{
|
|
77
|
-
ask: "ask";
|
|
78
|
-
allow: "allow";
|
|
79
|
-
deny: "deny";
|
|
55
|
+
export declare const AgentOverridesSchema: z.ZodObject<{
|
|
56
|
+
oracle: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
57
|
+
model: z.ZodOptional<z.ZodString>;
|
|
58
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
59
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
61
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
62
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
63
|
+
description: z.ZodOptional<z.ZodString>;
|
|
64
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
65
|
+
subagent: "subagent";
|
|
66
|
+
primary: "primary";
|
|
67
|
+
all: "all";
|
|
80
68
|
}>>;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
69
|
+
color: z.ZodOptional<z.ZodString>;
|
|
70
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
71
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
72
|
+
ask: "ask";
|
|
73
|
+
allow: "allow";
|
|
74
|
+
deny: "deny";
|
|
75
|
+
}>>;
|
|
76
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
77
|
+
ask: "ask";
|
|
78
|
+
allow: "allow";
|
|
79
|
+
deny: "deny";
|
|
80
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
81
|
+
ask: "ask";
|
|
82
|
+
allow: "allow";
|
|
83
|
+
deny: "deny";
|
|
84
|
+
}>>]>>;
|
|
85
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
86
|
+
ask: "ask";
|
|
87
|
+
allow: "allow";
|
|
88
|
+
deny: "deny";
|
|
89
|
+
}>>;
|
|
90
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
91
|
+
ask: "ask";
|
|
92
|
+
allow: "allow";
|
|
93
|
+
deny: "deny";
|
|
94
|
+
}>>;
|
|
95
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
96
|
+
ask: "ask";
|
|
97
|
+
allow: "allow";
|
|
98
|
+
deny: "deny";
|
|
99
|
+
}>>;
|
|
100
|
+
}, z.core.$strip>>;
|
|
101
|
+
}, z.core.$strip>>>;
|
|
102
|
+
librarian: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
103
|
+
model: z.ZodOptional<z.ZodString>;
|
|
104
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
105
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
106
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
107
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
108
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
109
|
+
description: z.ZodOptional<z.ZodString>;
|
|
110
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
111
|
+
subagent: "subagent";
|
|
112
|
+
primary: "primary";
|
|
113
|
+
all: "all";
|
|
94
114
|
}>>;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
115
|
+
color: z.ZodOptional<z.ZodString>;
|
|
116
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
117
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
118
|
+
ask: "ask";
|
|
119
|
+
allow: "allow";
|
|
120
|
+
deny: "deny";
|
|
121
|
+
}>>;
|
|
122
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
123
|
+
ask: "ask";
|
|
124
|
+
allow: "allow";
|
|
125
|
+
deny: "deny";
|
|
126
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
127
|
+
ask: "ask";
|
|
128
|
+
allow: "allow";
|
|
129
|
+
deny: "deny";
|
|
130
|
+
}>>]>>;
|
|
131
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
132
|
+
ask: "ask";
|
|
133
|
+
allow: "allow";
|
|
134
|
+
deny: "deny";
|
|
135
|
+
}>>;
|
|
136
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
137
|
+
ask: "ask";
|
|
138
|
+
allow: "allow";
|
|
139
|
+
deny: "deny";
|
|
140
|
+
}>>;
|
|
141
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
142
|
+
ask: "ask";
|
|
143
|
+
allow: "allow";
|
|
144
|
+
deny: "deny";
|
|
145
|
+
}>>;
|
|
146
|
+
}, z.core.$strip>>;
|
|
147
|
+
}, z.core.$strip>>>;
|
|
148
|
+
explore: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
149
|
+
model: z.ZodOptional<z.ZodString>;
|
|
150
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
151
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
152
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
153
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
154
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
155
|
+
description: z.ZodOptional<z.ZodString>;
|
|
156
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
157
|
+
subagent: "subagent";
|
|
158
|
+
primary: "primary";
|
|
159
|
+
all: "all";
|
|
99
160
|
}>>;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
161
|
+
color: z.ZodOptional<z.ZodString>;
|
|
162
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
163
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
164
|
+
ask: "ask";
|
|
165
|
+
allow: "allow";
|
|
166
|
+
deny: "deny";
|
|
167
|
+
}>>;
|
|
168
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
169
|
+
ask: "ask";
|
|
170
|
+
allow: "allow";
|
|
171
|
+
deny: "deny";
|
|
172
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
173
|
+
ask: "ask";
|
|
174
|
+
allow: "allow";
|
|
175
|
+
deny: "deny";
|
|
176
|
+
}>>]>>;
|
|
177
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
178
|
+
ask: "ask";
|
|
179
|
+
allow: "allow";
|
|
180
|
+
deny: "deny";
|
|
181
|
+
}>>;
|
|
182
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
183
|
+
ask: "ask";
|
|
184
|
+
allow: "allow";
|
|
185
|
+
deny: "deny";
|
|
186
|
+
}>>;
|
|
187
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
188
|
+
ask: "ask";
|
|
189
|
+
allow: "allow";
|
|
190
|
+
deny: "deny";
|
|
191
|
+
}>>;
|
|
192
|
+
}, z.core.$strip>>;
|
|
193
|
+
}, z.core.$strip>>>;
|
|
194
|
+
"frontend-ui-ux-engineer": z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
195
|
+
model: z.ZodOptional<z.ZodString>;
|
|
196
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
197
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
198
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
199
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
200
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
201
|
+
description: z.ZodOptional<z.ZodString>;
|
|
202
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
203
|
+
subagent: "subagent";
|
|
204
|
+
primary: "primary";
|
|
205
|
+
all: "all";
|
|
104
206
|
}>>;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
207
|
+
color: z.ZodOptional<z.ZodString>;
|
|
208
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
209
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
210
|
+
ask: "ask";
|
|
211
|
+
allow: "allow";
|
|
212
|
+
deny: "deny";
|
|
213
|
+
}>>;
|
|
214
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
215
|
+
ask: "ask";
|
|
216
|
+
allow: "allow";
|
|
217
|
+
deny: "deny";
|
|
218
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
219
|
+
ask: "ask";
|
|
220
|
+
allow: "allow";
|
|
221
|
+
deny: "deny";
|
|
222
|
+
}>>]>>;
|
|
223
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
224
|
+
ask: "ask";
|
|
225
|
+
allow: "allow";
|
|
226
|
+
deny: "deny";
|
|
227
|
+
}>>;
|
|
228
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
229
|
+
ask: "ask";
|
|
230
|
+
allow: "allow";
|
|
231
|
+
deny: "deny";
|
|
232
|
+
}>>;
|
|
233
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
234
|
+
ask: "ask";
|
|
235
|
+
allow: "allow";
|
|
236
|
+
deny: "deny";
|
|
237
|
+
}>>;
|
|
238
|
+
}, z.core.$strip>>;
|
|
239
|
+
}, z.core.$strip>>>;
|
|
240
|
+
"document-writer": z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
127
241
|
model: z.ZodOptional<z.ZodString>;
|
|
128
242
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
129
243
|
top_p: z.ZodOptional<z.ZodNumber>;
|
|
@@ -170,6 +284,266 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
170
284
|
}, z.core.$strip>>;
|
|
171
285
|
}, z.core.$strip>>>;
|
|
172
286
|
}, z.core.$strip>;
|
|
287
|
+
export declare const ClaudeCodeConfigSchema: z.ZodObject<{
|
|
288
|
+
mcp: z.ZodOptional<z.ZodBoolean>;
|
|
289
|
+
commands: z.ZodOptional<z.ZodBoolean>;
|
|
290
|
+
skills: z.ZodOptional<z.ZodBoolean>;
|
|
291
|
+
agents: z.ZodOptional<z.ZodBoolean>;
|
|
292
|
+
hooks: z.ZodOptional<z.ZodBoolean>;
|
|
293
|
+
}, z.core.$strip>;
|
|
294
|
+
export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
295
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
296
|
+
disabled_mcps: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
297
|
+
websearch_exa: "websearch_exa";
|
|
298
|
+
context7: "context7";
|
|
299
|
+
}>>>;
|
|
300
|
+
disabled_agents: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
301
|
+
oracle: "oracle";
|
|
302
|
+
librarian: "librarian";
|
|
303
|
+
explore: "explore";
|
|
304
|
+
"frontend-ui-ux-engineer": "frontend-ui-ux-engineer";
|
|
305
|
+
"document-writer": "document-writer";
|
|
306
|
+
}>>>;
|
|
307
|
+
agents: z.ZodOptional<z.ZodObject<{
|
|
308
|
+
oracle: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
309
|
+
model: z.ZodOptional<z.ZodString>;
|
|
310
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
311
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
312
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
313
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
314
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
315
|
+
description: z.ZodOptional<z.ZodString>;
|
|
316
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
317
|
+
subagent: "subagent";
|
|
318
|
+
primary: "primary";
|
|
319
|
+
all: "all";
|
|
320
|
+
}>>;
|
|
321
|
+
color: z.ZodOptional<z.ZodString>;
|
|
322
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
323
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
324
|
+
ask: "ask";
|
|
325
|
+
allow: "allow";
|
|
326
|
+
deny: "deny";
|
|
327
|
+
}>>;
|
|
328
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
329
|
+
ask: "ask";
|
|
330
|
+
allow: "allow";
|
|
331
|
+
deny: "deny";
|
|
332
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
333
|
+
ask: "ask";
|
|
334
|
+
allow: "allow";
|
|
335
|
+
deny: "deny";
|
|
336
|
+
}>>]>>;
|
|
337
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
338
|
+
ask: "ask";
|
|
339
|
+
allow: "allow";
|
|
340
|
+
deny: "deny";
|
|
341
|
+
}>>;
|
|
342
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
343
|
+
ask: "ask";
|
|
344
|
+
allow: "allow";
|
|
345
|
+
deny: "deny";
|
|
346
|
+
}>>;
|
|
347
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
348
|
+
ask: "ask";
|
|
349
|
+
allow: "allow";
|
|
350
|
+
deny: "deny";
|
|
351
|
+
}>>;
|
|
352
|
+
}, z.core.$strip>>;
|
|
353
|
+
}, z.core.$strip>>>;
|
|
354
|
+
librarian: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
355
|
+
model: z.ZodOptional<z.ZodString>;
|
|
356
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
357
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
358
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
359
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
360
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
361
|
+
description: z.ZodOptional<z.ZodString>;
|
|
362
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
363
|
+
subagent: "subagent";
|
|
364
|
+
primary: "primary";
|
|
365
|
+
all: "all";
|
|
366
|
+
}>>;
|
|
367
|
+
color: z.ZodOptional<z.ZodString>;
|
|
368
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
369
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
370
|
+
ask: "ask";
|
|
371
|
+
allow: "allow";
|
|
372
|
+
deny: "deny";
|
|
373
|
+
}>>;
|
|
374
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
375
|
+
ask: "ask";
|
|
376
|
+
allow: "allow";
|
|
377
|
+
deny: "deny";
|
|
378
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
379
|
+
ask: "ask";
|
|
380
|
+
allow: "allow";
|
|
381
|
+
deny: "deny";
|
|
382
|
+
}>>]>>;
|
|
383
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
384
|
+
ask: "ask";
|
|
385
|
+
allow: "allow";
|
|
386
|
+
deny: "deny";
|
|
387
|
+
}>>;
|
|
388
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
389
|
+
ask: "ask";
|
|
390
|
+
allow: "allow";
|
|
391
|
+
deny: "deny";
|
|
392
|
+
}>>;
|
|
393
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
394
|
+
ask: "ask";
|
|
395
|
+
allow: "allow";
|
|
396
|
+
deny: "deny";
|
|
397
|
+
}>>;
|
|
398
|
+
}, z.core.$strip>>;
|
|
399
|
+
}, z.core.$strip>>>;
|
|
400
|
+
explore: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
401
|
+
model: z.ZodOptional<z.ZodString>;
|
|
402
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
403
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
404
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
405
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
406
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
407
|
+
description: z.ZodOptional<z.ZodString>;
|
|
408
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
409
|
+
subagent: "subagent";
|
|
410
|
+
primary: "primary";
|
|
411
|
+
all: "all";
|
|
412
|
+
}>>;
|
|
413
|
+
color: z.ZodOptional<z.ZodString>;
|
|
414
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
415
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
416
|
+
ask: "ask";
|
|
417
|
+
allow: "allow";
|
|
418
|
+
deny: "deny";
|
|
419
|
+
}>>;
|
|
420
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
421
|
+
ask: "ask";
|
|
422
|
+
allow: "allow";
|
|
423
|
+
deny: "deny";
|
|
424
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
425
|
+
ask: "ask";
|
|
426
|
+
allow: "allow";
|
|
427
|
+
deny: "deny";
|
|
428
|
+
}>>]>>;
|
|
429
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
430
|
+
ask: "ask";
|
|
431
|
+
allow: "allow";
|
|
432
|
+
deny: "deny";
|
|
433
|
+
}>>;
|
|
434
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
435
|
+
ask: "ask";
|
|
436
|
+
allow: "allow";
|
|
437
|
+
deny: "deny";
|
|
438
|
+
}>>;
|
|
439
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
440
|
+
ask: "ask";
|
|
441
|
+
allow: "allow";
|
|
442
|
+
deny: "deny";
|
|
443
|
+
}>>;
|
|
444
|
+
}, z.core.$strip>>;
|
|
445
|
+
}, z.core.$strip>>>;
|
|
446
|
+
"frontend-ui-ux-engineer": z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
447
|
+
model: z.ZodOptional<z.ZodString>;
|
|
448
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
449
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
450
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
451
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
452
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
453
|
+
description: z.ZodOptional<z.ZodString>;
|
|
454
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
455
|
+
subagent: "subagent";
|
|
456
|
+
primary: "primary";
|
|
457
|
+
all: "all";
|
|
458
|
+
}>>;
|
|
459
|
+
color: z.ZodOptional<z.ZodString>;
|
|
460
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
461
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
462
|
+
ask: "ask";
|
|
463
|
+
allow: "allow";
|
|
464
|
+
deny: "deny";
|
|
465
|
+
}>>;
|
|
466
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
467
|
+
ask: "ask";
|
|
468
|
+
allow: "allow";
|
|
469
|
+
deny: "deny";
|
|
470
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
471
|
+
ask: "ask";
|
|
472
|
+
allow: "allow";
|
|
473
|
+
deny: "deny";
|
|
474
|
+
}>>]>>;
|
|
475
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
476
|
+
ask: "ask";
|
|
477
|
+
allow: "allow";
|
|
478
|
+
deny: "deny";
|
|
479
|
+
}>>;
|
|
480
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
481
|
+
ask: "ask";
|
|
482
|
+
allow: "allow";
|
|
483
|
+
deny: "deny";
|
|
484
|
+
}>>;
|
|
485
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
486
|
+
ask: "ask";
|
|
487
|
+
allow: "allow";
|
|
488
|
+
deny: "deny";
|
|
489
|
+
}>>;
|
|
490
|
+
}, z.core.$strip>>;
|
|
491
|
+
}, z.core.$strip>>>;
|
|
492
|
+
"document-writer": z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
493
|
+
model: z.ZodOptional<z.ZodString>;
|
|
494
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
495
|
+
top_p: z.ZodOptional<z.ZodNumber>;
|
|
496
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
497
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
498
|
+
disable: z.ZodOptional<z.ZodBoolean>;
|
|
499
|
+
description: z.ZodOptional<z.ZodString>;
|
|
500
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
501
|
+
subagent: "subagent";
|
|
502
|
+
primary: "primary";
|
|
503
|
+
all: "all";
|
|
504
|
+
}>>;
|
|
505
|
+
color: z.ZodOptional<z.ZodString>;
|
|
506
|
+
permission: z.ZodOptional<z.ZodObject<{
|
|
507
|
+
edit: z.ZodOptional<z.ZodEnum<{
|
|
508
|
+
ask: "ask";
|
|
509
|
+
allow: "allow";
|
|
510
|
+
deny: "deny";
|
|
511
|
+
}>>;
|
|
512
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
513
|
+
ask: "ask";
|
|
514
|
+
allow: "allow";
|
|
515
|
+
deny: "deny";
|
|
516
|
+
}>, z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
517
|
+
ask: "ask";
|
|
518
|
+
allow: "allow";
|
|
519
|
+
deny: "deny";
|
|
520
|
+
}>>]>>;
|
|
521
|
+
webfetch: z.ZodOptional<z.ZodEnum<{
|
|
522
|
+
ask: "ask";
|
|
523
|
+
allow: "allow";
|
|
524
|
+
deny: "deny";
|
|
525
|
+
}>>;
|
|
526
|
+
doom_loop: z.ZodOptional<z.ZodEnum<{
|
|
527
|
+
ask: "ask";
|
|
528
|
+
allow: "allow";
|
|
529
|
+
deny: "deny";
|
|
530
|
+
}>>;
|
|
531
|
+
external_directory: z.ZodOptional<z.ZodEnum<{
|
|
532
|
+
ask: "ask";
|
|
533
|
+
allow: "allow";
|
|
534
|
+
deny: "deny";
|
|
535
|
+
}>>;
|
|
536
|
+
}, z.core.$strip>>;
|
|
537
|
+
}, z.core.$strip>>>;
|
|
538
|
+
}, z.core.$strip>>;
|
|
539
|
+
claude_code: z.ZodOptional<z.ZodObject<{
|
|
540
|
+
mcp: z.ZodOptional<z.ZodBoolean>;
|
|
541
|
+
commands: z.ZodOptional<z.ZodBoolean>;
|
|
542
|
+
skills: z.ZodOptional<z.ZodBoolean>;
|
|
543
|
+
agents: z.ZodOptional<z.ZodBoolean>;
|
|
544
|
+
hooks: z.ZodOptional<z.ZodBoolean>;
|
|
545
|
+
}, z.core.$strip>>;
|
|
546
|
+
}, z.core.$strip>;
|
|
173
547
|
export type OhMyOpenCodeConfig = z.infer<typeof OhMyOpenCodeConfigSchema>;
|
|
174
548
|
export type AgentOverrideConfig = z.infer<typeof AgentOverrideConfigSchema>;
|
|
175
549
|
export type AgentOverrides = z.infer<typeof AgentOverridesSchema>;
|
package/dist/index.js
CHANGED
|
@@ -19796,12 +19796,26 @@ var AgentOverrideConfigSchema = exports_external.object({
|
|
|
19796
19796
|
color: exports_external.string().regex(/^#[0-9A-Fa-f]{6}$/).optional(),
|
|
19797
19797
|
permission: AgentPermissionSchema.optional()
|
|
19798
19798
|
});
|
|
19799
|
-
var AgentOverridesSchema = exports_external.
|
|
19799
|
+
var AgentOverridesSchema = exports_external.object({
|
|
19800
|
+
oracle: AgentOverrideConfigSchema.optional(),
|
|
19801
|
+
librarian: AgentOverrideConfigSchema.optional(),
|
|
19802
|
+
explore: AgentOverrideConfigSchema.optional(),
|
|
19803
|
+
"frontend-ui-ux-engineer": AgentOverrideConfigSchema.optional(),
|
|
19804
|
+
"document-writer": AgentOverrideConfigSchema.optional()
|
|
19805
|
+
}).partial();
|
|
19806
|
+
var ClaudeCodeConfigSchema = exports_external.object({
|
|
19807
|
+
mcp: exports_external.boolean().optional(),
|
|
19808
|
+
commands: exports_external.boolean().optional(),
|
|
19809
|
+
skills: exports_external.boolean().optional(),
|
|
19810
|
+
agents: exports_external.boolean().optional(),
|
|
19811
|
+
hooks: exports_external.boolean().optional()
|
|
19812
|
+
});
|
|
19800
19813
|
var OhMyOpenCodeConfigSchema = exports_external.object({
|
|
19801
19814
|
$schema: exports_external.string().optional(),
|
|
19802
19815
|
disabled_mcps: exports_external.array(McpNameSchema).optional(),
|
|
19803
19816
|
disabled_agents: exports_external.array(AgentNameSchema).optional(),
|
|
19804
|
-
agents: AgentOverridesSchema.optional()
|
|
19817
|
+
agents: AgentOverridesSchema.optional(),
|
|
19818
|
+
claude_code: ClaudeCodeConfigSchema.optional()
|
|
19805
19819
|
});
|
|
19806
19820
|
// src/index.ts
|
|
19807
19821
|
import * as fs4 from "fs";
|
|
@@ -19847,7 +19861,8 @@ function mergeConfigs(base, override) {
|
|
|
19847
19861
|
...base.disabled_mcps ?? [],
|
|
19848
19862
|
...override.disabled_mcps ?? []
|
|
19849
19863
|
])
|
|
19850
|
-
]
|
|
19864
|
+
],
|
|
19865
|
+
claude_code: override.claude_code !== undefined || base.claude_code !== undefined ? { ...base.claude_code ?? {}, ...override.claude_code ?? {} } : undefined
|
|
19851
19866
|
};
|
|
19852
19867
|
}
|
|
19853
19868
|
function loadPluginConfig(directory) {
|
|
@@ -19861,7 +19876,8 @@ function loadPluginConfig(directory) {
|
|
|
19861
19876
|
log("Final merged config", {
|
|
19862
19877
|
agents: config3.agents,
|
|
19863
19878
|
disabled_agents: config3.disabled_agents,
|
|
19864
|
-
disabled_mcps: config3.disabled_mcps
|
|
19879
|
+
disabled_mcps: config3.disabled_mcps,
|
|
19880
|
+
claude_code: config3.claude_code
|
|
19865
19881
|
});
|
|
19866
19882
|
return config3;
|
|
19867
19883
|
}
|
|
@@ -19876,7 +19892,9 @@ var OhMyOpenCodePlugin = async (ctx) => {
|
|
|
19876
19892
|
const directoryReadmeInjector = createDirectoryReadmeInjectorHook(ctx);
|
|
19877
19893
|
const emptyTaskResponseDetector = createEmptyTaskResponseDetectorHook(ctx);
|
|
19878
19894
|
const thinkMode = createThinkModeHook();
|
|
19879
|
-
const claudeCodeHooks = createClaudeCodeHooksHook(ctx, {
|
|
19895
|
+
const claudeCodeHooks = createClaudeCodeHooksHook(ctx, {
|
|
19896
|
+
disabledHooks: pluginConfig.claude_code?.hooks ?? true ? undefined : true
|
|
19897
|
+
});
|
|
19880
19898
|
const anthropicAutoCompact = createAnthropicAutoCompactHook(ctx);
|
|
19881
19899
|
updateTerminalTitle({ sessionId: "main" });
|
|
19882
19900
|
return {
|
|
@@ -19886,8 +19904,8 @@ var OhMyOpenCodePlugin = async (ctx) => {
|
|
|
19886
19904
|
},
|
|
19887
19905
|
config: async (config3) => {
|
|
19888
19906
|
const builtinAgents = createBuiltinAgents(pluginConfig.disabled_agents, pluginConfig.agents);
|
|
19889
|
-
const userAgents = loadUserAgents();
|
|
19890
|
-
const projectAgents = loadProjectAgents();
|
|
19907
|
+
const userAgents = pluginConfig.claude_code?.agents ?? true ? loadUserAgents() : {};
|
|
19908
|
+
const projectAgents = pluginConfig.claude_code?.agents ?? true ? loadProjectAgents() : {};
|
|
19891
19909
|
config3.agent = {
|
|
19892
19910
|
...builtinAgents,
|
|
19893
19911
|
...userAgents,
|
|
@@ -19897,19 +19915,19 @@ var OhMyOpenCodePlugin = async (ctx) => {
|
|
|
19897
19915
|
config3.tools = {
|
|
19898
19916
|
...config3.tools
|
|
19899
19917
|
};
|
|
19900
|
-
const mcpResult = await loadMcpConfigs();
|
|
19918
|
+
const mcpResult = pluginConfig.claude_code?.mcp ?? true ? await loadMcpConfigs() : { servers: {} };
|
|
19901
19919
|
config3.mcp = {
|
|
19902
19920
|
...config3.mcp,
|
|
19903
19921
|
...createBuiltinMcps(pluginConfig.disabled_mcps),
|
|
19904
19922
|
...mcpResult.servers
|
|
19905
19923
|
};
|
|
19906
|
-
const userCommands = loadUserCommands();
|
|
19924
|
+
const userCommands = pluginConfig.claude_code?.commands ?? true ? loadUserCommands() : {};
|
|
19907
19925
|
const opencodeGlobalCommands = loadOpencodeGlobalCommands();
|
|
19908
19926
|
const systemCommands = config3.command ?? {};
|
|
19909
|
-
const projectCommands = loadProjectCommands();
|
|
19927
|
+
const projectCommands = pluginConfig.claude_code?.commands ?? true ? loadProjectCommands() : {};
|
|
19910
19928
|
const opencodeProjectCommands = loadOpencodeProjectCommands();
|
|
19911
|
-
const userSkills = loadUserSkillsAsCommands();
|
|
19912
|
-
const projectSkills = loadProjectSkillsAsCommands();
|
|
19929
|
+
const userSkills = pluginConfig.claude_code?.skills ?? true ? loadUserSkillsAsCommands() : {};
|
|
19930
|
+
const projectSkills = pluginConfig.claude_code?.skills ?? true ? loadProjectSkillsAsCommands() : {};
|
|
19913
19931
|
config3.command = {
|
|
19914
19932
|
...userCommands,
|
|
19915
19933
|
...userSkills,
|