bobo-ai-cli 2.1.0 → 3.0.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 (115) hide show
  1. package/README.md +52 -9
  2. package/dist/agent.js +66 -45
  3. package/dist/agent.js.map +1 -1
  4. package/dist/agents/catalog.d.ts +40 -0
  5. package/dist/agents/catalog.js +172 -0
  6. package/dist/agents/catalog.js.map +1 -0
  7. package/dist/agents/index.d.ts +6 -0
  8. package/dist/agents/index.js +4 -0
  9. package/dist/agents/index.js.map +1 -0
  10. package/dist/agents/router.d.ts +43 -0
  11. package/dist/agents/router.js +87 -0
  12. package/dist/agents/router.js.map +1 -0
  13. package/dist/agents/spawn.d.ts +46 -0
  14. package/dist/agents/spawn.js +91 -0
  15. package/dist/agents/spawn.js.map +1 -0
  16. package/dist/autonomous.js +41 -1
  17. package/dist/autonomous.js.map +1 -1
  18. package/dist/cli.d.ts +8 -0
  19. package/dist/cli.js +667 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/compactor.d.ts +49 -4
  22. package/dist/compactor.js +164 -17
  23. package/dist/compactor.js.map +1 -1
  24. package/dist/completer.js +2 -0
  25. package/dist/completer.js.map +1 -1
  26. package/dist/cost-tracker.js +35 -2
  27. package/dist/cost-tracker.js.map +1 -1
  28. package/dist/dream.d.ts +42 -0
  29. package/dist/dream.js +321 -0
  30. package/dist/dream.js.map +1 -0
  31. package/dist/hooks.d.ts +1 -1
  32. package/dist/hooks.js +4 -0
  33. package/dist/hooks.js.map +1 -1
  34. package/dist/index.js +8 -1134
  35. package/dist/index.js.map +1 -1
  36. package/dist/insight.js +4 -11
  37. package/dist/insight.js.map +1 -1
  38. package/dist/knowledge.d.ts +13 -0
  39. package/dist/knowledge.js +13 -2
  40. package/dist/knowledge.js.map +1 -1
  41. package/dist/memory.d.ts +4 -0
  42. package/dist/memory.js +6 -0
  43. package/dist/memory.js.map +1 -1
  44. package/dist/repl.d.ts +16 -0
  45. package/dist/repl.js +702 -0
  46. package/dist/repl.js.map +1 -0
  47. package/dist/sessions.js +23 -0
  48. package/dist/sessions.js.map +1 -1
  49. package/dist/skills/composer.d.ts +18 -0
  50. package/dist/skills/composer.js +59 -0
  51. package/dist/skills/composer.js.map +1 -0
  52. package/dist/skills/index.d.ts +3 -0
  53. package/dist/skills/index.js +3 -0
  54. package/dist/skills/index.js.map +1 -0
  55. package/dist/skills/loader.d.ts +12 -0
  56. package/dist/skills/loader.js +150 -0
  57. package/dist/skills/loader.js.map +1 -0
  58. package/dist/skills/types.d.ts +28 -0
  59. package/dist/skills/types.js +9 -0
  60. package/dist/skills/types.js.map +1 -0
  61. package/dist/skills.d.ts +1 -0
  62. package/dist/skills.js +1 -0
  63. package/dist/skills.js.map +1 -1
  64. package/dist/state/artifacts.d.ts +71 -0
  65. package/dist/state/artifacts.js +131 -0
  66. package/dist/state/artifacts.js.map +1 -0
  67. package/dist/state/index.d.ts +9 -0
  68. package/dist/state/index.js +7 -0
  69. package/dist/state/index.js.map +1 -0
  70. package/dist/state/manager.d.ts +89 -0
  71. package/dist/state/manager.js +130 -0
  72. package/dist/state/manager.js.map +1 -0
  73. package/dist/state/project-memory.d.ts +24 -0
  74. package/dist/state/project-memory.js +81 -0
  75. package/dist/state/project-memory.js.map +1 -0
  76. package/dist/state/recovery.d.ts +24 -0
  77. package/dist/state/recovery.js +94 -0
  78. package/dist/state/recovery.js.map +1 -0
  79. package/dist/statusbar.d.ts +1 -0
  80. package/dist/statusbar.js +12 -1
  81. package/dist/statusbar.js.map +1 -1
  82. package/dist/sub-agent-runner.d.ts +1 -0
  83. package/dist/sub-agent-runner.js +29 -3
  84. package/dist/sub-agent-runner.js.map +1 -1
  85. package/dist/sub-agents.d.ts +19 -1
  86. package/dist/sub-agents.js +137 -2
  87. package/dist/sub-agents.js.map +1 -1
  88. package/dist/tool-governance.d.ts +77 -0
  89. package/dist/tool-governance.js +335 -0
  90. package/dist/tool-governance.js.map +1 -0
  91. package/dist/ui/hud.d.ts +25 -0
  92. package/dist/ui/hud.js +67 -0
  93. package/dist/ui/hud.js.map +1 -0
  94. package/dist/verification-agent.d.ts +46 -0
  95. package/dist/verification-agent.js +528 -0
  96. package/dist/verification-agent.js.map +1 -0
  97. package/dist/workflows/ask.d.ts +13 -0
  98. package/dist/workflows/ask.js +66 -0
  99. package/dist/workflows/ask.js.map +1 -0
  100. package/dist/workflows/index.d.ts +5 -0
  101. package/dist/workflows/index.js +6 -0
  102. package/dist/workflows/index.js.map +1 -0
  103. package/dist/workflows/interview.d.ts +11 -0
  104. package/dist/workflows/interview.js +36 -0
  105. package/dist/workflows/interview.js.map +1 -0
  106. package/dist/workflows/plan.d.ts +13 -0
  107. package/dist/workflows/plan.js +34 -0
  108. package/dist/workflows/plan.js.map +1 -0
  109. package/dist/workflows/team.d.ts +17 -0
  110. package/dist/workflows/team.js +86 -0
  111. package/dist/workflows/team.js.map +1 -0
  112. package/dist/workflows/verify.d.ts +11 -0
  113. package/dist/workflows/verify.js +21 -0
  114. package/dist/workflows/verify.js.map +1 -0
  115. package/package.json +2 -4
package/README.md CHANGED
@@ -9,6 +9,8 @@
9
9
 
10
10
  An AI-powered CLI assistant with embedded engineering knowledge, a pluggable skill system, persistent memory, and project-aware context — designed to be your pair-programming partner in the terminal.
11
11
 
12
+ ![Bobo CLI 介绍](assets/bobo-cli-intro.png)
13
+
12
14
  </div>
13
15
 
14
16
  ---
@@ -32,6 +34,16 @@ bobo "explain this codebase"
32
34
 
33
35
  ## Features
34
36
 
37
+ ### ⚡ Claude Code Architecture (v2.1.0)
38
+ Bobo CLI v2.1.0 implements advanced AI agent patterns inspired by Claude Code:
39
+
40
+ - **🔍 Verification Agent** — 'Try to break it' philosophy with adversarial testing (build/test/lint + boundary probing)
41
+ - **🎭 Role-Based Sub-Agents** — Explore (read-only), Plan (strategy), Worker (execution), Verify (validation)
42
+ - **🗜️ Three-Tier Compression** — Microcompact (tool result clearing) → Auto-compact (87% threshold + circuit breaker) → Full compact (LLM summary)
43
+ - **🛡️ Tool Governance Pipeline** — Input validation → Risk classification → Permission checks → Execution hooks → Telemetry
44
+ - **💾 Cache Boundary Optimization** — STATIC/DYNAMIC prompt separation for provider caching (Anthropic prompt caching compatible)
45
+ - **🌙 KAIROS Dream Mode** — Automated memory consolidation (reads logs → LLM distillation → structured insights)
46
+
35
47
  ### 🧠 Knowledge System
36
48
  9 built-in knowledge files that shape the assistant's behavior and engineering methodology:
37
49
 
@@ -106,19 +118,45 @@ Bobo automatically detects and loads `AGENTS.md`, `CLAUDE.md`, and `CONVENTIONS.
106
118
  ## Architecture
107
119
 
108
120
  ```
109
- bobo CLI v1.0.0
121
+ bobo CLI v2.1.0 — Claude Code-inspired Agent Architecture
110
122
 
111
- ├── System Prompt Assembly (priority order)
123
+ ├── System Prompt Assembly (STATIC/DYNAMIC separation)
124
+ │ STATIC (cacheable):
112
125
  │ ① Knowledge (3 always-load + 6 on-demand)
113
126
  │ ② Skills (active skill prompts)
114
- │ ③ Memory (persistent user/project/feedback data)
115
- Project (.bobo/ config + auto-detected files)
116
- Environment (CWD + context decay warnings)
127
+ │ ③ BOBO.md project instructions
128
+ ━━━━━━━━ DYNAMIC BOUNDARY ━━━━━━━━
129
+ DYNAMIC (session-specific):
130
+ │ ④ Memory (persistent user/project/feedback data)
131
+ │ ⑤ Project context (.bobo/ + auto-detected files)
132
+ │ ⑥ Environment (CWD + turn count + decay warnings)
117
133
 
118
- ├── Agent Loop
134
+ ├── Agent Loop (with governance)
119
135
  │ ├── Streaming responses with tool calls
120
- │ ├── Max 20 iterations per turn
121
- └── Context decay detection (10+ turns)
136
+ │ ├── Tool Governance Pipeline:
137
+ │ Input validation Risk classification → PreToolUse Hook →
138
+ │ │ Permission check → Execution → PostToolUse Hook → Telemetry
139
+ │ ├── Three-tier compression:
140
+ │ │ 60%: Microcompact (clear old tool results)
141
+ │ │ 87%: Auto-compact (with circuit breaker)
142
+ │ │ 95%: Full compact (LLM summary)
143
+ │ └── Max 20 iterations per turn
144
+
145
+ ├── Sub-Agent System (role-based)
146
+ │ ├── explore — Read-only exploration
147
+ │ ├── plan — Strategy without execution
148
+ │ ├── worker — Full tools + anti-recursion
149
+ │ └── verify — Adversarial validation
150
+
151
+ ├── Verification Agent
152
+ │ ├── Build/Test/Lint enforcement
153
+ │ ├── Adversarial probing (boundary tests, API calls)
154
+ │ └── Verdict: PASS / FAIL / PARTIAL
155
+
156
+ ├── KAIROS Dream Mode
157
+ │ ├── Auto-trigger: 50+ entries or 24h since last dream
158
+ │ ├── LLM distillation: Logs → Insights (confidence-scored)
159
+ │ └── Memory consolidation: Dedupe + category organization
122
160
 
123
161
  ├── Structured Knowledge (advanced)
124
162
  │ ├── knowledge/rules/ — 15+ domain rule files
@@ -132,6 +170,8 @@ bobo CLI v1.0.0
132
170
  ├── bobo init — Initialize ~/.bobo/
133
171
  ├── bobo knowledge — View knowledge base
134
172
  ├── bobo skill — Skill management
173
+ ├── bobo spawn <task> — Background sub-agent (with role)
174
+ ├── bobo agents — Manage sub-agents
135
175
  ├── bobo kb — Structured knowledge search
136
176
  ├── bobo rules — Browse engineering rules
137
177
  ├── bobo skills — Structured skill browser
@@ -149,7 +189,10 @@ bobo CLI v1.0.0
149
189
  | `/skills` | List active skills |
150
190
  | `/plan` | Show current task plan |
151
191
  | `/compact` | Compress context (nine-section summary) |
152
- | `/dream` | Memory consolidation |
192
+ | `/dream` | 🌙 KAIROS memory consolidation (LLM-powered insight extraction) |
193
+ | `/verify [task]` | 🔍 Run verification agent with adversarial testing |
194
+ | `/spawn <task>` | Spawn background sub-agent (with role support) |
195
+ | `/agents` | List all sub-agents and their status |
153
196
  | `/clear` | Clear conversation history |
154
197
  | `/history` | Show turn count |
155
198
  | `/quit` | Exit |
package/dist/agent.js CHANGED
@@ -5,7 +5,6 @@ import { join } from 'node:path';
5
5
  import { loadConfig } from './config.js';
6
6
  import { loadKnowledge } from './knowledge.js';
7
7
  import { loadMemory } from './memory.js';
8
- import { loadSkillPrompts } from './skills.js';
9
8
  import { routeMessage, loadMatchedSkillPrompts } from './skill-router.js';
10
9
  import { loadProjectKnowledge } from './project.js';
11
10
  import { isClaudeCodeAvailable } from './tools/claude-code.js';
@@ -16,6 +15,8 @@ import { getMcpToolDefinitions, executeMcpTool, isMcpTool } from './mcp-client.j
16
15
  import { printStreaming, printToolCall, printToolResult, printError, printLine } from './ui.js';
17
16
  import { recordUsage } from './cost-tracker.js';
18
17
  import { Spinner } from './spinner.js';
18
+ import { estimateTokens } from './compactor.js';
19
+ import { executeToolWithGovernance } from './tool-governance.js';
19
20
  /**
20
21
  * Load BOBO.md from current directory (project instructions, like Claude Code's CLAUDE.md).
21
22
  */
@@ -34,19 +35,6 @@ function loadBoboMd() {
34
35
  }
35
36
  return null;
36
37
  }
37
- /**
38
- * Rough token estimation for auto-compact detection.
39
- */
40
- function estimateTokenCount(messages) {
41
- let total = 0;
42
- for (const msg of messages) {
43
- if (typeof msg.content === 'string') {
44
- const cjk = (msg.content.match(/[\u4e00-\u9fff]/g) || []).length;
45
- total += Math.ceil(cjk / 2 + (msg.content.length - cjk) / 4);
46
- }
47
- }
48
- return total;
49
- }
50
38
  /**
51
39
  * Map effort level to system prompt guidance.
52
40
  */
@@ -74,38 +62,49 @@ export async function runAgent(userMessage, history, options = {}) {
74
62
  const callStartTime = Date.now();
75
63
  const spinner = new Spinner();
76
64
  // Check for auto-compact (when context is getting large)
77
- const currentTokens = estimateTokenCount(history);
65
+ const currentTokens = estimateTokens(history);
78
66
  if (currentTokens > 80000 && options.onAutoCompact) {
79
67
  options.onAutoCompact();
80
68
  }
81
- // Build system prompt with all context layers
82
- const extraParts = [];
83
- // Layer 0: BOBO.md project instructions (highest priority)
69
+ // Build system prompt with STATIC/DYNAMIC separation for cache optimization
70
+ const staticParts = []; // Cacheable: identity, rules, base knowledge
71
+ const dynamicParts = []; // Non-cacheable: session state, memory, context
72
+ // === STATIC SECTION (Cacheable) ===
73
+ // Load base knowledge (identity + rules)
74
+ const baseKnowledge = loadKnowledge({
75
+ userMessage,
76
+ loadAll: history.length === 0,
77
+ extraContext: '', // No dynamic context yet
78
+ });
79
+ staticParts.push(baseKnowledge);
80
+ // Layer 0: BOBO.md project instructions (static per project)
84
81
  const boboMd = loadBoboMd();
85
82
  if (boboMd) {
86
- extraParts.push(`# Project Instructions (BOBO.md)\n\n${boboMd}`);
83
+ staticParts.push(`# Project Instructions (BOBO.md)\n\n${boboMd}`);
87
84
  }
88
- // Layer 1: Skill routing (intelligent content-based triggering)
85
+ // Layer 1: Skill routing (varies per message, but definitions are static)
89
86
  const skillMatches = routeMessage(userMessage);
90
87
  const { prompt: routedSkillPrompts, loaded: loadedSkills } = loadMatchedSkillPrompts(skillMatches);
91
- // Fallback: also check legacy skill system for skills without routes
92
- const legacySkillPrompts = loadSkillPrompts(userMessage);
93
- const combinedSkillPrompts = [routedSkillPrompts, legacySkillPrompts].filter(Boolean).join('\n\n');
94
- if (combinedSkillPrompts) {
95
- extraParts.push(combinedSkillPrompts);
88
+ if (routedSkillPrompts) {
89
+ staticParts.push(routedSkillPrompts);
96
90
  if (options.matchedSkills) {
97
91
  options.matchedSkills.push(...loadedSkills);
98
92
  }
99
93
  }
100
- // Layer 2: Persistent memory
94
+ // === DYNAMIC BOUNDARY MARKER ===
95
+ const dynamicBoundary = '\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n' +
96
+ '⚡ DYNAMIC CONTEXT BOUNDARY — Content below changes frequently\n' +
97
+ '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n';
98
+ // === DYNAMIC SECTION (Non-cacheable) ===
99
+ // Layer 2: Persistent memory (changes with learning)
101
100
  const memory = loadMemory();
102
101
  if (memory)
103
- extraParts.push(`# 你的记忆\n\n${memory}`);
104
- // Layer 3: Project context
102
+ dynamicParts.push(`# 你的记忆\n\n${memory}`);
103
+ // Layer 3: Project context (can change as project evolves)
105
104
  const projectKnowledge = loadProjectKnowledge();
106
105
  if (projectKnowledge)
107
- extraParts.push(`# 项目上下文\n\n${projectKnowledge}`);
108
- // Layer 4: Environment + effort level
106
+ dynamicParts.push(`# 项目上下文\n\n${projectKnowledge}`);
107
+ // Layer 4: Environment + session state
109
108
  const turnCount = history.filter(m => m.role === 'user').length;
110
109
  let envInfo = `# Environment\n\nWorking directory: ${process.cwd()}\nConversation turns: ${turnCount}\nModel: ${model}\nEffort: ${effort}`;
111
110
  if (isClaudeCodeAvailable()) {
@@ -114,16 +113,17 @@ export async function runAgent(userMessage, history, options = {}) {
114
113
  if (turnCount >= 10) {
115
114
  envInfo += '\n\n⚠️ Context Decay Warning: 对话已超过 10 轮,编辑文件前必须重新读取确认内容。';
116
115
  }
117
- extraParts.push(envInfo);
118
- // Layer 5: Effort level guidance
116
+ dynamicParts.push(envInfo);
117
+ // Layer 5: Effort level guidance (changes with effort setting)
119
118
  const effortPrompt = effortToPrompt(effort);
120
119
  if (effortPrompt)
121
- extraParts.push(effortPrompt);
122
- const systemPrompt = loadKnowledge({
123
- userMessage,
124
- loadAll: history.length === 0,
125
- extraContext: extraParts.join('\n\n---\n\n'),
126
- });
120
+ dynamicParts.push(effortPrompt);
121
+ // Combine static and dynamic sections
122
+ const systemPrompt = [
123
+ ...staticParts,
124
+ dynamicBoundary,
125
+ ...dynamicParts,
126
+ ].join('\n\n---\n\n');
127
127
  const messages = [
128
128
  { role: 'system', content: systemPrompt },
129
129
  ...history,
@@ -263,22 +263,43 @@ export async function runAgent(userMessage, history, options = {}) {
263
263
  printToolCall(tc.name, tc.arguments);
264
264
  }
265
265
  // Route to MCP, advanced, browser, or built-in tool
266
+ // MCP and browser tools bypass governance (they have own security)
266
267
  let result;
267
268
  if (isMcpTool(tc.name)) {
268
269
  result = await executeMcpTool(tc.name, args);
269
- }
270
- else if (isAdvancedTool(tc.name)) {
271
- result = await executeAdvancedTool(tc.name, args);
270
+ spinner.stop();
271
+ if (!options.quiet)
272
+ printToolResult(result);
272
273
  }
273
274
  else if (isBrowserTool(tc.name)) {
274
275
  result = await executeBrowserTool(tc.name, args);
276
+ spinner.stop();
277
+ if (!options.quiet)
278
+ printToolResult(result);
275
279
  }
276
280
  else {
277
- result = executeTool(tc.name, args);
281
+ // Built-in and advanced tools go through governance pipeline
282
+ const govResult = await executeToolWithGovernance(tc.name, args, async (name, params) => {
283
+ if (isAdvancedTool(name)) {
284
+ return await executeAdvancedTool(name, params);
285
+ }
286
+ else {
287
+ return executeTool(name, params);
288
+ }
289
+ });
290
+ spinner.stop();
291
+ if (govResult.blocked) {
292
+ result = `⛔ Tool blocked: ${govResult.blockReason || govResult.error}`;
293
+ }
294
+ else if (!govResult.success) {
295
+ result = `❌ Tool failed: ${govResult.error}`;
296
+ }
297
+ else {
298
+ result = govResult.output || '';
299
+ }
300
+ if (!options.quiet)
301
+ printToolResult(result);
278
302
  }
279
- spinner.stop();
280
- if (!options.quiet)
281
- printToolResult(result);
282
303
  messages.push({
283
304
  role: 'tool',
284
305
  tool_call_id: tc.id,
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Agent Catalog — 8 核心角色定义
3
+ *
4
+ * 基于 oh-my-claudecode 的 19 agent 精简版,保留最核心的 8 个角色。
5
+ * 分 4 lanes: Build, Review, Domain, Coordination
6
+ */
7
+ export type ModelTier = 'haiku' | 'sonnet' | 'opus';
8
+ export interface AgentDefinition {
9
+ /** Agent 角色名 */
10
+ role: string;
11
+ /** 默认模型层级 */
12
+ model: ModelTier;
13
+ /** 角色描述 */
14
+ description: string;
15
+ /** 适用场景 */
16
+ useCases: string[];
17
+ /** 角色边界(不做什么) */
18
+ boundaries: string[];
19
+ }
20
+ /**
21
+ * Agent Catalog
22
+ *
23
+ * Build Lane: explore, planner, executor, verifier
24
+ * Review Lane: reviewer
25
+ * Domain Lane: tester, writer
26
+ * Coordination Lane: critic
27
+ */
28
+ export declare const AGENT_CATALOG: Record<string, AgentDefinition>;
29
+ /**
30
+ * 获取 agent 定义
31
+ */
32
+ export declare function getAgent(role: string): AgentDefinition | undefined;
33
+ /**
34
+ * 获取所有 agent 角色名
35
+ */
36
+ export declare function getAllAgentRoles(): string[];
37
+ /**
38
+ * 按 lane 分组
39
+ */
40
+ export declare function getAgentsByLane(): Record<string, string[]>;
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Agent Catalog — 8 核心角色定义
3
+ *
4
+ * 基于 oh-my-claudecode 的 19 agent 精简版,保留最核心的 8 个角色。
5
+ * 分 4 lanes: Build, Review, Domain, Coordination
6
+ */
7
+ /**
8
+ * Agent Catalog
9
+ *
10
+ * Build Lane: explore, planner, executor, verifier
11
+ * Review Lane: reviewer
12
+ * Domain Lane: tester, writer
13
+ * Coordination Lane: critic
14
+ */
15
+ export const AGENT_CATALOG = {
16
+ // ===== Build Lane =====
17
+ explore: {
18
+ role: 'explore',
19
+ model: 'haiku',
20
+ description: 'Fast codebase search, file/symbol mapping',
21
+ useCases: [
22
+ 'Quick code lookup',
23
+ 'Find function/class definitions',
24
+ 'Locate files by pattern',
25
+ 'Symbol search across codebase',
26
+ ],
27
+ boundaries: [
28
+ 'Does not implement code',
29
+ 'Does not analyze logic',
30
+ 'Does not write documentation',
31
+ ],
32
+ },
33
+ planner: {
34
+ role: 'planner',
35
+ model: 'opus',
36
+ description: 'Task sequencing, execution plan creation',
37
+ useCases: [
38
+ 'Break down complex tasks',
39
+ 'Create execution plans',
40
+ 'Identify dependencies',
41
+ 'Risk assessment',
42
+ ],
43
+ boundaries: [
44
+ 'Does not implement code',
45
+ 'Does not gather requirements',
46
+ 'Does not review plans (use critic)',
47
+ ],
48
+ },
49
+ executor: {
50
+ role: 'executor',
51
+ model: 'sonnet',
52
+ description: 'Code implementation, refactoring, feature work',
53
+ useCases: [
54
+ 'Feature implementation',
55
+ 'Code refactoring',
56
+ 'Bug fixes',
57
+ 'Multi-file changes',
58
+ ],
59
+ boundaries: [
60
+ 'Does not plan (use planner)',
61
+ 'Does not verify (use verifier)',
62
+ 'Does not review (use reviewer)',
63
+ ],
64
+ },
65
+ verifier: {
66
+ role: 'verifier',
67
+ model: 'sonnet',
68
+ description: 'Completion verification, test adequacy confirmation',
69
+ useCases: [
70
+ 'Verify task completion',
71
+ 'Check test coverage',
72
+ 'Validate implementation',
73
+ 'Adversarial testing',
74
+ ],
75
+ boundaries: [
76
+ 'Does not implement fixes',
77
+ 'Does not write tests (use tester)',
78
+ 'Does not plan (use planner)',
79
+ ],
80
+ },
81
+ // ===== Review Lane =====
82
+ reviewer: {
83
+ role: 'reviewer',
84
+ model: 'opus',
85
+ description: 'Comprehensive code review, logic defects, maintainability',
86
+ useCases: [
87
+ 'Code review',
88
+ 'API contract review',
89
+ 'Security review',
90
+ 'Performance review',
91
+ ],
92
+ boundaries: [
93
+ 'Does not implement fixes',
94
+ 'Does not write tests',
95
+ 'Does not plan refactors',
96
+ ],
97
+ },
98
+ // ===== Domain Lane =====
99
+ tester: {
100
+ role: 'tester',
101
+ model: 'sonnet',
102
+ description: 'Test strategy, coverage, flaky-test hardening',
103
+ useCases: [
104
+ 'Write unit tests',
105
+ 'Write integration tests',
106
+ 'Test strategy design',
107
+ 'Coverage analysis',
108
+ ],
109
+ boundaries: [
110
+ 'Does not implement features',
111
+ 'Does not review code (use reviewer)',
112
+ 'Does not verify (use verifier)',
113
+ ],
114
+ },
115
+ writer: {
116
+ role: 'writer',
117
+ model: 'haiku',
118
+ description: 'Documentation, migration notes, user guidance',
119
+ useCases: [
120
+ 'Write README',
121
+ 'Write API docs',
122
+ 'Write migration guides',
123
+ 'Write user guides',
124
+ ],
125
+ boundaries: [
126
+ 'Does not implement code',
127
+ 'Does not review code',
128
+ 'Does not plan features',
129
+ ],
130
+ },
131
+ // ===== Coordination Lane =====
132
+ critic: {
133
+ role: 'critic',
134
+ model: 'opus',
135
+ description: 'Plan/design critical challenge, gap analysis',
136
+ useCases: [
137
+ 'Challenge plans',
138
+ 'Find gaps in designs',
139
+ 'Multi-angle review',
140
+ 'Risk identification',
141
+ ],
142
+ boundaries: [
143
+ 'Does not create plans (use planner)',
144
+ 'Does not implement code',
145
+ 'Does not gather requirements',
146
+ ],
147
+ },
148
+ };
149
+ /**
150
+ * 获取 agent 定义
151
+ */
152
+ export function getAgent(role) {
153
+ return AGENT_CATALOG[role];
154
+ }
155
+ /**
156
+ * 获取所有 agent 角色名
157
+ */
158
+ export function getAllAgentRoles() {
159
+ return Object.keys(AGENT_CATALOG);
160
+ }
161
+ /**
162
+ * 按 lane 分组
163
+ */
164
+ export function getAgentsByLane() {
165
+ return {
166
+ build: ['explore', 'planner', 'executor', 'verifier'],
167
+ review: ['reviewer'],
168
+ domain: ['tester', 'writer'],
169
+ coordination: ['critic'],
170
+ };
171
+ }
172
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/agents/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { AGENT_CATALOG, getAgent, getAllAgentRoles, getAgentsByLane } from './catalog.js';
2
+ export type { AgentDefinition, ModelTier } from './catalog.js';
3
+ export { routeTask, routeTaskWithReason, selectModel, routeTeamTasks } from './router.js';
4
+ export type { RoutingDecision, AgentRole } from './router.js';
5
+ export { prepareSpawn, listSpawnableRoles } from './spawn.js';
6
+ export type { SpawnRequest, SpawnResult } from './spawn.js';
@@ -0,0 +1,4 @@
1
+ export { AGENT_CATALOG, getAgent, getAllAgentRoles, getAgentsByLane } from './catalog.js';
2
+ export { routeTask, routeTaskWithReason, selectModel, routeTeamTasks } from './router.js';
3
+ export { prepareSpawn, listSpawnableRoles } from './spawn.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Agent Router — 任务类型 → agent/模型映射
3
+ *
4
+ * 根据任务描述自动选择最合适的 agent 角色
5
+ */
6
+ import type { AgentDefinition } from './catalog.js';
7
+ import { AGENT_CATALOG } from './catalog.js';
8
+ export type AgentRole = keyof typeof AGENT_CATALOG;
9
+ /**
10
+ * 任务路由规则
11
+ *
12
+ * 优先级:
13
+ * 1. 显式关键词匹配(test, review, plan, verify, search, doc)
14
+ * 2. 任务复杂度判断(简单 → explore, 复杂 → planner)
15
+ * 3. 默认 executor
16
+ */
17
+ export declare function routeTask(task: string): AgentRole;
18
+ /**
19
+ * 根据任务选择模型层级
20
+ *
21
+ * 规则:
22
+ * - 简单任务(lookup, search, doc)→ haiku
23
+ * - 标准任务(implement, debug, test)→ sonnet
24
+ * - 复杂任务(architecture, review, plan)→ opus
25
+ */
26
+ export declare function selectModel(task: string, role: AgentRole): 'haiku' | 'sonnet' | 'opus';
27
+ /**
28
+ * 路由决策结果
29
+ */
30
+ export interface RoutingDecision {
31
+ role: AgentRole;
32
+ model: 'haiku' | 'sonnet' | 'opus';
33
+ agent: AgentDefinition;
34
+ reason: string;
35
+ }
36
+ /**
37
+ * 完整路由决策(包含原因)
38
+ */
39
+ export declare function routeTaskWithReason(task: string): RoutingDecision;
40
+ /**
41
+ * 批量路由(用于 team 模式)
42
+ */
43
+ export declare function routeTeamTasks(tasks: string[]): RoutingDecision[];