openmatrix 0.1.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.
Files changed (85) hide show
  1. package/README.md +512 -0
  2. package/dist/agents/agent-runner.d.ts +152 -0
  3. package/dist/agents/agent-runner.js +656 -0
  4. package/dist/agents/base-agent.d.ts +46 -0
  5. package/dist/agents/base-agent.js +17 -0
  6. package/dist/agents/impl/coder-agent.d.ts +17 -0
  7. package/dist/agents/impl/coder-agent.js +96 -0
  8. package/dist/agents/impl/executor-agent.d.ts +32 -0
  9. package/dist/agents/impl/executor-agent.js +168 -0
  10. package/dist/agents/impl/index.d.ts +6 -0
  11. package/dist/agents/impl/index.js +17 -0
  12. package/dist/agents/impl/planner-agent.d.ts +24 -0
  13. package/dist/agents/impl/planner-agent.js +126 -0
  14. package/dist/agents/impl/researcher-agent.d.ts +17 -0
  15. package/dist/agents/impl/researcher-agent.js +133 -0
  16. package/dist/agents/impl/reviewer-agent.d.ts +17 -0
  17. package/dist/agents/impl/reviewer-agent.js +120 -0
  18. package/dist/agents/impl/tester-agent.d.ts +17 -0
  19. package/dist/agents/impl/tester-agent.js +110 -0
  20. package/dist/cli/commands/approve.d.ts +2 -0
  21. package/dist/cli/commands/approve.js +87 -0
  22. package/dist/cli/commands/meeting.d.ts +2 -0
  23. package/dist/cli/commands/meeting.js +245 -0
  24. package/dist/cli/commands/report.d.ts +2 -0
  25. package/dist/cli/commands/report.js +202 -0
  26. package/dist/cli/commands/resume.d.ts +2 -0
  27. package/dist/cli/commands/resume.js +104 -0
  28. package/dist/cli/commands/retry.d.ts +2 -0
  29. package/dist/cli/commands/retry.js +79 -0
  30. package/dist/cli/commands/start.d.ts +2 -0
  31. package/dist/cli/commands/start.js +252 -0
  32. package/dist/cli/commands/status.d.ts +2 -0
  33. package/dist/cli/commands/status.js +226 -0
  34. package/dist/cli/index.d.ts +2 -0
  35. package/dist/cli/index.js +26 -0
  36. package/dist/index.d.ts +2 -0
  37. package/dist/index.js +9 -0
  38. package/dist/orchestrator/ai-reviewer.d.ts +50 -0
  39. package/dist/orchestrator/ai-reviewer.js +326 -0
  40. package/dist/orchestrator/approval-manager.d.ts +62 -0
  41. package/dist/orchestrator/approval-manager.js +160 -0
  42. package/dist/orchestrator/executor.d.ts +114 -0
  43. package/dist/orchestrator/executor.js +325 -0
  44. package/dist/orchestrator/full-test-runner.d.ts +122 -0
  45. package/dist/orchestrator/full-test-runner.js +335 -0
  46. package/dist/orchestrator/git-commit-manager.d.ts +75 -0
  47. package/dist/orchestrator/git-commit-manager.js +248 -0
  48. package/dist/orchestrator/interactive-question-generator.d.ts +90 -0
  49. package/dist/orchestrator/interactive-question-generator.js +312 -0
  50. package/dist/orchestrator/meeting-manager.d.ts +85 -0
  51. package/dist/orchestrator/meeting-manager.js +222 -0
  52. package/dist/orchestrator/phase-executor.d.ts +198 -0
  53. package/dist/orchestrator/phase-executor.js +796 -0
  54. package/dist/orchestrator/question-generator.d.ts +22 -0
  55. package/dist/orchestrator/question-generator.js +102 -0
  56. package/dist/orchestrator/retry-manager.d.ts +41 -0
  57. package/dist/orchestrator/retry-manager.js +83 -0
  58. package/dist/orchestrator/scheduler.d.ts +62 -0
  59. package/dist/orchestrator/scheduler.js +148 -0
  60. package/dist/orchestrator/state-machine.d.ts +53 -0
  61. package/dist/orchestrator/state-machine.js +124 -0
  62. package/dist/orchestrator/task-parser.d.ts +7 -0
  63. package/dist/orchestrator/task-parser.js +63 -0
  64. package/dist/orchestrator/task-planner.d.ts +71 -0
  65. package/dist/orchestrator/task-planner.js +316 -0
  66. package/dist/storage/file-store.d.ts +12 -0
  67. package/dist/storage/file-store.js +80 -0
  68. package/dist/storage/state-manager.d.ts +31 -0
  69. package/dist/storage/state-manager.js +202 -0
  70. package/dist/types/index.d.ts +193 -0
  71. package/dist/types/index.js +30 -0
  72. package/dist/utils/logger.d.ts +41 -0
  73. package/dist/utils/logger.js +166 -0
  74. package/dist/utils/progress-reporter.d.ts +116 -0
  75. package/dist/utils/progress-reporter.js +287 -0
  76. package/package.json +50 -0
  77. package/scripts/build-check.js +19 -0
  78. package/scripts/install-skills.js +51 -0
  79. package/skills/approve.md +253 -0
  80. package/skills/meeting.md +346 -0
  81. package/skills/report.md +100 -0
  82. package/skills/resume.md +68 -0
  83. package/skills/retry.md +61 -0
  84. package/skills/start.md +449 -0
  85. package/skills/status.md +46 -0
@@ -0,0 +1,17 @@
1
+ import type { Task, AgentType, AgentResult } from '../../types/index.js';
2
+ /**
3
+ * Coder Agent - 代码编写
4
+ *
5
+ * 职责:
6
+ * - 根据任务描述编写代码
7
+ * - 遵循项目代码规范
8
+ * - 编写必要的注释
9
+ * - 确保代码可编译
10
+ */
11
+ export declare class CoderAgent {
12
+ readonly type: AgentType;
13
+ readonly capabilities: string[];
14
+ execute(task: Task): Promise<AgentResult>;
15
+ private buildCoderPrompt;
16
+ private generateRunId;
17
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoderAgent = void 0;
4
+ /**
5
+ * Coder Agent - 代码编写
6
+ *
7
+ * 职责:
8
+ * - 根据任务描述编写代码
9
+ * - 遵循项目代码规范
10
+ * - 编写必要的注释
11
+ * - 确保代码可编译
12
+ */
13
+ class CoderAgent {
14
+ type = 'coder';
15
+ capabilities = ['code', 'refactor', 'debug', 'implement'];
16
+ async execute(task) {
17
+ const startTime = Date.now();
18
+ try {
19
+ const prompt = this.buildCoderPrompt(task);
20
+ return {
21
+ runId: this.generateRunId(),
22
+ taskId: task.id,
23
+ agentType: 'coder',
24
+ status: 'completed',
25
+ output: prompt,
26
+ artifacts: [],
27
+ needsApproval: false,
28
+ duration: Date.now() - startTime,
29
+ completedAt: new Date().toISOString()
30
+ };
31
+ }
32
+ catch (error) {
33
+ return {
34
+ runId: this.generateRunId(),
35
+ taskId: task.id,
36
+ agentType: 'coder',
37
+ status: 'failed',
38
+ output: '',
39
+ artifacts: [],
40
+ needsApproval: false,
41
+ error: error instanceof Error ? error.message : String(error),
42
+ duration: Date.now() - startTime,
43
+ completedAt: new Date().toISOString()
44
+ };
45
+ }
46
+ }
47
+ buildCoderPrompt(task) {
48
+ return `
49
+ # 编码任务
50
+
51
+ ## 任务描述
52
+
53
+ ${task.description}
54
+
55
+ ## 编码要求
56
+
57
+ 1. **代码风格**
58
+ - 遵循项目现有代码风格
59
+ - 使用项目配置的 linter
60
+ - 添加必要的类型定义
61
+
62
+ 2. **最佳实践**
63
+ - 单一职责原则
64
+ - 避免重复代码
65
+ - 合理的错误处理
66
+ - 适当的注释
67
+
68
+ 3. **安全性**
69
+ - 验证输入参数
70
+ - 避免注入攻击
71
+ - 保护敏感数据
72
+
73
+ 4. **可测试性**
74
+ - 依赖注入
75
+ - 纯函数优先
76
+ - 可 mock 的接口
77
+
78
+ ## 输出要求
79
+
80
+ 请实现代码,确保:
81
+
82
+ - [ ] 代码可编译
83
+ - [ ] 遵循项目规范
84
+ - [ ] 添加必要的测试
85
+ - [ ] 更新相关文档
86
+
87
+ ## 开始实现
88
+
89
+ 请阅读相关代码文件,然后实现功能。
90
+ `;
91
+ }
92
+ generateRunId() {
93
+ return `coder-${Date.now().toString(36)}`;
94
+ }
95
+ }
96
+ exports.CoderAgent = CoderAgent;
@@ -0,0 +1,32 @@
1
+ import type { Task, AgentType, AgentResult } from '../../types/index.js';
2
+ /**
3
+ * Executor Agent - 命令执行
4
+ *
5
+ * 职责:
6
+ * - 执行构建命令
7
+ * - 运行测试
8
+ * - 部署应用
9
+ * - 清理环境
10
+ *
11
+ * 安全约束:
12
+ * - 不执行危险命令
13
+ * - 不暴露敏感信息
14
+ * - 验证命令参数
15
+ * - 记录执行日志
16
+ */
17
+ export declare class ExecutorAgent {
18
+ readonly type: AgentType;
19
+ readonly capabilities: string[];
20
+ private readonly FORBIDDEN_PATTERNS;
21
+ execute(task: Task): Promise<AgentResult>;
22
+ /**
23
+ * 验证任务安全性
24
+ */
25
+ private validateTask;
26
+ /**
27
+ * 判断是否需要审批
28
+ */
29
+ private needsApproval;
30
+ private buildExecutorPrompt;
31
+ private generateRunId;
32
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecutorAgent = void 0;
4
+ /**
5
+ * Executor Agent - 命令执行
6
+ *
7
+ * 职责:
8
+ * - 执行构建命令
9
+ * - 运行测试
10
+ * - 部署应用
11
+ * - 清理环境
12
+ *
13
+ * 安全约束:
14
+ * - 不执行危险命令
15
+ * - 不暴露敏感信息
16
+ * - 验证命令参数
17
+ * - 记录执行日志
18
+ */
19
+ class ExecutorAgent {
20
+ type = 'executor';
21
+ capabilities = ['build', 'test', 'deploy', 'clean', 'run'];
22
+ // 禁止执行的命令模式
23
+ FORBIDDEN_PATTERNS = [
24
+ /rm\s+-rf\s+\//, // rm -rf /
25
+ /rm\s+-rf\s+~/, // rm -rf ~
26
+ /:\(\)\{.*;\};/, // Fork bomb
27
+ />\s*\/dev\/sd/, // 写入磁盘
28
+ /dd\s+if=.*of=\/dev/, // dd 写入设备
29
+ /mkfs/, // 格式化
30
+ /shutdown/, // 关机
31
+ /reboot/, // 重启
32
+ /init\s+0/, // 关机
33
+ ];
34
+ async execute(task) {
35
+ const startTime = Date.now();
36
+ try {
37
+ // 安全检查
38
+ this.validateTask(task);
39
+ const prompt = this.buildExecutorPrompt(task);
40
+ return {
41
+ runId: this.generateRunId(),
42
+ taskId: task.id,
43
+ agentType: 'executor',
44
+ status: 'completed',
45
+ output: prompt,
46
+ artifacts: [],
47
+ needsApproval: this.needsApproval(task),
48
+ duration: Date.now() - startTime,
49
+ completedAt: new Date().toISOString()
50
+ };
51
+ }
52
+ catch (error) {
53
+ return {
54
+ runId: this.generateRunId(),
55
+ taskId: task.id,
56
+ agentType: 'executor',
57
+ status: 'failed',
58
+ output: '',
59
+ artifacts: [],
60
+ needsApproval: false,
61
+ error: error instanceof Error ? error.message : String(error),
62
+ duration: Date.now() - startTime,
63
+ completedAt: new Date().toISOString()
64
+ };
65
+ }
66
+ }
67
+ /**
68
+ * 验证任务安全性
69
+ */
70
+ validateTask(task) {
71
+ const content = task.description.toLowerCase();
72
+ for (const pattern of this.FORBIDDEN_PATTERNS) {
73
+ if (pattern.test(content)) {
74
+ throw new Error(`安全限制: 检测到禁止执行的命令模式`);
75
+ }
76
+ }
77
+ }
78
+ /**
79
+ * 判断是否需要审批
80
+ */
81
+ needsApproval(task) {
82
+ const approvalKeywords = ['deploy', 'publish', 'release', 'production'];
83
+ const content = task.description.toLowerCase();
84
+ return approvalKeywords.some(kw => content.includes(kw));
85
+ }
86
+ buildExecutorPrompt(task) {
87
+ return `
88
+ # 执行任务
89
+
90
+ ## 执行内容
91
+
92
+ ${task.description}
93
+
94
+ ## 安全约束
95
+
96
+ ⚠️ **重要安全规则**
97
+
98
+ 1. **禁止执行**
99
+ - 删除系统文件的命令
100
+ - 格式化磁盘的命令
101
+ - 关机/重启命令
102
+ - 任意代码注入
103
+
104
+ 2. **执行前确认**
105
+ - 检查命令参数
106
+ - 确认目标路径
107
+ - 备份重要数据
108
+
109
+ 3. **执行后验证**
110
+ - 检查执行结果
111
+ - 验证预期效果
112
+ - 记录执行日志
113
+
114
+ ## 执行步骤
115
+
116
+ 1. **环境检查**
117
+ \`\`\`bash
118
+ # 检查当前环境
119
+ pwd
120
+ node --version
121
+ npm --version
122
+ \`\`\`
123
+
124
+ 2. **执行命令**
125
+ \`\`\`bash
126
+ # 在此执行任务中的命令
127
+ \`\`\`
128
+
129
+ 3. **验证结果**
130
+ \`\`\`bash
131
+ # 检查执行结果
132
+ \`\`\`
133
+
134
+ ## 输出格式
135
+
136
+ \`\`\`markdown
137
+ # 执行报告
138
+
139
+ ## 命令
140
+ \`\`\`bash
141
+ [执行的命令]
142
+ \`\`\`
143
+
144
+ ## 输出
145
+ \`\`\`
146
+ [命令输出]
147
+ \`\`\`
148
+
149
+ ## 状态
150
+ [✅ 成功 / ❌ 失败]
151
+
152
+ ## 耗时
153
+ X 秒
154
+
155
+ ## 错误 (如有)
156
+ [错误信息]
157
+ \`\`\`
158
+
159
+ ## 开始执行
160
+
161
+ 请按步骤执行命令并记录结果。
162
+ `;
163
+ }
164
+ generateRunId() {
165
+ return `executor-${Date.now().toString(36)}`;
166
+ }
167
+ }
168
+ exports.ExecutorAgent = ExecutorAgent;
@@ -0,0 +1,6 @@
1
+ export { PlannerAgent } from './planner-agent.js';
2
+ export { CoderAgent } from './coder-agent.js';
3
+ export { TesterAgent } from './tester-agent.js';
4
+ export { ReviewerAgent } from './reviewer-agent.js';
5
+ export { ResearcherAgent } from './researcher-agent.js';
6
+ export { ExecutorAgent } from './executor-agent.js';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // src/agents/impl/index.ts
3
+ // 导出所有 Agent 实现
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ExecutorAgent = exports.ResearcherAgent = exports.ReviewerAgent = exports.TesterAgent = exports.CoderAgent = exports.PlannerAgent = void 0;
6
+ var planner_agent_js_1 = require("./planner-agent.js");
7
+ Object.defineProperty(exports, "PlannerAgent", { enumerable: true, get: function () { return planner_agent_js_1.PlannerAgent; } });
8
+ var coder_agent_js_1 = require("./coder-agent.js");
9
+ Object.defineProperty(exports, "CoderAgent", { enumerable: true, get: function () { return coder_agent_js_1.CoderAgent; } });
10
+ var tester_agent_js_1 = require("./tester-agent.js");
11
+ Object.defineProperty(exports, "TesterAgent", { enumerable: true, get: function () { return tester_agent_js_1.TesterAgent; } });
12
+ var reviewer_agent_js_1 = require("./reviewer-agent.js");
13
+ Object.defineProperty(exports, "ReviewerAgent", { enumerable: true, get: function () { return reviewer_agent_js_1.ReviewerAgent; } });
14
+ var researcher_agent_js_1 = require("./researcher-agent.js");
15
+ Object.defineProperty(exports, "ResearcherAgent", { enumerable: true, get: function () { return researcher_agent_js_1.ResearcherAgent; } });
16
+ var executor_agent_js_1 = require("./executor-agent.js");
17
+ Object.defineProperty(exports, "ExecutorAgent", { enumerable: true, get: function () { return executor_agent_js_1.ExecutorAgent; } });
@@ -0,0 +1,24 @@
1
+ import type { Task, AgentType, AgentResult } from '../../types/index.js';
2
+ /**
3
+ * Planner Agent - 任务规划
4
+ *
5
+ * 职责:
6
+ * - 分析任务需求
7
+ * - 拆解为子任务
8
+ * - 识别依赖关系
9
+ * - 制定执行计划
10
+ * - 评估风险和资源
11
+ */
12
+ export declare class PlannerAgent {
13
+ readonly type: AgentType;
14
+ readonly capabilities: string[];
15
+ /**
16
+ * 执行规划任务
17
+ */
18
+ execute(task: Task): Promise<AgentResult>;
19
+ /**
20
+ * 构建规划提示词
21
+ */
22
+ private buildPlanPrompt;
23
+ private generateRunId;
24
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlannerAgent = void 0;
4
+ /**
5
+ * Planner Agent - 任务规划
6
+ *
7
+ * 职责:
8
+ * - 分析任务需求
9
+ * - 拆解为子任务
10
+ * - 识别依赖关系
11
+ * - 制定执行计划
12
+ * - 评估风险和资源
13
+ */
14
+ class PlannerAgent {
15
+ type = 'planner';
16
+ capabilities = ['plan', 'decompose', 'analyze', 'estimate'];
17
+ /**
18
+ * 执行规划任务
19
+ */
20
+ async execute(task) {
21
+ const startTime = Date.now();
22
+ try {
23
+ // 构建规划提示词
24
+ const prompt = this.buildPlanPrompt(task);
25
+ // 返回结果(实际执行由 Subagent 完成)
26
+ return {
27
+ runId: this.generateRunId(),
28
+ taskId: task.id,
29
+ agentType: 'planner',
30
+ status: 'completed',
31
+ output: prompt,
32
+ artifacts: [],
33
+ needsApproval: true, // 计划需要审批
34
+ duration: Date.now() - startTime,
35
+ completedAt: new Date().toISOString()
36
+ };
37
+ }
38
+ catch (error) {
39
+ return {
40
+ runId: this.generateRunId(),
41
+ taskId: task.id,
42
+ agentType: 'planner',
43
+ status: 'failed',
44
+ output: '',
45
+ artifacts: [],
46
+ needsApproval: false,
47
+ error: error instanceof Error ? error.message : String(error),
48
+ duration: Date.now() - startTime,
49
+ completedAt: new Date().toISOString()
50
+ };
51
+ }
52
+ }
53
+ /**
54
+ * 构建规划提示词
55
+ */
56
+ buildPlanPrompt(task) {
57
+ return `
58
+ # 任务规划
59
+
60
+ ## 原始需求
61
+
62
+ ${task.description}
63
+
64
+ ## 分析任务
65
+
66
+ 1. 理解核心目标
67
+ 2. 识别关键功能点
68
+ 3. 确定技术约束
69
+ 4. 评估复杂度
70
+
71
+ ## 输出计划
72
+
73
+ 请输出:
74
+
75
+ \`\`\`markdown
76
+ # 执行计划
77
+
78
+ ## 1. 任务概述
79
+ [简要描述任务目标]
80
+
81
+ ## 2. 子任务拆解
82
+
83
+ ### Phase 1: [阶段名]
84
+ - TASK-XXX-1: [任务描述]
85
+ - 预计时间: X min
86
+ - 依赖: 无
87
+
88
+ - TASK-XXX-2: [任务描述]
89
+ - 预计时间: X min
90
+ - 依赖: TASK-XXX-1
91
+
92
+ ### Phase 2: [阶段名]
93
+ ...
94
+
95
+ ## 3. 依赖关系图
96
+
97
+ \`\`\`
98
+ TASK-001 ──┬──> TASK-002 ──> TASK-004
99
+ └──> TASK-003 ────────┘
100
+ \`\`\`
101
+
102
+ ## 4. 风险评估
103
+
104
+ | 风险 | 影响 | 缓解措施 |
105
+ |-----|------|---------|
106
+ | ... | 高/中/低 | ... |
107
+
108
+ ## 5. 资源需求
109
+
110
+ - 开发时间: X 小时
111
+ - 测试时间: Y 小时
112
+ - 审查时间: Z 小时
113
+
114
+ ## 6. 审批点
115
+
116
+ - [ ] 计划审批
117
+ - [ ] 合并审批 (如需要)
118
+ - [ ] 部署审批 (如需要)
119
+ \`\`\`
120
+ `;
121
+ }
122
+ generateRunId() {
123
+ return `planner-${Date.now().toString(36)}`;
124
+ }
125
+ }
126
+ exports.PlannerAgent = PlannerAgent;
@@ -0,0 +1,17 @@
1
+ import type { Task, AgentType, AgentResult } from '../../types/index.js';
2
+ /**
3
+ * Researcher Agent - 调研分析
4
+ *
5
+ * 职责:
6
+ * - 搜索相关资料
7
+ * - 分析技术方案
8
+ * - 总结最佳实践
9
+ * - 提供决策建议
10
+ */
11
+ export declare class ResearcherAgent {
12
+ readonly type: AgentType;
13
+ readonly capabilities: string[];
14
+ execute(task: Task): Promise<AgentResult>;
15
+ private buildResearchPrompt;
16
+ private generateRunId;
17
+ }
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResearcherAgent = void 0;
4
+ /**
5
+ * Researcher Agent - 调研分析
6
+ *
7
+ * 职责:
8
+ * - 搜索相关资料
9
+ * - 分析技术方案
10
+ * - 总结最佳实践
11
+ * - 提供决策建议
12
+ */
13
+ class ResearcherAgent {
14
+ type = 'researcher';
15
+ capabilities = ['search', 'analyze', 'summarize', 'recommend'];
16
+ async execute(task) {
17
+ const startTime = Date.now();
18
+ try {
19
+ const prompt = this.buildResearchPrompt(task);
20
+ return {
21
+ runId: this.generateRunId(),
22
+ taskId: task.id,
23
+ agentType: 'researcher',
24
+ status: 'completed',
25
+ output: prompt,
26
+ artifacts: [],
27
+ needsApproval: false,
28
+ duration: Date.now() - startTime,
29
+ completedAt: new Date().toISOString()
30
+ };
31
+ }
32
+ catch (error) {
33
+ return {
34
+ runId: this.generateRunId(),
35
+ taskId: task.id,
36
+ agentType: 'researcher',
37
+ status: 'failed',
38
+ output: '',
39
+ artifacts: [],
40
+ needsApproval: false,
41
+ error: error instanceof Error ? error.message : String(error),
42
+ duration: Date.now() - startTime,
43
+ completedAt: new Date().toISOString()
44
+ };
45
+ }
46
+ }
47
+ buildResearchPrompt(task) {
48
+ return `
49
+ # 调研任务
50
+
51
+ ## 调研问题
52
+
53
+ ${task.description}
54
+
55
+ ## 调研步骤
56
+
57
+ 1. **搜索资料**
58
+ - 官方文档
59
+ - 技术博客
60
+ - GitHub 仓库
61
+ - Stack Overflow
62
+
63
+ 2. **分析方案**
64
+ - 功能对比
65
+ - 性能对比
66
+ - 社区支持
67
+ - 学习曲线
68
+
69
+ 3. **总结发现**
70
+ - 关键信息
71
+ - 优缺点
72
+ - 适用场景
73
+
74
+ ## 输出格式
75
+
76
+ \`\`\`markdown
77
+ # 调研报告
78
+
79
+ ## 问题
80
+ [调研的核心问题]
81
+
82
+ ## 调研方法
83
+ - 搜索关键词: ...
84
+ - 参考来源: ...
85
+
86
+ ## 发现
87
+
88
+ ### 方案 A: [名称]
89
+ - 描述: ...
90
+ - 优点:
91
+ - ...
92
+ - 缺点:
93
+ - ...
94
+ - 适用场景: ...
95
+
96
+ ### 方案 B: [名称]
97
+ - 描述: ...
98
+ - 优点:
99
+ - ...
100
+ - 缺点:
101
+ - ...
102
+ - 适用场景: ...
103
+
104
+ ## 方案对比
105
+
106
+ | 维度 | 方案 A | 方案 B |
107
+ |-----|--------|--------|
108
+ | 性能 | ⭐⭐⭐ | ⭐⭐ |
109
+ | 易用性 | ⭐⭐ | ⭐⭐⭐ |
110
+ | 社区 | ⭐⭐⭐ | ⭐ |
111
+
112
+ ## 建议
113
+
114
+ **推荐方案**: [方案 X]
115
+
116
+ **理由**:
117
+ 1. ...
118
+ 2. ...
119
+
120
+ ## 参考资料
121
+ 1. [标题](链接)
122
+ \`\`\`
123
+
124
+ ## 开始调研
125
+
126
+ 请使用 WebSearch 和 WebFetch 工具搜索相关信息。
127
+ `;
128
+ }
129
+ generateRunId() {
130
+ return `researcher-${Date.now().toString(36)}`;
131
+ }
132
+ }
133
+ exports.ResearcherAgent = ResearcherAgent;
@@ -0,0 +1,17 @@
1
+ import type { Task, AgentType, AgentResult } from '../../types/index.js';
2
+ /**
3
+ * Reviewer Agent - 代码审查
4
+ *
5
+ * 职责:
6
+ * - 代码质量审查
7
+ * - 安全性检查
8
+ * - 性能评估
9
+ * - 最佳实践建议
10
+ */
11
+ export declare class ReviewerAgent {
12
+ readonly type: AgentType;
13
+ readonly capabilities: string[];
14
+ execute(task: Task): Promise<AgentResult>;
15
+ private buildReviewerPrompt;
16
+ private generateRunId;
17
+ }