@bolloon/bolloon-agent 0.3.44 → 0.3.45

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 (214) hide show
  1. package/README.md +135 -135
  2. package/bin/bolloon-cli.cjs +183 -183
  3. package/bin/bolloon-daemon.sh +207 -0
  4. package/bin/bolloon.cjs +0 -0
  5. package/dist/agents/constraint-layer.js +19 -19
  6. package/dist/agents/judgment-protocol.js +14 -14
  7. package/dist/agents/pi-sdk-types.js +12 -12
  8. package/dist/agents/pi-sdk.js +148 -89
  9. package/dist/agents/skill-writer.js +19 -0
  10. package/dist/agents/workflow-pivot-loop.js +2 -2
  11. package/dist/bollharness/src/scripts/deploy-guard.js +8 -8
  12. package/dist/bollharness-integration/context-router-judgment.js +4 -4
  13. package/dist/bollharness-integration/context-router.js +292 -292
  14. package/dist/bollharness-integration/gate-state-machine.js +13 -13
  15. package/dist/bollharness-integration/llm-judgment-engine.js +134 -134
  16. package/dist/bollharness-integration/skill-adapter.js +21 -21
  17. package/dist/bootstrap/chat-archiver.js +14 -14
  18. package/dist/bootstrap/context-os.js +21 -21
  19. package/dist/bootstrap/memory-compressor.js +29 -13
  20. package/dist/cli-entry.js +36 -36
  21. package/dist/constraint-runtime/reference_data/archive_surface_snapshot.json +63 -0
  22. package/dist/constraint-runtime/reference_data/commands_snapshot.json +1037 -0
  23. package/dist/constraint-runtime/reference_data/subsystems/assistant.json +8 -0
  24. package/dist/constraint-runtime/reference_data/subsystems/bootstrap.json +8 -0
  25. package/dist/constraint-runtime/reference_data/subsystems/bridge.json +32 -0
  26. package/dist/constraint-runtime/reference_data/subsystems/buddy.json +13 -0
  27. package/dist/constraint-runtime/reference_data/subsystems/cli.json +26 -0
  28. package/dist/constraint-runtime/reference_data/subsystems/components.json +32 -0
  29. package/dist/constraint-runtime/reference_data/subsystems/constants.json +28 -0
  30. package/dist/constraint-runtime/reference_data/subsystems/coordinator.json +8 -0
  31. package/dist/constraint-runtime/reference_data/subsystems/entrypoints.json +15 -0
  32. package/dist/constraint-runtime/reference_data/subsystems/hooks.json +32 -0
  33. package/dist/constraint-runtime/reference_data/subsystems/keybindings.json +21 -0
  34. package/dist/constraint-runtime/reference_data/subsystems/memdir.json +15 -0
  35. package/dist/constraint-runtime/reference_data/subsystems/migrations.json +18 -0
  36. package/dist/constraint-runtime/reference_data/subsystems/moreright.json +8 -0
  37. package/dist/constraint-runtime/reference_data/subsystems/native_ts.json +11 -0
  38. package/dist/constraint-runtime/reference_data/subsystems/outputStyles.json +8 -0
  39. package/dist/constraint-runtime/reference_data/subsystems/plugins.json +9 -0
  40. package/dist/constraint-runtime/reference_data/subsystems/remote.json +11 -0
  41. package/dist/constraint-runtime/reference_data/subsystems/schemas.json +8 -0
  42. package/dist/constraint-runtime/reference_data/subsystems/screens.json +10 -0
  43. package/dist/constraint-runtime/reference_data/subsystems/server.json +10 -0
  44. package/dist/constraint-runtime/reference_data/subsystems/services.json +32 -0
  45. package/dist/constraint-runtime/reference_data/subsystems/skills.json +27 -0
  46. package/dist/constraint-runtime/reference_data/subsystems/state.json +13 -0
  47. package/dist/constraint-runtime/reference_data/subsystems/types.json +18 -0
  48. package/dist/constraint-runtime/reference_data/subsystems/upstreamproxy.json +9 -0
  49. package/dist/constraint-runtime/reference_data/subsystems/utils.json +32 -0
  50. package/dist/constraint-runtime/reference_data/subsystems/vim.json +12 -0
  51. package/dist/constraint-runtime/reference_data/subsystems/voice.json +8 -0
  52. package/dist/constraint-runtime/reference_data/tools_snapshot.json +922 -0
  53. package/dist/constraint-runtime/setup.js +1 -1
  54. package/dist/constraint-runtime/tools/PolymarketSDK/cancelOrder.d.ts +13 -3
  55. package/dist/constraint-runtime/tools/PolymarketSDK/cancelOrder.js +16 -4
  56. package/dist/constraint-runtime/tools/PolymarketSDK/clobShared.d.ts +50 -0
  57. package/dist/constraint-runtime/tools/PolymarketSDK/clobShared.js +78 -0
  58. package/dist/constraint-runtime/tools/PolymarketSDK/createOrder.d.ts +24 -3
  59. package/dist/constraint-runtime/tools/PolymarketSDK/createOrder.js +31 -4
  60. package/dist/constraint-runtime/tools/PolymarketSDK/getMarket.d.ts +1 -0
  61. package/dist/constraint-runtime/tools/PolymarketSDK/getMarket.js +14 -3
  62. package/dist/constraint-runtime/tools/PolymarketSDK/getOrders.d.ts +11 -2
  63. package/dist/constraint-runtime/tools/PolymarketSDK/getOrders.js +23 -4
  64. package/dist/constraint-runtime/tools/PolymarketSDK/listMarkets.d.ts +4 -0
  65. package/dist/constraint-runtime/tools/PolymarketSDK/listMarkets.js +22 -2
  66. package/dist/context-compaction/auto-compact.js +7 -7
  67. package/dist/electron/config.js.map +1 -0
  68. package/dist/electron/dialogs.js.map +1 -0
  69. package/dist/electron/first-run.js +54 -54
  70. package/dist/electron/first-run.js.map +1 -0
  71. package/dist/electron/ipc.js.map +1 -0
  72. package/dist/electron/logger.js.map +1 -0
  73. package/dist/electron/main.js.map +1 -0
  74. package/dist/electron/menu.js.map +1 -0
  75. package/dist/electron/paths.js.map +1 -0
  76. package/dist/electron/server.js.map +1 -0
  77. package/dist/electron/tray.js.map +1 -0
  78. package/dist/electron/window.js.map +1 -0
  79. package/dist/electron-build/electron/first-run.js +54 -54
  80. package/dist/electron-preload.js.map +1 -1
  81. package/dist/electron.js.map +1 -1
  82. package/dist/index.js +113 -113
  83. package/dist/llm/llm-judgment-client.js +102 -102
  84. package/dist/llm/pi-ai.js +48 -48
  85. package/dist/llm/system-prompt/layers/channel/human-async.md +41 -41
  86. package/dist/llm/system-prompt/layers/channel/local.md +14 -14
  87. package/dist/llm/system-prompt/layers/channel/p2p-agent.md +18 -18
  88. package/dist/llm/system-prompt/layers/channel/p2p-peer-sync.md +51 -51
  89. package/dist/llm/system-prompt/layers/channel/p2p-proactive.md +43 -43
  90. package/dist/llm/system-prompt/layers/channel/p2p-visitor.md +19 -19
  91. package/dist/llm/system-prompt/layers/channel/session-handoff.md +61 -61
  92. package/dist/llm/system-prompt/layers/core/artifacts_storage.md +89 -89
  93. package/dist/llm/system-prompt/layers/core/evenhandedness.md +21 -21
  94. package/dist/llm/system-prompt/layers/core/external-engagement.md +73 -73
  95. package/dist/llm/system-prompt/layers/core/hibs_reminders.md +15 -15
  96. package/dist/llm/system-prompt/layers/core/identity.md +48 -48
  97. package/dist/llm/system-prompt/layers/core/knowledge.md +17 -17
  98. package/dist/llm/system-prompt/layers/core/memory_system.md +12 -12
  99. package/dist/llm/system-prompt/layers/core/network_filesystem.md +28 -28
  100. package/dist/llm/system-prompt/layers/core/refusal.md +37 -37
  101. package/dist/llm/system-prompt/layers/core/tone.md +31 -31
  102. package/dist/llm/system-prompt/layers/core/tools.thin.md +13 -13
  103. package/dist/llm/system-prompt/layers/core/wellbeing.md +41 -41
  104. package/dist/llm/system-prompt/layers/role/architect.md +20 -20
  105. package/dist/llm/system-prompt/layers/role/expert.md +19 -19
  106. package/dist/llm/system-prompt/layers/role/implementer.md +15 -15
  107. package/dist/llm/system-prompt/layers/role/security.md +15 -15
  108. package/dist/llm/system-prompt/layers/tool/artifacts.md +72 -72
  109. package/dist/llm/system-prompt/layers/tool/bash.md +25 -25
  110. package/dist/llm/system-prompt/layers/tool/goal_handoff.md +77 -77
  111. package/dist/llm/system-prompt/layers/tool/hibs_api.md +171 -171
  112. package/dist/llm/system-prompt/layers/tool/image_search.md +70 -70
  113. package/dist/llm/system-prompt/layers/tool/manifest.md +89 -89
  114. package/dist/llm/system-prompt/layers/tool/mcp_apps.md +53 -53
  115. package/dist/llm/system-prompt/layers/tool/p2p_request.md +61 -61
  116. package/dist/llm/system-prompt/layers/tool/web_search.md +83 -83
  117. package/dist/llm/tool-manifest/ask_user_input.js +1 -1
  118. package/dist/llm/tool-manifest/bash.js +3 -3
  119. package/dist/llm/tool-manifest/create_file.js +4 -4
  120. package/dist/llm/tool-manifest/fetch_sports_data.js +3 -3
  121. package/dist/llm/tool-manifest/image_search.js +2 -2
  122. package/dist/llm/tool-manifest/index.js +59 -0
  123. package/dist/llm/tool-manifest/mcp.js +2 -2
  124. package/dist/llm/tool-manifest/message_compose.js +3 -3
  125. package/dist/llm/tool-manifest/places.js +2 -2
  126. package/dist/llm/tool-manifest/present_files.js +1 -1
  127. package/dist/llm/tool-manifest/recipe.js +2 -2
  128. package/dist/llm/tool-manifest/str_replace.js +5 -5
  129. package/dist/llm/tool-manifest/view.js +3 -3
  130. package/dist/llm/tool-manifest/weather.js +4 -4
  131. package/dist/llm/tool-manifest/web.js +4 -4
  132. package/dist/orbitdb/cid-database.js +41 -0
  133. package/dist/orbitdb/did-catalog-replication.js +199 -0
  134. package/dist/orbitdb/trajectory-store.js +150 -0
  135. package/dist/pi-ecosystem-judgment/causal-judge.js +51 -51
  136. package/dist/pi-ecosystem-judgment/distill-prompt.js +42 -42
  137. package/dist/pi-ecosystem-judgment/distillation.js +14 -14
  138. package/dist/pi-ecosystem-judgment/monitor-gate.js +28 -28
  139. package/dist/pi-ecosystem-judgment/value-injection.js +102 -102
  140. package/dist/security/context-router-tool.js +15 -15
  141. package/dist/storage/did-catalog-bridge.js +271 -0
  142. package/dist/utils/auto-update.js.map +1 -0
  143. package/dist/web/api-config.html +779 -779
  144. package/dist/web/client-hearth.js +10 -10
  145. package/dist/web/client.js.map +7 -0
  146. package/dist/web/components/wallet-viem.mjs +118 -118
  147. package/dist/web/index.html +424 -424
  148. package/dist/web/manifest.json +20 -20
  149. package/dist/web/server.js +165 -13
  150. package/dist/web/style.css +4914 -4914
  151. package/package.json +193 -193
  152. package/scripts/build-cli.js +215 -215
  153. package/scripts/build-web.ts +130 -130
  154. package/scripts/postinstall.js +152 -152
  155. package/bin/bolloon.js +0 -157
  156. package/dist/pi-ecosystem-colony/index.js +0 -365
  157. package/dist/social/ant-colony/AdaptiveHeartbeat.js +0 -101
  158. package/dist/social/ant-colony/PheromoneEngine.js +0 -227
  159. package/dist/social/ant-colony/index.js +0 -6
  160. package/dist/social/ant-colony/types.js +0 -24
  161. package/dist/test/ai-judgment-test.js +0 -80
  162. package/dist/test/bollharness-integration.test.js +0 -318
  163. package/dist/test/channel-agent-multi-dialogue.js +0 -205
  164. package/dist/test/channel-heartbeat-agent-test.js +0 -201
  165. package/dist/test/constraint-layer.test.js +0 -164
  166. package/dist/test/diap-identity-test.js +0 -172
  167. package/dist/test/diap-quick-test.js +0 -62
  168. package/dist/test/global-shared-context.test.js +0 -315
  169. package/dist/test/harness-judgment-injection.test.js +0 -246
  170. package/dist/test/harness-workflow-integrator-test.js +0 -228
  171. package/dist/test/human-value-store.test.js +0 -243
  172. package/dist/test/hybrid-integration-test.js +0 -118
  173. package/dist/test/hybrid-messenger-verify.js +0 -55
  174. package/dist/test/iroh-bistream-debug.js +0 -38
  175. package/dist/test/iroh-communication.test.js +0 -66
  176. package/dist/test/iroh-debug-test.js +0 -57
  177. package/dist/test/iroh-diap-test.js +0 -71
  178. package/dist/test/iroh-direct-connect.js +0 -55
  179. package/dist/test/iroh-e2e-fixed.js +0 -89
  180. package/dist/test/iroh-e2e-same-process.js +0 -63
  181. package/dist/test/iroh-e2e.js +0 -66
  182. package/dist/test/iroh-final-e2e.js +0 -72
  183. package/dist/test/iroh-relay-test.js +0 -37
  184. package/dist/test/iroh-simple-test.js +0 -41
  185. package/dist/test/iroh-transport-verify.js +0 -54
  186. package/dist/test/iroh-transport.test.js +0 -37
  187. package/dist/test/iroh-two-nodes.js +0 -70
  188. package/dist/test/iroh-verify.js +0 -44
  189. package/dist/test/judgment-decision.test.js +0 -219
  190. package/dist/test/llm-judgment-integration.test.js +0 -220
  191. package/dist/test/p2p-agent-complex-dialogue.js +0 -385
  192. package/dist/test/p2p-agent-dialogue.js +0 -341
  193. package/dist/test/p2p-agent-full-bidirectional.js +0 -510
  194. package/dist/test/p2p-agent-harness-flow.js +0 -437
  195. package/dist/test/p2p-agent-harness-single.js +0 -143
  196. package/dist/test/p2p-ai-dialogue-test.js +0 -318
  197. package/dist/test/p2p-cid-connect-test.js +0 -195
  198. package/dist/test/p2p-connect-receiver.js +0 -69
  199. package/dist/test/p2p-doc-transfer.js +0 -110
  200. package/dist/test/p2p-identity-page-test.js +0 -77
  201. package/dist/test/p2p-iroh-test.js +0 -171
  202. package/dist/test/p2p-minimal-test.js +0 -241
  203. package/dist/test/p2p-node-1.js +0 -148
  204. package/dist/test/p2p-node-2.js +0 -148
  205. package/dist/test/p2p-server.js +0 -281
  206. package/dist/test/p2p-two-nodes-test.js +0 -438
  207. package/dist/test/pi-sdk.test.js +0 -44
  208. package/dist/test/set-persona.js +0 -40
  209. package/dist/test/simple.test.js +0 -9
  210. package/dist/test/storage-integration.test.js +0 -150
  211. package/dist/test/subagent-manager.test.js +0 -276
  212. package/dist/test/test-gate-flow.test.js +0 -81
  213. package/dist/test/workflow-engine.test.js +0 -87
  214. package/dist/test/workflow-pivot-loop.test.js +0 -246
@@ -61,6 +61,8 @@ export async function createSkill(name, description, body, opts = {}) {
61
61
  try {
62
62
  await fs.mkdir(skillDir, { recursive: true });
63
63
  await fs.writeFile(file, content, 'utf-8');
64
+ // 2026-08-08 (DID 目录写穿): skill 落盘同步进 DID 目录 skills 表 (失败静默)
65
+ catalogSkillUpsert(`skill/${safeName}`, { name: safeName, kind: 'skill', description, file, size: content.length, updatedAt: Date.now() });
64
66
  return { ok: true, path: file };
65
67
  }
66
68
  catch (e) {
@@ -115,6 +117,8 @@ export async function updateSkill(name, opts) {
115
117
  }
116
118
  const content = '---\n' + fmLines.join('\n') + '\n---\n\n' + body + '\n';
117
119
  await fs.writeFile(file, content, 'utf-8');
120
+ // 2026-08-08 (DID 目录写穿): skill 更新同步进 DID 目录 skills 表 (失败静默)
121
+ catalogSkillUpsert(`skill/${safeName}`, { name: safeName, kind: 'skill', description: String(opts.description || ''), file, size: content.length, updatedAt: Date.now() });
118
122
  return { ok: true, path: file };
119
123
  }
120
124
  catch (e) {
@@ -166,8 +170,23 @@ export async function writeSkillCandidate(c) {
166
170
  catch { /* 新文件 */ }
167
171
  const merged = { ...c, runs, body, timestamp: c.timestamp || new Date().toISOString() };
168
172
  await fs.writeFile(file, JSON.stringify(merged, null, 2), 'utf-8');
173
+ // 2026-08-08 (DID 目录写穿): 候选同步进 DID 目录 skills 表 (失败静默)
174
+ catalogSkillUpsert(`candidate/${safeName}`, {
175
+ name: safeName, kind: 'candidate', description: c.description,
176
+ file, runs, signature: c.signature, size: merged.body.length, updatedAt: Date.now(),
177
+ });
169
178
  return file;
170
179
  }
180
+ /** 2026-08-08: skill 写入 → DID 目录 skills 表写穿 (WAL 事件 → 多设备同步/OrbitDB 复制). 失败静默. */
181
+ function catalogSkillUpsert(key, data) {
182
+ (async () => {
183
+ try {
184
+ const { catalogUpsertQuiet } = await import('../storage/did-catalog-bridge.js');
185
+ await catalogUpsertQuiet('skills', key, data);
186
+ }
187
+ catch { /* 静默 */ }
188
+ })();
189
+ }
171
190
  export async function listSkillCandidates(home = os.homedir()) {
172
191
  const dir = getCandidateDir(home);
173
192
  let entries;
@@ -778,8 +778,8 @@ export class WorkflowPivotLoop {
778
778
  // 完整重装只在 iter=1 和 compact 之后两次
779
779
  const lines = fullSystemPrompt.split('\n');
780
780
  const identityLine = lines.find((l) => l.includes('你是') && !l.includes('(续)')) ?? '';
781
- return `[continuation] 你的 persona + tools + judgments 已在首轮 messageHistory 中.
782
- ${identityLine ? identityLine + '\n' : ''}当前 step 别再读 persona 全文, 继续推进任务即可.
781
+ return `[continuation] 你的 persona + tools + judgments 已在首轮 messageHistory 中.
782
+ ${identityLine ? identityLine + '\n' : ''}当前 step 别再读 persona 全文, 继续推进任务即可.
783
783
  > <final gen> 只在真完成时输出.`;
784
784
  }
785
785
  /**
@@ -104,17 +104,17 @@ function checkRsync(cmd) {
104
104
  function block(reason, host = null) {
105
105
  let guidance;
106
106
  if (host === PROD_IP) {
107
- guidance = `请使用标准部署流程:
108
- 后端: bash scripts/deploy.sh --yes
109
- Demo 正式: bash scripts/deploy-demo.sh <name> --channel prod --yes
110
- Demo 内测: bash scripts/deploy-demo.sh <name> --channel preview --yes
111
- Edge/Nginx: bash scripts/deploy-edge.sh --yes
107
+ guidance = `请使用标准部署流程:
108
+ 后端: bash scripts/deploy.sh --yes
109
+ Demo 正式: bash scripts/deploy-demo.sh <name> --channel prod --yes
110
+ Demo 内测: bash scripts/deploy-demo.sh <name> --channel preview --yes
111
+ Edge/Nginx: bash scripts/deploy-edge.sh --yes
112
112
  详见 Bolloon.md Development Commands。`;
113
113
  }
114
114
  else if (BRIDGE_VPS_HOSTS.includes(host ?? "")) {
115
- guidance = `Bridge VPS 必须走 git pull 更新路径:
116
- ssh root@${host} 'sudo -u boll git -C /opt/boll pull --ff-only'
117
- scp/rsync 直传会重新制造 orphan worktree。
115
+ guidance = `Bridge VPS 必须走 git pull 更新路径:
116
+ ssh root@${host} 'sudo -u boll git -C /opt/boll pull --ff-only'
117
+ scp/rsync 直传会重新制造 orphan worktree。
118
118
  详见 docs/issues/guard-20260408-0445-bridge-vps-orphan-worktree.md。`;
119
119
  }
120
120
  else {
@@ -253,9 +253,9 @@ export async function generateJudgmentInjection(filePath, gate, options = {}) {
253
253
  const header = gate === 3
254
254
  ? '# Plan Freeze - Decision Principles'
255
255
  : `# Gate ${gate} - Active Judgments`;
256
- return `${header}
257
- # Path: ${filePath}
258
- # Confidence: ${(result.confidence * 100).toFixed(0)}%
259
-
256
+ return `${header}
257
+ # Path: ${filePath}
258
+ # Confidence: ${(result.confidence * 100).toFixed(0)}%
259
+
260
260
  ${result.contextYaml}`;
261
261
  }