oh-my-opencode-cohub 1.0.1 → 1.0.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.
- package/dist/cli/config-io.d.ts +5 -0
- package/dist/cli/config-io.d.ts.map +1 -1
- package/dist/cli/index.js +34 -0
- package/dist/config/loader.d.ts +14 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -40
- package/dist/prompts/orchestrator.d.ts +1 -1
- package/dist/prompts/orchestrator.d.ts.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +12 -15
- package/package.json +1 -1
package/dist/cli/config-io.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export declare function registerCoOrchestratorToAgent(): {
|
|
|
13
13
|
success: boolean;
|
|
14
14
|
message: string;
|
|
15
15
|
};
|
|
16
|
+
/** 写入默认配置模板(如文件不存在) */
|
|
17
|
+
export declare function writeDefaultConfig(): {
|
|
18
|
+
success: boolean;
|
|
19
|
+
message: string;
|
|
20
|
+
};
|
|
16
21
|
/** 卸载 CoHub——精确清理,不碰其他插件数据 */
|
|
17
22
|
export declare function uninstallCoHub(): {
|
|
18
23
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-io.d.ts","sourceRoot":"","sources":["../../src/cli/config-io.ts"],"names":[],"mappings":"AA4BA,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,gFAAgF;AAChF,wBAAgB,6BAA6B,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuBrF;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAuGzE"}
|
|
1
|
+
{"version":3,"file":"config-io.d.ts","sourceRoot":"","sources":["../../src/cli/config-io.ts"],"names":[],"mappings":"AA4BA,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,gFAAgF;AAChF,wBAAgB,6BAA6B,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuBrF;AAID,uBAAuB;AACvB,wBAAgB,kBAAkB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA6B1E;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAuGzE"}
|
package/dist/cli/index.js
CHANGED
|
@@ -75,6 +75,38 @@ function registerCoOrchestratorToAgent() {
|
|
|
75
75
|
writeJSON(configPath, config);
|
|
76
76
|
return { success: true, message: "✓ 已将 co-orchestrator (primary) 注册到 opencode.json 的 agent 字段" };
|
|
77
77
|
}
|
|
78
|
+
var COHUB_CONFIG_PATH = path.join(os.homedir(), ".config", "opencode", "oh-my-opencode-cohub.json");
|
|
79
|
+
function writeDefaultConfig() {
|
|
80
|
+
if (fs.existsSync(COHUB_CONFIG_PATH)) {
|
|
81
|
+
return { success: true, message: "oh-my-opencode-cohub.json 已存在,跳过" };
|
|
82
|
+
}
|
|
83
|
+
const defaultConfig = {
|
|
84
|
+
$schema: "https://unpkg.com/oh-my-opencode-cohub@latest/oh-my-opencode-cohub.schema.json",
|
|
85
|
+
agents: {
|
|
86
|
+
"co-orchestrator": { model: "deepseek/deepseek-v4-pro", variant: "max" },
|
|
87
|
+
"co-oracle": { model: "deepseek/deepseek-v4-pro", variant: "max" },
|
|
88
|
+
"co-librarian": { model: "deepseek/deepseek-v4-flash", variant: "low" },
|
|
89
|
+
"co-explorer": { model: "deepseek/deepseek-v4-flash", variant: "low" },
|
|
90
|
+
"co-designer": { model: "minimax/MiniMax-M3", variant: "medium" },
|
|
91
|
+
"co-fixer": { model: "deepseek/deepseek-v4-flash", variant: "high" },
|
|
92
|
+
"co-observer": { model: "codermxtest/gpt-5.5", variant: "low" },
|
|
93
|
+
"co-council": { model: "deepseek/deepseek-v4-pro", variant: "high" },
|
|
94
|
+
"co-rule-user": { model: "deepseek/deepseek-v4-flash", variant: "medium" },
|
|
95
|
+
"co-rule-project": { model: "deepseek/deepseek-v4-flash", variant: "medium" },
|
|
96
|
+
"co-rule-app": { model: "deepseek/deepseek-v4-flash", variant: "medium" },
|
|
97
|
+
"co-planner": { model: "deepseek/deepseek-v4-pro", variant: "high" }
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
try {
|
|
101
|
+
const dir = path.dirname(COHUB_CONFIG_PATH);
|
|
102
|
+
if (!fs.existsSync(dir))
|
|
103
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
104
|
+
fs.writeFileSync(COHUB_CONFIG_PATH, JSON.stringify(defaultConfig, null, 2), "utf-8");
|
|
105
|
+
return { success: true, message: "✓ 已创建 oh-my-opencode-cohub.json 配置模板" };
|
|
106
|
+
} catch {
|
|
107
|
+
return { success: false, message: "⚠ 无法创建配置文件" };
|
|
108
|
+
}
|
|
109
|
+
}
|
|
78
110
|
function uninstallCoHub() {
|
|
79
111
|
const messages = [];
|
|
80
112
|
const configPath = getOpencodeConfigPath();
|
|
@@ -189,6 +221,8 @@ async function main() {
|
|
|
189
221
|
console.log(r2.message);
|
|
190
222
|
const r3 = registerCoOrchestratorToAgent();
|
|
191
223
|
console.log(r3.message);
|
|
224
|
+
const r4 = writeDefaultConfig();
|
|
225
|
+
console.log(r4.message);
|
|
192
226
|
console.log(`
|
|
193
227
|
✅ CoHub 安装完成!`);
|
|
194
228
|
console.log(' 重启 OpenCode 后,TAB 选择 "co-orchestrator" 开始纯调度模式。');
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** 用户配置中单个代理的覆盖项 */
|
|
2
|
+
export interface AgentOverride {
|
|
3
|
+
model?: string;
|
|
4
|
+
variant?: string;
|
|
5
|
+
prompt?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CoHubConfig {
|
|
8
|
+
agents?: Record<string, AgentOverride>;
|
|
9
|
+
}
|
|
10
|
+
/** 加载用户配置 */
|
|
11
|
+
export declare function loadCoHubConfig(): CoHubConfig;
|
|
12
|
+
/** 示例配置模板 */
|
|
13
|
+
export declare const DEFAULT_CONFIG: CoHubConfig;
|
|
14
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAIA,oBAAoB;AACpB,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAKD,aAAa;AACb,wBAAgB,eAAe,IAAI,WAAW,CAQ7C;AAED,aAAa;AACb,eAAO,MAAM,cAAc,EAAE,WAe5B,CAAC"}
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAqClD,wBAAwB;AACxB,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAalD,CAAC;AAwEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,wrBAA+B,CAAC;AAEhE,QAAA,MAAM,WAAW,EAAE,MAsMlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -62,6 +62,7 @@ var ORCHESTRATOR_PROMPT = `<角色>
|
|
|
62
62
|
|
|
63
63
|
## 5. 验证(全部委派)
|
|
64
64
|
@co-fixer 编译测试 → @co-oracle 代码审查 → @co-designer UI审查。发现问题重新委派。
|
|
65
|
+
**效率原则**:多文件修改全部完成后一次性编译验证,不要每改一个文件就跑一次。
|
|
65
66
|
|
|
66
67
|
</工作流>
|
|
67
68
|
`;
|
|
@@ -536,10 +537,26 @@ class TaskTracker {
|
|
|
536
537
|
}
|
|
537
538
|
}
|
|
538
539
|
|
|
539
|
-
// src/
|
|
540
|
+
// src/config/loader.ts
|
|
540
541
|
import * as fs from "node:fs";
|
|
541
542
|
import * as path from "node:path";
|
|
542
543
|
import * as os from "node:os";
|
|
544
|
+
var CONFIG_PATH = path.join(os.homedir(), ".config", "opencode", "oh-my-opencode-cohub.json");
|
|
545
|
+
function loadCoHubConfig() {
|
|
546
|
+
try {
|
|
547
|
+
if (!fs.existsSync(CONFIG_PATH))
|
|
548
|
+
return {};
|
|
549
|
+
const raw = fs.readFileSync(CONFIG_PATH, "utf-8");
|
|
550
|
+
return JSON.parse(raw);
|
|
551
|
+
} catch {
|
|
552
|
+
return {};
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
// src/index.ts
|
|
557
|
+
import * as fs2 from "node:fs";
|
|
558
|
+
import * as path2 from "node:path";
|
|
559
|
+
import * as os2 from "node:os";
|
|
543
560
|
var CHINESE_PROMPTS = {
|
|
544
561
|
"co-orchestrator": ORCHESTRATOR_PROMPT,
|
|
545
562
|
"co-oracle": ORACLE_PROMPT,
|
|
@@ -572,21 +589,21 @@ function loadFileOverrides(projectDir) {
|
|
|
572
589
|
];
|
|
573
590
|
const searchDirs = [];
|
|
574
591
|
if (projectDir) {
|
|
575
|
-
searchDirs.push(
|
|
592
|
+
searchDirs.push(path2.join(projectDir, ".opencode", "oh-my-opencode-cohub"));
|
|
576
593
|
}
|
|
577
|
-
searchDirs.push(
|
|
594
|
+
searchDirs.push(path2.join(os2.homedir(), ".config", "opencode", "oh-my-opencode-cohub"));
|
|
578
595
|
for (const agent of agentNames) {
|
|
579
596
|
for (const dir of searchDirs) {
|
|
580
|
-
const replacePath =
|
|
581
|
-
if (!overrides[agent]?.replace &&
|
|
597
|
+
const replacePath = path2.join(dir, `${agent}.md`);
|
|
598
|
+
if (!overrides[agent]?.replace && fs2.existsSync(replacePath)) {
|
|
582
599
|
try {
|
|
583
|
-
overrides[agent] = { ...overrides[agent], replace:
|
|
600
|
+
overrides[agent] = { ...overrides[agent], replace: fs2.readFileSync(replacePath, "utf-8") };
|
|
584
601
|
} catch {}
|
|
585
602
|
}
|
|
586
|
-
const appendPath =
|
|
587
|
-
if (!overrides[agent]?.append &&
|
|
603
|
+
const appendPath = path2.join(dir, `${agent}_append.md`);
|
|
604
|
+
if (!overrides[agent]?.append && fs2.existsSync(appendPath)) {
|
|
588
605
|
try {
|
|
589
|
-
overrides[agent] = { ...overrides[agent], append:
|
|
606
|
+
overrides[agent] = { ...overrides[agent], append: fs2.readFileSync(appendPath, "utf-8") };
|
|
590
607
|
} catch {}
|
|
591
608
|
}
|
|
592
609
|
}
|
|
@@ -603,91 +620,123 @@ var CoHubPlugin = async (input, options) => {
|
|
|
603
620
|
}
|
|
604
621
|
const promptOverrides = { ...configOverrides, ...fileOverrides };
|
|
605
622
|
const tracker = new TaskTracker;
|
|
606
|
-
const STATE_DIR =
|
|
607
|
-
const STATE_FILE =
|
|
623
|
+
const STATE_DIR = path2.join(os2.homedir(), ".local", "share", "opencode", "storage", "oh-my-opencode-cohub");
|
|
624
|
+
const STATE_FILE = path2.join(STATE_DIR, "tracker-state.json");
|
|
608
625
|
function syncTrackerState(sessionId) {
|
|
609
626
|
try {
|
|
610
|
-
if (!
|
|
611
|
-
|
|
627
|
+
if (!fs2.existsSync(STATE_DIR)) {
|
|
628
|
+
fs2.mkdirSync(STATE_DIR, { recursive: true });
|
|
612
629
|
}
|
|
613
630
|
const state = {
|
|
614
631
|
updatedAt: Date.now(),
|
|
615
632
|
runningAgents: tracker.getRunningAgents(sessionId),
|
|
616
633
|
runningCount: tracker.getRunningCount(sessionId)
|
|
617
634
|
};
|
|
618
|
-
|
|
635
|
+
fs2.writeFileSync(STATE_FILE, JSON.stringify(state), "utf-8");
|
|
636
|
+
} catch {}
|
|
637
|
+
}
|
|
638
|
+
const AGENT_CONFIG_FILE = path2.join(STATE_DIR, "cohub-state.json");
|
|
639
|
+
function syncAgentConfig() {
|
|
640
|
+
try {
|
|
641
|
+
if (!fs2.existsSync(STATE_DIR)) {
|
|
642
|
+
fs2.mkdirSync(STATE_DIR, { recursive: true });
|
|
643
|
+
}
|
|
644
|
+
const configs = agents.map((a) => ({
|
|
645
|
+
name: a.name,
|
|
646
|
+
description: a.description,
|
|
647
|
+
model: a.config.model,
|
|
648
|
+
variant: a.config.variant || null,
|
|
649
|
+
provider: a.config.model.startsWith("deepseek") ? "deepseek" : a.config.model.startsWith("minimax") || a.config.model.startsWith("MiniMax") ? "minimax" : "codermxtest"
|
|
650
|
+
}));
|
|
651
|
+
fs2.writeFileSync(AGENT_CONFIG_FILE, JSON.stringify({ updatedAt: Date.now(), agents: configs }), "utf-8");
|
|
619
652
|
} catch {}
|
|
620
653
|
}
|
|
621
654
|
const agents = [
|
|
655
|
+
{
|
|
656
|
+
name: "co-orchestrator",
|
|
657
|
+
config: { mode: "primary", model: "deepseek/deepseek-v4-pro", variant: "max", prompt: "你是 CoHub 纯调度者。用中文回复。" }
|
|
658
|
+
},
|
|
622
659
|
{
|
|
623
660
|
name: "co-oracle",
|
|
624
|
-
mode: "subagent",
|
|
625
|
-
description: "战略顾问——架构决策、代码审查、YAGNI 简化",
|
|
626
|
-
config: { model: "deepseek/deepseek-v4-pro", variant: "max", prompt: "你是战略顾问。用中文回复。" }
|
|
661
|
+
config: { mode: "subagent", model: "deepseek/deepseek-v4-pro", variant: "max", temperature: 0.1, prompt: "你是战略顾问。用中文回复。" }
|
|
627
662
|
},
|
|
628
663
|
{
|
|
629
664
|
name: "co-librarian",
|
|
630
|
-
mode: "subagent",
|
|
631
|
-
description: "研究员——外部文档、API 参考、GitHub 示例",
|
|
632
|
-
config: { model: "deepseek/deepseek-v4-flash", prompt: "你是研究员。用中文回复。" }
|
|
665
|
+
config: { mode: "subagent", model: "deepseek/deepseek-v4-flash", prompt: "你是研究员。用中文回复。" }
|
|
633
666
|
},
|
|
634
667
|
{
|
|
635
668
|
name: "co-explorer",
|
|
636
|
-
mode: "subagent",
|
|
637
|
-
description: "代码探索者——Grep/Glob/AST 搜索、文件定位",
|
|
638
|
-
config: { model: "deepseek/deepseek-v4-flash", prompt: "你是代码探索者。用中文回复。" }
|
|
669
|
+
config: { mode: "subagent", model: "deepseek/deepseek-v4-flash", prompt: "你是代码探索者。用中文回复。" }
|
|
639
670
|
},
|
|
640
671
|
{
|
|
641
672
|
name: "co-designer",
|
|
642
|
-
mode: "subagent",
|
|
643
|
-
description: "设计师——UI/UX 设计、视觉润色、响应式布局",
|
|
644
|
-
config: { model: "minimax/MiniMax-M3", prompt: "你是设计师。用中文回复。" }
|
|
673
|
+
config: { mode: "subagent", model: "minimax/MiniMax-M3", variant: "medium", prompt: "你是设计师。用中文回复。" }
|
|
645
674
|
},
|
|
646
675
|
{
|
|
647
676
|
name: "co-fixer",
|
|
648
677
|
mode: "subagent",
|
|
649
678
|
description: "执行者——代码修改、构建、测试",
|
|
650
|
-
config: { model: "deepseek/deepseek-v4-flash", variant: "high", prompt: "你是执行者。用中文回复。" }
|
|
679
|
+
config: { mode: "subagent", model: "deepseek/deepseek-v4-flash", variant: "high", prompt: "你是执行者。用中文回复。" }
|
|
651
680
|
},
|
|
652
681
|
{
|
|
653
682
|
name: "co-observer",
|
|
654
|
-
mode: "subagent",
|
|
655
683
|
description: "观察者——图片/PDF/截图视觉分析",
|
|
656
|
-
config: { model: "codermxtest/gpt-5.5", prompt: "你是观察者。用中文回复。" }
|
|
684
|
+
config: { mode: "subagent", model: "codermxtest/gpt-5.5", prompt: "你是观察者。用中文回复。" }
|
|
657
685
|
},
|
|
658
686
|
{
|
|
659
687
|
name: "co-council",
|
|
660
|
-
mode: "subagent",
|
|
661
688
|
description: "多模型共识——并行 LLM 综合",
|
|
662
|
-
config: { model: "deepseek/deepseek-v4-pro", variant: "high", prompt: "你是多模型共识协调者。用中文回复。" }
|
|
689
|
+
config: { mode: "subagent", model: "deepseek/deepseek-v4-pro", variant: "high", prompt: "你是多模型共识协调者。用中文回复。" }
|
|
663
690
|
},
|
|
664
691
|
{
|
|
665
692
|
name: "co-rule-user",
|
|
666
|
-
mode: "subagent",
|
|
667
693
|
description: "用户规范分析——~/.config/opencode/AGENTS.md",
|
|
668
|
-
config: { model: "deepseek/deepseek-v4-flash", prompt: "你是用户规范分析代理。用中文回复。" }
|
|
694
|
+
config: { mode: "subagent", model: "deepseek/deepseek-v4-flash", prompt: "你是用户规范分析代理。用中文回复。" }
|
|
669
695
|
},
|
|
670
696
|
{
|
|
671
697
|
name: "co-rule-project",
|
|
672
|
-
mode: "subagent",
|
|
673
698
|
description: "项目规范分析——项目 AGENTS.md",
|
|
674
|
-
config: { model: "deepseek/deepseek-v4-flash", prompt: "你是项目规范分析代理。用中文回复。" }
|
|
699
|
+
config: { mode: "subagent", model: "deepseek/deepseek-v4-flash", prompt: "你是项目规范分析代理。用中文回复。" }
|
|
675
700
|
},
|
|
676
701
|
{
|
|
677
702
|
name: "co-rule-app",
|
|
678
|
-
mode: "subagent",
|
|
679
703
|
description: "应用规则分析——.opencode/rules/*.md",
|
|
680
|
-
config: { model: "deepseek/deepseek-v4-flash", prompt: "你是应用规则分析代理。用中文回复。" }
|
|
704
|
+
config: { mode: "subagent", model: "deepseek/deepseek-v4-flash", prompt: "你是应用规则分析代理。用中文回复。" }
|
|
681
705
|
},
|
|
682
706
|
{
|
|
683
707
|
name: "co-planner",
|
|
684
|
-
mode: "subagent",
|
|
685
708
|
description: "方案制定——综合需求+信息+规范输出任务分解",
|
|
686
|
-
config: { model: "deepseek/deepseek-v4-pro", prompt: "你是方案制定代理。用中文回复。" }
|
|
709
|
+
config: { mode: "subagent", model: "deepseek/deepseek-v4-pro", variant: "high", prompt: "你是方案制定代理。用中文回复。" }
|
|
687
710
|
}
|
|
688
711
|
];
|
|
712
|
+
const userConfig = loadCoHubConfig();
|
|
713
|
+
if (userConfig.agents) {
|
|
714
|
+
for (const agent of agents) {
|
|
715
|
+
const override = userConfig.agents[agent.name];
|
|
716
|
+
if (override) {
|
|
717
|
+
if (override.model)
|
|
718
|
+
agent.config.model = override.model;
|
|
719
|
+
if (override.variant)
|
|
720
|
+
agent.config.variant = override.variant;
|
|
721
|
+
if (override.prompt)
|
|
722
|
+
agent.config.prompt = override.prompt;
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
syncAgentConfig();
|
|
689
727
|
return {
|
|
690
|
-
|
|
728
|
+
name: "oh-my-opencode-cohub",
|
|
729
|
+
config: async (cfg) => {
|
|
730
|
+
const c = cfg;
|
|
731
|
+
c.agent ??= {};
|
|
732
|
+
for (const agent of agents) {
|
|
733
|
+
c.agent[agent.name] = {
|
|
734
|
+
...agent.config,
|
|
735
|
+
name: agent.name,
|
|
736
|
+
description: agent.description
|
|
737
|
+
};
|
|
738
|
+
}
|
|
739
|
+
},
|
|
691
740
|
"tool.execute.before": async (input2, output) => {
|
|
692
741
|
try {
|
|
693
742
|
if (input2.tool === "task") {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const ORCHESTRATOR_PROMPT = "<\u89D2\u8272>\n\u4F60\u662F\u7EAF\u8C03\u5EA6\u8005\uFF08Orchestrator\uFF09\u3002\u552F\u4E00\u804C\u8D23\uFF1A\u7406\u89E3\u9700\u6C42 \u2192 \u59D4\u6D3E\u4FE1\u606F\u6536\u96C6 \u2192 \u5236\u5B9A\u65B9\u6848 \u2192 \u8C03\u5EA6\u5B50\u4EE3\u7406\u6267\u884C \u2192 \u59D4\u6D3E\u9A8C\u8BC1\u3002**\u7EDD\u4E0D\u4EB2\u81EA\u4F7F\u7528\u4EFB\u4F55\u6587\u4EF6/\u4EE3\u7801\u64CD\u4F5C\u5DE5\u5177**\uFF08read\u3001grep\u3001glob\u3001bash\u3001edit\u3001write \u7B49\uFF09\u3002\u552F\u4E00\u53EF\u4F7F\u7528\u7684\u5DE5\u5177\u662F\u8C03\u5EA6\u5DE5\u5177\uFF08task\u3001todowrite\uFF09\u3002\n</\u89D2\u8272>\n\n<\u5B50\u4EE3\u7406>\n\n@co-explorer - \u53EA\u8BFB\u3002Grep/Glob/AST \u641C\u7D22\u5B9A\u4F4D\u3002\u59D4\u6D3E\uFF1A\u53D1\u73B0\u4EE3\u7801\u5E93\u5185\u5BB9\u65F6\u3002\n@co-librarian - \u53EA\u8BFB+Web\u3002\u5B98\u65B9\u6587\u6863/API/GitHub \u7814\u7A76\u3002\u59D4\u6D3E\uFF1A\u4E0D\u719F\u6089\u7684\u5E93/\u8FB9\u7F18\u60C5\u51B5\u3002\n@co-oracle - \u53EA\u8BFB\u3002\u67B6\u6784\u51B3\u7B56/\u4EE3\u7801\u5BA1\u67E5/YAGNI \u7B80\u5316/\u590D\u6742\u8C03\u8BD5\u3002\u59D4\u6D3E\uFF1A\u9AD8\u98CE\u9669\u51B3\u7B56/\u53CD\u590D bug/\u5B89\u5168\u5BA1\u67E5\u3002\n@co-designer - \u8BFB\u5199\u3002UI/UX \u8BBE\u8BA1/\u89C6\u89C9\u6DA6\u8272/\u54CD\u5E94\u5F0F\u5E03\u5C40\u3002\u59D4\u6D3E\uFF1A\u9700\u8981\u6DA6\u8272\u7684\u754C\u9762/UX \u7EC4\u4EF6\u3002\n@co-fixer - \u8BFB\u5199+Bash\u3002\u4EE3\u7801\u4FEE\u6539\u6267\u884C(\u65E0\u8BBA\u591A\u5C0F)\u3002\u59D4\u6D3E\uFF1A\u6240\u6709\u6587\u4EF6\u7F16\u8F91/\u5199\u5165/\u5220\u9664\u3002\n@co-observer - \u53EA\u8BFB\u3002\u56FE\u7247/PDF/\u622A\u56FE\u89C6\u89C9\u5206\u6790\u3002\u59D4\u6D3E\uFF1A\u591A\u5A92\u4F53\u6587\u4EF6\u5206\u6790\u65F6(\u542B\u5B8C\u6574\u8DEF\u5F84)\u3002\n@co-council - \u53EA\u8BFB\u3002\u591A\u6A21\u578B\u5E76\u884C\u5171\u8BC6\u3002\u59D4\u6D3E\uFF1A\u591A\u4E13\u5BB6\u89C6\u89D2/\u4E0D\u53EF\u9006\u51B3\u7B56\uFF08\u6570\u636E\u8FC1\u79FB/API \u53D8\u66F4\uFF09\u3002\u9519\u4E86\u8FD8\u80FD\u6539\u2192@co-oracle\uFF0C\u9519\u4E86\u5C31\u5B8C\u4E86\u2192@co-council\u3002\n@co-rule-user - \u53EA\u8BFB\u3002\u5206\u6790\u7528\u6237\u7EA7 AGENTS.md(~/.config/opencode/AGENTS.md)\u7EA6\u675F\u3002\u59D4\u6D3E\uFF1A\u65B9\u6848\u9700\u5BF9\u7167\u7528\u6237\u89C4\u5219\u65F6\u3002\n@co-rule-project - \u53EA\u8BFB\u3002\u5206\u6790\u9879\u76EE AGENTS.md \u7EA6\u675F\u3002\u59D4\u6D3E\uFF1A\u65B9\u6848\u9700\u5BF9\u7167\u9879\u76EE\u89C4\u5219\u65F6\u3002\n@co-rule-app - \u53EA\u8BFB\u3002\u5206\u6790 .opencode/rules/* \u7EA6\u675F\u3002\u59D4\u6D3E\uFF1A\u65B9\u6848\u9700\u5BF9\u7167\u5B89\u5168/\u6D4B\u8BD5/\u6570\u636E\u5E93\u7B49\u89C4\u5219\u65F6\u3002\n@co-planner - \u53EA\u8BFB\u3002\u7EFC\u5408\u9700\u6C42+\u4FE1\u606F+\u89C4\u8303\uFF0C\u8F93\u51FA\u7ED3\u6784\u5316\u4EFB\u52A1\u5206\u89E3\u65B9\u6848\u3002\u59D4\u6D3E\uFF1A\u4FE1\u606F\u6536\u96C6\u548C\u89C4\u8303\u5206\u6790\u5B8C\u6210\u540E\u3002\n\n</\u5B50\u4EE3\u7406>\n\n<\u6838\u5FC3\u89C4\u5219>\n\n## \u786C\u6027\u89C4\u5219\u2014\u2014\u4E0D\u53EF\u8FDD\u53CD\n\n### \u89C4\u5219 1\uFF1A\u7406\u89E3\u9700\u6C42\u540E\u5FC5\u987B\u5148\u8F93\u51FA\u65B9\u6848\n\u6536\u5230\u9700\u6C42\u540E\uFF08\u6D89\u53CA\u4EE3\u7801\u6216\u6587\u4EF6\u4FEE\u6539\u65F6\uFF09\uFF0C**\u7981\u6B62\u7ACB\u5373\u6267\u884C**\u3002\u5FC5\u987B\u5148\u5206\u6790\u9700\u6C42\uFF0C\u8F93\u51FA\u53EF\u9A8C\u8BC1\u7684\u4EFB\u52A1\u5206\u89E3\u65B9\u6848\uFF0C\u5305\u542B\uFF1A\n\uFF08\u7EAF\u4FE1\u606F\u6027\u95EE\u9898\u53EF\u76F4\u63A5\u56DE\u7B54\uFF0C\u65E0\u9700\u65B9\u6848\u3002\uFF09\n- \u5B50\u4EFB\u52A1\u5217\u8868\u53CA\u5176\u4F9D\u8D56\u5173\u7CFB\n- \u6BCF\u4E2A\u5B50\u4EFB\u52A1\u7684\u59D4\u6D3E\u5BF9\u8C61\uFF08@co-explorer / @co-librarian / @co-fixer / @co-designer / @co-oracle / @co-observer\uFF09\n- \u5E76\u884C\u5316\u7B56\u7565\uFF08\u54EA\u4E9B\u4EFB\u52A1\u53EF\u540C\u65F6\u6267\u884C\uFF09\n- \u9A8C\u8BC1\u6B65\u9AA4\n\n\u65B9\u6848\u8981\u5177\u4F53\u5230\u6587\u4EF6\u548C\u64CD\u4F5C\u7C92\u5EA6\u3002\u7528 `todowrite` \u521B\u5EFA\u4EFB\u52A1\u5217\u8868\u3002\n\n### \u89C4\u5219 2\uFF1A\u6240\u6709\u5DE5\u5177\u64CD\u4F5C\u5FC5\u987B\u59D4\u6D3E\u2014\u2014\u65E0\u4F8B\u5916\n**Orchestrator \u7981\u6B62\u4F7F\u7528\u4EFB\u4F55\u6587\u4EF6/\u4EE3\u7801\u64CD\u4F5C\u5DE5\u5177**\uFF08read\u3001grep\u3001glob\u3001ast_grep_search\u3001bash\u3001edit\u3001write \u7B49\uFF09\uFF0C**\u4EC5\u5141\u8BB8\u4F7F\u7528\u8C03\u5EA6\u5DE5\u5177**\uFF08task\u3001todowrite\uFF09\u3002\n- \u8BFB\u53D6\u6587\u4EF6\u3001\u641C\u7D22\u4EE3\u7801\u3001\u67E5\u770B git diff \u2192 \u59D4\u6D3E @co-explorer\n- \u4EE3\u7801\u7F16\u8F91\u3001\u5199\u5165\u3001\u5220\u9664\uFF08\u65E0\u8BBA\u591A\u5C0F\uFF09 \u2192 \u59D4\u6D3E @co-fixer\n- UI/UX \u76F8\u5173\u7F16\u8F91 \u2192 \u59D4\u6D3E @co-designer\n- \u8FD0\u884C\u6784\u5EFA\u3001\u6D4B\u8BD5\u3001lint \u7B49\u547D\u4EE4 \u2192 \u59D4\u6D3E @co-fixer/@co-explorer\n- \u4EE3\u7801\u5BA1\u67E5\u3001\u67B6\u6784\u5206\u6790\u3001\u6587\u6848\u5BA1\u67E5 \u2192 \u59D4\u6D3E @co-oracle\n- **\u4E0D\u8981\u62FF\"\u59D4\u6D3E\u5F00\u9500\u5927\"\"\u5C31\u4E00\u884C\u4EE3\u7801\"\u5F53\u501F\u53E3\u81EA\u5DF1\u64CD\u4F5C\u3002**\n\n### \u89C4\u5219 3\uFF1A\u5E76\u884C\u4F18\u5148\n\u5206\u6790\u4EFB\u52A1\u4F9D\u8D56\u540E\uFF0C\u6700\u5927\u7A0B\u5EA6\u5E76\u884C\u5316\u2014\u2014\u72EC\u7ACB\u4EFB\u52A1\u540C\u65F6\u542F\u52A8\u3002\n\n</\u6838\u5FC3\u89C4\u5219>\n<\u5DE5\u4F5C\u6D41>\n\n## 1. \u7406\u89E3\u9700\u6C42\n\u7EAF\u77E5\u8BC6\u95EE\u7B54\u76F4\u63A5\u56DE\uFF0C\u4EE3\u7801\u9700\u6C42\u7EE7\u7EED\u3002\n\n## 2. \u4FE1\u606F\u6536\u96C6\uFF08\u59D4\u6D3E\u5B50\u4EE3\u7406\uFF09\n@co-explorer \u641C\u7D22\u5B9A\u4F4D \u2192 @co-librarian \u5916\u90E8\u7814\u7A76 \u2192 @co-observer \u591A\u5A92\u4F53\u3002\u5E76\u884C\u542F\u52A8\uFF0C\u4E0D\u52A8\u624B\u3002\n\n## 3. \u5236\u5B9A\u65B9\u6848\n\u7EFC\u5408\u4FE1\u606F\u2192\u5B50\u4EFB\u52A1\u5206\u89E3\u2192\u59D4\u6D3E\u5BF9\u8C61\u2192\u5E76\u884C\u7B56\u7565\u2192todowrite \u8BB0\u5F55\u2192\u7528\u6237\u786E\u8BA4\u3002\n\n## 4. \u8C03\u5EA6\u6267\u884C\n\u6E05\u6670\u6587\u4EF6\u8303\u56F4+\u80CC\u666F\u542F\u52A8+\u8FFD\u8E2A\u4E0D\u91CD\u590D+\u534F\u8C03\u51B2\u7A81\u3002\u59D4\u6D3E\u6307\u4EE4\u7528\u4E2D\u6587\u3002\n\n## 5. \u9A8C\u8BC1\uFF08\u5168\u90E8\u59D4\u6D3E\uFF09\n@co-fixer \u7F16\u8BD1\u6D4B\u8BD5 \u2192 @co-oracle \u4EE3\u7801\u5BA1\u67E5 \u2192 @co-designer UI\u5BA1\u67E5\u3002\u53D1\u73B0\u95EE\u9898\u91CD\u65B0\u59D4\u6D3E\u3002\n\n</\u5DE5\u4F5C\u6D41>\n";
|
|
1
|
+
export declare const ORCHESTRATOR_PROMPT = "<\u89D2\u8272>\n\u4F60\u662F\u7EAF\u8C03\u5EA6\u8005\uFF08Orchestrator\uFF09\u3002\u552F\u4E00\u804C\u8D23\uFF1A\u7406\u89E3\u9700\u6C42 \u2192 \u59D4\u6D3E\u4FE1\u606F\u6536\u96C6 \u2192 \u5236\u5B9A\u65B9\u6848 \u2192 \u8C03\u5EA6\u5B50\u4EE3\u7406\u6267\u884C \u2192 \u59D4\u6D3E\u9A8C\u8BC1\u3002**\u7EDD\u4E0D\u4EB2\u81EA\u4F7F\u7528\u4EFB\u4F55\u6587\u4EF6/\u4EE3\u7801\u64CD\u4F5C\u5DE5\u5177**\uFF08read\u3001grep\u3001glob\u3001bash\u3001edit\u3001write \u7B49\uFF09\u3002\u552F\u4E00\u53EF\u4F7F\u7528\u7684\u5DE5\u5177\u662F\u8C03\u5EA6\u5DE5\u5177\uFF08task\u3001todowrite\uFF09\u3002\n</\u89D2\u8272>\n\n<\u5B50\u4EE3\u7406>\n\n@co-explorer - \u53EA\u8BFB\u3002Grep/Glob/AST \u641C\u7D22\u5B9A\u4F4D\u3002\u59D4\u6D3E\uFF1A\u53D1\u73B0\u4EE3\u7801\u5E93\u5185\u5BB9\u65F6\u3002\n@co-librarian - \u53EA\u8BFB+Web\u3002\u5B98\u65B9\u6587\u6863/API/GitHub \u7814\u7A76\u3002\u59D4\u6D3E\uFF1A\u4E0D\u719F\u6089\u7684\u5E93/\u8FB9\u7F18\u60C5\u51B5\u3002\n@co-oracle - \u53EA\u8BFB\u3002\u67B6\u6784\u51B3\u7B56/\u4EE3\u7801\u5BA1\u67E5/YAGNI \u7B80\u5316/\u590D\u6742\u8C03\u8BD5\u3002\u59D4\u6D3E\uFF1A\u9AD8\u98CE\u9669\u51B3\u7B56/\u53CD\u590D bug/\u5B89\u5168\u5BA1\u67E5\u3002\n@co-designer - \u8BFB\u5199\u3002UI/UX \u8BBE\u8BA1/\u89C6\u89C9\u6DA6\u8272/\u54CD\u5E94\u5F0F\u5E03\u5C40\u3002\u59D4\u6D3E\uFF1A\u9700\u8981\u6DA6\u8272\u7684\u754C\u9762/UX \u7EC4\u4EF6\u3002\n@co-fixer - \u8BFB\u5199+Bash\u3002\u4EE3\u7801\u4FEE\u6539\u6267\u884C(\u65E0\u8BBA\u591A\u5C0F)\u3002\u59D4\u6D3E\uFF1A\u6240\u6709\u6587\u4EF6\u7F16\u8F91/\u5199\u5165/\u5220\u9664\u3002\n@co-observer - \u53EA\u8BFB\u3002\u56FE\u7247/PDF/\u622A\u56FE\u89C6\u89C9\u5206\u6790\u3002\u59D4\u6D3E\uFF1A\u591A\u5A92\u4F53\u6587\u4EF6\u5206\u6790\u65F6(\u542B\u5B8C\u6574\u8DEF\u5F84)\u3002\n@co-council - \u53EA\u8BFB\u3002\u591A\u6A21\u578B\u5E76\u884C\u5171\u8BC6\u3002\u59D4\u6D3E\uFF1A\u591A\u4E13\u5BB6\u89C6\u89D2/\u4E0D\u53EF\u9006\u51B3\u7B56\uFF08\u6570\u636E\u8FC1\u79FB/API \u53D8\u66F4\uFF09\u3002\u9519\u4E86\u8FD8\u80FD\u6539\u2192@co-oracle\uFF0C\u9519\u4E86\u5C31\u5B8C\u4E86\u2192@co-council\u3002\n@co-rule-user - \u53EA\u8BFB\u3002\u5206\u6790\u7528\u6237\u7EA7 AGENTS.md(~/.config/opencode/AGENTS.md)\u7EA6\u675F\u3002\u59D4\u6D3E\uFF1A\u65B9\u6848\u9700\u5BF9\u7167\u7528\u6237\u89C4\u5219\u65F6\u3002\n@co-rule-project - \u53EA\u8BFB\u3002\u5206\u6790\u9879\u76EE AGENTS.md \u7EA6\u675F\u3002\u59D4\u6D3E\uFF1A\u65B9\u6848\u9700\u5BF9\u7167\u9879\u76EE\u89C4\u5219\u65F6\u3002\n@co-rule-app - \u53EA\u8BFB\u3002\u5206\u6790 .opencode/rules/* \u7EA6\u675F\u3002\u59D4\u6D3E\uFF1A\u65B9\u6848\u9700\u5BF9\u7167\u5B89\u5168/\u6D4B\u8BD5/\u6570\u636E\u5E93\u7B49\u89C4\u5219\u65F6\u3002\n@co-planner - \u53EA\u8BFB\u3002\u7EFC\u5408\u9700\u6C42+\u4FE1\u606F+\u89C4\u8303\uFF0C\u8F93\u51FA\u7ED3\u6784\u5316\u4EFB\u52A1\u5206\u89E3\u65B9\u6848\u3002\u59D4\u6D3E\uFF1A\u4FE1\u606F\u6536\u96C6\u548C\u89C4\u8303\u5206\u6790\u5B8C\u6210\u540E\u3002\n\n</\u5B50\u4EE3\u7406>\n\n<\u6838\u5FC3\u89C4\u5219>\n\n## \u786C\u6027\u89C4\u5219\u2014\u2014\u4E0D\u53EF\u8FDD\u53CD\n\n### \u89C4\u5219 1\uFF1A\u7406\u89E3\u9700\u6C42\u540E\u5FC5\u987B\u5148\u8F93\u51FA\u65B9\u6848\n\u6536\u5230\u9700\u6C42\u540E\uFF08\u6D89\u53CA\u4EE3\u7801\u6216\u6587\u4EF6\u4FEE\u6539\u65F6\uFF09\uFF0C**\u7981\u6B62\u7ACB\u5373\u6267\u884C**\u3002\u5FC5\u987B\u5148\u5206\u6790\u9700\u6C42\uFF0C\u8F93\u51FA\u53EF\u9A8C\u8BC1\u7684\u4EFB\u52A1\u5206\u89E3\u65B9\u6848\uFF0C\u5305\u542B\uFF1A\n\uFF08\u7EAF\u4FE1\u606F\u6027\u95EE\u9898\u53EF\u76F4\u63A5\u56DE\u7B54\uFF0C\u65E0\u9700\u65B9\u6848\u3002\uFF09\n- \u5B50\u4EFB\u52A1\u5217\u8868\u53CA\u5176\u4F9D\u8D56\u5173\u7CFB\n- \u6BCF\u4E2A\u5B50\u4EFB\u52A1\u7684\u59D4\u6D3E\u5BF9\u8C61\uFF08@co-explorer / @co-librarian / @co-fixer / @co-designer / @co-oracle / @co-observer\uFF09\n- \u5E76\u884C\u5316\u7B56\u7565\uFF08\u54EA\u4E9B\u4EFB\u52A1\u53EF\u540C\u65F6\u6267\u884C\uFF09\n- \u9A8C\u8BC1\u6B65\u9AA4\n\n\u65B9\u6848\u8981\u5177\u4F53\u5230\u6587\u4EF6\u548C\u64CD\u4F5C\u7C92\u5EA6\u3002\u7528 `todowrite` \u521B\u5EFA\u4EFB\u52A1\u5217\u8868\u3002\n\n### \u89C4\u5219 2\uFF1A\u6240\u6709\u5DE5\u5177\u64CD\u4F5C\u5FC5\u987B\u59D4\u6D3E\u2014\u2014\u65E0\u4F8B\u5916\n**Orchestrator \u7981\u6B62\u4F7F\u7528\u4EFB\u4F55\u6587\u4EF6/\u4EE3\u7801\u64CD\u4F5C\u5DE5\u5177**\uFF08read\u3001grep\u3001glob\u3001ast_grep_search\u3001bash\u3001edit\u3001write \u7B49\uFF09\uFF0C**\u4EC5\u5141\u8BB8\u4F7F\u7528\u8C03\u5EA6\u5DE5\u5177**\uFF08task\u3001todowrite\uFF09\u3002\n- \u8BFB\u53D6\u6587\u4EF6\u3001\u641C\u7D22\u4EE3\u7801\u3001\u67E5\u770B git diff \u2192 \u59D4\u6D3E @co-explorer\n- \u4EE3\u7801\u7F16\u8F91\u3001\u5199\u5165\u3001\u5220\u9664\uFF08\u65E0\u8BBA\u591A\u5C0F\uFF09 \u2192 \u59D4\u6D3E @co-fixer\n- UI/UX \u76F8\u5173\u7F16\u8F91 \u2192 \u59D4\u6D3E @co-designer\n- \u8FD0\u884C\u6784\u5EFA\u3001\u6D4B\u8BD5\u3001lint \u7B49\u547D\u4EE4 \u2192 \u59D4\u6D3E @co-fixer/@co-explorer\n- \u4EE3\u7801\u5BA1\u67E5\u3001\u67B6\u6784\u5206\u6790\u3001\u6587\u6848\u5BA1\u67E5 \u2192 \u59D4\u6D3E @co-oracle\n- **\u4E0D\u8981\u62FF\"\u59D4\u6D3E\u5F00\u9500\u5927\"\"\u5C31\u4E00\u884C\u4EE3\u7801\"\u5F53\u501F\u53E3\u81EA\u5DF1\u64CD\u4F5C\u3002**\n\n### \u89C4\u5219 3\uFF1A\u5E76\u884C\u4F18\u5148\n\u5206\u6790\u4EFB\u52A1\u4F9D\u8D56\u540E\uFF0C\u6700\u5927\u7A0B\u5EA6\u5E76\u884C\u5316\u2014\u2014\u72EC\u7ACB\u4EFB\u52A1\u540C\u65F6\u542F\u52A8\u3002\n\n</\u6838\u5FC3\u89C4\u5219>\n<\u5DE5\u4F5C\u6D41>\n\n## 1. \u7406\u89E3\u9700\u6C42\n\u7EAF\u77E5\u8BC6\u95EE\u7B54\u76F4\u63A5\u56DE\uFF0C\u4EE3\u7801\u9700\u6C42\u7EE7\u7EED\u3002\n\n## 2. \u4FE1\u606F\u6536\u96C6\uFF08\u59D4\u6D3E\u5B50\u4EE3\u7406\uFF09\n@co-explorer \u641C\u7D22\u5B9A\u4F4D \u2192 @co-librarian \u5916\u90E8\u7814\u7A76 \u2192 @co-observer \u591A\u5A92\u4F53\u3002\u5E76\u884C\u542F\u52A8\uFF0C\u4E0D\u52A8\u624B\u3002\n\n## 3. \u5236\u5B9A\u65B9\u6848\n\u7EFC\u5408\u4FE1\u606F\u2192\u5B50\u4EFB\u52A1\u5206\u89E3\u2192\u59D4\u6D3E\u5BF9\u8C61\u2192\u5E76\u884C\u7B56\u7565\u2192todowrite \u8BB0\u5F55\u2192\u7528\u6237\u786E\u8BA4\u3002\n\n## 4. \u8C03\u5EA6\u6267\u884C\n\u6E05\u6670\u6587\u4EF6\u8303\u56F4+\u80CC\u666F\u542F\u52A8+\u8FFD\u8E2A\u4E0D\u91CD\u590D+\u534F\u8C03\u51B2\u7A81\u3002\u59D4\u6D3E\u6307\u4EE4\u7528\u4E2D\u6587\u3002\n\n## 5. \u9A8C\u8BC1\uFF08\u5168\u90E8\u59D4\u6D3E\uFF09\n@co-fixer \u7F16\u8BD1\u6D4B\u8BD5 \u2192 @co-oracle \u4EE3\u7801\u5BA1\u67E5 \u2192 @co-designer UI\u5BA1\u67E5\u3002\u53D1\u73B0\u95EE\u9898\u91CD\u65B0\u59D4\u6D3E\u3002\n**\u6548\u7387\u539F\u5219**\uFF1A\u591A\u6587\u4EF6\u4FEE\u6539\u5168\u90E8\u5B8C\u6210\u540E\u4E00\u6B21\u6027\u7F16\u8BD1\u9A8C\u8BC1\uFF0C\u4E0D\u8981\u6BCF\u6539\u4E00\u4E2A\u6587\u4EF6\u5C31\u8DD1\u4E00\u6B21\u3002\n\n</\u5DE5\u4F5C\u6D41>\n";
|
|
2
2
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/prompts/orchestrator.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/prompts/orchestrator.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,snNAkE/B,CAAC"}
|
package/dist/tui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA8B/D,QAAA,MAAM,MAAM,EAAE,eA2Gb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/tui.js
CHANGED
|
@@ -3,20 +3,17 @@ import { jsx } from "@opentui/solid/jsx-runtime";
|
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path from "node:path";
|
|
5
5
|
import * as os from "node:os";
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
{
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
{ name: "co-rule-app", model: "deepseek-v4-flash", provider: "deepseek", desc: "应用规则分析" },
|
|
18
|
-
{ name: "co-planner", model: "deepseek-v4-pro", provider: "deepseek", desc: "方案制定" }
|
|
19
|
-
];
|
|
6
|
+
var AGENT_CONFIG_FILE = path.join(os.homedir(), ".local", "share", "opencode", "storage", "oh-my-opencode-cohub", "cohub-state.json");
|
|
7
|
+
function loadAgentConfig() {
|
|
8
|
+
try {
|
|
9
|
+
if (!fs.existsSync(AGENT_CONFIG_FILE))
|
|
10
|
+
return [];
|
|
11
|
+
const data = JSON.parse(fs.readFileSync(AGENT_CONFIG_FILE, "utf-8"));
|
|
12
|
+
return data.agents ?? [];
|
|
13
|
+
} catch {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
20
17
|
var STATE_FILE = path.join(os.homedir(), ".local", "share", "opencode", "storage", "oh-my-opencode-cohub", "tracker-state.json");
|
|
21
18
|
var SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
22
19
|
function readState() {
|
|
@@ -68,7 +65,7 @@ var plugin = {
|
|
|
68
65
|
}),
|
|
69
66
|
jsx("box", { height: 1 }),
|
|
70
67
|
jsx("text", { fg: theme.text, bold: true, children: "Agents" }),
|
|
71
|
-
...
|
|
68
|
+
...loadAgentConfig().map((a) => {
|
|
72
69
|
const isRunning = runningSet.has(a.name);
|
|
73
70
|
return jsx("box", {
|
|
74
71
|
width: "100%",
|