bobo-ai-cli 2.1.0 → 3.0.1

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 (260) hide show
  1. package/README.md +52 -9
  2. package/bundled-skills/CORE_SKILLS.txt +18 -0
  3. package/dist/agent.js +91 -51
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agents/catalog.d.ts +40 -0
  6. package/dist/agents/catalog.js +172 -0
  7. package/dist/agents/catalog.js.map +1 -0
  8. package/dist/agents/index.d.ts +6 -0
  9. package/dist/agents/index.js +4 -0
  10. package/dist/agents/index.js.map +1 -0
  11. package/dist/agents/router.d.ts +43 -0
  12. package/dist/agents/router.js +87 -0
  13. package/dist/agents/router.js.map +1 -0
  14. package/dist/agents/spawn.d.ts +46 -0
  15. package/dist/agents/spawn.js +91 -0
  16. package/dist/agents/spawn.js.map +1 -0
  17. package/dist/autonomous.js +41 -1
  18. package/dist/autonomous.js.map +1 -1
  19. package/dist/cli.d.ts +8 -0
  20. package/dist/cli.js +669 -0
  21. package/dist/cli.js.map +1 -0
  22. package/dist/compactor.d.ts +49 -4
  23. package/dist/compactor.js +164 -17
  24. package/dist/compactor.js.map +1 -1
  25. package/dist/completer.js +2 -0
  26. package/dist/completer.js.map +1 -1
  27. package/dist/config.js +3 -2
  28. package/dist/config.js.map +1 -1
  29. package/dist/cost-tracker.js +36 -2
  30. package/dist/cost-tracker.js.map +1 -1
  31. package/dist/dream.d.ts +42 -0
  32. package/dist/dream.js +324 -0
  33. package/dist/dream.js.map +1 -0
  34. package/dist/hooks.d.ts +1 -1
  35. package/dist/hooks.js +7 -2
  36. package/dist/hooks.js.map +1 -1
  37. package/dist/index.js +10 -1136
  38. package/dist/index.js.map +1 -1
  39. package/dist/insight.js +4 -11
  40. package/dist/insight.js.map +1 -1
  41. package/dist/knowledge.d.ts +13 -0
  42. package/dist/knowledge.js +16 -4
  43. package/dist/knowledge.js.map +1 -1
  44. package/dist/mcp-client.js +59 -41
  45. package/dist/mcp-client.js.map +1 -1
  46. package/dist/memory.d.ts +4 -0
  47. package/dist/memory.js +30 -18
  48. package/dist/memory.js.map +1 -1
  49. package/dist/project.js +2 -1
  50. package/dist/project.js.map +1 -1
  51. package/dist/providers.js +1 -1
  52. package/dist/providers.js.map +1 -1
  53. package/dist/repl.d.ts +16 -0
  54. package/dist/repl.js +704 -0
  55. package/dist/repl.js.map +1 -0
  56. package/dist/sessions.js +59 -3
  57. package/dist/sessions.js.map +1 -1
  58. package/dist/skill-router.js +2 -2
  59. package/dist/skill-router.js.map +1 -1
  60. package/dist/skills/composer.d.ts +18 -0
  61. package/dist/skills/composer.js +59 -0
  62. package/dist/skills/composer.js.map +1 -0
  63. package/dist/skills/index.d.ts +3 -0
  64. package/dist/skills/index.js +3 -0
  65. package/dist/skills/index.js.map +1 -0
  66. package/dist/skills/loader.d.ts +12 -0
  67. package/dist/skills/loader.js +150 -0
  68. package/dist/skills/loader.js.map +1 -0
  69. package/dist/skills/types.d.ts +28 -0
  70. package/dist/skills/types.js +9 -0
  71. package/dist/skills/types.js.map +1 -0
  72. package/dist/skills.d.ts +1 -0
  73. package/dist/skills.js +10 -8
  74. package/dist/skills.js.map +1 -1
  75. package/dist/state/artifacts.d.ts +71 -0
  76. package/dist/state/artifacts.js +133 -0
  77. package/dist/state/artifacts.js.map +1 -0
  78. package/dist/state/index.d.ts +9 -0
  79. package/dist/state/index.js +7 -0
  80. package/dist/state/index.js.map +1 -0
  81. package/dist/state/manager.d.ts +89 -0
  82. package/dist/state/manager.js +132 -0
  83. package/dist/state/manager.js.map +1 -0
  84. package/dist/state/project-memory.d.ts +24 -0
  85. package/dist/state/project-memory.js +83 -0
  86. package/dist/state/project-memory.js.map +1 -0
  87. package/dist/state/recovery.d.ts +24 -0
  88. package/dist/state/recovery.js +95 -0
  89. package/dist/state/recovery.js.map +1 -0
  90. package/dist/statusbar.d.ts +1 -0
  91. package/dist/statusbar.js +12 -1
  92. package/dist/statusbar.js.map +1 -1
  93. package/dist/structured/loader.js +4 -2
  94. package/dist/structured/loader.js.map +1 -1
  95. package/dist/sub-agent-runner.d.ts +1 -0
  96. package/dist/sub-agent-runner.js +32 -5
  97. package/dist/sub-agent-runner.js.map +1 -1
  98. package/dist/sub-agents.d.ts +19 -1
  99. package/dist/sub-agents.js +142 -5
  100. package/dist/sub-agents.js.map +1 -1
  101. package/dist/tool-governance.d.ts +77 -0
  102. package/dist/tool-governance.js +366 -0
  103. package/dist/tool-governance.js.map +1 -0
  104. package/dist/tools/advanced.js +3 -2
  105. package/dist/tools/advanced.js.map +1 -1
  106. package/dist/tools/browser.js +2 -2
  107. package/dist/tools/browser.js.map +1 -1
  108. package/dist/tools/claude-code.js +2 -2
  109. package/dist/tools/claude-code.js.map +1 -1
  110. package/dist/tools/index.js +36 -12
  111. package/dist/tools/index.js.map +1 -1
  112. package/dist/tools/process-manager.js +2 -2
  113. package/dist/tools/process-manager.js.map +1 -1
  114. package/dist/ui/hud.d.ts +25 -0
  115. package/dist/ui/hud.js +67 -0
  116. package/dist/ui/hud.js.map +1 -0
  117. package/dist/verification-agent.d.ts +46 -0
  118. package/dist/verification-agent.js +533 -0
  119. package/dist/verification-agent.js.map +1 -0
  120. package/dist/watcher.js +2 -2
  121. package/dist/watcher.js.map +1 -1
  122. package/dist/web.js +1 -1
  123. package/dist/web.js.map +1 -1
  124. package/dist/workflows/ask.d.ts +13 -0
  125. package/dist/workflows/ask.js +66 -0
  126. package/dist/workflows/ask.js.map +1 -0
  127. package/dist/workflows/index.d.ts +5 -0
  128. package/dist/workflows/index.js +6 -0
  129. package/dist/workflows/index.js.map +1 -0
  130. package/dist/workflows/interview.d.ts +11 -0
  131. package/dist/workflows/interview.js +36 -0
  132. package/dist/workflows/interview.js.map +1 -0
  133. package/dist/workflows/plan.d.ts +13 -0
  134. package/dist/workflows/plan.js +34 -0
  135. package/dist/workflows/plan.js.map +1 -0
  136. package/dist/workflows/team.d.ts +17 -0
  137. package/dist/workflows/team.js +86 -0
  138. package/dist/workflows/team.js.map +1 -0
  139. package/dist/workflows/verify.d.ts +11 -0
  140. package/dist/workflows/verify.js +21 -0
  141. package/dist/workflows/verify.js.map +1 -0
  142. package/package.json +18 -5
  143. package/bundled-skills/Skill_Seekers/SKILL.md +0 -1722
  144. package/bundled-skills/ab-test-setup/SKILL.md +0 -557
  145. package/bundled-skills/adversarial-verification/SKILL.md +0 -95
  146. package/bundled-skills/agent-sdk-dev/SKILL.md +0 -238
  147. package/bundled-skills/agent-tools/SKILL.md +0 -136
  148. package/bundled-skills/analytics-tracking/SKILL.md +0 -597
  149. package/bundled-skills/artifacts-builder/SKILL.md +0 -89
  150. package/bundled-skills/asana/SKILL.md +0 -13
  151. package/bundled-skills/brand-voice/SKILL.md +0 -481
  152. package/bundled-skills/browser-use/SKILL.md +0 -419
  153. package/bundled-skills/cache-optimization-skill/SKILL.md +0 -179
  154. package/bundled-skills/canvas-design/SKILL.md +0 -147
  155. package/bundled-skills/citation-validator/SKILL.md +0 -203
  156. package/bundled-skills/clangd-lsp/SKILL.md +0 -52
  157. package/bundled-skills/code-simplifier/SKILL.md +0 -13
  158. package/bundled-skills/commit-commands/SKILL.md +0 -258
  159. package/bundled-skills/competitor-alternatives/SKILL.md +0 -795
  160. package/bundled-skills/content-atomizer/SKILL.md +0 -910
  161. package/bundled-skills/content-research-writer/SKILL.md +0 -605
  162. package/bundled-skills/context7/SKILL.md +0 -13
  163. package/bundled-skills/copy-editing/SKILL.md +0 -494
  164. package/bundled-skills/copywriting/SKILL.md +0 -510
  165. package/bundled-skills/csharp-lsp/SKILL.md +0 -40
  166. package/bundled-skills/decision-making-framework/SKILL.md +0 -154
  167. package/bundled-skills/deep-research/SKILL.md +0 -236
  168. package/bundled-skills/developer-growth-analysis/SKILL.md +0 -335
  169. package/bundled-skills/direct-response-copy/SKILL.md +0 -2336
  170. package/bundled-skills/docker-expert/SKILL.md +0 -229
  171. package/bundled-skills/document-skills/SKILL.md +0 -13
  172. package/bundled-skills/documentation-expert/SKILL.md +0 -126
  173. package/bundled-skills/email-sequence/SKILL.md +0 -1061
  174. package/bundled-skills/email-sequences/SKILL.md +0 -910
  175. package/bundled-skills/example-plugin/SKILL.md +0 -72
  176. package/bundled-skills/explanatory-output-style/SKILL.md +0 -82
  177. package/bundled-skills/feature-dev/SKILL.md +0 -458
  178. package/bundled-skills/file-organizer/SKILL.md +0 -466
  179. package/bundled-skills/firebase.disabled/SKILL.md +0 -13
  180. package/bundled-skills/form-cro/SKILL.md +0 -488
  181. package/bundled-skills/free-tool-strategy/SKILL.md +0 -636
  182. package/bundled-skills/frontend-design/SKILL.md +0 -41
  183. package/bundled-skills/frontend-design-offical/SKILL.md +0 -55
  184. package/bundled-skills/gitlab/SKILL.md +0 -13
  185. package/bundled-skills/gopls-lsp/SKILL.md +0 -32
  186. package/bundled-skills/got-controller/SKILL.md +0 -218
  187. package/bundled-skills/greptile/SKILL.md +0 -72
  188. package/bundled-skills/hookify/SKILL.md +0 -376
  189. package/bundled-skills/image-editor/SKILL.md +0 -189
  190. package/bundled-skills/image-enhancer/SKILL.md +0 -109
  191. package/bundled-skills/jdtls-lsp/SKILL.md +0 -49
  192. package/bundled-skills/json-canvas/SKILL.md +0 -654
  193. package/bundled-skills/keyword-research/SKILL.md +0 -559
  194. package/bundled-skills/kotlin-lsp/SKILL.md +0 -28
  195. package/bundled-skills/laravel-boost/SKILL.md +0 -13
  196. package/bundled-skills/launch-strategy/SKILL.md +0 -394
  197. package/bundled-skills/lead-magnet/SKILL.md +0 -393
  198. package/bundled-skills/learning-output-style/SKILL.md +0 -106
  199. package/bundled-skills/linear/SKILL.md +0 -13
  200. package/bundled-skills/lua-lsp/SKILL.md +0 -47
  201. package/bundled-skills/marketing-ideas/SKILL.md +0 -720
  202. package/bundled-skills/marketing-psychology/SKILL.md +0 -534
  203. package/bundled-skills/mcp-builder/SKILL.md +0 -369
  204. package/bundled-skills/meeting-insights-analyzer/SKILL.md +0 -347
  205. package/bundled-skills/memory-evolution-system/SKILL.md +0 -172
  206. package/bundled-skills/multi-lens-thinking/SKILL.md +0 -407
  207. package/bundled-skills/nano-banana-pro/SKILL.md +0 -116
  208. package/bundled-skills/newsletter/SKILL.md +0 -736
  209. package/bundled-skills/notebooklm/SKILL.md +0 -296
  210. package/bundled-skills/obsidian-bases/SKILL.md +0 -634
  211. package/bundled-skills/obsidian-markdown/SKILL.md +0 -651
  212. package/bundled-skills/onboarding-cro/SKILL.md +0 -494
  213. package/bundled-skills/page-cro/SKILL.md +0 -379
  214. package/bundled-skills/paid-ads/SKILL.md +0 -624
  215. package/bundled-skills/paywall-upgrade-cro/SKILL.md +0 -651
  216. package/bundled-skills/php-lsp/SKILL.md +0 -36
  217. package/bundled-skills/playwright/SKILL.md +0 -13
  218. package/bundled-skills/plugin-dev/SKILL.md +0 -434
  219. package/bundled-skills/popup-cro/SKILL.md +0 -520
  220. package/bundled-skills/positioning-angles/SKILL.md +0 -330
  221. package/bundled-skills/pr-review-toolkit/SKILL.md +0 -359
  222. package/bundled-skills/pricing-strategy/SKILL.md +0 -777
  223. package/bundled-skills/proactive-self-improving/SKILL.md +0 -435
  224. package/bundled-skills/programmatic-seo/SKILL.md +0 -714
  225. package/bundled-skills/pyright-lsp/SKILL.md +0 -43
  226. package/bundled-skills/quality-assurance-framework/SKILL.md +0 -168
  227. package/bundled-skills/question-refiner/SKILL.md +0 -160
  228. package/bundled-skills/ralph-loop/SKILL.md +0 -205
  229. package/bundled-skills/refactoring-expert/SKILL.md +0 -103
  230. package/bundled-skills/referral-program/SKILL.md +0 -668
  231. package/bundled-skills/research-executor/SKILL.md +0 -164
  232. package/bundled-skills/review-with-security/SKILL.md +0 -12
  233. package/bundled-skills/rust-analyzer-lsp/SKILL.md +0 -50
  234. package/bundled-skills/schema-markup/SKILL.md +0 -647
  235. package/bundled-skills/security-audit-expert/SKILL.md +0 -124
  236. package/bundled-skills/security-expert/SKILL.md +0 -140
  237. package/bundled-skills/security-guidance/SKILL.md +0 -13
  238. package/bundled-skills/seedance-prompt/SKILL.md +0 -139
  239. package/bundled-skills/self-evolution/SKILL.md +0 -1160
  240. package/bundled-skills/seo-audit/SKILL.md +0 -432
  241. package/bundled-skills/seo-content/SKILL.md +0 -787
  242. package/bundled-skills/serena/SKILL.md +0 -13
  243. package/bundled-skills/signup-flow-cro/SKILL.md +0 -409
  244. package/bundled-skills/skill-manager/SKILL.md +0 -226
  245. package/bundled-skills/skill-share/SKILL.md +0 -98
  246. package/bundled-skills/slack/SKILL.md +0 -13
  247. package/bundled-skills/social-content/SKILL.md +0 -878
  248. package/bundled-skills/spec-flow-skill/SKILL.md +0 -124
  249. package/bundled-skills/stripe/SKILL.md +0 -13
  250. package/bundled-skills/supabase/SKILL.md +0 -13
  251. package/bundled-skills/swift-lsp/SKILL.md +0 -40
  252. package/bundled-skills/synthesizer/SKILL.md +0 -236
  253. package/bundled-skills/template-skill/SKILL.md +0 -16
  254. package/bundled-skills/theme-factory/SKILL.md +0 -72
  255. package/bundled-skills/tiktok-research/SKILL.md +0 -208
  256. package/bundled-skills/typescript-lsp/SKILL.md +0 -36
  257. package/bundled-skills/ui-ux-pro-max/SKILL.md +0 -247
  258. package/bundled-skills/visual-prompt-engineer/SKILL.md +0 -102
  259. package/bundled-skills/webapp-testing/SKILL.md +0 -111
  260. package/bundled-skills/wide-research/SKILL.md +0 -191
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 |
@@ -0,0 +1,18 @@
1
+ # Core skills shipped with bobo-cli
2
+ # Only these are included in the npm package to reduce bloat
3
+
4
+ high-agency
5
+ memory-manager
6
+ context-budget-analyzer
7
+ context-compressor
8
+ context-optimization-suite
9
+ code-review
10
+ code-review-expert
11
+ planning-with-files
12
+ verify
13
+ skill-creator
14
+ github
15
+ backend-expert
16
+ frontend-expert
17
+ testing-expert
18
+ orchestrator
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,19 @@ 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';
20
+ // ─── OpenAI Client Cache ─────────────────────────────────────
21
+ let cachedClient = null;
22
+ let cachedClientKey = '';
23
+ function getClient(apiKey, baseUrl) {
24
+ const key = `${apiKey}:${baseUrl}`;
25
+ if (cachedClient && cachedClientKey === key)
26
+ return cachedClient;
27
+ cachedClient = new OpenAI({ apiKey, baseURL: baseUrl });
28
+ cachedClientKey = key;
29
+ return cachedClient;
30
+ }
19
31
  /**
20
32
  * Load BOBO.md from current directory (project instructions, like Claude Code's CLAUDE.md).
21
33
  */
@@ -29,24 +41,11 @@ function loadBoboMd() {
29
41
  if (content)
30
42
  return content;
31
43
  }
32
- catch { /* skip */ }
44
+ catch (_) { /* intentionally ignored: BOBO.md is optional */ }
33
45
  }
34
46
  }
35
47
  return null;
36
48
  }
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
49
  /**
51
50
  * Map effort level to system prompt guidance.
52
51
  */
@@ -67,45 +66,53 @@ export async function runAgent(userMessage, history, options = {}) {
67
66
  if (!config.apiKey) {
68
67
  throw new Error('API key not configured. Run: bobo config set apiKey <your-key>');
69
68
  }
70
- const client = new OpenAI({
71
- apiKey: config.apiKey,
72
- baseURL: config.baseUrl,
73
- });
69
+ const client = getClient(config.apiKey, config.baseUrl);
74
70
  const callStartTime = Date.now();
75
71
  const spinner = new Spinner();
76
72
  // Check for auto-compact (when context is getting large)
77
- const currentTokens = estimateTokenCount(history);
73
+ const currentTokens = estimateTokens(history);
78
74
  if (currentTokens > 80000 && options.onAutoCompact) {
79
75
  options.onAutoCompact();
80
76
  }
81
- // Build system prompt with all context layers
82
- const extraParts = [];
83
- // Layer 0: BOBO.md project instructions (highest priority)
77
+ // Build system prompt with STATIC/DYNAMIC separation for cache optimization
78
+ const staticParts = []; // Cacheable: identity, rules, base knowledge
79
+ const dynamicParts = []; // Non-cacheable: session state, memory, context
80
+ // === STATIC SECTION (Cacheable) ===
81
+ // Load base knowledge (identity + rules)
82
+ const baseKnowledge = loadKnowledge({
83
+ userMessage,
84
+ loadAll: history.length === 0,
85
+ extraContext: '', // No dynamic context yet
86
+ });
87
+ staticParts.push(baseKnowledge);
88
+ // Layer 0: BOBO.md project instructions (static per project)
84
89
  const boboMd = loadBoboMd();
85
90
  if (boboMd) {
86
- extraParts.push(`# Project Instructions (BOBO.md)\n\n${boboMd}`);
91
+ staticParts.push(`# Project Instructions (BOBO.md)\n\n${boboMd}`);
87
92
  }
88
- // Layer 1: Skill routing (intelligent content-based triggering)
93
+ // Layer 1: Skill routing (varies per message, but definitions are static)
89
94
  const skillMatches = routeMessage(userMessage);
90
95
  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);
96
+ if (routedSkillPrompts) {
97
+ staticParts.push(routedSkillPrompts);
96
98
  if (options.matchedSkills) {
97
99
  options.matchedSkills.push(...loadedSkills);
98
100
  }
99
101
  }
100
- // Layer 2: Persistent memory
102
+ // === DYNAMIC BOUNDARY MARKER ===
103
+ const dynamicBoundary = '\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n' +
104
+ '⚡ DYNAMIC CONTEXT BOUNDARY — Content below changes frequently\n' +
105
+ '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n';
106
+ // === DYNAMIC SECTION (Non-cacheable) ===
107
+ // Layer 2: Persistent memory (changes with learning)
101
108
  const memory = loadMemory();
102
109
  if (memory)
103
- extraParts.push(`# 你的记忆\n\n${memory}`);
104
- // Layer 3: Project context
110
+ dynamicParts.push(`# 你的记忆\n\n${memory}`);
111
+ // Layer 3: Project context (can change as project evolves)
105
112
  const projectKnowledge = loadProjectKnowledge();
106
113
  if (projectKnowledge)
107
- extraParts.push(`# 项目上下文\n\n${projectKnowledge}`);
108
- // Layer 4: Environment + effort level
114
+ dynamicParts.push(`# 项目上下文\n\n${projectKnowledge}`);
115
+ // Layer 4: Environment + session state
109
116
  const turnCount = history.filter(m => m.role === 'user').length;
110
117
  let envInfo = `# Environment\n\nWorking directory: ${process.cwd()}\nConversation turns: ${turnCount}\nModel: ${model}\nEffort: ${effort}`;
111
118
  if (isClaudeCodeAvailable()) {
@@ -114,16 +121,17 @@ export async function runAgent(userMessage, history, options = {}) {
114
121
  if (turnCount >= 10) {
115
122
  envInfo += '\n\n⚠️ Context Decay Warning: 对话已超过 10 轮,编辑文件前必须重新读取确认内容。';
116
123
  }
117
- extraParts.push(envInfo);
118
- // Layer 5: Effort level guidance
124
+ dynamicParts.push(envInfo);
125
+ // Layer 5: Effort level guidance (changes with effort setting)
119
126
  const effortPrompt = effortToPrompt(effort);
120
127
  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
- });
128
+ dynamicParts.push(effortPrompt);
129
+ // Combine static and dynamic sections
130
+ const systemPrompt = [
131
+ ...staticParts,
132
+ dynamicBoundary,
133
+ ...dynamicParts,
134
+ ].join('\n\n---\n\n');
127
135
  const messages = [
128
136
  { role: 'system', content: systemPrompt },
129
137
  ...history,
@@ -148,7 +156,9 @@ export async function runAgent(userMessage, history, options = {}) {
148
156
  tools: [...toolDefinitions, ...getMcpToolDefinitions()],
149
157
  max_tokens: config.maxTokens,
150
158
  stream: true,
159
+ stream_options: { include_usage: true },
151
160
  });
161
+ let streamUsage = null;
152
162
  for await (const chunk of stream) {
153
163
  if (options.signal?.aborted) {
154
164
  spinner.stop();
@@ -182,6 +192,14 @@ export async function runAgent(userMessage, history, options = {}) {
182
192
  existing.arguments += tc.function.arguments;
183
193
  }
184
194
  }
195
+ // Capture usage from final streaming chunk
196
+ if (chunk.usage) {
197
+ streamUsage = chunk.usage;
198
+ }
199
+ }
200
+ // Record streaming usage after loop ends
201
+ if (streamUsage) {
202
+ recordUsage(streamUsage.prompt_tokens || 0, streamUsage.completion_tokens || 0, toolCalls.size);
185
203
  }
186
204
  }
187
205
  catch (streamErr) {
@@ -246,7 +264,8 @@ export async function runAgent(userMessage, history, options = {}) {
246
264
  try {
247
265
  args = JSON.parse(tc.arguments);
248
266
  }
249
- catch {
267
+ catch (_) {
268
+ /* intentionally ignored: malformed JSON defaults to empty args */
250
269
  args = {};
251
270
  }
252
271
  // Permission check for destructive tools
@@ -263,22 +282,43 @@ export async function runAgent(userMessage, history, options = {}) {
263
282
  printToolCall(tc.name, tc.arguments);
264
283
  }
265
284
  // Route to MCP, advanced, browser, or built-in tool
285
+ // MCP and browser tools bypass governance (they have own security)
266
286
  let result;
267
287
  if (isMcpTool(tc.name)) {
268
288
  result = await executeMcpTool(tc.name, args);
269
- }
270
- else if (isAdvancedTool(tc.name)) {
271
- result = await executeAdvancedTool(tc.name, args);
289
+ spinner.stop();
290
+ if (!options.quiet)
291
+ printToolResult(result);
272
292
  }
273
293
  else if (isBrowserTool(tc.name)) {
274
294
  result = await executeBrowserTool(tc.name, args);
295
+ spinner.stop();
296
+ if (!options.quiet)
297
+ printToolResult(result);
275
298
  }
276
299
  else {
277
- result = executeTool(tc.name, args);
300
+ // Built-in and advanced tools go through governance pipeline
301
+ const govResult = await executeToolWithGovernance(tc.name, args, async (name, params) => {
302
+ if (isAdvancedTool(name)) {
303
+ return await executeAdvancedTool(name, params);
304
+ }
305
+ else {
306
+ return executeTool(name, params);
307
+ }
308
+ });
309
+ spinner.stop();
310
+ if (govResult.blocked) {
311
+ result = `⛔ Tool blocked: ${govResult.blockReason || govResult.error}`;
312
+ }
313
+ else if (!govResult.success) {
314
+ result = `❌ Tool failed: ${govResult.error}`;
315
+ }
316
+ else {
317
+ result = govResult.output || '';
318
+ }
319
+ if (!options.quiet)
320
+ printToolResult(result);
278
321
  }
279
- spinner.stop();
280
- if (!options.quiet)
281
- printToolResult(result);
282
322
  messages.push({
283
323
  role: 'tool',
284
324
  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"}