oh-my-opencode-cohub 1.12.11-beta.0 → 1.12.13-beta.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.md +11 -10
- package/dist/cli/index.js +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/tui.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -114,9 +114,9 @@ npm install oh-my-opencode-cohub
|
|
|
114
114
|
| 代理 | 角色 | 推理强度 | variant 建议 | 模型偏好 |
|
|
115
115
|
|------|------|---------|-------------|---------|
|
|
116
116
|
| co-orchestrator | 纯调度者,编排任务、委派执行 | **重型** | max / xhigh | pro、max、sonnet、opus 等强推理模型 |
|
|
117
|
-
| co-oracle | 战略顾问,架构审查、复杂调试 |
|
|
118
|
-
| co-planner | 方案制定,综合信息输出任务分解 |
|
|
119
|
-
| co-council | 多模型共识,跨多个 LLM 综合 |
|
|
117
|
+
| co-oracle | 战略顾问,架构审查、复杂调试 | **轻型** | low / medium | flash、mini、haiku 等轻量快速模型 |
|
|
118
|
+
| co-planner | 方案制定,综合信息输出任务分解 | **轻型** | low / medium | 同上 |
|
|
119
|
+
| co-council | 多模型共识,跨多个 LLM 综合 | **轻型** | low / medium | 同上 |
|
|
120
120
|
| co-librarian | 研究员,查文档、搜 GitHub、Web 搜索 | **轻型** | low / medium | flash、mini、haiku 等轻量快速模型 |
|
|
121
121
|
| co-explorer | 代码探索者,grep/glob 搜索定位 | **轻型** | low / medium | 同上 |
|
|
122
122
|
| co-fixer | 执行者,代码修改、编译、测试 | **轻型** | low / medium | 同上 |
|
|
@@ -166,7 +166,7 @@ council 是内置的多模型共识机制,会将同一个问题发给 3 个 co
|
|
|
166
166
|
|
|
167
167
|
- 从 opencode.json 读取已配置的 provider,按上表规则为每个代理分配 model 和 variant
|
|
168
168
|
- 只有 1 个 provider:所有代理都用它,variant 按表格建议选不同档位
|
|
169
|
-
- 有多个 provider
|
|
169
|
+
- 有多个 provider:co-orchestrator 优先选最强推理 provider,其余代理选最快 provider
|
|
170
170
|
- council 的 alpha/beta/gamma 优先选 3 个不同 provider;不够 3 个时用同一 provider 的不同 model
|
|
171
171
|
- opencode.json 无任何 provider 时,生成占位配置并在 `_comment` 字段提示用户先配置
|
|
172
172
|
|
|
@@ -288,17 +288,17 @@ bunx oh-my-opencode-cohub install
|
|
|
288
288
|
| 代理 | 默认模型 | 职责 | 读取源 |
|
|
289
289
|
|------|----------|------|--------|
|
|
290
290
|
| co-orchestrator | `deepseek/deepseek-v4-pro` | 纯调度:规划→委派→验证 | — |
|
|
291
|
-
| co-oracle | `deepseek/deepseek-v4-
|
|
291
|
+
| co-oracle | `deepseek/deepseek-v4-flash` | 架构审查/代码审查(含 Superpowers skills) | — |
|
|
292
292
|
| co-librarian | `deepseek/deepseek-v4-flash` | 外部文档/API 研究 | — |
|
|
293
293
|
| co-explorer | `deepseek/deepseek-v4-flash` | 代码库搜索定位 | — |
|
|
294
294
|
| co-designer | `minimax/MiniMax-M3` | UI/UX 设计与实现 | — |
|
|
295
295
|
| co-fixer | `deepseek/deepseek-v4-flash` | 代码修改执行(含 TDD skill) | — |
|
|
296
296
|
| co-observer | `codermxtest/gpt-5.5` | 图片/PDF 分析 | — |
|
|
297
|
-
| co-council | `deepseek/deepseek-v4-
|
|
297
|
+
| co-council | `deepseek/deepseek-v4-flash` | 多模型共识 | — |
|
|
298
298
|
| co-rule-user | `deepseek/deepseek-v4-flash` | 用户级规范分析 | `~/.config/opencode/AGENTS.md` |
|
|
299
299
|
| co-rule-project | `deepseek/deepseek-v4-flash` | 项目级规范分析 | 项目 `AGENTS.md` |
|
|
300
300
|
| co-rule-app | `deepseek/deepseek-v4-flash` | 应用规则分析 | `.opencode/rules/*.md` |
|
|
301
|
-
| co-planner | `deepseek/deepseek-v4-
|
|
301
|
+
| co-planner | `deepseek/deepseek-v4-flash` | 方案制定 | 综合需求+信息+规则 |
|
|
302
302
|
|
|
303
303
|
> 模型可通过下文「配置文件」或「自定义模型」章节覆盖。
|
|
304
304
|
|
|
@@ -311,17 +311,17 @@ CLI 安装后自动创建 `~/.config/opencode/oh-my-opencode-cohub.json`,这
|
|
|
311
311
|
"$schema": "https://unpkg.com/oh-my-opencode-cohub@latest/oh-my-opencode-cohub.schema.json",
|
|
312
312
|
"agents": {
|
|
313
313
|
"co-orchestrator": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
314
|
-
"co-oracle": { "model": "deepseek/deepseek-v4-
|
|
314
|
+
"co-oracle": { "model": "deepseek/deepseek-v4-flash", "variant": "low" },
|
|
315
315
|
"co-librarian": { "model": "deepseek/deepseek-v4-flash", "variant": "low" },
|
|
316
316
|
"co-explorer": { "model": "deepseek/deepseek-v4-flash", "variant": "low" },
|
|
317
317
|
"co-designer": { "model": "minimax/MiniMax-M3", "variant": "medium" },
|
|
318
318
|
"co-fixer": { "model": "deepseek/deepseek-v4-flash", "variant": "high" },
|
|
319
319
|
"co-observer": { "model": "codermxtest/gpt-5.5", "variant": "low" },
|
|
320
|
-
"co-council": { "model": "deepseek/deepseek-v4-
|
|
320
|
+
"co-council": { "model": "deepseek/deepseek-v4-flash", "variant": "low" },
|
|
321
321
|
"co-rule-user": { "model": "deepseek/deepseek-v4-flash", "variant": "medium" },
|
|
322
322
|
"co-rule-project":{ "model": "deepseek/deepseek-v4-flash", "variant": "medium" },
|
|
323
323
|
"co-rule-app": { "model": "deepseek/deepseek-v4-flash", "variant": "medium" },
|
|
324
|
-
"co-planner": { "model": "deepseek/deepseek-v4-
|
|
324
|
+
"co-planner": { "model": "deepseek/deepseek-v4-flash", "variant": "low" }
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
327
|
```
|
|
@@ -480,6 +480,7 @@ npm run build
|
|
|
480
480
|
|
|
481
481
|
| 版本 | 日期 | 主要变更 |
|
|
482
482
|
|------|------|---------|
|
|
483
|
+
| [v1.12.12](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.12.12) | 2026-08-04 | 子代理模型降级 Flash(适配 DeepSeek-V4-Flash 2026-07-31 增强),仅 orchestrator 保留 Pro;Board 会话复用修复 |
|
|
483
484
|
| [1.12.10-beta.1](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.12.10-beta.1) | 2026-07-30 | 调度策略优化、四阶段并行决策框架 |
|
|
484
485
|
| [1.12.9](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.12.9) | 2026-07-29 | 安装架构修复、配置双保险回退、prerelease 发布 |
|
|
485
486
|
| [1.12.0](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.12.0) | 2026-07-28 | AI 配置文案、智能模型匹配、配置外化管理 |
|
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.13-beta.0";
|
|
4
4
|
|
|
5
5
|
// src/cli/config-io.ts
|
|
6
6
|
import * as fs from "node:fs";
|
|
@@ -155,7 +155,7 @@ var HEAVY_KEYWORDS = ["pro", "preview", "opus", "max", "sonnet", "gpt-5.6"];
|
|
|
155
155
|
var LIGHT_KEYWORDS = ["flash", "mini", "haiku", "gpt-5.4", "gpt-5.3"];
|
|
156
156
|
var DESIGN_KEYWORDS = ["minimax", "m3", "sonnet", "claude"];
|
|
157
157
|
var OBSERVER_KEYWORDS = ["gpt-5.5", "gpt-5.4", "vision", "flash"];
|
|
158
|
-
var HEAVY_TYPES = new Set(["orchestrator"
|
|
158
|
+
var HEAVY_TYPES = new Set(["orchestrator"]);
|
|
159
159
|
function pickBestVariant(variants, agentType) {
|
|
160
160
|
if (!variants || variants.length === 0)
|
|
161
161
|
return;
|
|
@@ -227,17 +227,17 @@ function writeDefaultConfig() {
|
|
|
227
227
|
}
|
|
228
228
|
const agentSpecs = [
|
|
229
229
|
{ name: "co-orchestrator", keywords: HEAVY_KEYWORDS, agentType: "orchestrator" },
|
|
230
|
-
{ name: "co-oracle", keywords:
|
|
230
|
+
{ name: "co-oracle", keywords: LIGHT_KEYWORDS, agentType: "oracle" },
|
|
231
231
|
{ name: "co-librarian", keywords: LIGHT_KEYWORDS, agentType: "librarian" },
|
|
232
232
|
{ name: "co-explorer", keywords: LIGHT_KEYWORDS, agentType: "explorer" },
|
|
233
233
|
{ name: "co-designer", keywords: DESIGN_KEYWORDS, agentType: "designer" },
|
|
234
234
|
{ name: "co-fixer", keywords: LIGHT_KEYWORDS, agentType: "fixer" },
|
|
235
235
|
{ name: "co-observer", keywords: OBSERVER_KEYWORDS, agentType: "observer" },
|
|
236
|
-
{ name: "co-council", keywords:
|
|
236
|
+
{ name: "co-council", keywords: LIGHT_KEYWORDS, agentType: "council" },
|
|
237
237
|
{ name: "co-rule-user", keywords: LIGHT_KEYWORDS, agentType: "rule-user" },
|
|
238
238
|
{ name: "co-rule-project", keywords: LIGHT_KEYWORDS, agentType: "rule-project" },
|
|
239
239
|
{ name: "co-rule-app", keywords: LIGHT_KEYWORDS, agentType: "rule-app" },
|
|
240
|
-
{ name: "co-planner", keywords:
|
|
240
|
+
{ name: "co-planner", keywords: LIGHT_KEYWORDS, agentType: "planner" }
|
|
241
241
|
];
|
|
242
242
|
const agents = {};
|
|
243
243
|
let matched = 0;
|
|
@@ -250,7 +250,7 @@ function writeDefaultConfig() {
|
|
|
250
250
|
}
|
|
251
251
|
const usedProviders = new Set;
|
|
252
252
|
const councilSlots = [
|
|
253
|
-
{ key: "alpha", keywords:
|
|
253
|
+
{ key: "alpha", keywords: LIGHT_KEYWORDS, agentType: "council" },
|
|
254
254
|
{ key: "beta", keywords: LIGHT_KEYWORDS, agentType: "council" },
|
|
255
255
|
{ key: "gamma", keywords: DESIGN_KEYWORDS, agentType: "council" }
|
|
256
256
|
];
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAyHlD,QAAA,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAyHlD,QAAA,MAAM,WAAW,EAAE,MA4flB,CAAC;AAEF,eAAO,MAAM,MAAM,QAAc,CAAC;AAClC,eAAe,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2012,13 +2012,17 @@ var CoHubPlugin = async (input, options) => {
|
|
|
2012
2012
|
if (output.messages) {
|
|
2013
2013
|
for (let d = 0;d < output.messages.length; d++) {
|
|
2014
2014
|
const msg = output.messages[d];
|
|
2015
|
+
if (msg.info?.role !== "user")
|
|
2016
|
+
continue;
|
|
2015
2017
|
const parts = msg.parts;
|
|
2016
2018
|
if (!parts || !Array.isArray(parts) || parts.length === 0) {
|
|
2017
|
-
|
|
2019
|
+
msg.parts = [{ type: "text", text: " " }];
|
|
2020
|
+
appendLog("messages.transform", `⚠️ 消息[${d}] role=user parts为空,已推入占位text part`);
|
|
2018
2021
|
} else {
|
|
2019
2022
|
const hasTextPart = parts.some((p) => p.type === "text");
|
|
2020
|
-
if (!hasTextPart
|
|
2021
|
-
|
|
2023
|
+
if (!hasTextPart) {
|
|
2024
|
+
msg.parts.push({ type: "text", text: " " });
|
|
2025
|
+
appendLog("messages.transform", `⚠️ 消息[${d}] role=user parts无text类型(types=[${parts.map((p) => p.type).join(",")}]),已推入占位text part`);
|
|
2022
2026
|
}
|
|
2023
2027
|
}
|
|
2024
2028
|
}
|
package/dist/tui.js
CHANGED
|
@@ -96,17 +96,17 @@ function loadAgentConfig() {
|
|
|
96
96
|
function DEFAULT_AGENTS() {
|
|
97
97
|
const list = [
|
|
98
98
|
["co-orchestrator", "deepseek/deepseek-v4-pro"],
|
|
99
|
-
["co-oracle", "deepseek/deepseek-v4-
|
|
99
|
+
["co-oracle", "deepseek/deepseek-v4-flash"],
|
|
100
100
|
["co-librarian", "deepseek/deepseek-v4-flash"],
|
|
101
101
|
["co-explorer", "deepseek/deepseek-v4-flash"],
|
|
102
102
|
["co-designer", "minimax/MiniMax-M3"],
|
|
103
103
|
["co-fixer", "deepseek/deepseek-v4-flash"],
|
|
104
104
|
["co-observer", "codermxtest/gpt-5.5"],
|
|
105
|
-
["co-council", "deepseek/deepseek-v4-
|
|
105
|
+
["co-council", "deepseek/deepseek-v4-flash"],
|
|
106
106
|
["co-rule-user", "deepseek/deepseek-v4-flash"],
|
|
107
107
|
["co-rule-project", "deepseek/deepseek-v4-flash"],
|
|
108
108
|
["co-rule-app", "deepseek/deepseek-v4-flash"],
|
|
109
|
-
["co-planner", "deepseek/deepseek-v4-
|
|
109
|
+
["co-planner", "deepseek/deepseek-v4-flash"]
|
|
110
110
|
];
|
|
111
111
|
return list.map(([name, fullModel]) => {
|
|
112
112
|
const parts = fullModel.split("/");
|