@bolloon/bolloon-agent 0.1.35 → 0.1.36
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/.playwright-mcp/page-2026-06-16T07-51-45-706Z.yml +130 -0
- package/.playwright-mcp/page-2026-06-16T07-56-44-116Z.yml +131 -0
- package/Bolloon.md +45 -4
- package/Dive-into/CITATION.cff +17 -0
- package/Dive-into/LICENSE +25 -0
- package/Dive-into/README.md +598 -0
- package/Dive-into/README_zh.md +599 -0
- package/Dive-into/assets/context.png +0 -0
- package/Dive-into/assets/extensibility.png +0 -0
- package/Dive-into/assets/iteration.png +0 -0
- package/Dive-into/assets/layered_architecture.png +0 -0
- package/Dive-into/assets/main_structure.png +0 -0
- package/Dive-into/assets/permission.png +0 -0
- package/Dive-into/assets/session_compact.png +0 -0
- package/Dive-into/assets/subagent.png +0 -0
- package/Dive-into/paper/Dive_into_Claude_Code.pdf +0 -0
- package/README.md +1 -1
- package/dist/agents/p2p-chat-tools.js +6 -6
- package/dist/agents/permission-mode.js +115 -0
- package/dist/agents/pi-sdk.js +435 -25
- package/dist/agents/pre-tool-validator.js +194 -0
- package/dist/agents/workflow-pivot-loop.js +113 -12
- package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +1 -1
- package/dist/bollharness/src/scripts/checks/check_doc_links.js +1 -1
- package/dist/bollharness/src/scripts/context_router.js +1 -1
- package/dist/bollharness/src/scripts/deploy-guard.js +1 -1
- package/dist/bollharness/src/scripts/guard_router.js +1 -1
- package/dist/bollharness/src/scripts/hooks/_hook_output.js +1 -1
- package/dist/bollharness/src/scripts/hooks/risk-tracker.js +1 -1
- package/dist/bollharness-integration/context-router.js +2 -2
- package/dist/bollharness-integration/guard-checker.js +1 -1
- package/dist/bootstrap/bootstrap.js +3 -0
- package/dist/bootstrap/context-collector.js +17 -1
- package/dist/bootstrap/context-hierarchy.js +218 -0
- package/dist/bootstrap/lifecycle-hooks.js +86 -24
- package/dist/bootstrap/project-context.js +10 -3
- package/dist/context-compaction/auto-compact.js +144 -0
- package/dist/context-compaction/budget-gate.js +28 -0
- package/dist/context-compaction/budget-reduce.js +35 -0
- package/dist/context-compaction/context-collapse.js +66 -0
- package/dist/context-compaction/index.js +21 -0
- package/dist/context-compaction/microcompact.js +51 -0
- package/dist/context-compaction/pipeline.js +123 -0
- package/dist/context-compaction/snip.js +45 -0
- package/dist/context-compaction/token-estimator.js +35 -0
- package/dist/context-compaction/types.js +19 -0
- package/dist/heartbeat/HealthMonitor.js +3 -2
- package/dist/index.js +38 -2
- package/dist/llm/llm-judgment-client.js +32 -30
- package/dist/llm/pi-ai.js +103 -16
- package/dist/llm/system-prompt/health.js +129 -0
- package/dist/llm/system-prompt/registry.js +246 -0
- package/dist/llm/system-prompt/strip-hibsml.js +51 -0
- package/dist/llm/tool-manifest/ask_user_input.js +35 -0
- package/dist/llm/tool-manifest/bash.js +23 -0
- package/dist/llm/tool-manifest/create_file.js +24 -0
- package/dist/llm/tool-manifest/fetch_sports_data.js +26 -0
- package/dist/llm/tool-manifest/image_search.js +24 -0
- package/dist/llm/tool-manifest/index.js +69 -0
- package/dist/llm/tool-manifest/mcp.js +43 -0
- package/dist/llm/tool-manifest/message_compose.js +31 -0
- package/dist/llm/tool-manifest/places.js +83 -0
- package/dist/llm/tool-manifest/present_files.js +21 -0
- package/dist/llm/tool-manifest/recipe.js +40 -0
- package/dist/llm/tool-manifest/recommend_apps.js +23 -0
- package/dist/llm/tool-manifest/str_replace.js +27 -0
- package/dist/llm/tool-manifest/types.js +7 -0
- package/dist/llm/tool-manifest/view.js +24 -0
- package/dist/llm/tool-manifest/weather.js +27 -0
- package/dist/llm/tool-manifest/web.js +51 -0
- package/dist/network/p2p-direct.js +23 -0
- package/dist/network/source-intent-broadcaster.js +203 -0
- package/dist/network/source-intent.js +100 -0
- package/dist/pi-ecosystem-judgment/adaptive-scan.js +48 -0
- package/dist/pi-ecosystem-judgment/injection-gate.js +54 -12
- package/dist/pi-ecosystem-judgment/value-injection.js +8 -2
- package/dist/security/context-router-tool.js +1 -1
- package/dist/security/input-scanner.js +223 -0
- package/dist/web/client.js +3677 -4161
- package/dist/web/components/p2p/P2PModal.js +188 -0
- package/dist/web/components/p2p/index.js +264 -226
- package/dist/web/components/p2p/p2p-modal.js +657 -0
- package/dist/web/components/p2p/p2p-tools.js +248 -0
- package/dist/web/index.html +58 -67
- package/dist/web/server.js +299 -117
- package/dist/web/style.css +531 -249
- package/dist/web/ui/message-renderer.js +463 -0
- package/dist/web/ui/step-timeline.js +375 -0
- package/lefthook.yml +4 -0
- package/package.json +1 -1
- package/scripts/auto-evolve-loop.ts +105 -0
- package/scripts/build-web.ts +35 -1
- package/scripts/validate-system-prompt.ts +142 -0
- package/src/agents/p2p-chat-tools.ts +6 -6
- package/src/agents/permission-mode.ts +127 -0
- package/src/agents/pi-sdk.ts +461 -28
- package/src/agents/pre-tool-validator.ts +213 -0
- package/src/agents/workflow-pivot-loop.ts +110 -19
- package/src/bollharness/CLAUDE.md +1 -1
- package/src/bollharness/README.md +2 -2
- package/src/bollharness/README.zh-CN.md +2 -2
- package/src/bollharness/reference/boll-reference/scripts/hooks/find-boll-root.sh +2 -2
- package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +2 -2
- package/src/bollharness/scripts/context-fragments/version-sources.md +1 -1
- package/src/bollharness/scripts/hooks/find-project-root.sh +4 -4
- package/src/bollharness/src/scripts/checks/check_doc_freshness.ts +1 -1
- package/src/bollharness/src/scripts/checks/check_doc_links.ts +1 -1
- package/src/bollharness/src/scripts/context_router.ts +1 -1
- package/src/bollharness/src/scripts/deploy-guard.ts +1 -1
- package/src/bollharness/src/scripts/guard_router.ts +1 -1
- package/src/bollharness/src/scripts/hooks/_hook_output.ts +1 -1
- package/src/bollharness/src/scripts/hooks/risk-tracker.ts +1 -1
- package/src/bollharness/templates/scaffold/.gitignore.append +1 -1
- package/src/bollharness/templates/scaffold/CLAUDE.md +2 -2
- package/src/bollharness-integration/context-router.ts +2 -2
- package/src/bollharness-integration/guard-checker.ts +1 -1
- package/src/bootstrap/bootstrap.ts +3 -0
- package/src/bootstrap/context-collector.ts +30 -1
- package/src/bootstrap/context-hierarchy.ts +283 -0
- package/src/bootstrap/lifecycle-hooks.ts +139 -26
- package/src/bootstrap/project-context.ts +11 -3
- package/src/context-compaction/auto-compact.ts +153 -0
- package/src/context-compaction/budget-gate.ts +32 -0
- package/src/context-compaction/budget-reduce.ts +37 -0
- package/src/context-compaction/context-collapse.ts +72 -0
- package/src/context-compaction/index.ts +24 -0
- package/src/context-compaction/microcompact.ts +54 -0
- package/src/context-compaction/pipeline.ts +133 -0
- package/src/context-compaction/snip.ts +51 -0
- package/src/context-compaction/token-estimator.ts +36 -0
- package/src/context-compaction/types.ts +99 -0
- package/src/heartbeat/HealthMonitor.ts +3 -2
- package/src/index.ts +36 -2
- package/src/llm/llm-judgment-client.ts +36 -35
- package/src/llm/pi-ai.ts +111 -16
- package/src/llm/system-prompt/health.ts +159 -0
- package/src/llm/system-prompt/layers/channel/local.md +14 -0
- package/src/llm/system-prompt/layers/channel/p2p-agent.md +18 -0
- package/src/llm/system-prompt/layers/channel/p2p-visitor.md +19 -0
- package/src/llm/system-prompt/layers/core/artifacts_storage.md +89 -0
- package/src/llm/system-prompt/layers/core/evenhandedness.md +21 -0
- package/src/llm/system-prompt/layers/core/hibs_reminders.md +15 -0
- package/src/llm/system-prompt/layers/core/identity.md +37 -0
- package/src/llm/system-prompt/layers/core/knowledge.md +17 -0
- package/src/llm/system-prompt/layers/core/memory_system.md +12 -0
- package/src/llm/system-prompt/layers/core/network_filesystem.md +28 -0
- package/src/llm/system-prompt/layers/core/refusal.md +37 -0
- package/src/llm/system-prompt/layers/core/tone.md +31 -0
- package/src/llm/system-prompt/layers/core/tools.thin.md +13 -0
- package/src/llm/system-prompt/layers/core/wellbeing.md +41 -0
- package/src/llm/system-prompt/layers/role/architect.md +20 -0
- package/src/llm/system-prompt/layers/role/expert.md +19 -0
- package/src/llm/system-prompt/layers/role/implementer.md +15 -0
- package/src/llm/system-prompt/layers/role/security.md +15 -0
- package/src/llm/system-prompt/layers/tool/artifacts.md +72 -0
- package/src/llm/system-prompt/layers/tool/bash.md +25 -0
- package/src/llm/system-prompt/layers/tool/hibs_api.md +171 -0
- package/src/llm/system-prompt/layers/tool/image_search.md +70 -0
- package/src/llm/system-prompt/layers/tool/manifest.md +89 -0
- package/src/llm/system-prompt/layers/tool/mcp_apps.md +53 -0
- package/src/llm/system-prompt/layers/tool/web_search.md +83 -0
- package/src/llm/system-prompt/registry.ts +325 -0
- package/src/llm/system-prompt/strip-hibsml.ts +52 -0
- package/src/llm/tool-manifest/ask_user_input.ts +37 -0
- package/src/llm/tool-manifest/bash.ts +25 -0
- package/src/llm/tool-manifest/create_file.ts +26 -0
- package/src/llm/tool-manifest/fetch_sports_data.ts +28 -0
- package/src/llm/tool-manifest/image_search.ts +26 -0
- package/src/llm/tool-manifest/index.ts +88 -0
- package/src/llm/tool-manifest/mcp.ts +46 -0
- package/src/llm/tool-manifest/message_compose.ts +33 -0
- package/src/llm/tool-manifest/places.ts +86 -0
- package/src/llm/tool-manifest/present_files.ts +23 -0
- package/src/llm/tool-manifest/recipe.ts +42 -0
- package/src/llm/tool-manifest/recommend_apps.ts +25 -0
- package/src/llm/tool-manifest/str_replace.ts +29 -0
- package/src/llm/tool-manifest/types.ts +52 -0
- package/src/llm/tool-manifest/view.ts +26 -0
- package/src/llm/tool-manifest/weather.ts +29 -0
- package/src/llm/tool-manifest/web.ts +54 -0
- package/src/network/p2p-direct.ts +22 -0
- package/src/network/source-intent-broadcaster.ts +242 -0
- package/src/network/source-intent.ts +167 -0
- package/src/security/context-router-tool.ts +1 -1
- package/src/security/input-scanner.ts +287 -0
- package/src/web/client.js +271 -2817
- package/src/web/client.ts +4326 -0
- package/src/web/index.html +58 -67
- package/src/web/server.ts +301 -141
- package/src/web/style.css +531 -249
- package/src/web/ui/message-renderer.ts +540 -0
- package/src/web/ui/step-timeline.ts +394 -0
- package/test-results/.last-run.json +6 -0
- package/test-results/src-test-web-loop-status-b-5734c-atus-bar-/346/230/276/347/244/272-spinner-/344/270/215/346/230/276/347/244/272/345/276/252/347/216/257/350/256/241/346/225/260/error-context.md +285 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
- generic [ref=e2]:
|
|
2
|
+
- complementary [ref=e3]:
|
|
3
|
+
- generic [ref=e4]:
|
|
4
|
+
- button "收起侧边栏" [ref=e5] [cursor=pointer]:
|
|
5
|
+
- img [ref=e6]
|
|
6
|
+
- generic [ref=e8]:
|
|
7
|
+
- generic [ref=e9]: ◈
|
|
8
|
+
- generic [ref=e10]: Bolloon
|
|
9
|
+
- generic [ref=e11]:
|
|
10
|
+
- generic [ref=e13]: 智能体
|
|
11
|
+
- button "新建智能体" [ref=e14] [cursor=pointer]:
|
|
12
|
+
- img [ref=e15]
|
|
13
|
+
- generic [ref=e16]: 新建智能体
|
|
14
|
+
- list [ref=e17]:
|
|
15
|
+
- listitem [ref=e18]:
|
|
16
|
+
- generic [ref=e19] [cursor=pointer]:
|
|
17
|
+
- img [ref=e20]
|
|
18
|
+
- generic [ref=e22]: 💬
|
|
19
|
+
- generic "undefined" [ref=e23]
|
|
20
|
+
- generic [ref=e24]:
|
|
21
|
+
- generic "2 个会话" [ref=e25]: "2"
|
|
22
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e26]:
|
|
23
|
+
- img [ref=e27]
|
|
24
|
+
- button "×" [ref=e30]
|
|
25
|
+
- list
|
|
26
|
+
- listitem [ref=e31]:
|
|
27
|
+
- generic [ref=e32] [cursor=pointer]:
|
|
28
|
+
- img [ref=e33]
|
|
29
|
+
- generic [ref=e35]: 💬
|
|
30
|
+
- generic "undefined" [ref=e36]
|
|
31
|
+
- generic [ref=e37]:
|
|
32
|
+
- generic "3 个会话" [ref=e38]: "3"
|
|
33
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e39]:
|
|
34
|
+
- img [ref=e40]
|
|
35
|
+
- button "×" [ref=e43]
|
|
36
|
+
- listitem [ref=e44]:
|
|
37
|
+
- generic [ref=e45] [cursor=pointer]:
|
|
38
|
+
- img [ref=e46]
|
|
39
|
+
- generic [ref=e48]: 💬
|
|
40
|
+
- generic "undefined" [ref=e49]
|
|
41
|
+
- generic [ref=e50]:
|
|
42
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e51]:
|
|
43
|
+
- img [ref=e52]
|
|
44
|
+
- button "×" [ref=e55]
|
|
45
|
+
- listitem [ref=e56]:
|
|
46
|
+
- generic [ref=e57] [cursor=pointer]:
|
|
47
|
+
- img [ref=e58]
|
|
48
|
+
- generic [ref=e60]: 💬
|
|
49
|
+
- generic "undefined" [ref=e61]
|
|
50
|
+
- generic [ref=e62]:
|
|
51
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e63]:
|
|
52
|
+
- img [ref=e64]
|
|
53
|
+
- button "×" [ref=e67]
|
|
54
|
+
- listitem [ref=e68]:
|
|
55
|
+
- generic [ref=e69] [cursor=pointer]:
|
|
56
|
+
- img [ref=e70]
|
|
57
|
+
- generic [ref=e72]: 💬
|
|
58
|
+
- generic "undefined" [ref=e73]
|
|
59
|
+
- generic [ref=e74]:
|
|
60
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e75]:
|
|
61
|
+
- img [ref=e76]
|
|
62
|
+
- button "×" [ref=e79]
|
|
63
|
+
- listitem [ref=e80]:
|
|
64
|
+
- generic [ref=e81] [cursor=pointer]:
|
|
65
|
+
- img [ref=e82]
|
|
66
|
+
- generic [ref=e84]: 💬
|
|
67
|
+
- generic "undefined" [ref=e85]
|
|
68
|
+
- generic [ref=e86]:
|
|
69
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e87]:
|
|
70
|
+
- img [ref=e88]
|
|
71
|
+
- button "×" [ref=e91]
|
|
72
|
+
- listitem [ref=e92]:
|
|
73
|
+
- generic [ref=e93] [cursor=pointer]:
|
|
74
|
+
- img [ref=e94]
|
|
75
|
+
- generic [ref=e96]: 💬
|
|
76
|
+
- generic "undefined" [ref=e97]
|
|
77
|
+
- generic [ref=e98]:
|
|
78
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e99]:
|
|
79
|
+
- img [ref=e100]
|
|
80
|
+
- button "×" [ref=e103]
|
|
81
|
+
- generic "拖动调整上方/下方高度" [ref=e104]
|
|
82
|
+
- generic [ref=e105]:
|
|
83
|
+
- generic [ref=e106] [cursor=pointer]:
|
|
84
|
+
- generic [ref=e107]:
|
|
85
|
+
- generic [ref=e108]: ▼
|
|
86
|
+
- generic [ref=e109]: P2P 好友
|
|
87
|
+
- generic [ref=e110]:
|
|
88
|
+
- button "⊞ 展开" [ref=e111]
|
|
89
|
+
- button "我的 ID" [ref=e112]
|
|
90
|
+
- button "+ 好友" [ref=e113]
|
|
91
|
+
- list [ref=e114]:
|
|
92
|
+
- listitem [ref=e115]:
|
|
93
|
+
- generic [ref=e116] [cursor=pointer]:
|
|
94
|
+
- button "▾" [ref=e117]
|
|
95
|
+
- generic [ref=e118]: 👤
|
|
96
|
+
- generic "undefined" [ref=e119]
|
|
97
|
+
- generic [ref=e120]: 4 ch · 2026/6/16
|
|
98
|
+
- button "📤" [ref=e121]
|
|
99
|
+
- listitem [ref=e122]:
|
|
100
|
+
- generic [ref=e123] [cursor=pointer]:
|
|
101
|
+
- button "▾" [ref=e124]
|
|
102
|
+
- generic [ref=e125]: 👤
|
|
103
|
+
- generic "undefined" [ref=e126]
|
|
104
|
+
- generic [ref=e127]: 2026/6/16
|
|
105
|
+
- button "📤" [ref=e128]
|
|
106
|
+
- listitem [ref=e129]:
|
|
107
|
+
- generic [ref=e130] [cursor=pointer]:
|
|
108
|
+
- button "▾" [ref=e131]
|
|
109
|
+
- generic [ref=e132]: ❔
|
|
110
|
+
- generic "undefined" [ref=e133]
|
|
111
|
+
- generic [ref=e134]: 陌生 peer
|
|
112
|
+
- button "📤" [ref=e135]
|
|
113
|
+
- generic [ref=e139]: 已连接
|
|
114
|
+
- main [ref=e140]:
|
|
115
|
+
- generic [ref=e141]:
|
|
116
|
+
- heading "小白" [level=1] [ref=e144]
|
|
117
|
+
- generic [ref=e145]:
|
|
118
|
+
- button "切换主题" [ref=e146] [cursor=pointer]:
|
|
119
|
+
- img [ref=e147]
|
|
120
|
+
- button "API 配置" [ref=e153] [cursor=pointer]:
|
|
121
|
+
- img [ref=e154]
|
|
122
|
+
- button "钱包管理" [ref=e157] [cursor=pointer]:
|
|
123
|
+
- img [ref=e158]
|
|
124
|
+
- button "326" [ref=e162] [cursor=pointer]:
|
|
125
|
+
- img [ref=e163]
|
|
126
|
+
- generic [ref=e166]: "326"
|
|
127
|
+
- generic [ref=e170]:
|
|
128
|
+
- textbox "输入消息..." [ref=e171]
|
|
129
|
+
- button "发送 (Enter)" [ref=e172] [cursor=pointer]:
|
|
130
|
+
- img [ref=e173]
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
- generic [ref=e2]:
|
|
2
|
+
- complementary [ref=e3]:
|
|
3
|
+
- generic [ref=e4]:
|
|
4
|
+
- button "收起侧边栏" [ref=e5] [cursor=pointer]:
|
|
5
|
+
- img [ref=e6]
|
|
6
|
+
- generic [ref=e8]:
|
|
7
|
+
- generic [ref=e9]: ◈
|
|
8
|
+
- generic [ref=e10]: Bolloon
|
|
9
|
+
- generic [ref=e11]:
|
|
10
|
+
- generic [ref=e13]: 智能体
|
|
11
|
+
- button "新建智能体" [ref=e14] [cursor=pointer]:
|
|
12
|
+
- img [ref=e15]
|
|
13
|
+
- generic [ref=e16]: 新建智能体
|
|
14
|
+
- list [ref=e17]:
|
|
15
|
+
- listitem [ref=e18]:
|
|
16
|
+
- generic [ref=e19] [cursor=pointer]:
|
|
17
|
+
- img [ref=e20]
|
|
18
|
+
- generic [ref=e22]: 💬
|
|
19
|
+
- generic "undefined" [ref=e23]
|
|
20
|
+
- generic [ref=e24]:
|
|
21
|
+
- generic "2 个会话" [ref=e25]: "2"
|
|
22
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e26]:
|
|
23
|
+
- img [ref=e27]
|
|
24
|
+
- button "×" [ref=e30]
|
|
25
|
+
- list
|
|
26
|
+
- listitem [ref=e31]:
|
|
27
|
+
- generic [ref=e32] [cursor=pointer]:
|
|
28
|
+
- img [ref=e33]
|
|
29
|
+
- generic [ref=e35]: 💬
|
|
30
|
+
- generic "undefined" [ref=e36]
|
|
31
|
+
- generic [ref=e37]:
|
|
32
|
+
- generic "3 个会话" [ref=e38]: "3"
|
|
33
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e39]:
|
|
34
|
+
- img [ref=e40]
|
|
35
|
+
- button "×" [ref=e43]
|
|
36
|
+
- listitem [ref=e44]:
|
|
37
|
+
- generic [ref=e45] [cursor=pointer]:
|
|
38
|
+
- img [ref=e46]
|
|
39
|
+
- generic [ref=e48]: 💬
|
|
40
|
+
- generic "undefined" [ref=e49]
|
|
41
|
+
- generic [ref=e50]:
|
|
42
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e51]:
|
|
43
|
+
- img [ref=e52]
|
|
44
|
+
- button "×" [ref=e55]
|
|
45
|
+
- listitem [ref=e56]:
|
|
46
|
+
- generic [ref=e57] [cursor=pointer]:
|
|
47
|
+
- img [ref=e58]
|
|
48
|
+
- generic [ref=e60]: 💬
|
|
49
|
+
- generic "undefined" [ref=e61]
|
|
50
|
+
- generic [ref=e62]:
|
|
51
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e63]:
|
|
52
|
+
- img [ref=e64]
|
|
53
|
+
- button "×" [ref=e67]
|
|
54
|
+
- listitem [ref=e68]:
|
|
55
|
+
- generic [ref=e69] [cursor=pointer]:
|
|
56
|
+
- img [ref=e70]
|
|
57
|
+
- generic [ref=e72]: 💬
|
|
58
|
+
- generic "undefined" [ref=e73]
|
|
59
|
+
- generic [ref=e74]:
|
|
60
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e75]:
|
|
61
|
+
- img [ref=e76]
|
|
62
|
+
- button "×" [ref=e79]
|
|
63
|
+
- listitem [ref=e80]:
|
|
64
|
+
- generic [ref=e81] [cursor=pointer]:
|
|
65
|
+
- img [ref=e82]
|
|
66
|
+
- generic [ref=e84]: 💬
|
|
67
|
+
- generic "undefined" [ref=e85]
|
|
68
|
+
- generic [ref=e86]:
|
|
69
|
+
- generic "3 个会话" [ref=e87]: "3"
|
|
70
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e88]:
|
|
71
|
+
- img [ref=e89]
|
|
72
|
+
- button "×" [ref=e92]
|
|
73
|
+
- listitem [ref=e93]:
|
|
74
|
+
- generic [ref=e94] [cursor=pointer]:
|
|
75
|
+
- img [ref=e95]
|
|
76
|
+
- generic [ref=e97]: 💬
|
|
77
|
+
- generic "undefined" [ref=e98]
|
|
78
|
+
- generic [ref=e99]:
|
|
79
|
+
- button "配置智能体 (钱包 / 工具)" [ref=e100]:
|
|
80
|
+
- img [ref=e101]
|
|
81
|
+
- button "×" [ref=e104]
|
|
82
|
+
- generic "拖动调整上方/下方高度" [ref=e105]
|
|
83
|
+
- generic [ref=e106]:
|
|
84
|
+
- generic [ref=e107] [cursor=pointer]:
|
|
85
|
+
- generic [ref=e108]:
|
|
86
|
+
- generic [ref=e109]: ▼
|
|
87
|
+
- generic [ref=e110]: P2P 好友
|
|
88
|
+
- generic [ref=e111]:
|
|
89
|
+
- button "⊞ 展开" [ref=e112]
|
|
90
|
+
- button "我的 ID" [ref=e113]
|
|
91
|
+
- button "+ 好友" [ref=e114]
|
|
92
|
+
- list [ref=e115]:
|
|
93
|
+
- listitem [ref=e116]:
|
|
94
|
+
- generic [ref=e117] [cursor=pointer]:
|
|
95
|
+
- button "▾" [ref=e118]
|
|
96
|
+
- generic [ref=e119]: 👤
|
|
97
|
+
- generic "undefined" [ref=e120]
|
|
98
|
+
- generic [ref=e121]: 4 ch · 2026/6/16
|
|
99
|
+
- button "📤" [ref=e122]
|
|
100
|
+
- listitem [ref=e123]:
|
|
101
|
+
- generic [ref=e124] [cursor=pointer]:
|
|
102
|
+
- button "▾" [ref=e125]
|
|
103
|
+
- generic [ref=e126]: 👤
|
|
104
|
+
- generic "undefined" [ref=e127]
|
|
105
|
+
- generic [ref=e128]: 2026/6/16
|
|
106
|
+
- button "📤" [ref=e129]
|
|
107
|
+
- listitem [ref=e130]:
|
|
108
|
+
- generic [ref=e131] [cursor=pointer]:
|
|
109
|
+
- button "▾" [ref=e132]
|
|
110
|
+
- generic [ref=e133]: ❔
|
|
111
|
+
- generic "undefined" [ref=e134]
|
|
112
|
+
- generic [ref=e135]: 陌生 peer
|
|
113
|
+
- button "📤" [ref=e136]
|
|
114
|
+
- generic [ref=e140]: 已连接
|
|
115
|
+
- main [ref=e141]:
|
|
116
|
+
- generic [ref=e142]:
|
|
117
|
+
- heading "小白" [level=1] [ref=e145]
|
|
118
|
+
- generic [ref=e146]:
|
|
119
|
+
- button "切换主题" [ref=e147] [cursor=pointer]:
|
|
120
|
+
- img [ref=e148]
|
|
121
|
+
- button "API 配置" [ref=e154] [cursor=pointer]:
|
|
122
|
+
- img [ref=e155]
|
|
123
|
+
- button "钱包管理" [ref=e158] [cursor=pointer]:
|
|
124
|
+
- img [ref=e159]
|
|
125
|
+
- button "326" [ref=e163] [cursor=pointer]:
|
|
126
|
+
- img [ref=e164]
|
|
127
|
+
- generic [ref=e167]: "326"
|
|
128
|
+
- generic [ref=e171]:
|
|
129
|
+
- textbox "输入消息..." [ref=e172]
|
|
130
|
+
- button "发送 (Enter)" [ref=e173] [cursor=pointer]:
|
|
131
|
+
- img [ref=e174]
|
package/Bolloon.md
CHANGED
|
@@ -26,14 +26,18 @@
|
|
|
26
26
|
|
|
27
27
|
| 路径 | 职责 |
|
|
28
28
|
|---|---|
|
|
29
|
-
| `src/agents/pi-sdk.ts` | PiAgent 主类 / ReAct 循环 / 工具注册 / SessionStart/Stop hook 接入点 |
|
|
29
|
+
| `src/agents/pi-sdk.ts` | PiAgent 主类 / ReAct 循环 / 工具注册 / SessionStart/Stop/PreToolUse hook 接入点 |
|
|
30
|
+
| `src/agents/permission-mode.ts` | **本轮新增** — 3 种 permission mode (default/acceptEdits/bypassPermissions) + 解析 |
|
|
31
|
+
| `src/agents/pre-tool-validator.ts` | **本轮新增** — PreToolUse 4 步链式校验 (modeGate/blacklist/shell-guard/schema) |
|
|
30
32
|
| `src/pi-ecosystem-judgment/` | **判断力系统核心**:注入门 / 蒸馏 / 演化 / 自适应扫描 / 监控门 |
|
|
33
|
+
| `src/context-compaction/` | **本轮新增** — 5 层上下文压缩流水线 (Budget Reduction / Snip / Microcompact / Context Collapse / Auto-Compact) |
|
|
34
|
+
| `src/bootstrap/context-hierarchy.ts` | **本轮新增** — Bolloon.md 4 级层次 (Managed / User / Project / Local) |
|
|
31
35
|
| `src/web/server.ts` | Web server 主入口 (port 54188), 所有 REST API |
|
|
32
36
|
| `src/web/client.js` | 前端 (timeline panel, 反向引用链接, 自适应 tab) |
|
|
33
37
|
| `src/network/` | P2P 网络层 (iroh-bootstrap, p2p-direct) |
|
|
34
38
|
| `src/constraint-runtime/` | Workflow / 技能注册 / 会话持久化 |
|
|
35
39
|
| `src/social/` | 全局共享上下文 / 智能体心跳 / 协作任务 |
|
|
36
|
-
| `src/bootstrap/` |
|
|
40
|
+
| `src/bootstrap/` | 启动上下文收集 / SessionStart/Stop/cron 入口 |
|
|
37
41
|
| `~/.bolloon/` | 用户数据目录 (本机资产, 不进 git) |
|
|
38
42
|
|
|
39
43
|
## 关键设计意图
|
|
@@ -80,7 +84,7 @@ AI 回复下方挂极简 `📎 参考 N 条原则` 链接(不展开内嵌)
|
|
|
80
84
|
- `human-values/usage.jsonl` — 注入门使用记录
|
|
81
85
|
- `human-values/violations.jsonl` — 监控门违规记录
|
|
82
86
|
- `human-values/evolution.jsonl` — 类 B 自适应演化日志
|
|
83
|
-
- `persona.json` —
|
|
87
|
+
- `persona.json` — 用户身份
|
|
84
88
|
- `sessions/<channel>/` — 每个 channel 的会话持久化
|
|
85
89
|
- `skills/` — 用户级 skills (与 .bolloon/skills/ 项目级并存)
|
|
86
90
|
|
|
@@ -97,7 +101,44 @@ AI 回复下方挂极简 `📎 参考 N 条原则` 链接(不展开内嵌)
|
|
|
97
101
|
|
|
98
102
|
- **类 B 自适应**每天 0:00 跑 1 次,重启 bolloon 期间不补跑
|
|
99
103
|
- **Context 缓存 24h**——中途改 Bolloon.md / persona / git commit 后, 重启才生效
|
|
100
|
-
- **PreToolUse
|
|
104
|
+
- **PreToolUse 4 步链已接** — `onPreToolUse` 串接 modeGate + blacklist + shell-guard + schema;
|
|
105
|
+
shell 工具永远走 shell-guard, bypassPermissions 仍受路径黑名单约束
|
|
106
|
+
- **5 层压缩**: 同步层 (Budget Reduction / Snip / Microcompact) 在 `buildContext` 跑;
|
|
107
|
+
异步层 (Context Collapse / Auto-Compact) feature flag 默认关闭, 后续接 LLM 后启用
|
|
108
|
+
- **Bolloon.md 4 级层次** — 同时识别 Managed / User / Project / Local, 兼容旧 Bolloon.md;
|
|
109
|
+
按 `managed → user → project → local` 顺序拼接到 system prompt, 截断优先保 managed
|
|
101
110
|
- **Stop hook 写 session 摘要**——不重复写完整 session 持久化(已存在)
|
|
102
111
|
- **跨 channel Context**——目前不分 channel, 单 channel 维度
|
|
103
112
|
- **embedding 检索**——上轮做了软相似度 (bigram) 兜底, 真 embedding 等 5k+ 条库再做
|
|
113
|
+
|
|
114
|
+
## 3 个吸收自 Claude Code 的子系统 (本轮新增)
|
|
115
|
+
|
|
116
|
+
### 5 层上下文压缩 (src/context-compaction/)
|
|
117
|
+
严格对齐论文 5 个 shaper, 由便宜到重:
|
|
118
|
+
1. **Budget Reduction** (总是跑) — 截断 > 4000 字符的单条消息
|
|
119
|
+
2. **Snip** (`BOLLOON_SNIP_ENABLED=1` 开启) — 裁掉老 history, 保留最近 20 对
|
|
120
|
+
3. **Microcompact** (总是跑) — 折叠老 tool_result, 保留最近 3 条完整
|
|
121
|
+
4. **Context Collapse** (`BOLLOON_CONTEXT_COLLAPSE=1` 开启) — 读时虚拟投影, 折叠前 5 对
|
|
122
|
+
5. **Auto-Compact** (兜底) — LLM 摘要, 缓存到 `~/.bolloon/sessions/compaction-cache/`
|
|
123
|
+
|
|
124
|
+
**关键不变量**: 第 1-3 层不破坏 messageHistory 内存结构, 第 4 层读时投影, 第 5 层破坏性.
|
|
125
|
+
|
|
126
|
+
### Bolloon.md 4 级层次 (src/bootstrap/context-hierarchy.ts)
|
|
127
|
+
| 优先级 | 路径 | 用途 |
|
|
128
|
+
|---|---|---|
|
|
129
|
+
| 1 | `/etc/bolloon/Bolloon.md` | Managed (企业 IT 部署预留) |
|
|
130
|
+
| 2 | `~/.bolloon/Bolloon.md` | User (用户级, 跨项目) |
|
|
131
|
+
| 3 | `<cwd>/Bolloon.md` (兼容 Bolloon.md / `.claude/rules/*.md`) | Project (项目级) |
|
|
132
|
+
| 4 | `<cwd>/CLAUDE.local.md` | Local (个人覆盖, .gitignore) |
|
|
133
|
+
|
|
134
|
+
按 `managed → user → project → local` 顺序拼接到 system prompt 顶部, 截断时反向砍,
|
|
135
|
+
**优先保 managed** (bolloon 自身约束).
|
|
136
|
+
|
|
137
|
+
### PreToolUse + 权限模式 (src/agents/permission-mode.ts + pre-tool-validator.ts)
|
|
138
|
+
3 种 mode: `default` (默认) / `acceptEdits` (跳过 edit_* 黑名单) / `bypassPermissions` (跳过非 shell 黑名单).
|
|
139
|
+
|
|
140
|
+
4 步链: `modeGate → blacklistGate (6 模式危险命令) → shellGuardGate (路径黑名单) → schemaGate (stub)`.
|
|
141
|
+
|
|
142
|
+
**关键约束**: shell 工具永远走 shell-guard, bypassPermissions 仍受 `.bolloon/` / `pi-sdk.ts` / `shell-guard.ts` / `.env` 路径黑名单保护.
|
|
143
|
+
|
|
144
|
+
环境变量: `BOLLOON_PERM_MODE=default|acceptEdits|bypassPermissions` (运行时切换).
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use this work, please cite it as below."
|
|
3
|
+
title: "Dive into Claude Code: The Design Space of Today's AI Agent System"
|
|
4
|
+
# TODO: Update authors
|
|
5
|
+
authors:
|
|
6
|
+
- name: "To be updated"
|
|
7
|
+
date-released: 2026-04-11
|
|
8
|
+
url: "https://github.com/VILA-Lab/Dive-into-Claude-Code"
|
|
9
|
+
license: CC-BY-NC-SA-4.0
|
|
10
|
+
preferred-citation:
|
|
11
|
+
type: article
|
|
12
|
+
title: "Dive into Claude Code: The Design Space of Today's AI Agent System"
|
|
13
|
+
# TODO: Update authors
|
|
14
|
+
authors:
|
|
15
|
+
- name: "To be updated"
|
|
16
|
+
year: 2026
|
|
17
|
+
url: "https://arxiv.org/abs/2604.14228"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Attribution-NonCommercial-ShareAlike 4.0 International
|
|
2
|
+
|
|
3
|
+
=======================================================================
|
|
4
|
+
|
|
5
|
+
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
|
6
|
+
does not provide legal services or legal advice. Distribution of
|
|
7
|
+
Creative Commons public licenses does not create a lawyer-client or
|
|
8
|
+
other relationship. Creative Commons makes its licenses and related
|
|
9
|
+
information available on an "as-is" basis. Creative Commons gives no
|
|
10
|
+
warranties regarding its licenses, any material licensed under their
|
|
11
|
+
terms and conditions, or any related information. Creative Commons
|
|
12
|
+
disclaims all liability for damages resulting from their use to the
|
|
13
|
+
fullest extent possible.
|
|
14
|
+
|
|
15
|
+
Using Creative Commons Public Licenses
|
|
16
|
+
|
|
17
|
+
Creative Commons public licenses provide a standard set of terms and
|
|
18
|
+
conditions that creators and other rights holders may use to share
|
|
19
|
+
original works of authorship and other material subject to copyright
|
|
20
|
+
and certain other rights specified in the public license below. The
|
|
21
|
+
following considerations are for informational purposes only, are not
|
|
22
|
+
exhaustive, and do not form part of our licenses.
|
|
23
|
+
|
|
24
|
+
For the full license text, please see:
|
|
25
|
+
https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
|