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.
- package/README.md +52 -9
- package/dist/agent.js +66 -45
- package/dist/agent.js.map +1 -1
- package/dist/agents/catalog.d.ts +40 -0
- package/dist/agents/catalog.js +172 -0
- package/dist/agents/catalog.js.map +1 -0
- package/dist/agents/index.d.ts +6 -0
- package/dist/agents/index.js +4 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/router.d.ts +43 -0
- package/dist/agents/router.js +87 -0
- package/dist/agents/router.js.map +1 -0
- package/dist/agents/spawn.d.ts +46 -0
- package/dist/agents/spawn.js +91 -0
- package/dist/agents/spawn.js.map +1 -0
- package/dist/autonomous.js +41 -1
- package/dist/autonomous.js.map +1 -1
- package/dist/cli.d.ts +8 -0
- package/dist/cli.js +667 -0
- package/dist/cli.js.map +1 -0
- package/dist/compactor.d.ts +49 -4
- package/dist/compactor.js +164 -17
- package/dist/compactor.js.map +1 -1
- package/dist/completer.js +2 -0
- package/dist/completer.js.map +1 -1
- package/dist/cost-tracker.js +35 -2
- package/dist/cost-tracker.js.map +1 -1
- package/dist/dream.d.ts +42 -0
- package/dist/dream.js +321 -0
- package/dist/dream.js.map +1 -0
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.js +4 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +8 -1134
- package/dist/index.js.map +1 -1
- package/dist/insight.js +4 -11
- package/dist/insight.js.map +1 -1
- package/dist/knowledge.d.ts +13 -0
- package/dist/knowledge.js +13 -2
- package/dist/knowledge.js.map +1 -1
- package/dist/memory.d.ts +4 -0
- package/dist/memory.js +6 -0
- package/dist/memory.js.map +1 -1
- package/dist/repl.d.ts +16 -0
- package/dist/repl.js +702 -0
- package/dist/repl.js.map +1 -0
- package/dist/sessions.js +23 -0
- package/dist/sessions.js.map +1 -1
- package/dist/skills/composer.d.ts +18 -0
- package/dist/skills/composer.js +59 -0
- package/dist/skills/composer.js.map +1 -0
- package/dist/skills/index.d.ts +3 -0
- package/dist/skills/index.js +3 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/loader.d.ts +12 -0
- package/dist/skills/loader.js +150 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/types.d.ts +28 -0
- package/dist/skills/types.js +9 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/skills.d.ts +1 -0
- package/dist/skills.js +1 -0
- package/dist/skills.js.map +1 -1
- package/dist/state/artifacts.d.ts +71 -0
- package/dist/state/artifacts.js +131 -0
- package/dist/state/artifacts.js.map +1 -0
- package/dist/state/index.d.ts +9 -0
- package/dist/state/index.js +7 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/manager.d.ts +89 -0
- package/dist/state/manager.js +130 -0
- package/dist/state/manager.js.map +1 -0
- package/dist/state/project-memory.d.ts +24 -0
- package/dist/state/project-memory.js +81 -0
- package/dist/state/project-memory.js.map +1 -0
- package/dist/state/recovery.d.ts +24 -0
- package/dist/state/recovery.js +94 -0
- package/dist/state/recovery.js.map +1 -0
- package/dist/statusbar.d.ts +1 -0
- package/dist/statusbar.js +12 -1
- package/dist/statusbar.js.map +1 -1
- package/dist/sub-agent-runner.d.ts +1 -0
- package/dist/sub-agent-runner.js +29 -3
- package/dist/sub-agent-runner.js.map +1 -1
- package/dist/sub-agents.d.ts +19 -1
- package/dist/sub-agents.js +137 -2
- package/dist/sub-agents.js.map +1 -1
- package/dist/tool-governance.d.ts +77 -0
- package/dist/tool-governance.js +335 -0
- package/dist/tool-governance.js.map +1 -0
- package/dist/ui/hud.d.ts +25 -0
- package/dist/ui/hud.js +67 -0
- package/dist/ui/hud.js.map +1 -0
- package/dist/verification-agent.d.ts +46 -0
- package/dist/verification-agent.js +528 -0
- package/dist/verification-agent.js.map +1 -0
- package/dist/workflows/ask.d.ts +13 -0
- package/dist/workflows/ask.js +66 -0
- package/dist/workflows/ask.js.map +1 -0
- package/dist/workflows/index.d.ts +5 -0
- package/dist/workflows/index.js +6 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/interview.d.ts +11 -0
- package/dist/workflows/interview.js +36 -0
- package/dist/workflows/interview.js.map +1 -0
- package/dist/workflows/plan.d.ts +13 -0
- package/dist/workflows/plan.js +34 -0
- package/dist/workflows/plan.js.map +1 -0
- package/dist/workflows/team.d.ts +17 -0
- package/dist/workflows/team.js +86 -0
- package/dist/workflows/team.js.map +1 -0
- package/dist/workflows/verify.d.ts +11 -0
- package/dist/workflows/verify.js +21 -0
- package/dist/workflows/verify.js.map +1 -0
- 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
|
+

|
|
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
|
|
121
|
+
bobo CLI v2.1.0 — Claude Code-inspired Agent Architecture
|
|
110
122
|
│
|
|
111
|
-
├── System Prompt Assembly (
|
|
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
|
-
│ ③
|
|
115
|
-
│
|
|
116
|
-
│
|
|
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
|
-
│ ├──
|
|
121
|
-
│
|
|
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` |
|
|
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 =
|
|
65
|
+
const currentTokens = estimateTokens(history);
|
|
78
66
|
if (currentTokens > 80000 && options.onAutoCompact) {
|
|
79
67
|
options.onAutoCompact();
|
|
80
68
|
}
|
|
81
|
-
// Build system prompt with
|
|
82
|
-
const
|
|
83
|
-
//
|
|
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
|
-
|
|
83
|
+
staticParts.push(`# Project Instructions (BOBO.md)\n\n${boboMd}`);
|
|
87
84
|
}
|
|
88
|
-
// Layer 1: Skill routing (
|
|
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
|
-
|
|
92
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
108
|
-
// Layer 4: Environment +
|
|
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
|
-
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
|
|
271
|
-
|
|
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
|
-
|
|
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[];
|