@bolloon/bolloon-agent 0.4.28 → 0.4.30

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 (473) hide show
  1. package/bin/bolloon.cjs +18 -148
  2. package/bin/bolloon.cmd +6 -3
  3. package/dist/agents/contacts/chain.js +579 -0
  4. package/dist/agents/contacts/cli.js +158 -0
  5. package/dist/agents/contacts/consent.js +124 -0
  6. package/dist/agents/contacts/grant-payload.js +45 -0
  7. package/dist/agents/contacts/grants.js +451 -0
  8. package/dist/agents/contacts/policy.js +264 -0
  9. package/dist/agents/contacts/preview-types.js +6 -0
  10. package/dist/agents/contacts/providers.js +341 -0
  11. package/dist/agents/contacts/store.js +326 -0
  12. package/dist/agents/contacts/tools.js +154 -0
  13. package/dist/agents/contacts/types.js +148 -0
  14. package/dist/agents/pi-sdk-tools.js +3 -1
  15. package/dist/agents/pi-sdk.js +14 -1
  16. package/dist/cli/update-commands.js +349 -0
  17. package/dist/cli-entry.js +41 -55
  18. package/dist/electron-build/agents/agent-gateway.js +169 -0
  19. package/dist/electron-build/agents/agent-gateway.js.map +1 -0
  20. package/dist/electron-build/agents/agent-identity-store.js +212 -0
  21. package/dist/electron-build/agents/agent-identity-store.js.map +1 -0
  22. package/dist/electron-build/agents/agent-identity.js +196 -0
  23. package/dist/electron-build/agents/agent-identity.js.map +1 -0
  24. package/dist/electron-build/agents/agent-manifest-protocol.js +151 -0
  25. package/dist/electron-build/agents/agent-manifest-protocol.js.map +1 -0
  26. package/dist/electron-build/agents/agent-registry.js +217 -0
  27. package/dist/electron-build/agents/agent-registry.js.map +1 -0
  28. package/dist/electron-build/agents/agent-reputation.js +60 -0
  29. package/dist/electron-build/agents/agent-reputation.js.map +1 -0
  30. package/dist/electron-build/agents/agent-service-client.js +186 -0
  31. package/dist/electron-build/agents/agent-service-client.js.map +1 -0
  32. package/dist/electron-build/agents/browser-cdp.js +765 -0
  33. package/dist/electron-build/agents/browser-cdp.js.map +1 -0
  34. package/dist/electron-build/agents/computer-use.js +341 -0
  35. package/dist/electron-build/agents/computer-use.js.map +1 -0
  36. package/dist/electron-build/agents/constraint-layer.js +210 -0
  37. package/dist/electron-build/agents/constraint-layer.js.map +1 -0
  38. package/dist/electron-build/agents/contacts/chain.js +619 -0
  39. package/dist/electron-build/agents/contacts/chain.js.map +1 -0
  40. package/dist/electron-build/agents/contacts/consent.js +163 -0
  41. package/dist/electron-build/agents/contacts/consent.js.map +1 -0
  42. package/dist/electron-build/agents/contacts/grant-payload.js +52 -0
  43. package/dist/electron-build/agents/contacts/grant-payload.js.map +1 -0
  44. package/dist/electron-build/agents/contacts/grants.js +500 -0
  45. package/dist/electron-build/agents/contacts/grants.js.map +1 -0
  46. package/dist/electron-build/agents/contacts/policy.js +271 -0
  47. package/dist/electron-build/agents/contacts/policy.js.map +1 -0
  48. package/dist/electron-build/agents/contacts/preview-types.js +8 -0
  49. package/dist/electron-build/agents/contacts/preview-types.js.map +1 -0
  50. package/dist/electron-build/agents/contacts/providers.js +384 -0
  51. package/dist/electron-build/agents/contacts/providers.js.map +1 -0
  52. package/dist/electron-build/agents/contacts/store.js +370 -0
  53. package/dist/electron-build/agents/contacts/store.js.map +1 -0
  54. package/dist/electron-build/agents/contacts/tools.js +159 -0
  55. package/dist/electron-build/agents/contacts/tools.js.map +1 -0
  56. package/dist/electron-build/agents/contacts/types.js +166 -0
  57. package/dist/electron-build/agents/contacts/types.js.map +1 -0
  58. package/dist/electron-build/agents/decision-store.js +292 -0
  59. package/dist/electron-build/agents/decision-store.js.map +1 -0
  60. package/dist/electron-build/agents/deny-pipeline.js +125 -0
  61. package/dist/electron-build/agents/deny-pipeline.js.map +1 -0
  62. package/dist/electron-build/agents/economic-policy.js +172 -0
  63. package/dist/electron-build/agents/economic-policy.js.map +1 -0
  64. package/dist/electron-build/agents/error-classifier.js +125 -0
  65. package/dist/electron-build/agents/error-classifier.js.map +1 -0
  66. package/dist/electron-build/agents/execution-supervisor.js +539 -0
  67. package/dist/electron-build/agents/execution-supervisor.js.map +1 -0
  68. package/dist/electron-build/agents/external-events.js +171 -0
  69. package/dist/electron-build/agents/external-events.js.map +1 -0
  70. package/dist/electron-build/agents/gateway-join.js +315 -0
  71. package/dist/electron-build/agents/gateway-join.js.map +1 -0
  72. package/dist/electron-build/agents/gateway-network.js +505 -0
  73. package/dist/electron-build/agents/gateway-network.js.map +1 -0
  74. package/dist/electron-build/agents/goal-criteria.js +133 -0
  75. package/dist/electron-build/agents/goal-criteria.js.map +1 -0
  76. package/dist/electron-build/agents/goal-resume.js +364 -0
  77. package/dist/electron-build/agents/goal-resume.js.map +1 -0
  78. package/dist/electron-build/agents/goal-store.js +587 -0
  79. package/dist/electron-build/agents/goal-store.js.map +1 -0
  80. package/dist/electron-build/agents/intent-classifier.js +104 -0
  81. package/dist/electron-build/agents/intent-classifier.js.map +1 -0
  82. package/dist/electron-build/agents/iroh-secret.js +70 -0
  83. package/dist/electron-build/agents/iroh-secret.js.map +1 -0
  84. package/dist/electron-build/agents/loop-review.js +101 -0
  85. package/dist/electron-build/agents/loop-review.js.map +1 -0
  86. package/dist/electron-build/agents/memory-recall.js +154 -0
  87. package/dist/electron-build/agents/memory-recall.js.map +1 -0
  88. package/dist/electron-build/agents/p2p-document-tools.js +328 -0
  89. package/dist/electron-build/agents/p2p-document-tools.js.map +1 -0
  90. package/dist/electron-build/agents/parse-tool-call.js +564 -0
  91. package/dist/electron-build/agents/parse-tool-call.js.map +1 -0
  92. package/dist/electron-build/agents/patch-tool.js +205 -0
  93. package/dist/electron-build/agents/patch-tool.js.map +1 -0
  94. package/dist/electron-build/agents/payment-approval.js +183 -0
  95. package/dist/electron-build/agents/payment-approval.js.map +1 -0
  96. package/dist/electron-build/agents/payment-gate.js +139 -0
  97. package/dist/electron-build/agents/payment-gate.js.map +1 -0
  98. package/dist/electron-build/agents/permission-mode.js +124 -0
  99. package/dist/electron-build/agents/permission-mode.js.map +1 -0
  100. package/dist/electron-build/agents/pi-harness.js +268 -0
  101. package/dist/electron-build/agents/pi-harness.js.map +1 -0
  102. package/dist/electron-build/agents/pi-sdk-session-factory.js +117 -0
  103. package/dist/electron-build/agents/pi-sdk-session-factory.js.map +1 -0
  104. package/dist/electron-build/agents/pi-sdk-session-manager.js +335 -0
  105. package/dist/electron-build/agents/pi-sdk-session-manager.js.map +1 -0
  106. package/dist/electron-build/agents/pi-sdk-tools.js +4042 -0
  107. package/dist/electron-build/agents/pi-sdk-tools.js.map +1 -0
  108. package/dist/electron-build/agents/pi-sdk-types.js +17 -0
  109. package/dist/electron-build/agents/pi-sdk-types.js.map +1 -0
  110. package/dist/electron-build/agents/pi-sdk.js +3335 -0
  111. package/dist/electron-build/agents/pi-sdk.js.map +1 -0
  112. package/dist/electron-build/agents/plan-store.js +212 -0
  113. package/dist/electron-build/agents/plan-store.js.map +1 -0
  114. package/dist/electron-build/agents/pre-tool-validator.js +200 -0
  115. package/dist/electron-build/agents/pre-tool-validator.js.map +1 -0
  116. package/dist/electron-build/agents/process-runner.js +148 -0
  117. package/dist/electron-build/agents/process-runner.js.map +1 -0
  118. package/dist/electron-build/agents/react-loop.js +131 -0
  119. package/dist/electron-build/agents/react-loop.js.map +1 -0
  120. package/dist/electron-build/agents/resource-store.js +180 -0
  121. package/dist/electron-build/agents/resource-store.js.map +1 -0
  122. package/dist/electron-build/agents/resource-token.js +118 -0
  123. package/dist/electron-build/agents/resource-token.js.map +1 -0
  124. package/dist/electron-build/agents/resource-wallet.js +84 -0
  125. package/dist/electron-build/agents/resource-wallet.js.map +1 -0
  126. package/dist/electron-build/agents/run-store.js +854 -0
  127. package/dist/electron-build/agents/run-store.js.map +1 -0
  128. package/dist/electron-build/agents/runner-resolver.js +267 -0
  129. package/dist/electron-build/agents/runner-resolver.js.map +1 -0
  130. package/dist/electron-build/agents/session-store.js +294 -0
  131. package/dist/electron-build/agents/session-store.js.map +1 -0
  132. package/dist/electron-build/agents/shell-guard.js +465 -0
  133. package/dist/electron-build/agents/shell-guard.js.map +1 -0
  134. package/dist/electron-build/agents/shell-tool.js +102 -0
  135. package/dist/electron-build/agents/shell-tool.js.map +1 -0
  136. package/dist/electron-build/agents/skill-loader.js +216 -0
  137. package/dist/electron-build/agents/skill-loader.js.map +1 -0
  138. package/dist/electron-build/agents/skill-readiness.js +174 -0
  139. package/dist/electron-build/agents/skill-readiness.js.map +1 -0
  140. package/dist/electron-build/agents/skill-share.js +394 -0
  141. package/dist/electron-build/agents/skill-share.js.map +1 -0
  142. package/dist/electron-build/agents/skill-supervisor-link.js +75 -0
  143. package/dist/electron-build/agents/skill-supervisor-link.js.map +1 -0
  144. package/dist/electron-build/agents/skill-writer.js +347 -0
  145. package/dist/electron-build/agents/skill-writer.js.map +1 -0
  146. package/dist/electron-build/agents/skills-manager.js +763 -0
  147. package/dist/electron-build/agents/skills-manager.js.map +1 -0
  148. package/dist/electron-build/agents/supervisor-host.js +294 -0
  149. package/dist/electron-build/agents/supervisor-host.js.map +1 -0
  150. package/dist/electron-build/agents/task/local-seller.js +188 -0
  151. package/dist/electron-build/agents/task/local-seller.js.map +1 -0
  152. package/dist/electron-build/agents/task/report-card.js +152 -0
  153. package/dist/electron-build/agents/task/report-card.js.map +1 -0
  154. package/dist/electron-build/agents/task/resource-advisor.js +222 -0
  155. package/dist/electron-build/agents/task/resource-advisor.js.map +1 -0
  156. package/dist/electron-build/agents/task/task-budget.js +111 -0
  157. package/dist/electron-build/agents/task/task-budget.js.map +1 -0
  158. package/dist/electron-build/agents/task/task-runner.js +670 -0
  159. package/dist/electron-build/agents/task/task-runner.js.map +1 -0
  160. package/dist/electron-build/agents/task-state.js +266 -0
  161. package/dist/electron-build/agents/task-state.js.map +1 -0
  162. package/dist/electron-build/agents/tool-registry.js +141 -0
  163. package/dist/electron-build/agents/tool-registry.js.map +1 -0
  164. package/dist/electron-build/agents/treasury-bridge.js +165 -0
  165. package/dist/electron-build/agents/treasury-bridge.js.map +1 -0
  166. package/dist/electron-build/agents/user-questions.js +223 -0
  167. package/dist/electron-build/agents/user-questions.js.map +1 -0
  168. package/dist/electron-build/agents/verify-recipe.js +90 -0
  169. package/dist/electron-build/agents/verify-recipe.js.map +1 -0
  170. package/dist/electron-build/agents/workflow-engine.js +222 -0
  171. package/dist/electron-build/agents/workflow-engine.js.map +1 -0
  172. package/dist/electron-build/agents/workflow-pivot-loop.js +988 -0
  173. package/dist/electron-build/agents/workflow-pivot-loop.js.map +1 -0
  174. package/dist/electron-build/agents/write-staging.js +133 -0
  175. package/dist/electron-build/agents/write-staging.js.map +1 -0
  176. package/dist/electron-build/agents/x402/goal-run-bridge.js +115 -0
  177. package/dist/electron-build/agents/x402/goal-run-bridge.js.map +1 -0
  178. package/dist/electron-build/agents/x402/milestone-settlement.js +163 -0
  179. package/dist/electron-build/agents/x402/milestone-settlement.js.map +1 -0
  180. package/dist/electron-build/agents/x402/paid-info-protocol.js +274 -0
  181. package/dist/electron-build/agents/x402/paid-info-protocol.js.map +1 -0
  182. package/dist/electron-build/agents/x402/paid-info-store.js +409 -0
  183. package/dist/electron-build/agents/x402/paid-info-store.js.map +1 -0
  184. package/dist/electron-build/agents/x402/paid-info-tools.js +346 -0
  185. package/dist/electron-build/agents/x402/paid-info-tools.js.map +1 -0
  186. package/dist/electron-build/agents/x402/payment-recovery.js +330 -0
  187. package/dist/electron-build/agents/x402/payment-recovery.js.map +1 -0
  188. package/dist/electron-build/agents/x402/resource-contract.js +533 -0
  189. package/dist/electron-build/agents/x402/resource-contract.js.map +1 -0
  190. package/dist/electron-build/agents/x402/settlement-state.js +432 -0
  191. package/dist/electron-build/agents/x402/settlement-state.js.map +1 -0
  192. package/dist/electron-build/agents/x402/trade.js +294 -0
  193. package/dist/electron-build/agents/x402/trade.js.map +1 -0
  194. package/dist/electron-build/agents/x402/transaction-protocol.js +109 -0
  195. package/dist/electron-build/agents/x402/transaction-protocol.js.map +1 -0
  196. package/dist/electron-build/agents/x402/transaction-store.js +404 -0
  197. package/dist/electron-build/agents/x402/transaction-store.js.map +1 -0
  198. package/dist/electron-build/agents/x402/x402Pay.js +377 -0
  199. package/dist/electron-build/agents/x402/x402Pay.js.map +1 -0
  200. package/dist/electron-build/bollharness-integration/context-router-judgment.js +269 -0
  201. package/dist/electron-build/bollharness-integration/context-router-judgment.js.map +1 -0
  202. package/dist/electron-build/bollharness-integration/context-router.js +584 -0
  203. package/dist/electron-build/bollharness-integration/context-router.js.map +1 -0
  204. package/dist/electron-build/bollharness-integration/gate-state-machine.js +362 -0
  205. package/dist/electron-build/bollharness-integration/gate-state-machine.js.map +1 -0
  206. package/dist/electron-build/bollharness-integration/gate-transition-hooks.js +136 -0
  207. package/dist/electron-build/bollharness-integration/gate-transition-hooks.js.map +1 -0
  208. package/dist/electron-build/bollharness-integration/guard-checker.js +400 -0
  209. package/dist/electron-build/bollharness-integration/guard-checker.js.map +1 -0
  210. package/dist/electron-build/bollharness-integration/index.js +123 -0
  211. package/dist/electron-build/bollharness-integration/index.js.map +1 -0
  212. package/dist/electron-build/bollharness-integration/integration.js +531 -0
  213. package/dist/electron-build/bollharness-integration/integration.js.map +1 -0
  214. package/dist/electron-build/bollharness-integration/skill-adapter.js +608 -0
  215. package/dist/electron-build/bollharness-integration/skill-adapter.js.map +1 -0
  216. package/dist/electron-build/bootstrap/bootstrap.js +173 -0
  217. package/dist/electron-build/bootstrap/bootstrap.js.map +1 -0
  218. package/dist/electron-build/bootstrap/context-collector.js +358 -0
  219. package/dist/electron-build/bootstrap/context-collector.js.map +1 -0
  220. package/dist/electron-build/bootstrap/context-hierarchy.js +262 -0
  221. package/dist/electron-build/bootstrap/context-hierarchy.js.map +1 -0
  222. package/dist/electron-build/bootstrap/context-manager.js +211 -0
  223. package/dist/electron-build/bootstrap/context-manager.js.map +1 -0
  224. package/dist/electron-build/bootstrap/context-os.js +277 -0
  225. package/dist/electron-build/bootstrap/context-os.js.map +1 -0
  226. package/dist/electron-build/bootstrap/event-log.js +203 -0
  227. package/dist/electron-build/bootstrap/event-log.js.map +1 -0
  228. package/dist/electron-build/bootstrap/exhaust-scrubber.js +277 -0
  229. package/dist/electron-build/bootstrap/exhaust-scrubber.js.map +1 -0
  230. package/dist/electron-build/bootstrap/lifecycle-hooks.js +282 -0
  231. package/dist/electron-build/bootstrap/lifecycle-hooks.js.map +1 -0
  232. package/dist/electron-build/bootstrap/memory-compressor.js +377 -0
  233. package/dist/electron-build/bootstrap/memory-compressor.js.map +1 -0
  234. package/dist/electron-build/bootstrap/persona-loader.js +219 -0
  235. package/dist/electron-build/bootstrap/persona-loader.js.map +1 -0
  236. package/dist/electron-build/bootstrap/project-context.js +162 -0
  237. package/dist/electron-build/bootstrap/project-context.js.map +1 -0
  238. package/dist/electron-build/bootstrap/project-state.js +205 -0
  239. package/dist/electron-build/bootstrap/project-state.js.map +1 -0
  240. package/dist/electron-build/bootstrap/session-window.js +162 -0
  241. package/dist/electron-build/bootstrap/session-window.js.map +1 -0
  242. package/dist/electron-build/bootstrap/vector-index.js +291 -0
  243. package/dist/electron-build/bootstrap/vector-index.js.map +1 -0
  244. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js +22 -0
  245. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js.map +1 -0
  246. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/clobShared.js +86 -0
  247. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/clobShared.js.map +1 -0
  248. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/createOrder.js +37 -0
  249. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/createOrder.js.map +1 -0
  250. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/getMarket.js +20 -0
  251. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/getMarket.js.map +1 -0
  252. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/getOrders.js +29 -0
  253. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/getOrders.js.map +1 -0
  254. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js +28 -0
  255. package/dist/electron-build/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js.map +1 -0
  256. package/dist/electron-build/constraint-runtime/src/tools/SafeSDK/deploySafe.js +10 -0
  257. package/dist/electron-build/constraint-runtime/src/tools/SafeSDK/deploySafe.js.map +1 -0
  258. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/autoPay.js +68 -0
  259. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/autoPay.js.map +1 -0
  260. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/createWallet.js +14 -0
  261. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/createWallet.js.map +1 -0
  262. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/getBalance.js +17 -0
  263. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/getBalance.js.map +1 -0
  264. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/importWallet.js +59 -0
  265. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/importWallet.js.map +1 -0
  266. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/sendTransaction.js +29 -0
  267. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/sendTransaction.js.map +1 -0
  268. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/signMessage.js +14 -0
  269. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/signMessage.js.map +1 -0
  270. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/transferToken.js +29 -0
  271. package/dist/electron-build/constraint-runtime/src/tools/WalletTools/transferToken.js.map +1 -0
  272. package/dist/electron-build/constraints/index.js +11 -0
  273. package/dist/electron-build/constraints/index.js.map +1 -0
  274. package/dist/electron-build/context-compaction/auto-compact.js +182 -0
  275. package/dist/electron-build/context-compaction/auto-compact.js.map +1 -0
  276. package/dist/electron-build/context-compaction/budget-gate.js +32 -0
  277. package/dist/electron-build/context-compaction/budget-gate.js.map +1 -0
  278. package/dist/electron-build/context-compaction/budget-reduce.js +39 -0
  279. package/dist/electron-build/context-compaction/budget-reduce.js.map +1 -0
  280. package/dist/electron-build/context-compaction/context-collapse.js +71 -0
  281. package/dist/electron-build/context-compaction/context-collapse.js.map +1 -0
  282. package/dist/electron-build/context-compaction/index.js +38 -0
  283. package/dist/electron-build/context-compaction/index.js.map +1 -0
  284. package/dist/electron-build/context-compaction/microcompact.js +55 -0
  285. package/dist/electron-build/context-compaction/microcompact.js.map +1 -0
  286. package/dist/electron-build/context-compaction/pipeline.js +128 -0
  287. package/dist/electron-build/context-compaction/pipeline.js.map +1 -0
  288. package/dist/electron-build/context-compaction/snip.js +50 -0
  289. package/dist/electron-build/context-compaction/snip.js.map +1 -0
  290. package/dist/electron-build/context-compaction/token-estimator.js +40 -0
  291. package/dist/electron-build/context-compaction/token-estimator.js.map +1 -0
  292. package/dist/electron-build/context-compaction/types.js +21 -0
  293. package/dist/electron-build/context-compaction/types.js.map +1 -0
  294. package/dist/electron-build/cron/tick-lock.js +247 -0
  295. package/dist/electron-build/cron/tick-lock.js.map +1 -0
  296. package/dist/electron-build/documents/reader.js +131 -0
  297. package/dist/electron-build/documents/reader.js.map +1 -0
  298. package/dist/electron-build/documents/store.js +220 -0
  299. package/dist/electron-build/documents/store.js.map +1 -0
  300. package/dist/electron-build/external-engines/delegate-handle.js +76 -0
  301. package/dist/electron-build/external-engines/delegate-handle.js.map +1 -0
  302. package/dist/electron-build/external-engines/delegate.js +225 -0
  303. package/dist/electron-build/external-engines/delegate.js.map +1 -0
  304. package/dist/electron-build/external-engines/discovery.js +448 -0
  305. package/dist/electron-build/external-engines/discovery.js.map +1 -0
  306. package/dist/electron-build/external-engines/types.js +13 -0
  307. package/dist/electron-build/external-engines/types.js.map +1 -0
  308. package/dist/electron-build/hooks/hooks-engine.js +367 -0
  309. package/dist/electron-build/hooks/hooks-engine.js.map +1 -0
  310. package/dist/electron-build/judgeness/reflect.js +100 -0
  311. package/dist/electron-build/judgeness/reflect.js.map +1 -0
  312. package/dist/electron-build/judgeness/store.js +536 -0
  313. package/dist/electron-build/judgeness/store.js.map +1 -0
  314. package/dist/electron-build/judgeness/types.js +21 -0
  315. package/dist/electron-build/judgeness/types.js.map +1 -0
  316. package/dist/electron-build/llm/config-store.js +551 -0
  317. package/dist/electron-build/llm/config-store.js.map +1 -0
  318. package/dist/electron-build/llm/error-lessons.js +76 -0
  319. package/dist/electron-build/llm/error-lessons.js.map +1 -0
  320. package/dist/electron-build/llm/pi-ai.js +830 -0
  321. package/dist/electron-build/llm/pi-ai.js.map +1 -0
  322. package/dist/electron-build/llm/system-prompt/registry.js +318 -0
  323. package/dist/electron-build/llm/system-prompt/registry.js.map +1 -0
  324. package/dist/electron-build/llm/system-prompt/strip-hibsml.js +55 -0
  325. package/dist/electron-build/llm/system-prompt/strip-hibsml.js.map +1 -0
  326. package/dist/electron-build/locales/en.js +32 -0
  327. package/dist/electron-build/locales/en.js.map +1 -0
  328. package/dist/electron-build/locales/zh.js +30 -0
  329. package/dist/electron-build/locales/zh.js.map +1 -0
  330. package/dist/electron-build/lsp/lsp-manager.js +327 -0
  331. package/dist/electron-build/lsp/lsp-manager.js.map +1 -0
  332. package/dist/electron-build/lsp/lsp-tools.js +226 -0
  333. package/dist/electron-build/lsp/lsp-tools.js.map +1 -0
  334. package/dist/electron-build/migration/external-agent-migrator.js +451 -0
  335. package/dist/electron-build/migration/external-agent-migrator.js.map +1 -0
  336. package/dist/electron-build/network/agent-network.js +775 -0
  337. package/dist/electron-build/network/agent-network.js.map +1 -0
  338. package/dist/electron-build/network/goal-event-bridge.js +62 -0
  339. package/dist/electron-build/network/goal-event-bridge.js.map +1 -0
  340. package/dist/electron-build/network/iroh-integration.js +117 -0
  341. package/dist/electron-build/network/iroh-integration.js.map +1 -0
  342. package/dist/electron-build/network/iroh-transport.js +550 -0
  343. package/dist/electron-build/network/iroh-transport.js.map +1 -0
  344. package/dist/electron-build/network/p2p.js +1103 -0
  345. package/dist/electron-build/network/p2p.js.map +1 -0
  346. package/dist/electron-build/network/storage/adapters/json-adapter.js +416 -0
  347. package/dist/electron-build/network/storage/adapters/json-adapter.js.map +1 -0
  348. package/dist/electron-build/network/storage/types.js +18 -0
  349. package/dist/electron-build/network/storage/types.js.map +1 -0
  350. package/dist/electron-build/orbitdb/agent-tools.js +402 -0
  351. package/dist/electron-build/orbitdb/agent-tools.js.map +1 -0
  352. package/dist/electron-build/orbitdb/cid-database.js +284 -0
  353. package/dist/electron-build/orbitdb/cid-database.js.map +1 -0
  354. package/dist/electron-build/orbitdb/context-store.js +99 -0
  355. package/dist/electron-build/orbitdb/context-store.js.map +1 -0
  356. package/dist/electron-build/orbitdb/ipfs-node.js +120 -0
  357. package/dist/electron-build/orbitdb/ipfs-node.js.map +1 -0
  358. package/dist/electron-build/orbitdb/kanban-store.js +299 -0
  359. package/dist/electron-build/orbitdb/kanban-store.js.map +1 -0
  360. package/dist/electron-build/orbitdb/task-store.js +155 -0
  361. package/dist/electron-build/orbitdb/task-store.js.map +1 -0
  362. package/dist/electron-build/orbitdb/trajectory-store.js +194 -0
  363. package/dist/electron-build/orbitdb/trajectory-store.js.map +1 -0
  364. package/dist/electron-build/orbitdb/ui-cid.js +77 -0
  365. package/dist/electron-build/orbitdb/ui-cid.js.map +1 -0
  366. package/dist/electron-build/pi-ecosystem-a2ui/index.js +89 -0
  367. package/dist/electron-build/pi-ecosystem-a2ui/index.js.map +1 -0
  368. package/dist/electron-build/pi-ecosystem-goals/index.js +512 -0
  369. package/dist/electron-build/pi-ecosystem-goals/index.js.map +1 -0
  370. package/dist/electron-build/pi-ecosystem-judgment/adaptive-scan.js +325 -0
  371. package/dist/electron-build/pi-ecosystem-judgment/adaptive-scan.js.map +1 -0
  372. package/dist/electron-build/pi-ecosystem-judgment/causal-judge.js +492 -0
  373. package/dist/electron-build/pi-ecosystem-judgment/causal-judge.js.map +1 -0
  374. package/dist/electron-build/pi-ecosystem-judgment/cleanup.js +167 -0
  375. package/dist/electron-build/pi-ecosystem-judgment/cleanup.js.map +1 -0
  376. package/dist/electron-build/pi-ecosystem-judgment/decision.js +321 -0
  377. package/dist/electron-build/pi-ecosystem-judgment/decision.js.map +1 -0
  378. package/dist/electron-build/pi-ecosystem-judgment/detect-hook.js +175 -0
  379. package/dist/electron-build/pi-ecosystem-judgment/detect-hook.js.map +1 -0
  380. package/dist/electron-build/pi-ecosystem-judgment/distill-prompt.js +232 -0
  381. package/dist/electron-build/pi-ecosystem-judgment/distill-prompt.js.map +1 -0
  382. package/dist/electron-build/pi-ecosystem-judgment/distillation.js +304 -0
  383. package/dist/electron-build/pi-ecosystem-judgment/distillation.js.map +1 -0
  384. package/dist/electron-build/pi-ecosystem-judgment/evolve-judgment.js +176 -0
  385. package/dist/electron-build/pi-ecosystem-judgment/evolve-judgment.js.map +1 -0
  386. package/dist/electron-build/pi-ecosystem-judgment/human-value-pipeline.js +65 -0
  387. package/dist/electron-build/pi-ecosystem-judgment/human-value-pipeline.js.map +1 -0
  388. package/dist/electron-build/pi-ecosystem-judgment/human-value-store.js +808 -0
  389. package/dist/electron-build/pi-ecosystem-judgment/human-value-store.js.map +1 -0
  390. package/dist/electron-build/pi-ecosystem-judgment/index.js +508 -0
  391. package/dist/electron-build/pi-ecosystem-judgment/index.js.map +1 -0
  392. package/dist/electron-build/pi-ecosystem-judgment/injection-gate.js +334 -0
  393. package/dist/electron-build/pi-ecosystem-judgment/injection-gate.js.map +1 -0
  394. package/dist/electron-build/pi-ecosystem-judgment/monitor-gate.js +228 -0
  395. package/dist/electron-build/pi-ecosystem-judgment/monitor-gate.js.map +1 -0
  396. package/dist/electron-build/pi-ecosystem-judgment/value-injection.js +598 -0
  397. package/dist/electron-build/pi-ecosystem-judgment/value-injection.js.map +1 -0
  398. package/dist/electron-build/pi-ecosystem-mcp/index.js +643 -0
  399. package/dist/electron-build/pi-ecosystem-mcp/index.js.map +1 -0
  400. package/dist/electron-build/pi-ecosystem-mcp/ui-tools.js +116 -0
  401. package/dist/electron-build/pi-ecosystem-mcp/ui-tools.js.map +1 -0
  402. package/dist/electron-build/pi-ecosystem-subagents/index.js +352 -0
  403. package/dist/electron-build/pi-ecosystem-subagents/index.js.map +1 -0
  404. package/dist/electron-build/security/builtin-guards.js +133 -0
  405. package/dist/electron-build/security/builtin-guards.js.map +1 -0
  406. package/dist/electron-build/security/context-router-tool.js +111 -0
  407. package/dist/electron-build/security/context-router-tool.js.map +1 -0
  408. package/dist/electron-build/security/input-scanner.js +263 -0
  409. package/dist/electron-build/security/input-scanner.js.map +1 -0
  410. package/dist/electron-build/security/react-harness.js +148 -0
  411. package/dist/electron-build/security/react-harness.js.map +1 -0
  412. package/dist/electron-build/security/tool-gate.js +291 -0
  413. package/dist/electron-build/security/tool-gate.js.map +1 -0
  414. package/dist/electron-build/setup/setup-store.js +648 -0
  415. package/dist/electron-build/setup/setup-store.js.map +1 -0
  416. package/dist/electron-build/social/channels/ChannelManager.js +444 -0
  417. package/dist/electron-build/social/channels/ChannelManager.js.map +1 -0
  418. package/dist/electron-build/social/channels/DiapChannelBridge.js +451 -0
  419. package/dist/electron-build/social/channels/DiapChannelBridge.js.map +1 -0
  420. package/dist/electron-build/social/channels/InterestMatcher.js +135 -0
  421. package/dist/electron-build/social/channels/InterestMatcher.js.map +1 -0
  422. package/dist/electron-build/social/channels/types.js +21 -0
  423. package/dist/electron-build/social/channels/types.js.map +1 -0
  424. package/dist/electron-build/social/global-shared-context.js +368 -0
  425. package/dist/electron-build/social/global-shared-context.js.map +1 -0
  426. package/dist/electron-build/social/heartbeat.js +882 -0
  427. package/dist/electron-build/social/heartbeat.js.map +1 -0
  428. package/dist/electron-build/storage/did-catalog-bridge.js +314 -0
  429. package/dist/electron-build/storage/did-catalog-bridge.js.map +1 -0
  430. package/dist/electron-build/storage/did-catalog.js +272 -0
  431. package/dist/electron-build/storage/did-catalog.js.map +1 -0
  432. package/dist/electron-build/utils/auto-update.js +140 -558
  433. package/dist/electron-build/utils/auto-update.js.map +1 -1
  434. package/dist/electron-build/utils/module-context.js +98 -0
  435. package/dist/electron-build/utils/module-context.js.map +1 -0
  436. package/dist/electron-build/utils/runtime-bootstrap.js +745 -0
  437. package/dist/electron-build/utils/runtime-bootstrap.js.map +1 -0
  438. package/dist/electron-build/utils/update-manager.js +770 -0
  439. package/dist/electron-build/utils/update-manager.js.map +1 -0
  440. package/dist/electron-build/utils/update-state.js +406 -0
  441. package/dist/electron-build/utils/update-state.js.map +1 -0
  442. package/dist/electron-build/utils/version-info.js +562 -0
  443. package/dist/electron-build/utils/version-info.js.map +1 -0
  444. package/dist/electron-build/web/i18n.js +146 -0
  445. package/dist/electron-build/web/i18n.js.map +1 -0
  446. package/dist/electron-build/web/routes-x402-info.js +232 -0
  447. package/dist/electron-build/web/routes-x402-info.js.map +1 -0
  448. package/dist/electron-build/web/server-storage.js +390 -0
  449. package/dist/electron-build/web/server-storage.js.map +1 -0
  450. package/dist/electron-build/web/server-types.js +52 -0
  451. package/dist/electron-build/web/server-types.js.map +1 -0
  452. package/dist/electron-build/web/task-deps.js +41 -0
  453. package/dist/electron-build/web/task-deps.js.map +1 -0
  454. package/dist/index.js +58 -27
  455. package/dist/llm/system-prompt/registry.js +6 -3
  456. package/dist/security/tool-gate.js +4 -0
  457. package/dist/utils/auto-update.js +138 -525
  458. package/dist/utils/module-context.js +59 -0
  459. package/dist/utils/runtime-bootstrap.js +682 -0
  460. package/dist/utils/update-cli.js +82 -0
  461. package/dist/utils/update-health.js +401 -0
  462. package/dist/utils/update-manager.js +716 -0
  463. package/dist/utils/update-state.js +353 -0
  464. package/dist/utils/version-info.js +510 -0
  465. package/dist/web/mobile-contacts.js +329 -0
  466. package/dist/web/mobile-core.js +481 -15
  467. package/dist/web/mobile.html +32 -0
  468. package/dist/web/mobile.js +139 -0
  469. package/dist/web/routes-contacts.js +420 -0
  470. package/dist/web/server.js +5 -0
  471. package/package.json +1 -1
  472. package/scripts/build-cli.js +32 -151
  473. package/scripts/postinstall.js +153 -76
@@ -0,0 +1,608 @@
1
+ "use strict";
2
+ /**
3
+ * Skill Adapter - Bridge between Bollharness skills and Bolloon's SkillRegistry
4
+ *
5
+ * Loads skills from src/bollharness/.claude/skills/ and adapts them for Bolloon.
6
+ *
7
+ * Skill structure (from bollharness):
8
+ * - arch: Project architect (architecture decisions, boundary freezing)
9
+ * - lead: Development workflow commander (fail-closed state machine)
10
+ * - task-arch: Task decomposition
11
+ * - harness-eng: Engineering execution
12
+ * - harness-dev: Development execution
13
+ * - harness-eng-test: Engineering testing
14
+ * - harness-ops: Operations and truth maintenance
15
+ * - harness-bridge: Bridge agent coordination
16
+ * - crystal-learn: Failure pattern extraction
17
+ * - bug-triage: Bug classification
18
+ * - bug-pipeline: Bug fix pipeline
19
+ * - guardian-fixer: Issue-to-fix workflow
20
+ * - plan-lock: Plan freezing
21
+ * - skill-discovery: Skill discovery and recommendation
22
+ * - toolkit: Toolkit management
23
+ */
24
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ var desc = Object.getOwnPropertyDescriptor(m, k);
27
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
28
+ desc = { enumerable: true, get: function() { return m[k]; } };
29
+ }
30
+ Object.defineProperty(o, k2, desc);
31
+ }) : (function(o, m, k, k2) {
32
+ if (k2 === undefined) k2 = k;
33
+ o[k2] = m[k];
34
+ }));
35
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
36
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
37
+ }) : function(o, v) {
38
+ o["default"] = v;
39
+ });
40
+ var __importStar = (this && this.__importStar) || (function () {
41
+ var ownKeys = function(o) {
42
+ ownKeys = Object.getOwnPropertyNames || function (o) {
43
+ var ar = [];
44
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
45
+ return ar;
46
+ };
47
+ return ownKeys(o);
48
+ };
49
+ return function (mod) {
50
+ if (mod && mod.__esModule) return mod;
51
+ var result = {};
52
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
53
+ __setModuleDefault(result, mod);
54
+ return result;
55
+ };
56
+ })();
57
+ Object.defineProperty(exports, "__esModule", { value: true });
58
+ exports.createSkillAdapter = exports.SkillAdapter = exports.TargetTrackerSkill = exports.HabitDistillSkill = exports.PeerSyncSkill = exports.CrystalLearnSkill = exports.HarnessEngTestSkill = exports.HarnessEngSkill = exports.TaskArchSkill = exports.LeadSkill = exports.ArchSkill = exports.BaseSkill = exports.BOLLHARNESS_SKILLS_DIR = void 0;
59
+ const constraint_runtime_1 = require("@bolloon/constraint-runtime");
60
+ const fs = __importStar(require("fs"));
61
+ const path = __importStar(require("path"));
62
+ exports.BOLLHARNESS_SKILLS_DIR = path.join('src', 'bollharness', '.claude', 'skills');
63
+ function parseYamlFrontmatter(content) {
64
+ const match = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
65
+ if (!match) {
66
+ return { metadata: { name: '', description: '', status: 'active', tier: 'entry' }, body: content };
67
+ }
68
+ const yamlStr = match[1];
69
+ const body = match[2];
70
+ const metadata = {};
71
+ for (const line of yamlStr.split('\n')) {
72
+ const colonIndex = line.indexOf(':');
73
+ if (colonIndex === -1)
74
+ continue;
75
+ const key = line.slice(0, colonIndex).trim();
76
+ let value = line.slice(colonIndex + 1).trim();
77
+ if (value === 'true')
78
+ value = true;
79
+ else if (value === 'false')
80
+ value = false;
81
+ else if (!isNaN(Number(value)) && value !== '')
82
+ value = Number(value);
83
+ metadata[key] = value;
84
+ }
85
+ return {
86
+ metadata: metadata,
87
+ body,
88
+ };
89
+ }
90
+ function loadHarnessSkill(skillPath) {
91
+ try {
92
+ const skillDir = path.dirname(skillPath);
93
+ const skillName = path.basename(skillDir);
94
+ const content = fs.readFileSync(skillPath, 'utf-8');
95
+ const { metadata } = parseYamlFrontmatter(content);
96
+ metadata.name = skillName;
97
+ return metadata;
98
+ }
99
+ catch {
100
+ return null;
101
+ }
102
+ }
103
+ function loadAllHarnessSkills() {
104
+ const skills = [];
105
+ if (!fs.existsSync(exports.BOLLHARNESS_SKILLS_DIR)) {
106
+ console.warn(`[SkillAdapter] Bollharness skills dir not found: ${exports.BOLLHARNESS_SKILLS_DIR}`);
107
+ return skills;
108
+ }
109
+ const entries = fs.readdirSync(exports.BOLLHARNESS_SKILLS_DIR, { withFileTypes: true });
110
+ for (const entry of entries) {
111
+ if (!entry.isDirectory())
112
+ continue;
113
+ const skillPath = path.join(exports.BOLLHARNESS_SKILLS_DIR, entry.name, 'SKILL.md');
114
+ if (fs.existsSync(skillPath)) {
115
+ const metadata = loadHarnessSkill(skillPath);
116
+ if (metadata) {
117
+ skills.push(metadata);
118
+ }
119
+ }
120
+ }
121
+ return skills;
122
+ }
123
+ /**
124
+ * Base skill class for bollharness-compatible skills
125
+ */
126
+ class BaseSkill {
127
+ static llm = null;
128
+ static setLlm(instance) {
129
+ BaseSkill.llm = instance;
130
+ }
131
+ log(message, level = 'info') {
132
+ const prefix = level === 'error' ? '❌' : level === 'warn' ? '⚠️' : 'ℹ️';
133
+ console.log(`${prefix} [${this.name}] ${message}`);
134
+ }
135
+ formatOutput(output) {
136
+ return JSON.stringify(output, null, 2);
137
+ }
138
+ async callLm(system, user) {
139
+ let llm = BaseSkill.llm;
140
+ if (!llm) {
141
+ try {
142
+ const { getMinimax } = await Promise.resolve().then(() => __importStar(require('../llm/pi-ai.js')));
143
+ const m = getMinimax();
144
+ if (m && typeof m.chat === 'function') {
145
+ BaseSkill.setLlm(m);
146
+ llm = m;
147
+ }
148
+ }
149
+ catch {
150
+ return this.formatOutput({ warning: 'LLM 未注入', name: this.name });
151
+ }
152
+ }
153
+ if (!llm) {
154
+ return this.formatOutput({ warning: 'LLM 未注入', name: this.name });
155
+ }
156
+ try {
157
+ const res = await llm.chat([{ role: 'user', content: user }], system);
158
+ return res.reply || '(空回复)';
159
+ }
160
+ catch (err) {
161
+ this.log(`LLM 调用失败: ${err.message}`, 'error');
162
+ return this.formatOutput({ error: `LLM 调用失败: ${err.message}` });
163
+ }
164
+ }
165
+ }
166
+ exports.BaseSkill = BaseSkill;
167
+ /**
168
+ * Architecture Skill - Project architect for architecture decisions
169
+ */
170
+ class ArchSkill extends BaseSkill {
171
+ name = 'arch';
172
+ description = 'Project architect. Responsible for architecture decisions, scheme comparison, and boundary freezing.';
173
+ async execute(params) {
174
+ const task = (params.task || params.description || params.action || '');
175
+ this.log('Analyzing architecture task');
176
+ if (!task) {
177
+ return this.formatOutput({ warning: '未提供任务', usage: '--harness-skill arch "你的架构任务"' });
178
+ }
179
+ return this.callLm('You are a senior software architect. Analyze the task and output structured JSON with fields: essence, tensions, alternatives, boundaries, recommendation.', `Architecture task: ${task}`);
180
+ }
181
+ }
182
+ exports.ArchSkill = ArchSkill;
183
+ /**
184
+ * Lead Skill - Development workflow commander (fail-closed state machine)
185
+ */
186
+ class LeadSkill extends BaseSkill {
187
+ name = 'lead';
188
+ description = 'Development workflow commander. Fail-closed state machine from idea to production code.';
189
+ currentGate = 0;
190
+ async execute(params) {
191
+ const action = params.action;
192
+ this.log('Processing lead action');
193
+ switch (action) {
194
+ case 'get_gate':
195
+ return this.getGatePack();
196
+ case 'transition':
197
+ return this.handleTransition(params);
198
+ case 'classify':
199
+ return this.classifyChange(params);
200
+ default:
201
+ return this.getGatePack();
202
+ }
203
+ }
204
+ getGatePack() {
205
+ const gates = [
206
+ { gate: 0, name: 'Problem Lock', required: 'Problem statement + Change Classification' },
207
+ { gate: 1, name: 'Architecture Design', required: 'ADR draft + Consumer list' },
208
+ { gate: 2, name: 'Architecture Review', required: 'Review report (PASS/BLOCK)' },
209
+ { gate: 3, name: 'Plan', required: 'PLAN document + Coverage matrix' },
210
+ { gate: 4, name: 'Plan Review', required: 'Review report + plan-lock' },
211
+ { gate: 5, name: 'Task Architecture', required: 'WP split + TASK.md' },
212
+ { gate: 6, name: 'Task Review', required: 'Review report (PASS/BLOCK)' },
213
+ { gate: 7, name: 'Execution', required: 'Code + LOG.md' },
214
+ { gate: 8, name: 'Final Review', required: 'Review report + Acceptance' },
215
+ ];
216
+ const current = gates[this.currentGate];
217
+ return this.formatOutput({
218
+ current_gate: this.currentGate,
219
+ gate_name: current.name,
220
+ entry_satisfied: true,
221
+ blockers: [],
222
+ required_artifact: current.required,
223
+ required_next_skill: 'arch',
224
+ available_actions: ['get_gate', 'transition', 'classify'],
225
+ });
226
+ }
227
+ handleTransition(params) {
228
+ const reviewResult = params.reviewResult;
229
+ // Check if review gate needs PASS
230
+ if (this.currentGate === 2 || this.currentGate === 4 || this.currentGate === 6 || this.currentGate === 8) {
231
+ if (!reviewResult || reviewResult.verdict !== 'PASS') {
232
+ return this.formatOutput({
233
+ transition: 'BLOCKED',
234
+ reason: 'Review gate requires PASS verdict from independent reviewer',
235
+ current_gate: this.currentGate,
236
+ });
237
+ }
238
+ }
239
+ this.currentGate = Math.min(8, this.currentGate + 1);
240
+ return this.formatOutput({
241
+ transition: 'SUCCESS',
242
+ from_gate: this.currentGate - 1,
243
+ to_gate: this.currentGate,
244
+ gate_pack: this.getGatePack(),
245
+ });
246
+ }
247
+ async classifyChange(params) {
248
+ const description = params.description || '';
249
+ return this.callLm('You are a change classifier. Given a description, classify the change as policy, contract, or implementation. Output JSON: { classification, description, minimum_gate_path, fast_track_eligible }.', `Classify this change: ${description}`);
250
+ }
251
+ }
252
+ exports.LeadSkill = LeadSkill;
253
+ /**
254
+ * Task Architecture Skill - Task decomposition
255
+ */
256
+ class TaskArchSkill extends BaseSkill {
257
+ name = 'task-arch';
258
+ description = 'Task decomposition. Breaks down PLAN into parallelizable work packages (WP).';
259
+ async execute(params) {
260
+ const plan = (params.plan || params.task || params.description || params.action || '');
261
+ this.log('Decomposing plan into work packages');
262
+ if (!plan) {
263
+ return this.formatOutput({ warning: '未提供 plan', usage: '--harness-skill task-arch "你的开发计划"' });
264
+ }
265
+ return this.callLm('You are a task decomposition specialist. Given a plan, break it down into work packages (WP) with seams and integration points. Output JSON: { work_packages, seams, integration }.', `Plan: ${plan}`);
266
+ }
267
+ }
268
+ exports.TaskArchSkill = TaskArchSkill;
269
+ /**
270
+ * Harness Engineering Skill - Engineering execution
271
+ */
272
+ class HarnessEngSkill extends BaseSkill {
273
+ name = 'harness-eng';
274
+ description = 'Engineering execution. Implements code according to PLAN.';
275
+ async execute(params) {
276
+ const workPackage = params.workPackage;
277
+ const plan = params.plan;
278
+ this.log(`Executing work package: ${workPackage}`);
279
+ // Verify prerequisites
280
+ const prereqs = this.checkPrerequisites(workPackage);
281
+ // Execute implementation
282
+ const steps = this.planImplementation(workPackage, plan);
283
+ // Log execution
284
+ const log = this.createExecutionLog(steps);
285
+ return this.formatOutput({
286
+ work_package: workPackage,
287
+ prerequisites: prereqs,
288
+ steps,
289
+ log,
290
+ status: prereqs.met ? 'ready' : 'blocked',
291
+ });
292
+ }
293
+ checkPrerequisites(workPackage) {
294
+ // Simplified check
295
+ return { met: true, missing: [] };
296
+ }
297
+ planImplementation(workPackage, plan) {
298
+ return [
299
+ 'Step 1: Implement core logic',
300
+ 'Step 2: Add error handling',
301
+ 'Step 3: Write unit tests',
302
+ 'Step 4: Update documentation',
303
+ ];
304
+ }
305
+ createExecutionLog(steps) {
306
+ return `# Execution Log\n\n${steps.map((s, i) => `${i + 1}. ${s}`).join('\n')}`;
307
+ }
308
+ }
309
+ exports.HarnessEngSkill = HarnessEngSkill;
310
+ /**
311
+ * Harness Engineering Test Skill - Test strategy and execution
312
+ * Ported from src/bollharness/.claude/skills/harness-eng-test/SKILL.md
313
+ */
314
+ class HarnessEngTestSkill extends BaseSkill {
315
+ name = 'harness-eng-test';
316
+ description = 'Testing engineering specialist. Test strategy, test case design, test execution and quality verification. Scheduled by lead at Gate 8.';
317
+ async execute(params) {
318
+ const action = params.action;
319
+ const plan = params.plan;
320
+ const frozen = params.frozen;
321
+ this.log('Executing test engineering');
322
+ if (action === 'strategy') {
323
+ return this.createTestStrategy(plan);
324
+ }
325
+ if (action === 'cases') {
326
+ return this.createTestCases(plan);
327
+ }
328
+ if (action === 'execute') {
329
+ return this.executeTests();
330
+ }
331
+ return this.formatOutput({
332
+ skill: this.name,
333
+ description: this.description,
334
+ available_actions: ['strategy', 'cases', 'execute'],
335
+ gate_8_only: true,
336
+ truth_policy: [
337
+ 'Tests must be independent from implementation',
338
+ 'Test coverage does not equal test quality',
339
+ 'Report test results honestly',
340
+ ],
341
+ });
342
+ }
343
+ createTestStrategy(plan) {
344
+ const layers = [
345
+ { layer: 'Unit tests', target: 'Fast feedback', tool: 'vitest' },
346
+ { layer: 'Integration tests', target: 'Module interfaces', tool: 'supertest' },
347
+ { layer: 'E2E tests', target: 'User journeys', tool: 'playwright' },
348
+ ];
349
+ return this.formatOutput({
350
+ test_strategy: layers,
351
+ coverage_target: plan.includes('API') ? 'contract-focused' : 'function-focused',
352
+ fast_track_eligible: false,
353
+ });
354
+ }
355
+ createTestCases(plan) {
356
+ return this.formatOutput({
357
+ test_cases: [
358
+ { id: 'TC-1', description: 'Core functionality', priority: 'P0' },
359
+ { id: 'TC-2', description: 'Edge cases', priority: 'P1' },
360
+ { id: 'TC-3', description: 'Error handling', priority: 'P1' },
361
+ ],
362
+ requirements: plan,
363
+ });
364
+ }
365
+ executeTests() {
366
+ return this.formatOutput({
367
+ execution_report: {
368
+ status: 'NOT_EXECUTED',
369
+ message: 'Test execution requires bollharness environment',
370
+ },
371
+ truth_policy: [
372
+ '"collect passed" ≠ "tests passed"',
373
+ 'Failure is failure, do not downgrade',
374
+ 'BLOCKED must be explicitly marked',
375
+ ],
376
+ });
377
+ }
378
+ }
379
+ exports.HarnessEngTestSkill = HarnessEngTestSkill;
380
+ /**
381
+ * Crystal Learn Skill - Failure pattern extraction
382
+ */
383
+ class CrystalLearnSkill extends BaseSkill {
384
+ name = 'crystal-learn';
385
+ description = 'Extracts failure patterns and maintains invariants.';
386
+ async execute(params) {
387
+ const task = (params.task || params.description || params.action || '');
388
+ this.log('Extracting failure patterns from: ' + (task || '(空)'));
389
+ if (!task) {
390
+ return this.formatOutput({ warning: '未提供任务', usage: '--harness-skill crystal-learn "你的任务描述"' });
391
+ }
392
+ return this.callLm('You are a failure pattern analyst. Extract failure modes, patterns, and invariants from the task description. Output structured JSON with failure_modes, patterns, invariants.', `Task: ${task}`);
393
+ }
394
+ }
395
+ exports.CrystalLearnSkill = CrystalLearnSkill;
396
+ // ============================================================
397
+ // 2026-07-10 双栖 agent 网络新增 3 个 skill
398
+ // (peer-sync / habit-distill / target-tracker)
399
+ // ============================================================
400
+ /**
401
+ * Peer-Sync Skill — 主动找对端协作.
402
+ *
403
+ * 调用流程:
404
+ * 1. 拿 list_peers (通过 p2pNetwork.getPeers() 或已注入的 ctx.tools)
405
+ * 2. 用 LLM 选最合适的 peer (按 expertise tag / 在线时长 / 任务匹配)
406
+ * 3. send_message 问对方是否接 + 预算
407
+ * 4. 同意后 send_to_channel 建带 target_id 的 channel
408
+ */
409
+ class PeerSyncSkill extends BaseSkill {
410
+ name = 'peer-sync';
411
+ description = '主动找对端 bolloon 节点协作. 接收 target_id + task, 自动选 peer + 建 channel. 写 channel 时调 sessionStore.saveMessages + chatArchiver (via goal-resume event log).';
412
+ async execute(params) {
413
+ const targetId = (params.target_id || params.targetId || '');
414
+ const task = (params.task || params.description || '');
415
+ if (!targetId || !task) {
416
+ return this.formatOutput({
417
+ warning: 'target_id 和 task 必填',
418
+ usage: '--harness-skill peer-sync --target_id "完成 X" --task "实现 Y"',
419
+ });
420
+ }
421
+ this.log(`peer-sync 启动: target_id=${targetId}`);
422
+ // 选 peer 的策略由 LLM 决定 (根据 list_peers 输出 + expertise tag)
423
+ return this.callLm(`You are a peer-selection specialist for the bolloon P2P network.
424
+ Given a target_id and task description, output structured JSON with:
425
+ - selectedPeer: DID of the best peer (or null if none suitable)
426
+ - channelName: human-readable name for the new channel
427
+ - initialMessage: first message to send (≤ 200 chars, brief + asks for acceptance)
428
+ - estimatedRounds: expected back-and-forth count (1-10)
429
+
430
+ Rules:
431
+ - Prefer peers with matching expertise tag
432
+ - If no peer matches, return selectedPeer: null
433
+ - Don't over-explain — peer agent has same identity layer as you`, `target_id: ${targetId}\ntask: ${task}`);
434
+ }
435
+ }
436
+ exports.PeerSyncSkill = PeerSyncSkill;
437
+ /**
438
+ * Habit-Distill Skill — 提炼用户习性, 写到 judgment 库.
439
+ *
440
+ * 调用流程:
441
+ * 1. sessionStore.loadMessages(channelId) 拿当前 session 末 30 条
442
+ * 2. LLM 抽取用户习性 (输入习惯 / 偏好术语 / 反复问的主题 / 纠正记录)
443
+ * 3. humanValueStore.storeHumanJudgment({ content, tags: ['habit'], source: 'habit-distill', privacy: 'private' })
444
+ */
445
+ class HabitDistillSkill extends BaseSkill {
446
+ name = 'habit-distill';
447
+ description = '从当前 session 提炼用户习性, 写到 ~/.bolloon/human-values/judgments.json. 调 humanValueStore.storeHumanJudgment, 标签 privacy:private.';
448
+ async execute(params) {
449
+ const sessionKey = (params.session_key || params.sessionKey || '');
450
+ const recentMessagesSummary = (params.messages_summary || '');
451
+ if (!sessionKey) {
452
+ return this.formatOutput({
453
+ warning: 'session_key 必填',
454
+ usage: '--harness-skill habit-distill --session_key <key>',
455
+ });
456
+ }
457
+ this.log(`habit-distill 启动: session=${sessionKey}`);
458
+ // 抽取习性的 prompt — 让 LLM 输出结构化 JSON
459
+ return this.callLm(`You are a habit-extraction specialist.
460
+ Given a summary of user-assistant interaction, output JSON with:
461
+ - habits: [{ content: string, tags: string[], weight: 'low'|'medium'|'high' }]
462
+ - content: 一个用户偏好/习性的简短描述 (≤ 100 字)
463
+ - tags: 标签如 ['input-style', 'terminology', 'recurring-topic', 'correction']
464
+ - weight: 影响判断力注入门时的优先级
465
+ - skipReason: 若不该蒸馏 (用户拒绝/任务太简单/judgment 库饱和), 填理由
466
+
467
+ Rules:
468
+ - 习性必须是"用户可观察到的稳定模式", 不是单次偏好
469
+ - 隐私相关打 tags 含 'private', 注入门自动过滤
470
+ - 不要重复已有 judgment (调用方负责查重)`, `Session: ${sessionKey}\nMessages summary: ${recentMessagesSummary || '(caller should pass loadMessages output)'}`);
471
+ }
472
+ }
473
+ exports.HabitDistillSkill = HabitDistillSkill;
474
+ /**
475
+ * Target-Tracker Skill — 跨 channel 查 target_id 进展.
476
+ *
477
+ * 调用流程:
478
+ * 1. goal-resume.ts 的 listParkedGoals({ targetIdPrefix: <id> }) 查所有匹配的 snapshot
479
+ * 2. chatArchiver.listPeerSummaries 查 channel 维度
480
+ * 3. 输出结构化 status: { goalId, targetId, parkedAt, reason, recentProgress[] }
481
+ */
482
+ class TargetTrackerSkill extends BaseSkill {
483
+ name = 'target-tracker';
484
+ description = '跨 channel 查 target_id 进展. 调 goal-resume listParkedGoals + chatArchiver.listPeerSummaries. 用于切 channel 时不丢目标状态.';
485
+ async execute(params) {
486
+ const targetId = (params.target_id || params.targetId || '');
487
+ const originChannel = (params.origin_channel || '');
488
+ if (!targetId && !originChannel) {
489
+ return this.formatOutput({
490
+ warning: 'target_id 或 origin_channel 至少传一个',
491
+ usage: '--harness-skill target-tracker --target_id <id>',
492
+ });
493
+ }
494
+ this.log(`target-tracker 启动: target_id=${targetId} channel=${originChannel}`);
495
+ // status JSON 由调用方负责真实查询 (skill 接收参数, 返回查询模板)
496
+ return this.formatOutput({
497
+ skill: this.name,
498
+ description: this.description,
499
+ query_params: { targetId, originChannel },
500
+ action: 'caller must invoke goal-resume.listParkedGoals + chatArchiver.listPeerSummaries with these params',
501
+ expected_output: 'List of GoalSnapshot + per-channel progress summary',
502
+ });
503
+ }
504
+ }
505
+ exports.TargetTrackerSkill = TargetTrackerSkill;
506
+ /**
507
+ * Skill Adapter - Registers all bollharness skills with Bolloon's SkillRegistry
508
+ */
509
+ class SkillAdapter {
510
+ registry;
511
+ harnessSkills = [];
512
+ constructor() {
513
+ this.registry = new constraint_runtime_1.SkillRegistry();
514
+ this.registerSkills();
515
+ }
516
+ registerSkills() {
517
+ // Load harness skills from src/bollharness/.claude/skills/
518
+ this.harnessSkills = loadAllHarnessSkills();
519
+ this.log(`Loaded ${this.harnessSkills.length} skills from bollharness`);
520
+ // Register adapted skills for skills not yet fully adapted
521
+ const adaptedSkills = [
522
+ new ArchSkill(),
523
+ new LeadSkill(),
524
+ new TaskArchSkill(),
525
+ new HarnessEngSkill(),
526
+ new HarnessEngTestSkill(),
527
+ new CrystalLearnSkill(),
528
+ // 2026-07-10 双栖 agent 网络新增 3 个:
529
+ new PeerSyncSkill(),
530
+ new HabitDistillSkill(),
531
+ new TargetTrackerSkill(),
532
+ ];
533
+ for (const skill of adaptedSkills) {
534
+ try {
535
+ this.registry.register(skill);
536
+ this.log(`Registered adapted skill: ${skill.name}`);
537
+ }
538
+ catch (error) {
539
+ this.log(`Failed to register ${skill.name}: ${error}`, 'error');
540
+ }
541
+ }
542
+ // Register harness-native skills (metadata only, execution delegated)
543
+ for (const harnessMeta of this.harnessSkills) {
544
+ const adaptedNames = adaptedSkills.map(s => s.name);
545
+ if (!adaptedNames.includes(harnessMeta.name)) {
546
+ try {
547
+ const proxySkill = createHarnessProxySkill(harnessMeta);
548
+ this.registry.register(proxySkill);
549
+ this.log(`Registered harness proxy skill: ${harnessMeta.name}`);
550
+ }
551
+ catch (error) {
552
+ this.log(`Failed to register harness skill ${harnessMeta.name}: ${error}`, 'error');
553
+ }
554
+ }
555
+ }
556
+ }
557
+ getRegistry() {
558
+ return this.registry;
559
+ }
560
+ getSkill(name) {
561
+ return this.registry.get(name);
562
+ }
563
+ injectLlm(llm) {
564
+ BaseSkill.setLlm(llm);
565
+ this.log('LLM 已注入到所有 BaseSkill');
566
+ }
567
+ listSkills() {
568
+ return this.registry.list();
569
+ }
570
+ listHarnessSkills() {
571
+ return this.harnessSkills;
572
+ }
573
+ async executeSkill(name, params) {
574
+ return this.registry.execute(name, params);
575
+ }
576
+ log(message, level = 'info') {
577
+ // 2026-07-06: info 默认静音 — 14 条 [SkillAdapter] Loaded/Registered 日志刷屏 web.log
578
+ // 调试时设 BOLLOON_VERBOSE=1 临时开起来. warn/error 仍正常打.
579
+ const VERBOSE = typeof process !== 'undefined' && process.env?.BOLLOON_VERBOSE === '1';
580
+ if (level === 'info' && !VERBOSE)
581
+ return;
582
+ const prefix = level === 'error' ? '❌' : level === 'warn' ? '⚠️' : 'ℹ️';
583
+ console.log(`${prefix} [SkillAdapter] ${message}`);
584
+ }
585
+ }
586
+ exports.SkillAdapter = SkillAdapter;
587
+ function createHarnessProxySkill(meta) {
588
+ return {
589
+ name: meta.name,
590
+ description: meta.description,
591
+ async execute(params) {
592
+ return JSON.stringify({
593
+ skill: meta.name,
594
+ description: meta.description,
595
+ tier: meta.tier,
596
+ status: meta.status,
597
+ outputs: meta.outputs || [],
598
+ message: `Harness skill '${meta.name}' requires bollharness environment for full execution`,
599
+ params_received: params,
600
+ }, null, 2);
601
+ },
602
+ };
603
+ }
604
+ const createSkillAdapter = () => {
605
+ return new SkillAdapter();
606
+ };
607
+ exports.createSkillAdapter = createSkillAdapter;
608
+ //# sourceMappingURL=skill-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-adapter.js","sourceRoot":"","sources":["../../../src/bollharness-integration/skill-adapter.ts"],"names":[],"mappings":"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"}