oh-my-opencode-cohub 1.12.5 → 1.12.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -0
- package/dist/cli/config-io.d.ts.map +1 -1
- package/dist/cli/index.js +45 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -194,6 +194,65 @@ CLI 会精确清理所有 `co-*` 代理和相关配置,不影响其他插件
|
|
|
194
194
|
- 可用代理列表中出现 12 个 `co-*` 前缀代理(`co-orchestrator`、`co-oracle`、`co-librarian`、`co-explorer`、`co-designer`、`co-fixer`、`co-observer`、`co-council`、`co-rule-user`、`co-rule-project`、`co-rule-app`、`co-planner`)
|
|
195
195
|
- Orchestrator 自动进入纯调度模式(只做规划、委派、验证,不直接操作文件)
|
|
196
196
|
|
|
197
|
+
### 故障排查:代理模型未生效?
|
|
198
|
+
|
|
199
|
+
如果重启后代理可见但 model/variant 未应用,或子代理仍然不可见,复制以下文案交给 AI 自动诊断修复:
|
|
200
|
+
|
|
201
|
+
> **适用场景**:`@` 列表中缺少某些 co-* 代理,或代理使用的 model 与预期不符。
|
|
202
|
+
|
|
203
|
+
````
|
|
204
|
+
## 你的任务
|
|
205
|
+
|
|
206
|
+
帮我在当前环境中诊断并修复 oh-my-opencode-cohub 的代理配置问题。
|
|
207
|
+
|
|
208
|
+
**诊断步骤(按顺序执行,执行完向我报告结果):**
|
|
209
|
+
|
|
210
|
+
### 第一步:检查 opencode.json 的 agent 条目
|
|
211
|
+
|
|
212
|
+
读取 `~/.config/opencode/opencode.json`,检查 `agent` 字段中是否存在以下 12 个条目:
|
|
213
|
+
- co-orchestrator (mode: primary) + 其余 11 个 (mode: subagent)
|
|
214
|
+
|
|
215
|
+
如果缺少某些条目,说明插件未正确安装,运行以下命令重新安装:
|
|
216
|
+
```bash
|
|
217
|
+
bun pm cache rm && bunx oh-my-opencode-cohub@latest install
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### 第二步:检查 model/variant 配置
|
|
221
|
+
|
|
222
|
+
读取 `~/.config/opencode/oh-my-opencode-cohub.json`,确认 `agents` 字段下每个代理都有 `model` 和 `variant`。
|
|
223
|
+
|
|
224
|
+
如果 agent 条目有 model 但 opencode.json 中缺少 model,手动将 model/variant 补入 opencode.json 对应条目:
|
|
225
|
+
```json
|
|
226
|
+
"co-explorer": {
|
|
227
|
+
"mode": "subagent",
|
|
228
|
+
"description": "...",
|
|
229
|
+
"model": "deepseek-anthropic/deepseek-v4-flash",
|
|
230
|
+
"variant": "low"
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### 第三步:验证 config hook(仅诊断)
|
|
235
|
+
|
|
236
|
+
检查 `~/.local/share/opencode/storage/oh-my-opencode-cohub/config-hook-ran.json` 是否存在且 `count` 为 12。如果不存在或 count < 12,说明插件未正常加载,检查:
|
|
237
|
+
- opencode.json 的 `plugin` 数组是否包含 `"oh-my-opencode-cohub"`
|
|
238
|
+
- OpenCode 版本是否 >= 1.17
|
|
239
|
+
|
|
240
|
+
### 第四步:最终修复
|
|
241
|
+
|
|
242
|
+
如果以上检查都通过但代理仍无 model/variant,执行完整重装:
|
|
243
|
+
```bash
|
|
244
|
+
bunx oh-my-opencode-cohub uninstall && bun pm cache rm && bunx oh-my-opencode-cohub@latest install
|
|
245
|
+
```
|
|
246
|
+
重启 OpenCode 后验证。
|
|
247
|
+
|
|
248
|
+
### 第五步:验证修复
|
|
249
|
+
|
|
250
|
+
请确认以下内容后告诉我结果:
|
|
251
|
+
- TAB 切换列表中有 co-orchestrator
|
|
252
|
+
- `@` 输入时能看到至少 11 个子代理名称
|
|
253
|
+
- 随便 @ 某个子代理(如 `@co-explorer 搜索src目录`),确认它能正常工作
|
|
254
|
+
````
|
|
255
|
+
|
|
197
256
|
### 从源码安装(本地开发)
|
|
198
257
|
|
|
199
258
|
如果需要修改源码或使用开发版本:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-io.d.ts","sourceRoot":"","sources":["../../src/cli/config-io.ts"],"names":[],"mappings":"AAkCA,2CAA2C;AAC3C,wBAAgB,yBAAyB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAajF;AAED,sCAAsC;AACtC,wBAAgB,oBAAoB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAa5E;AAOD;;wDAEwD;AACxD,wBAAgB,mBAAmB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"config-io.d.ts","sourceRoot":"","sources":["../../src/cli/config-io.ts"],"names":[],"mappings":"AAkCA,2CAA2C;AAC3C,wBAAgB,yBAAyB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAajF;AAED,sCAAsC;AACtC,wBAAgB,oBAAoB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAa5E;AAOD;;wDAEwD;AACxD,wBAAgB,mBAAmB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA+F3E;AA2FD,4DAA4D;AAC5D,wBAAgB,kBAAkB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA2G1E;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA6GzE"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// package.json
|
|
3
|
-
var version = "1.12.
|
|
3
|
+
var version = "1.12.7";
|
|
4
4
|
|
|
5
5
|
// src/cli/config-io.ts
|
|
6
6
|
import * as fs from "node:fs";
|
|
@@ -98,11 +98,37 @@ function registerCoHubAgents() {
|
|
|
98
98
|
delete config.agent;
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
+
const hubConfig = loadHubConfig();
|
|
102
|
+
const TEMPLATE_AGENTS = [
|
|
103
|
+
{ name: "co-orchestrator", mode: "primary", description: "纯调度者——编排任务、委派执行" },
|
|
104
|
+
{ name: "co-oracle", mode: "subagent", description: "战略顾问——架构审查、复杂调试" },
|
|
105
|
+
{ name: "co-planner", mode: "subagent", description: "方案制定——综合需求+信息+规范输出任务分解" },
|
|
106
|
+
{ name: "co-council", mode: "subagent", description: "多模型共识——并行LLM综合" },
|
|
107
|
+
{ name: "co-librarian", mode: "subagent", description: "研究员——查文档、搜索、Web检索" },
|
|
108
|
+
{ name: "co-explorer", mode: "subagent", description: "代码探索者——项目结构、grep/glob搜索" },
|
|
109
|
+
{ name: "co-designer", mode: "subagent", description: "设计师——UI/UX设计实现、视觉润色" },
|
|
110
|
+
{ name: "co-fixer", mode: "subagent", description: "执行者——代码修改、构建、测试" },
|
|
111
|
+
{ name: "co-observer", mode: "subagent", description: "观察者——图片/PDF/截图视觉分析" },
|
|
112
|
+
{ name: "co-rule-user", mode: "subagent", description: "用户规范分析——用户级AGENTS.md" },
|
|
113
|
+
{ name: "co-rule-project", mode: "subagent", description: "项目规范分析——项目AGENTS.md" },
|
|
114
|
+
{ name: "co-rule-app", mode: "subagent", description: "应用规则分析——.opencode/rules/*.md" }
|
|
115
|
+
];
|
|
101
116
|
config.agent = config.agent ?? {};
|
|
102
|
-
config.agent
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
117
|
+
const agentTarget = config.agent;
|
|
118
|
+
for (const tpl of TEMPLATE_AGENTS) {
|
|
119
|
+
const existing = agentTarget[tpl.name];
|
|
120
|
+
const hubOverride = hubConfig[tpl.name];
|
|
121
|
+
const base = { mode: tpl.mode, description: tpl.description };
|
|
122
|
+
if (hubOverride?.model)
|
|
123
|
+
base.model = hubOverride.model;
|
|
124
|
+
if (hubOverride?.variant)
|
|
125
|
+
base.variant = hubOverride.variant;
|
|
126
|
+
if (existing) {
|
|
127
|
+
agentTarget[tpl.name] = { ...base, ...existing, mode: tpl.mode };
|
|
128
|
+
} else {
|
|
129
|
+
agentTarget[tpl.name] = base;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
106
132
|
needUpdate = true;
|
|
107
133
|
if (!config.default_agent) {
|
|
108
134
|
config.default_agent = "co-orchestrator";
|
|
@@ -120,6 +146,17 @@ function registerCoHubAgents() {
|
|
|
120
146
|
return { success: true, message: `✓ ${msgParts.join(",")}` };
|
|
121
147
|
}
|
|
122
148
|
var COHUB_CONFIG_PATH = path.join(os.homedir(), ".config", "opencode", "oh-my-opencode-cohub.json");
|
|
149
|
+
function loadHubConfig() {
|
|
150
|
+
try {
|
|
151
|
+
if (!fs.existsSync(COHUB_CONFIG_PATH))
|
|
152
|
+
return {};
|
|
153
|
+
const raw = fs.readFileSync(COHUB_CONFIG_PATH, "utf-8");
|
|
154
|
+
const data = JSON.parse(raw);
|
|
155
|
+
return data.agents ?? {};
|
|
156
|
+
} catch {
|
|
157
|
+
return {};
|
|
158
|
+
}
|
|
159
|
+
}
|
|
123
160
|
var HEAVY_KEYWORDS = ["pro", "preview", "opus", "max", "sonnet", "gpt-5.6"];
|
|
124
161
|
var LIGHT_KEYWORDS = ["flash", "mini", "haiku", "gpt-5.4", "gpt-5.3"];
|
|
125
162
|
var DESIGN_KEYWORDS = ["minimax", "m3", "sonnet", "claude"];
|
|
@@ -396,8 +433,9 @@ async function main() {
|
|
|
396
433
|
console.log(r4.message);
|
|
397
434
|
console.log(`
|
|
398
435
|
✅ CoHub 安装完成!`);
|
|
399
|
-
console.log(' 重启 OpenCode 后,TAB 选择 "co-orchestrator"
|
|
400
|
-
console.log(" 12 个 co-*
|
|
436
|
+
console.log(' 重启 OpenCode 后,TAB 选择 "co-orchestrator" 主控代理。');
|
|
437
|
+
console.log(" 12 个 co-* 子代理可在对话中通过 @名称 或 task() 派发调用。");
|
|
438
|
+
console.log(" 模型和 variant 配置通过 config hook 从 oh-my-opencode-cohub.json 注入。");
|
|
401
439
|
console.log(`
|
|
402
440
|
${"=".repeat(60)}`);
|
|
403
441
|
console.log("\uD83D\uDCCB 已自动生成默认代理模型配置。如需自定义,可复制以下文案让 AI 帮你优化:");
|