@bolloon/bolloon-agent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (808) hide show
  1. package/README.md +462 -0
  2. package/dist/agents/constraint-layer.js +211 -0
  3. package/dist/agents/constraint-layer.js.map +1 -0
  4. package/dist/agents/pi-sdk.js +1199 -0
  5. package/dist/agents/pi-sdk.js.map +1 -0
  6. package/dist/agents/protocol.js +229 -0
  7. package/dist/agents/subagent-manager.js +361 -0
  8. package/dist/agents/workflow-engine.js +222 -0
  9. package/dist/agents/workflow-engine.js.map +1 -0
  10. package/dist/bollharness-integration/bollharness-integration/context-router-judgment.d.ts +48 -0
  11. package/dist/bollharness-integration/bollharness-integration/context-router-judgment.js +261 -0
  12. package/dist/bollharness-integration/bollharness-integration/context-router.d.ts +110 -0
  13. package/dist/bollharness-integration/bollharness-integration/context-router.js +542 -0
  14. package/dist/bollharness-integration/bollharness-integration/gate-state-machine.d.ts +87 -0
  15. package/dist/bollharness-integration/bollharness-integration/gate-state-machine.js +231 -0
  16. package/dist/bollharness-integration/bollharness-integration/gate-transition-hooks.d.ts +30 -0
  17. package/dist/bollharness-integration/bollharness-integration/gate-transition-hooks.js +91 -0
  18. package/dist/bollharness-integration/bollharness-integration/guard-checker.d.ts +105 -0
  19. package/dist/bollharness-integration/bollharness-integration/guard-checker.js +353 -0
  20. package/dist/bollharness-integration/bollharness-integration/index.d.ts +66 -0
  21. package/dist/bollharness-integration/bollharness-integration/index.js +32 -0
  22. package/dist/bollharness-integration/bollharness-integration/integration.d.ts +219 -0
  23. package/dist/bollharness-integration/bollharness-integration/integration.js +420 -0
  24. package/dist/bollharness-integration/bollharness-integration/skill-adapter.d.ts +151 -0
  25. package/dist/bollharness-integration/bollharness-integration/skill-adapter.js +518 -0
  26. package/dist/bollharness-integration/context-router-judgment.js +269 -0
  27. package/dist/bollharness-integration/context-router-judgment.js.map +1 -0
  28. package/dist/bollharness-integration/context-router.js +584 -0
  29. package/dist/bollharness-integration/context-router.js.map +1 -0
  30. package/dist/bollharness-integration/gate-state-machine.js +349 -0
  31. package/dist/bollharness-integration/gate-state-machine.js.map +1 -0
  32. package/dist/bollharness-integration/gate-transition-hooks.js +136 -0
  33. package/dist/bollharness-integration/gate-transition-hooks.js.map +1 -0
  34. package/dist/bollharness-integration/guard-checker.js +400 -0
  35. package/dist/bollharness-integration/guard-checker.js.map +1 -0
  36. package/dist/bollharness-integration/index.js +142 -0
  37. package/dist/bollharness-integration/index.js.map +1 -0
  38. package/dist/bollharness-integration/integration.js +427 -0
  39. package/dist/bollharness-integration/integration.js.map +1 -0
  40. package/dist/bollharness-integration/llm/pi-ai.d.ts +60 -0
  41. package/dist/bollharness-integration/llm/pi-ai.js +397 -0
  42. package/dist/bollharness-integration/pi-ecosystem-colony/index.d.ts +153 -0
  43. package/dist/bollharness-integration/pi-ecosystem-colony/index.js +365 -0
  44. package/dist/bollharness-integration/pi-ecosystem-goals/index.d.ts +136 -0
  45. package/dist/bollharness-integration/pi-ecosystem-goals/index.js +458 -0
  46. package/dist/bollharness-integration/pi-ecosystem-judgment/decision.d.ts +117 -0
  47. package/dist/bollharness-integration/pi-ecosystem-judgment/decision.js +300 -0
  48. package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.d.ts +78 -0
  49. package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.js +291 -0
  50. package/dist/bollharness-integration/pi-ecosystem-judgment/index.d.ts +139 -0
  51. package/dist/bollharness-integration/pi-ecosystem-judgment/index.js +445 -0
  52. package/dist/bollharness-integration/pi-ecosystem-mcp/index.d.ts +127 -0
  53. package/dist/bollharness-integration/pi-ecosystem-mcp/index.js +331 -0
  54. package/dist/bollharness-integration/pi-ecosystem-subagents/index.d.ts +95 -0
  55. package/dist/bollharness-integration/pi-ecosystem-subagents/index.js +303 -0
  56. package/dist/bollharness-integration/skill-adapter.js +564 -0
  57. package/dist/bollharness-integration/skill-adapter.js.map +1 -0
  58. package/dist/cli/interface.js +181 -0
  59. package/dist/constraint-runtime/src/_archive_helper.js +9 -0
  60. package/dist/constraint-runtime/src/agent/coordinator.js +48 -0
  61. package/dist/constraint-runtime/src/agent/index.js +1 -0
  62. package/dist/constraint-runtime/src/assistant/index.js +12 -0
  63. package/dist/constraint-runtime/src/bootstrap/index.js +12 -0
  64. package/dist/constraint-runtime/src/bootstrap_graph.js +13 -0
  65. package/dist/constraint-runtime/src/bridge/index.js +12 -0
  66. package/dist/constraint-runtime/src/buddy/index.js +12 -0
  67. package/dist/constraint-runtime/src/cli/index.js +12 -0
  68. package/dist/constraint-runtime/src/command_graph.js +10 -0
  69. package/dist/constraint-runtime/src/commands.js +50 -0
  70. package/dist/constraint-runtime/src/components/index.js +12 -0
  71. package/dist/constraint-runtime/src/constants/index.js +12 -0
  72. package/dist/constraint-runtime/src/constraint/budget.js +27 -0
  73. package/dist/constraint-runtime/src/constraint/budget.js.map +1 -0
  74. package/dist/constraint-runtime/src/constraint/index.js +2 -0
  75. package/dist/constraint-runtime/src/constraint/permission.js +25 -0
  76. package/dist/constraint-runtime/src/constraint/permission.js.map +1 -0
  77. package/dist/constraint-runtime/src/context.js +30 -0
  78. package/dist/constraint-runtime/src/coordinator/index.js +12 -0
  79. package/dist/constraint-runtime/src/cost_hook.js +4 -0
  80. package/dist/constraint-runtime/src/cost_tracker.js +8 -0
  81. package/dist/constraint-runtime/src/deferred_init.js +10 -0
  82. package/dist/constraint-runtime/src/direct_modes.js +6 -0
  83. package/dist/constraint-runtime/src/dynamic-tool-loader.js +85 -0
  84. package/dist/constraint-runtime/src/entrypoints/index.js +12 -0
  85. package/dist/constraint-runtime/src/execution_registry.js +44 -0
  86. package/dist/constraint-runtime/src/history.js +9 -0
  87. package/dist/constraint-runtime/src/hooks/index.js +12 -0
  88. package/dist/constraint-runtime/src/index.js +26 -0
  89. package/dist/constraint-runtime/src/ink.js +4 -0
  90. package/dist/constraint-runtime/src/keybindings/index.js +12 -0
  91. package/dist/constraint-runtime/src/memdir/index.js +12 -0
  92. package/dist/constraint-runtime/src/migrations/index.js +12 -0
  93. package/dist/constraint-runtime/src/models.js +3 -0
  94. package/dist/constraint-runtime/src/models.js.map +1 -0
  95. package/dist/constraint-runtime/src/moreright/index.js +12 -0
  96. package/dist/constraint-runtime/src/native_ts/index.js +12 -0
  97. package/dist/constraint-runtime/src/output_styles/index.js +12 -0
  98. package/dist/constraint-runtime/src/parity_audit.js +12 -0
  99. package/dist/constraint-runtime/src/plugins/index.js +12 -0
  100. package/dist/constraint-runtime/src/port_manifest.js +11 -0
  101. package/dist/constraint-runtime/src/prefetch.js +9 -0
  102. package/dist/constraint-runtime/src/query.js +1 -0
  103. package/dist/constraint-runtime/src/remote/index.js +12 -0
  104. package/dist/constraint-runtime/src/remote_runtime.js +9 -0
  105. package/dist/constraint-runtime/src/runtime/index.js +1 -0
  106. package/dist/constraint-runtime/src/runtime/session.js +35 -0
  107. package/dist/constraint-runtime/src/schemas/index.js +12 -0
  108. package/dist/constraint-runtime/src/screens/index.js +12 -0
  109. package/dist/constraint-runtime/src/server/index.js +12 -0
  110. package/dist/constraint-runtime/src/services/index.js +12 -0
  111. package/dist/constraint-runtime/src/session_store.js +22 -0
  112. package/dist/constraint-runtime/src/setup.js +30 -0
  113. package/dist/constraint-runtime/src/skills/index.js +1 -0
  114. package/dist/constraint-runtime/src/skills/skill-registry.js +28 -0
  115. package/dist/constraint-runtime/src/state/index.js +12 -0
  116. package/dist/constraint-runtime/src/system_init.js +20 -0
  117. package/dist/constraint-runtime/src/thinking/engine.js +42 -0
  118. package/dist/constraint-runtime/src/thinking/index.js +1 -0
  119. package/dist/constraint-runtime/src/tool_pool.js +8 -0
  120. package/dist/constraint-runtime/src/tools/OpenCLI/execAdapter.js +7 -0
  121. package/dist/constraint-runtime/src/tools/OpenCLI/listAdapters.js +7 -0
  122. package/dist/constraint-runtime/src/tools/OpenCLI/runCommand.js +7 -0
  123. package/dist/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js +6 -0
  124. package/dist/constraint-runtime/src/tools/PolymarketSDK/createOrder.js +6 -0
  125. package/dist/constraint-runtime/src/tools/PolymarketSDK/getMarket.js +5 -0
  126. package/dist/constraint-runtime/src/tools/PolymarketSDK/getOrders.js +6 -0
  127. package/dist/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js +4 -0
  128. package/dist/constraint-runtime/src/tools/SafeSDK/confirmTransaction.js +6 -0
  129. package/dist/constraint-runtime/src/tools/SafeSDK/createTransaction.js +8 -0
  130. package/dist/constraint-runtime/src/tools/SafeSDK/deploySafe.js +6 -0
  131. package/dist/constraint-runtime/src/tools/SafeSDK/executeTransaction.js +6 -0
  132. package/dist/constraint-runtime/src/tools/SafeSDK/getBalance.js +6 -0
  133. package/dist/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.js +6 -0
  134. package/dist/constraint-runtime/src/tools/SafeSDK/proposeTransaction.js +6 -0
  135. package/dist/constraint-runtime/src/tools/WalletTools/autoPay.js +29 -0
  136. package/dist/constraint-runtime/src/tools/WalletTools/createWallet.js +10 -0
  137. package/dist/constraint-runtime/src/tools/WalletTools/getBalance.js +13 -0
  138. package/dist/constraint-runtime/src/tools/WalletTools/importWallet.js +22 -0
  139. package/dist/constraint-runtime/src/tools/WalletTools/sendTransaction.js +25 -0
  140. package/dist/constraint-runtime/src/tools/WalletTools/signMessage.js +10 -0
  141. package/dist/constraint-runtime/src/tools/WalletTools/transferToken.js +25 -0
  142. package/dist/constraint-runtime/src/tools.js +70 -0
  143. package/dist/constraint-runtime/src/transcript.js +19 -0
  144. package/dist/constraint-runtime/src/types/index.js +12 -0
  145. package/dist/constraint-runtime/src/upstream_proxy/index.js +12 -0
  146. package/dist/constraint-runtime/src/utils/index.js +12 -0
  147. package/dist/constraint-runtime/src/vim/index.js +12 -0
  148. package/dist/constraint-runtime/src/voice/index.js +12 -0
  149. package/dist/constraint-runtime/tests/agent.test.js +16 -0
  150. package/dist/constraint-runtime/tests/constraint.test.js +41 -0
  151. package/dist/constraint-runtime/tests/skill.test.js +19 -0
  152. package/dist/constraint-runtime/tests/thinking.test.js +22 -0
  153. package/dist/constraints/commands.js +100 -0
  154. package/dist/constraints/index.js +11 -0
  155. package/dist/constraints/index.js.map +1 -0
  156. package/dist/constraints/permissions.js +37 -0
  157. package/dist/constraints/runtime.js +135 -0
  158. package/dist/constraints/session.js +48 -0
  159. package/dist/constraints/system-init.js +51 -0
  160. package/dist/constraints/tools.js +104 -0
  161. package/dist/documents/reader.js +104 -0
  162. package/dist/documents/reader.js.map +1 -0
  163. package/dist/electron-preload.js +15 -0
  164. package/dist/electron-preload.js.map +1 -0
  165. package/dist/electron.js +206 -0
  166. package/dist/electron.js.map +1 -0
  167. package/dist/index.js +1053 -0
  168. package/dist/llm/config-store.js +301 -0
  169. package/dist/llm/config-store.js.map +1 -0
  170. package/dist/llm/minimax-provider.js +46 -0
  171. package/dist/llm/minimax.js +45 -0
  172. package/dist/llm/pi-ai.js +471 -0
  173. package/dist/llm/pi-ai.js.map +1 -0
  174. package/dist/network/agent-network.js +692 -0
  175. package/dist/network/agent-network.js.map +1 -0
  176. package/dist/network/iroh-integration.js +117 -0
  177. package/dist/network/iroh-integration.js.map +1 -0
  178. package/dist/network/iroh-transport.js +506 -0
  179. package/dist/network/iroh-transport.js.map +1 -0
  180. package/dist/network/p2p.js +864 -0
  181. package/dist/network/p2p.js.map +1 -0
  182. package/dist/network/storage/adapters/json-adapter.js +401 -0
  183. package/dist/network/storage/adapters/json-adapter.js.map +1 -0
  184. package/dist/pi-ecosystem-colony/index.js +426 -0
  185. package/dist/pi-ecosystem-colony/index.js.map +1 -0
  186. package/dist/pi-ecosystem-goals/index.js +512 -0
  187. package/dist/pi-ecosystem-goals/index.js.map +1 -0
  188. package/dist/pi-ecosystem-judgment/decision.js +318 -0
  189. package/dist/pi-ecosystem-judgment/decision.js.map +1 -0
  190. package/dist/pi-ecosystem-judgment/distillation.js +304 -0
  191. package/dist/pi-ecosystem-judgment/distillation.js.map +1 -0
  192. package/dist/pi-ecosystem-judgment/human-value-store.js +463 -0
  193. package/dist/pi-ecosystem-judgment/human-value-store.js.map +1 -0
  194. package/dist/pi-ecosystem-judgment/index.js +581 -0
  195. package/dist/pi-ecosystem-judgment/index.js.map +1 -0
  196. package/dist/pi-ecosystem-judgment/value-injection.js +592 -0
  197. package/dist/pi-ecosystem-judgment/value-injection.js.map +1 -0
  198. package/dist/pi-ecosystem-mcp/index.js +385 -0
  199. package/dist/pi-ecosystem-mcp/index.js.map +1 -0
  200. package/dist/pi-ecosystem-subagents/index.js +352 -0
  201. package/dist/pi-ecosystem-subagents/index.js.map +1 -0
  202. package/dist/runtime/context/minimax-prompt.js +178 -0
  203. package/dist/runtime/context/sys-prompt.js +1 -0
  204. package/dist/social/ant-colony/AdaptiveHeartbeat.js +106 -0
  205. package/dist/social/ant-colony/AdaptiveHeartbeat.js.map +1 -0
  206. package/dist/social/ant-colony/PheromoneEngine.js +265 -0
  207. package/dist/social/ant-colony/PheromoneEngine.js.map +1 -0
  208. package/dist/social/ant-colony/types.js +28 -0
  209. package/dist/social/ant-colony/types.js.map +1 -0
  210. package/dist/social/channels/ChannelManager.js +444 -0
  211. package/dist/social/channels/ChannelManager.js.map +1 -0
  212. package/dist/social/channels/DiapChannelBridge.js +451 -0
  213. package/dist/social/channels/DiapChannelBridge.js.map +1 -0
  214. package/dist/social/channels/InterestMatcher.js +135 -0
  215. package/dist/social/channels/InterestMatcher.js.map +1 -0
  216. package/dist/social/channels/types.js +21 -0
  217. package/dist/social/channels/types.js.map +1 -0
  218. package/dist/social/global-shared-context.js +368 -0
  219. package/dist/social/global-shared-context.js.map +1 -0
  220. package/dist/social/heartbeat.js +865 -0
  221. package/dist/social/heartbeat.js.map +1 -0
  222. package/dist/test/constraint-layer.test.js +164 -0
  223. package/dist/test/global-shared-context.test.js +315 -0
  224. package/dist/test/pi-sdk.test.js +47 -0
  225. package/dist/test/set-persona.test.js +38 -0
  226. package/dist/test/subagent-manager.test.js +276 -0
  227. package/dist/test/workflow-engine.test.js +87 -0
  228. package/dist/web/api-config.html +265 -0
  229. package/dist/web/client.js +1401 -0
  230. package/dist/web/components/p2p/index.js +357 -0
  231. package/dist/web/components/p2p/p2p-connection.js +161 -0
  232. package/dist/web/components/p2p/p2p-identity.js +78 -0
  233. package/dist/web/components/p2p/p2p-manager.js +82 -0
  234. package/dist/web/components/p2p/p2p-messages.js +186 -0
  235. package/dist/web/components/p2p/p2p-store-memory.js +129 -0
  236. package/dist/web/components/p2p/types.js +23 -0
  237. package/dist/web/index.html +192 -0
  238. package/dist/web/server.js +1647 -0
  239. package/dist/web/server.js.map +1 -0
  240. package/dist/web/style.css +3260 -0
  241. package/dist/workflows/collaboration.js +374 -0
  242. package/dist/workflows/index.js +54 -0
  243. package/docs/agent-communication.md +333 -0
  244. package/docs/plans/2026-05-15-document-agent-design.md +479 -0
  245. package/docs/plans/2026-05-15-document-agent-implementation-plan.md +792 -0
  246. package/docs/plans/2026-05-16-chat-ui-design.md +86 -0
  247. package/docs/plans/2026-05-16-constraint-runtime-design.md +106 -0
  248. package/docs/plans/2026-05-16-constraint-runtime-implementation.md +441 -0
  249. package/docs//346/225/260/345/255/246/350/276/205/345/212/251/346/231/272/350/203/275/344/275/223-/346/240/270/345/277/203/346/225/210/346/236/234/345/256/232/344/271/211.md +287 -0
  250. package/package.json +121 -0
  251. package/scripts/build-web.ts +61 -0
  252. package/src/agents/constraint-layer.ts +309 -0
  253. package/src/agents/pi-sdk.ts +1591 -0
  254. package/src/agents/protocol.ts +304 -0
  255. package/src/agents/subagent-manager.ts +553 -0
  256. package/src/agents/workflow-engine.ts +332 -0
  257. package/src/bollharness/.boll/CLAUDE.md.template +34 -0
  258. package/src/bollharness/.boll/MANIFEST.yaml +213 -0
  259. package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
  260. package/src/bollharness/.boll/agents/review-base.yaml +108 -0
  261. package/src/bollharness/.boll/deploy-allowlist.yaml +38 -0
  262. package/src/bollharness/.boll/inbox/schema/message-v1.json +99 -0
  263. package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
  264. package/src/bollharness/.boll/issue-adapter.yaml +31 -0
  265. package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +85 -0
  266. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +102 -0
  267. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +247 -0
  268. package/src/bollharness/.boll/rules/backend-routes.md +31 -0
  269. package/src/bollharness/.boll/rules/closure-semantics.md +30 -0
  270. package/src/bollharness/.boll/rules/env-vars.md +32 -0
  271. package/src/bollharness/.boll/rules/hanis-protocol.md +145 -0
  272. package/src/bollharness/.boll/rules/repo-structure.md +42 -0
  273. package/src/bollharness/.boll/rules/review-agent-isolation.md +73 -0
  274. package/src/bollharness/.boll/rules/source-of-truth.md +33 -0
  275. package/src/bollharness/.boll/settings.json +180 -0
  276. package/src/bollharness/.boll/settings.json.template +31 -0
  277. package/src/bollharness/.boll/skills/arch/SKILL.md +372 -0
  278. package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +168 -0
  279. package/src/bollharness/.boll/skills/bug-triage/SKILL.md +161 -0
  280. package/src/bollharness/.boll/skills/context-chains/SKILL.md +250 -0
  281. package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +48 -0
  282. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +142 -0
  283. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +126 -0
  284. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +148 -0
  285. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +162 -0
  286. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +116 -0
  287. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +136 -0
  288. package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +93 -0
  289. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +34 -0
  290. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +34 -0
  291. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +35 -0
  292. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +34 -0
  293. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +43 -0
  294. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +34 -0
  295. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +37 -0
  296. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +46 -0
  297. package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +415 -0
  298. package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +320 -0
  299. package/src/bollharness/.boll/skills/harness-dev/SKILL.md +93 -0
  300. package/src/bollharness/.boll/skills/harness-dev/examples/README.md +227 -0
  301. package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +165 -0
  302. package/src/bollharness/.boll/skills/harness-eng/SKILL.md +110 -0
  303. package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +79 -0
  304. package/src/bollharness/.boll/skills/harness-lab/SKILL.md +170 -0
  305. package/src/bollharness/.boll/skills/harness-ops/SKILL.md +57 -0
  306. package/src/bollharness/.boll/skills/harness-voice/SKILL.md +183 -0
  307. package/src/bollharness/.boll/skills/judgment/SKILL.md +115 -0
  308. package/src/bollharness/.boll/skills/lead/SKILL.md +245 -0
  309. package/src/bollharness/.boll/skills/lead/install-wow-harness.md +77 -0
  310. package/src/bollharness/.boll/skills/lead/ref-review-sop.md +91 -0
  311. package/src/bollharness/.boll/skills/lead/ref-stages.md +129 -0
  312. package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +169 -0
  313. package/src/bollharness/.boll/skills/task-arch/SKILL.md +106 -0
  314. package/src/bollharness/.boll/skills/toolkit/SKILL.md +57 -0
  315. package/src/bollharness/.boll/tasks/.gitkeep +0 -0
  316. package/src/bollharness/.boll/toolkit-index.yaml +112 -0
  317. package/src/bollharness/.claude/agents/review-base.yaml +108 -0
  318. package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +44 -0
  319. package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +24 -0
  320. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +102 -0
  321. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +247 -0
  322. package/src/bollharness/.claude/settings.json +157 -0
  323. package/src/bollharness/.claude/skills/arch/SKILL.md +64 -0
  324. package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +93 -0
  325. package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +44 -0
  326. package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +324 -0
  327. package/src/bollharness/.claude/skills/harness-dev/SKILL.md +93 -0
  328. package/src/bollharness/.claude/skills/harness-dev/examples/README.md +17 -0
  329. package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +165 -0
  330. package/src/bollharness/.claude/skills/harness-eng/SKILL.md +183 -0
  331. package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +57 -0
  332. package/src/bollharness/.claude/skills/harness-ops/SKILL.md +57 -0
  333. package/src/bollharness/.claude/skills/harness-voice/SKILL.md +84 -0
  334. package/src/bollharness/.claude/skills/lead/INDEX.md +28 -0
  335. package/src/bollharness/.claude/skills/lead/SKILL.md +24 -0
  336. package/src/bollharness/.claude/skills/lead/install-wow-harness.md +77 -0
  337. package/src/bollharness/.claude/skills/lead/ref-review-sop.md +48 -0
  338. package/src/bollharness/.claude/skills/lead/ref-stages.md +58 -0
  339. package/src/bollharness/.claude/skills/plan-lock/SKILL.md +74 -0
  340. package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +120 -0
  341. package/src/bollharness/.claude/skills/task-arch/SKILL.md +106 -0
  342. package/src/bollharness/.claude/skills/toolkit/SKILL.md +57 -0
  343. package/src/bollharness/.claude/skills/toolkit/list.sh +92 -0
  344. package/src/bollharness/.githooks/pre-commit +21 -0
  345. package/src/bollharness/.github/workflows/ci.yml +88 -0
  346. package/src/bollharness/.sanitize-report.json +13 -0
  347. package/src/bollharness/CLAUDE.md +73 -0
  348. package/src/bollharness/LICENSE +21 -0
  349. package/src/bollharness/README.md +143 -0
  350. package/src/bollharness/README.zh-CN.md +131 -0
  351. package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +1076 -0
  352. package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +2039 -0
  353. package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +128 -0
  354. package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +188 -0
  355. package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +183 -0
  356. package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +133 -0
  357. package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +146 -0
  358. package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +212 -0
  359. package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +211 -0
  360. package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +202 -0
  361. package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +231 -0
  362. package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +270 -0
  363. package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +291 -0
  364. package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +228 -0
  365. package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +227 -0
  366. package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +239 -0
  367. package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +325 -0
  368. package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +242 -0
  369. package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +378 -0
  370. package/src/bollharness/docs/launch-article-en.md +276 -0
  371. package/src/bollharness/docs/launch-article-zh.md +305 -0
  372. package/src/bollharness/docs/practice.html +356 -0
  373. package/src/bollharness/docs/practice.md +82 -0
  374. package/src/bollharness/docs/research/round-1/README.md +11 -0
  375. package/src/bollharness/docs/research/round-2/README.md +11 -0
  376. package/src/bollharness/docs/research/round-3/README.md +11 -0
  377. package/src/bollharness/docs/research/round-4/README.md +11 -0
  378. package/src/bollharness/docs/research/round-5/README.md +11 -0
  379. package/src/bollharness/docs/research/round-6/README.md +11 -0
  380. package/src/bollharness/package-lock.json +48 -0
  381. package/src/bollharness/package.json +20 -0
  382. package/src/bollharness/reference/SOURCE-COMMIT.txt +3 -0
  383. package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +268 -0
  384. package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +20 -0
  385. package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +30 -0
  386. package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +13 -0
  387. package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +50 -0
  388. package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +12 -0
  389. package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +184 -0
  390. package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +112 -0
  391. package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +12 -0
  392. package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +551 -0
  393. package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +26 -0
  394. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +227 -0
  395. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +4 -0
  396. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +142 -0
  397. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +107 -0
  398. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +893 -0
  399. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +89 -0
  400. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +93 -0
  401. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +209 -0
  402. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +165 -0
  403. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +110 -0
  404. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +203 -0
  405. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +27 -0
  406. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +28 -0
  407. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +27 -0
  408. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +79 -0
  409. package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +372 -0
  410. package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +437 -0
  411. package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +27 -0
  412. package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +442 -0
  413. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +421 -0
  414. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +326 -0
  415. package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +155 -0
  416. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +91 -0
  417. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +129 -0
  418. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
  419. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
  420. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
  421. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
  422. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +425 -0
  423. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +62 -0
  424. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +78 -0
  425. package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +76 -0
  426. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +57 -0
  427. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +153 -0
  428. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +52 -0
  429. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +76 -0
  430. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +50 -0
  431. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +108 -0
  432. package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +151 -0
  433. package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +56 -0
  434. package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +76 -0
  435. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +116 -0
  436. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +200 -0
  437. package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +84 -0
  438. package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +209 -0
  439. package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +181 -0
  440. package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +754 -0
  441. package/src/bollharness/reference/boll-reference/scripts/hooks/.sanitize-report.json +12 -0
  442. package/src/bollharness/reference/boll-reference/scripts/hooks/find-boll-root.sh +27 -0
  443. package/src/bollharness/reference/boll-reference/scripts/hooks/precompact.sh +57 -0
  444. package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +57 -0
  445. package/src/bollharness/schemas/metrics-jsonl-allowlist.json +67 -0
  446. package/src/bollharness/scripts/checks/next_decision_number.sh +48 -0
  447. package/src/bollharness/scripts/ci/count-components.sh +65 -0
  448. package/src/bollharness/scripts/context-fragments/artifact-linkage.md +14 -0
  449. package/src/bollharness/scripts/context-fragments/auth-consumers.md +17 -0
  450. package/src/bollharness/scripts/context-fragments/bridge-constitution.md +13 -0
  451. package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +18 -0
  452. package/src/bollharness/scripts/context-fragments/closure-checklist.md +13 -0
  453. package/src/bollharness/scripts/context-fragments/contract-consumers.md +15 -0
  454. package/src/bollharness/scripts/context-fragments/db-shared-structures.md +15 -0
  455. package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +19 -0
  456. package/src/bollharness/scripts/context-fragments/general-dev-principles.md +11 -0
  457. package/src/bollharness/scripts/context-fragments/issue-first.md +8 -0
  458. package/src/bollharness/scripts/context-fragments/mcp-parity.md +16 -0
  459. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +74 -0
  460. package/src/bollharness/scripts/context-fragments/protocol-consumers.md +15 -0
  461. package/src/bollharness/scripts/context-fragments/run-events-consumers.md +15 -0
  462. package/src/bollharness/scripts/context-fragments/scene-fidelity.md +13 -0
  463. package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +15 -0
  464. package/src/bollharness/scripts/context-fragments/two-language.md +15 -0
  465. package/src/bollharness/scripts/context-fragments/version-sources.md +14 -0
  466. package/src/bollharness/scripts/hooks/find-project-root.sh +47 -0
  467. package/src/bollharness/scripts/hooks/inbox-poll.sh +78 -0
  468. package/src/bollharness/scripts/hooks/precompact.sh +56 -0
  469. package/src/bollharness/scripts/hooks/stop-evaluator.md +83 -0
  470. package/src/bollharness/scripts/sync-from-upstream.sh +281 -0
  471. package/src/bollharness/src/index.ts +5 -0
  472. package/src/bollharness/src/scripts/checks/check_adr_plan_numbering.ts +11 -0
  473. package/src/bollharness/src/scripts/checks/check_api_types.ts +52 -0
  474. package/src/bollharness/src/scripts/checks/check_artifact_link.ts +156 -0
  475. package/src/bollharness/src/scripts/checks/check_bridge_deps.ts +11 -0
  476. package/src/bollharness/src/scripts/checks/check_bugfix_binding.ts +11 -0
  477. package/src/bollharness/src/scripts/checks/check_bugfix_binding_ci.ts +11 -0
  478. package/src/bollharness/src/scripts/checks/check_doc_file_references.ts +11 -0
  479. package/src/bollharness/src/scripts/checks/check_doc_freshness.ts +141 -0
  480. package/src/bollharness/src/scripts/checks/check_doc_links.ts +36 -0
  481. package/src/bollharness/src/scripts/checks/check_file_existence_claims.ts +11 -0
  482. package/src/bollharness/src/scripts/checks/check_fragment_integrity.ts +40 -0
  483. package/src/bollharness/src/scripts/checks/check_hook_installed.ts +70 -0
  484. package/src/bollharness/src/scripts/checks/check_issue_closure.ts +51 -0
  485. package/src/bollharness/src/scripts/checks/check_mcp_parity.ts +11 -0
  486. package/src/bollharness/src/scripts/checks/check_security.ts +54 -0
  487. package/src/bollharness/src/scripts/checks/check_skill_parity.ts +11 -0
  488. package/src/bollharness/src/scripts/checks/check_versions.ts +11 -0
  489. package/src/bollharness/src/scripts/checks/finding.ts +35 -0
  490. package/src/bollharness/src/scripts/checks/next_decision_number.ts +24 -0
  491. package/src/bollharness/src/scripts/checks/regenerate_magic_docs.ts +11 -0
  492. package/src/bollharness/src/scripts/ci/detect_rebaseline_triggers.ts +14 -0
  493. package/src/bollharness/src/scripts/ci/scan_subprocess_cfg.ts +14 -0
  494. package/src/bollharness/src/scripts/ci/scan_verify_artifacts.ts +14 -0
  495. package/src/bollharness/src/scripts/ci/scan_yaml_schema.ts +14 -0
  496. package/src/bollharness/src/scripts/context_router.ts +76 -0
  497. package/src/bollharness/src/scripts/deploy-guard.ts +182 -0
  498. package/src/bollharness/src/scripts/guard-feedback.ts +215 -0
  499. package/src/bollharness/src/scripts/guard_router.ts +194 -0
  500. package/src/bollharness/src/scripts/hooks/_hook_output.js +3 -0
  501. package/src/bollharness/src/scripts/hooks/_hook_output.ts +11 -0
  502. package/src/bollharness/src/scripts/hooks/auto-python3.ts +10 -0
  503. package/src/bollharness/src/scripts/hooks/deploy-progress-on-session-end.ts +10 -0
  504. package/src/bollharness/src/scripts/hooks/failure-analyzer.ts +10 -0
  505. package/src/bollharness/src/scripts/hooks/gate-judgment-inject.ts +111 -0
  506. package/src/bollharness/src/scripts/hooks/gate-transition-judgment.ts +74 -0
  507. package/src/bollharness/src/scripts/hooks/inbox-ack.ts +10 -0
  508. package/src/bollharness/src/scripts/hooks/inbox-inject-on-start.ts +10 -0
  509. package/src/bollharness/src/scripts/hooks/inbox-validate.ts +10 -0
  510. package/src/bollharness/src/scripts/hooks/inbox-write-ledger.ts +10 -0
  511. package/src/bollharness/src/scripts/hooks/initializer-agent.ts +10 -0
  512. package/src/bollharness/src/scripts/hooks/loop-detection.ts +83 -0
  513. package/src/bollharness/src/scripts/hooks/owner-guard.ts +10 -0
  514. package/src/bollharness/src/scripts/hooks/precompact.ts +10 -0
  515. package/src/bollharness/src/scripts/hooks/review-agent-gatekeeper.ts +10 -0
  516. package/src/bollharness/src/scripts/hooks/risk-tracker.ts +121 -0
  517. package/src/bollharness/src/scripts/hooks/sanitize-on-read.ts +10 -0
  518. package/src/bollharness/src/scripts/hooks/session-reflection.ts +12 -0
  519. package/src/bollharness/src/scripts/hooks/session-start-magic-docs.ts +12 -0
  520. package/src/bollharness/src/scripts/hooks/session-start-reset-risk.ts +12 -0
  521. package/src/bollharness/src/scripts/hooks/session-start-toolkit-reminder.ts +12 -0
  522. package/src/bollharness/src/scripts/hooks/stop-evaluator.ts +164 -0
  523. package/src/bollharness/src/scripts/hooks/tool-call-counter.ts +10 -0
  524. package/src/bollharness/src/scripts/hooks/trace-analyzer.ts +14 -0
  525. package/src/bollharness/src/scripts/install/install-trust-token.ts +13 -0
  526. package/src/bollharness/src/scripts/install/multi_project_registry.ts +13 -0
  527. package/src/bollharness/src/scripts/install/phase2_auto.ts +28 -0
  528. package/src/bollharness/src/scripts/install/pre_commit_installer.ts +10 -0
  529. package/src/bollharness/src/scripts/install/tier_selector.ts +10 -0
  530. package/src/bollharness/src/scripts/install/transcript_miner.ts +13 -0
  531. package/src/bollharness/src/scripts/lib/claim_patterns.ts +11 -0
  532. package/src/bollharness/src/scripts/lib/sanitize_patterns.ts +13 -0
  533. package/src/bollharness/src/scripts/sanitize.ts +9 -0
  534. package/src/bollharness/templates/persona/default.json +19 -0
  535. package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
  536. package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
  537. package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
  538. package/src/bollharness/templates/scaffold/.gitignore.append +16 -0
  539. package/src/bollharness/templates/scaffold/CLAUDE.md +89 -0
  540. package/src/bollharness/templates/scaffold/docs/INDEX.md +3 -0
  541. package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +38 -0
  542. package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +45 -0
  543. package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +2 -0
  544. package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
  545. package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +35 -0
  546. package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +51 -0
  547. package/src/bollharness/tsconfig.json +26 -0
  548. package/src/bollharness-integration/channel-judgment-engine.ts +634 -0
  549. package/src/bollharness-integration/context-chain-router.ts +474 -0
  550. package/src/bollharness-integration/context-router-judgment.ts +339 -0
  551. package/src/bollharness-integration/context-router.ts +583 -0
  552. package/src/bollharness-integration/gate-state-machine.ts +444 -0
  553. package/src/bollharness-integration/gate-transition-hooks.ts +137 -0
  554. package/src/bollharness-integration/guard-checker.ts +451 -0
  555. package/src/bollharness-integration/index.ts +219 -0
  556. package/src/bollharness-integration/integration.ts +538 -0
  557. package/src/bollharness-integration/judgment-prompts.yaml +535 -0
  558. package/src/bollharness-integration/llm-judgment-engine.ts +712 -0
  559. package/src/bollharness-integration/skill-adapter.ts +646 -0
  560. package/src/cli/interface.ts +211 -0
  561. package/src/constraint-runtime/package-lock.json +48 -0
  562. package/src/constraint-runtime/package.json +34 -0
  563. package/src/constraint-runtime/src/_archive_helper.ts +16 -0
  564. package/src/constraint-runtime/src/agent/coordinator.ts +71 -0
  565. package/src/constraint-runtime/src/agent/index.ts +1 -0
  566. package/src/constraint-runtime/src/assistant/index.ts +15 -0
  567. package/src/constraint-runtime/src/bootstrap/index.ts +15 -0
  568. package/src/constraint-runtime/src/bootstrap_graph.ts +17 -0
  569. package/src/constraint-runtime/src/bridge/index.ts +15 -0
  570. package/src/constraint-runtime/src/buddy/index.ts +15 -0
  571. package/src/constraint-runtime/src/cli/index.ts +15 -0
  572. package/src/constraint-runtime/src/command_graph.ts +20 -0
  573. package/src/constraint-runtime/src/commands.ts +83 -0
  574. package/src/constraint-runtime/src/components/index.ts +15 -0
  575. package/src/constraint-runtime/src/constants/index.ts +15 -0
  576. package/src/constraint-runtime/src/constraint/budget.ts +25 -0
  577. package/src/constraint-runtime/src/constraint/index.ts +3 -0
  578. package/src/constraint-runtime/src/constraint/permission.ts +28 -0
  579. package/src/constraint-runtime/src/context.ts +45 -0
  580. package/src/constraint-runtime/src/coordinator/index.ts +15 -0
  581. package/src/constraint-runtime/src/cost_hook.ts +6 -0
  582. package/src/constraint-runtime/src/cost_tracker.ts +9 -0
  583. package/src/constraint-runtime/src/deferred_init.ts +18 -0
  584. package/src/constraint-runtime/src/direct_modes.ts +13 -0
  585. package/src/constraint-runtime/src/dynamic-tool-loader.ts +115 -0
  586. package/src/constraint-runtime/src/entrypoints/index.ts +15 -0
  587. package/src/constraint-runtime/src/execution_registry.ts +41 -0
  588. package/src/constraint-runtime/src/history.ts +16 -0
  589. package/src/constraint-runtime/src/hooks/index.ts +15 -0
  590. package/src/constraint-runtime/src/index.ts +28 -0
  591. package/src/constraint-runtime/src/ink.ts +4 -0
  592. package/src/constraint-runtime/src/keybindings/index.ts +15 -0
  593. package/src/constraint-runtime/src/memdir/index.ts +15 -0
  594. package/src/constraint-runtime/src/migrations/index.ts +15 -0
  595. package/src/constraint-runtime/src/models.ts +49 -0
  596. package/src/constraint-runtime/src/moreright/index.ts +15 -0
  597. package/src/constraint-runtime/src/native_ts/index.ts +15 -0
  598. package/src/constraint-runtime/src/output_styles/index.ts +15 -0
  599. package/src/constraint-runtime/src/parity_audit.ts +23 -0
  600. package/src/constraint-runtime/src/plugins/index.ts +15 -0
  601. package/src/constraint-runtime/src/port_manifest.ts +20 -0
  602. package/src/constraint-runtime/src/prefetch.ts +17 -0
  603. package/src/constraint-runtime/src/query.ts +7 -0
  604. package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +63 -0
  605. package/src/constraint-runtime/src/reference_data/commands_snapshot.json +1037 -0
  606. package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +10 -0
  607. package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +12 -0
  608. package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +14 -0
  609. package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +8 -0
  610. package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +8 -0
  611. package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +32 -0
  612. package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +13 -0
  613. package/src/constraint-runtime/src/reference_data/subsystems/cli.json +26 -0
  614. package/src/constraint-runtime/src/reference_data/subsystems/components.json +32 -0
  615. package/src/constraint-runtime/src/reference_data/subsystems/constants.json +28 -0
  616. package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +8 -0
  617. package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +15 -0
  618. package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +32 -0
  619. package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +21 -0
  620. package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +15 -0
  621. package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +18 -0
  622. package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +8 -0
  623. package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +11 -0
  624. package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +8 -0
  625. package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +9 -0
  626. package/src/constraint-runtime/src/reference_data/subsystems/remote.json +11 -0
  627. package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +8 -0
  628. package/src/constraint-runtime/src/reference_data/subsystems/screens.json +10 -0
  629. package/src/constraint-runtime/src/reference_data/subsystems/server.json +10 -0
  630. package/src/constraint-runtime/src/reference_data/subsystems/services.json +32 -0
  631. package/src/constraint-runtime/src/reference_data/subsystems/skills.json +27 -0
  632. package/src/constraint-runtime/src/reference_data/subsystems/state.json +13 -0
  633. package/src/constraint-runtime/src/reference_data/subsystems/types.json +18 -0
  634. package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +9 -0
  635. package/src/constraint-runtime/src/reference_data/subsystems/utils.json +32 -0
  636. package/src/constraint-runtime/src/reference_data/subsystems/vim.json +12 -0
  637. package/src/constraint-runtime/src/reference_data/subsystems/voice.json +8 -0
  638. package/src/constraint-runtime/src/reference_data/tools_snapshot.json +1042 -0
  639. package/src/constraint-runtime/src/remote/index.ts +15 -0
  640. package/src/constraint-runtime/src/remote_runtime.ts +17 -0
  641. package/src/constraint-runtime/src/runtime/index.ts +1 -0
  642. package/src/constraint-runtime/src/runtime/session.ts +42 -0
  643. package/src/constraint-runtime/src/schemas/index.ts +15 -0
  644. package/src/constraint-runtime/src/screens/index.ts +15 -0
  645. package/src/constraint-runtime/src/server/index.ts +15 -0
  646. package/src/constraint-runtime/src/services/index.ts +15 -0
  647. package/src/constraint-runtime/src/session_store.ts +32 -0
  648. package/src/constraint-runtime/src/setup.ts +50 -0
  649. package/src/constraint-runtime/src/skills/index.ts +1 -0
  650. package/src/constraint-runtime/src/skills/skill-registry.ts +40 -0
  651. package/src/constraint-runtime/src/state/index.ts +15 -0
  652. package/src/constraint-runtime/src/system_init.ts +21 -0
  653. package/src/constraint-runtime/src/thinking/engine.ts +61 -0
  654. package/src/constraint-runtime/src/thinking/index.ts +1 -0
  655. package/src/constraint-runtime/src/tool_pool.ts +20 -0
  656. package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +12 -0
  657. package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +12 -0
  658. package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +13 -0
  659. package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +10 -0
  660. package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +13 -0
  661. package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +14 -0
  662. package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +10 -0
  663. package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +24 -0
  664. package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +13 -0
  665. package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +23 -0
  666. package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +12 -0
  667. package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +12 -0
  668. package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +10 -0
  669. package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +10 -0
  670. package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +14 -0
  671. package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +58 -0
  672. package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +19 -0
  673. package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +28 -0
  674. package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +34 -0
  675. package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +50 -0
  676. package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +23 -0
  677. package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +49 -0
  678. package/src/constraint-runtime/src/tools.ts +100 -0
  679. package/src/constraint-runtime/src/transcript.ts +23 -0
  680. package/src/constraint-runtime/src/types/index.ts +15 -0
  681. package/src/constraint-runtime/src/upstream_proxy/index.ts +15 -0
  682. package/src/constraint-runtime/src/utils/index.ts +15 -0
  683. package/src/constraint-runtime/src/vim/index.ts +15 -0
  684. package/src/constraint-runtime/src/voice/index.ts +15 -0
  685. package/src/constraint-runtime/tests/agent.test.ts +20 -0
  686. package/src/constraint-runtime/tests/constraint.test.ts +47 -0
  687. package/src/constraint-runtime/tests/skill.test.ts +23 -0
  688. package/src/constraint-runtime/tests/thinking.test.ts +28 -0
  689. package/src/constraint-runtime/tsconfig.json +13 -0
  690. package/src/constraints/index.ts +6 -0
  691. package/src/documents/reader.ts +80 -0
  692. package/src/electron-preload.ts +25 -0
  693. package/src/electron.ts +200 -0
  694. package/src/index.ts +1606 -0
  695. package/src/llm/config-store.ts +312 -0
  696. package/src/llm/llm-judgment-client.ts +470 -0
  697. package/src/llm/pi-ai.ts +522 -0
  698. package/src/network/agent-network.ts +800 -0
  699. package/src/network/hybrid-messenger.ts +199 -0
  700. package/src/network/iroh-bootstrap.ts +57 -0
  701. package/src/network/iroh-discovery.ts +207 -0
  702. package/src/network/iroh-integration.ts +158 -0
  703. package/src/network/iroh-transport.ts +594 -0
  704. package/src/network/p2p.ts +963 -0
  705. package/src/network/storage/adapters/json-adapter.ts +439 -0
  706. package/src/network/storage/index.ts +187 -0
  707. package/src/network/storage/types.ts +166 -0
  708. package/src/pi-ecosystem/index.ts +453 -0
  709. package/src/pi-ecosystem-colony/index.ts +482 -0
  710. package/src/pi-ecosystem-goals/index.ts +585 -0
  711. package/src/pi-ecosystem-judgment/decision.ts +431 -0
  712. package/src/pi-ecosystem-judgment/distillation.ts +398 -0
  713. package/src/pi-ecosystem-judgment/human-value-store.ts +580 -0
  714. package/src/pi-ecosystem-judgment/index.ts +678 -0
  715. package/src/pi-ecosystem-judgment/value-injection.ts +744 -0
  716. package/src/pi-ecosystem-mcp/index.ts +427 -0
  717. package/src/pi-ecosystem-subagents/index.ts +408 -0
  718. package/src/social/ant-colony/AdaptiveHeartbeat.ts +131 -0
  719. package/src/social/ant-colony/PheromoneEngine.ts +302 -0
  720. package/src/social/ant-colony/index.ts +18 -0
  721. package/src/social/ant-colony/types.ts +94 -0
  722. package/src/social/channels/ChannelManager.ts +485 -0
  723. package/src/social/channels/DiapChannelBridge.ts +501 -0
  724. package/src/social/channels/InterestMatcher.ts +189 -0
  725. package/src/social/channels/agent-workflow-config.json +214 -0
  726. package/src/social/channels/agent-workflow-config.yaml +334 -0
  727. package/src/social/channels/channel-agent-session.ts +407 -0
  728. package/src/social/channels/channel-heartbeat-agent.ts +622 -0
  729. package/src/social/channels/diap-doc-parser.ts +282 -0
  730. package/src/social/channels/harness-workflow-integrator.ts +594 -0
  731. package/src/social/channels/index.ts +22 -0
  732. package/src/social/channels/types.ts +115 -0
  733. package/src/social/global-shared-context.ts +506 -0
  734. package/src/social/heartbeat.ts +1041 -0
  735. package/src/social/persona/enhanced-persona.ts +359 -0
  736. package/src/test/ai-judgment-test.ts +92 -0
  737. package/src/test/bollharness-integration.test.ts +398 -0
  738. package/src/test/channel-agent-multi-dialogue.ts +265 -0
  739. package/src/test/channel-heartbeat-agent-test.ts +244 -0
  740. package/src/test/constraint-layer.test.ts +191 -0
  741. package/src/test/diap-identity-test.ts +222 -0
  742. package/src/test/diap-quick-test.ts +73 -0
  743. package/src/test/global-shared-context.test.ts +393 -0
  744. package/src/test/harness-judgment-injection.test.ts +353 -0
  745. package/src/test/harness-workflow-integrator-test.ts +285 -0
  746. package/src/test/human-value-store.test.ts +316 -0
  747. package/src/test/hybrid-integration-test.ts +126 -0
  748. package/src/test/hybrid-messenger-verify.ts +68 -0
  749. package/src/test/iroh-bistream-debug.ts +50 -0
  750. package/src/test/iroh-communication.test.ts +81 -0
  751. package/src/test/iroh-debug-test.ts +69 -0
  752. package/src/test/iroh-diap-test.ts +90 -0
  753. package/src/test/iroh-direct-connect.ts +65 -0
  754. package/src/test/iroh-e2e-fixed.ts +106 -0
  755. package/src/test/iroh-e2e-same-process.ts +83 -0
  756. package/src/test/iroh-e2e.ts +83 -0
  757. package/src/test/iroh-final-e2e.ts +84 -0
  758. package/src/test/iroh-relay-test.ts +46 -0
  759. package/src/test/iroh-simple-test.ts +49 -0
  760. package/src/test/iroh-transport-verify.ts +60 -0
  761. package/src/test/iroh-transport.test.ts +47 -0
  762. package/src/test/iroh-two-nodes.ts +87 -0
  763. package/src/test/iroh-verify.ts +55 -0
  764. package/src/test/judgment-decision.test.ts +373 -0
  765. package/src/test/llm-judgment-integration.test.ts +257 -0
  766. package/src/test/p2p-agent-complex-dialogue.ts +490 -0
  767. package/src/test/p2p-agent-dialogue.ts +423 -0
  768. package/src/test/p2p-agent-full-bidirectional.ts +686 -0
  769. package/src/test/p2p-agent-harness-flow.ts +562 -0
  770. package/src/test/p2p-agent-harness-single.ts +175 -0
  771. package/src/test/p2p-ai-dialogue-test.ts +374 -0
  772. package/src/test/p2p-cid-connect-test.ts +245 -0
  773. package/src/test/p2p-connect-receiver.ts +85 -0
  774. package/src/test/p2p-iroh-test.ts +214 -0
  775. package/src/test/p2p-minimal-test.ts +264 -0
  776. package/src/test/p2p-node-1.ts +172 -0
  777. package/src/test/p2p-node-2.ts +172 -0
  778. package/src/test/p2p-server.ts +335 -0
  779. package/src/test/p2p-two-nodes-test.ts +542 -0
  780. package/src/test/pi-sdk.test.ts +47 -0
  781. package/src/test/set-persona.ts +56 -0
  782. package/src/test/simple.test.ts +11 -0
  783. package/src/test/storage-integration.test.ts +191 -0
  784. package/src/test/subagent-manager.test.ts +392 -0
  785. package/src/test/test-gate-flow.test.ts +92 -0
  786. package/src/test/workflow-engine.test.ts +101 -0
  787. package/src/web/api-config.html +265 -0
  788. package/src/web/client.js +1401 -0
  789. package/src/web/components/p2p/P2PModal.tsx +328 -0
  790. package/src/web/components/p2p/index.ts +404 -0
  791. package/src/web/components/p2p/index.tsx +297 -0
  792. package/src/web/components/p2p/p2p-connection.ts +186 -0
  793. package/src/web/components/p2p/p2p-identity.ts +92 -0
  794. package/src/web/components/p2p/p2p-manager.ts +109 -0
  795. package/src/web/components/p2p/p2p-messages.ts +219 -0
  796. package/src/web/components/p2p/p2p-modal.ts +685 -0
  797. package/src/web/components/p2p/p2p-store-memory.ts +162 -0
  798. package/src/web/components/p2p/types.ts +112 -0
  799. package/src/web/design.md +99 -0
  800. package/src/web/index.html +192 -0
  801. package/src/web/server.ts +1878 -0
  802. package/src/web/style.css +3260 -0
  803. package/src/workflows/collaboration.ts +455 -0
  804. package/src/workflows/index.ts +64 -0
  805. package/tsconfig.electron.json +20 -0
  806. package/tsconfig.json +19 -0
  807. package/vitest.config.ts +12 -0
  808. package//346/203/263/346/263/225.md +79 -0
@@ -0,0 +1,268 @@
1
+ ๏ปฟ---
2
+ paths:
3
+ - "backend/product/routes/**"
4
+ - "backend/server.py"
5
+ - "backend/product/protocol/**"
6
+ - "backend/product/auth/**"
7
+ - "backend/product/coaching/**"
8
+ - "backend/product/hackathon/**"
9
+ - "backend/product/bridge/**"
10
+ - "backend/product/a2a/**"
11
+ - "backend/product/matching/**"
12
+ - "backend/product/messaging/**"
13
+ - "backend/product/public_profiles/**"
14
+ - "backend/product/inbox/**"
15
+ - "mcp-server/boll_mcp/**"
16
+ - "mcp-server-node/src/**"
17
+ ---
18
+
19
+ # Runtime Routes
20
+
21
+ ## Core
22
+ - `GET /health`
23
+
24
+ ## Field API (`/field/api`)
25
+ - `GET /field/api/stats`
26
+ - `POST /field/api/deposit` (**admin-only**)
27
+ - `POST /field/api/load-profiles` (**admin-only**)
28
+ - `POST /field/api/match-perspectives` (**admin-only**)
29
+ - `POST /field/api/match`
30
+ - `POST /field/api/match-owners`
31
+
32
+ ## Product API (`/api`)
33
+ - `POST /api/register` โ€” invite-code + email registration
34
+ - `POST /api/login` โ€” email + password login
35
+ - `POST /api/logout` โ€” session logout
36
+ - `PUT /api/change-password` โ€” change password (session auth)
37
+ - `GET /api/profile` โ€” get current user profile
38
+ - `PUT /api/profile` โ€” update profile
39
+ - `PATCH /api/profile/visibility` โ€” toggle profile visibility
40
+ - `GET /api/ws-ticket` โ€” WebSocket auth ticket
41
+ - `POST /api/demands` โ€” create demand (clarification-session)
42
+ - `PUT /api/demands/{demand_id}/confirm` โ€” confirm demand
43
+ - `POST /api/demands/{demand_id}/start` โ€” start convergence run
44
+ - `GET /api/demands` โ€” list user demands
45
+ - `GET /api/demands/{demand_id}` โ€” demand detail
46
+ - `GET /api/runs/{run_id}` โ€” run status (+ participant_names)
47
+ - `GET /api/runs/{run_id}/result` โ€” run result (+ participant_names)
48
+ - `WS /ws/runs/{run_id}` โ€” run progress WebSocket
49
+ - `POST /api/admin/invite-codes` (**admin-only**)
50
+ - `POST /api/admin/stream-token` (**admin-only**) โ€” SSE auth token
51
+ - `GET /api/admin/stream` (**admin-only**) โ€” SSE event stream
52
+ - `GET /api/admin/bridges` (**admin-only**) โ€” bridge instance status
53
+ - `GET /api/admin/runs` (**admin-only**) โ€” runs list with filters
54
+ - `GET /api/admin/runs/{run_id}/events` (**admin-only**) โ€” run event log
55
+ - `GET /api/admin/invite-chain` (**admin-only**) โ€” invite tree tracing (PLAN-064)
56
+ - `GET /api/admin/usage/overview` (**admin-only**) โ€” usage analytics overview
57
+ - `GET /api/admin/usage/events` (**admin-only**) โ€” usage event log
58
+ - `GET /api/admin/usage/report` (**admin-only**) โ€” usage report
59
+ - `GET /api/admin/users-overview` (**admin-only**) โ€” all users overview
60
+ - `GET /api/admin/users/{user_id}/sessions` (**admin-only**) โ€” user session history
61
+ - `GET /api/admin/sessions/turns` (**admin-only**) โ€” session turns across users
62
+ - `GET /api/admin/config/status` (**admin-only**) โ€” server config status
63
+ - `GET /api/dashboard` โ€” user dashboard data
64
+ - `GET /api/metrics/platform` โ€” platform-wide metrics
65
+
66
+ ## Coaching API (`/api/coaching`)
67
+ - `POST /api/coaching/chat` โ€” create a coaching session and stream first reply
68
+ - `POST /api/coaching/chat/{session_id}` โ€” continue an existing coaching session
69
+ - `POST /api/coaching/report/{session_id}` โ€” stream report generation for a session
70
+ - `GET /api/coaching/sessions` โ€” list coaching sessions for current account
71
+ - `GET /api/coaching/sessions/{session_id}` โ€” get coaching session detail
72
+ - `GET /api/coaching/sessions/{session_id}/report` โ€” fetch persisted coaching report
73
+ - `POST /api/coaching/sync-profile` โ€” sync user coaching profile to protocol layer
74
+ - `PUT /api/coaching/profile` โ€” update user coaching profile
75
+ - `PATCH /api/coaching/sessions/{session_id}/title` โ€” rename a coaching session
76
+ - `DELETE /api/coaching/sessions/{session_id}` โ€” delete a coaching session
77
+ - `GET /api/coaching/profile` โ€” get user coaching profile (profile_fields + coaching_fields + insight_overrides)
78
+ - `POST /api/coaching/profile-chat` โ€” AI profile assistant SSE chat (no session creation)
79
+ - `PATCH /api/coaching/insight-overrides` โ€” confirm/reject/edit AI-extracted insights
80
+ - `GET /api/coaching/operations` โ€” list async operations (find_people/daily_surprise)
81
+ - `POST /api/coaching/behavior` โ€” record share/download/copy behavior metrics
82
+ - `GET /api/coaching/settings/dream-consent` โ€” get dream opt-in status
83
+ - `PUT /api/coaching/settings/dream-consent` โ€” toggle dream opt-in
84
+ - `POST /api/coaching/dream-now` โ€” manually trigger dream consolidation for today
85
+ - `GET /api/coaching/growth-logs` โ€” list growth log entries
86
+ - `PATCH /api/coaching/growth-logs/{log_id}/share` โ€” share growth log to plaza (anonymized)
87
+ - `DELETE /api/coaching/growth-logs/{log_id}/share` โ€” revoke sharing (72h window)
88
+ - `GET /api/coaching/plaza` โ€” **unauthenticated** browse anonymized growth logs (rate-limited: 60/min/IP)
89
+
90
+ ## Coaching Admin API (`/api/coaching/admin`, **admin-only**)
91
+ - `GET /api/coaching/admin/users` โ€” list coaching users with session counts
92
+ - `GET /api/coaching/admin/users/{account_id}` โ€” get coaching panorama for one user
93
+ - `GET /api/coaching/admin/users/{account_id}/export` โ€” export one user's coaching data
94
+ - `GET /api/coaching/admin/prompts` โ€” list prompt versions for coaching prompts
95
+ - `PUT /api/coaching/admin/prompts/{prompt_name}` โ€” create and activate a prompt version
96
+ - `POST /api/coaching/admin/prompts/{prompt_name}/preview` โ€” render a prompt template without persisting
97
+ - `GET /api/coaching/admin/export` โ€” export all coaching data
98
+ - `GET /api/coaching/admin/strategy` (**admin-only**) โ€” get coaching strategy config (internal)
99
+ - `PUT /api/coaching/admin/strategy/{config_key}` (**admin-only**) โ€” update coaching strategy config (internal)
100
+ - `GET /api/coaching/admin/operations` (**admin-only**) โ€” list async operations (internal)
101
+ - `POST /api/coaching/admin/operations/{operation_id}/retry` (**admin-only**) โ€” retry failed operation (internal)
102
+ - `GET /api/coaching/admin/scheduler-health` (**admin-only**) โ€” coaching scheduler health (internal)
103
+
104
+ ## Hackathon API (`/api/hackathon`, **session auth**)
105
+ - `POST /api/hackathon/events` โ€” create hackathon event (**organizer**)
106
+ - `GET /api/hackathon/events` โ€” list events
107
+ - `GET /api/hackathon/events/{event_id}` โ€” event detail
108
+ - `PUT /api/hackathon/events/{event_id}` โ€” update event (**organizer**)
109
+ - `PATCH /api/hackathon/events/{event_id}/status` โ€” transition event status (**organizer**)
110
+ - `POST /api/hackathon/events/{event_id}/invite` โ€” generate invite codes (**organizer**)
111
+ - `POST /api/hackathon/events/{event_id}/enrollments` โ€” enroll in event
112
+ - `GET /api/hackathon/events/{event_id}/enrollments` โ€” list enrollments
113
+ - `GET /api/hackathon/events/{event_id}/enrollments/mine` โ€” my enrollment
114
+ - `PATCH /api/hackathon/enrollments/{enrollment_id}` โ€” update enrollment role (**organizer**)
115
+ - `POST /api/hackathon/events/{event_id}/teams` โ€” create team
116
+ - `GET /api/hackathon/events/{event_id}/teams` โ€” list teams
117
+ - `GET /api/hackathon/teams/{team_id}` โ€” team detail
118
+ - `POST /api/hackathon/teams/{team_id}/members` โ€” add team member
119
+ - `DELETE /api/hackathon/teams/{team_id}/members/{agent_id}` โ€” remove team member
120
+ - `PATCH /api/hackathon/teams/{team_id}/status` โ€” update team status
121
+ - `POST /api/hackathon/teams/{team_id}/claim` โ€” claim challenge
122
+ - `POST /api/hackathon/events/{event_id}/challenges` โ€” create challenge (**organizer**)
123
+ - `GET /api/hackathon/events/{event_id}/challenges` โ€” list challenges
124
+ - `POST /api/hackathon/teams/{team_id}/submit` โ€” submit deliverables
125
+ - `GET /api/hackathon/events/{event_id}/reviews/assignments` โ€” get review assignments (**judge**)
126
+ - `POST /api/hackathon/reviews` โ€” submit review (**judge**)
127
+ - `GET /api/hackathon/events/{event_id}/reviews/summary` โ€” review summary (**organizer**)
128
+ - `GET /api/hackathon/teams/{team_id}/reviews` โ€” team reviews
129
+ - `POST /api/hackathon/upload/sts-token` โ€” get OSS upload token
130
+ - `GET /api/hackathon/events/{event_id}/stats` โ€” event statistics
131
+ - `POST /api/hackathon/events/{event_id}/import` โ€” bulk import participants (**organizer**)
132
+ - `GET /api/hackathon/events/{event_id}/import/{job_id}` โ€” import job status
133
+
134
+ ## Public API (`/api/public`, **unauthenticated**, PLAN-064)
135
+ - `POST /api/public/registration-chat` โ€” SSE streaming registration chat (rate-limited: 10 req/min/IP)
136
+
137
+ ## Scene API (`/api/scene` + `/api/auth/secondme`)
138
+ - `GET /api/auth/secondme/url` โ€” SecondMe OAuth URL
139
+ - `GET /api/auth/secondme/callback` โ€” SecondMe OAuth callback (browser redirect)
140
+ - `POST /api/auth/secondme/callback` โ€” SecondMe OAuth callback (JSON API)
141
+ - `POST /api/auth/secondme/register` โ€” SecondMe register
142
+ - `POST /api/auth/secondme/bind` โ€” SecondMe bind to existing account
143
+ - `POST /api/scene/chat` โ€” SSE streaming scene chat
144
+
145
+ ## A2A Protocol API (`/a2a` + `/.well-known`)
146
+ - `GET /.well-known/agent-card.json` โ€” A2A agent card matching
147
+ - `GET /a2a/extendedAgentCard` โ€” extended agent card
148
+ - `POST /a2a/message:send` โ€” send A2A message
149
+ - `POST /a2a/message:stream` โ€” stream A2A message
150
+ - `GET /a2a/tasks/{task_id}` โ€” get A2A task
151
+ - `GET /a2a/tasks` โ€” list A2A tasks
152
+
153
+ ## Discovery Agent API (`/api/matching`)
154
+ - `GET /api/matching/agents/{agent_id}/recommendations` โ€” list recommendations for agent
155
+ - `POST /api/matching/agents/{agent_id}/feedback` โ€” submit matching feedback
156
+ - `GET /api/matching/agents/{agent_id}/status` โ€” get agent matching status
157
+
158
+ ## Plaza API (`/api/plaza`, **unauthenticated**)
159
+ - `GET /api/plaza/profiles` โ€” list community profiles
160
+ - `GET /api/plaza/profiles/{user_id}` โ€” get community profile detail
161
+ - `GET /api/plaza/projects` โ€” list community projects
162
+ - `GET /api/plaza/demands` โ€” list community demands
163
+
164
+ ## Public Profiles API (`/api/public-profiles`)
165
+ - `PUT /api/public-profiles/{agent_id}` โ€” update public profile
166
+ - `GET /api/public-profiles` โ€” list public directory
167
+ - `GET /api/public-profiles/lookup` โ€” lookup public profiles
168
+ - `GET /api/public-profiles/{agent_id}` โ€” get public profile
169
+
170
+ ## DID API
171
+ - `GET /user/{account_id}/did.json` โ€” account-level DID document
172
+
173
+ ## Bridge API (`/api/bridge`, **bridge-key auth**)
174
+ - `GET /api/bridge/pending` โ€” poll pending runs
175
+ - `POST /api/bridge/accept` โ€” accept a run
176
+ - `POST /api/bridge/heartbeat` โ€” heartbeat
177
+ - `POST /api/bridge/events` โ€” push progress events
178
+ - `POST /api/bridge/complete` โ€” complete a run
179
+
180
+ ## Protocol API (`/protocol`, **session-token auth**, MCP Server target)
181
+ - `GET /protocol` โ€” protocol metadata + encoding package summary
182
+ - `GET /protocol/encoding-package` โ€” full encoding package
183
+ - `GET /protocol/agents/{agent_id}/federation` โ€” federation metadata
184
+ - `GET /protocol/agents/{agent_id}/did.json` โ€” DID document
185
+ - `POST /protocol/auth/register` โ€” register account + default agent
186
+ - `POST /protocol/auth/login` โ€” login
187
+ - `POST /protocol/auth/consumer-sessions` โ€” create consumer auth session (PLAN-064)
188
+ - `GET /protocol/auth/consumer-sessions/{auth_session_id}` โ€” get consumer session state (PLAN-064)
189
+ - `POST /protocol/auth/consumer-sessions/{auth_session_id}/exchange` โ€” exchange challenge for token (PLAN-064)
190
+ - `POST /protocol/auth/anp/challenge` โ€” ANP DID challenge generation (PLAN-064)
191
+ - `POST /protocol/auth/anp/verify` โ€” ANP DID signature verification (PLAN-064)
192
+ - `POST /protocol/auth/token` โ€” refresh session token
193
+ - `POST /protocol/auth/logout` โ€” logout
194
+ - `POST /protocol/auth/change-password` โ€” change password
195
+ - `POST /protocol/auth/forgot-password` โ€” request password reset (PLAN-064)
196
+ - `POST /protocol/auth/reset-password` โ€” reset password with token (PLAN-064)
197
+ - `DELETE /protocol/auth/account` โ€” delete account (PLAN-064)
198
+ - `POST /protocol/auth/byok-session` โ€” bind BYOK API key (supports Anthropic + compatible providers: minimax; optional `base_url` for relay)
199
+ - `GET /protocol/auth/byok-session` โ€” check BYOK status
200
+ - `DELETE /protocol/auth/byok-session` โ€” clear BYOK binding
201
+ - `POST /protocol/auth/redeem-code` โ€” redeem invite code โ†’ +30 quota bonus (PLAN-085 WP-03)
202
+ - `GET /protocol/account` โ€” get current account metadata (PLAN-064)
203
+ - `POST /protocol/account/email/verification` โ€” request email verification (PLAN-064)
204
+ - `GET /protocol/account/email/verify` โ€” email verification callback (PLAN-064)
205
+ - `GET /protocol/inbox` โ€” list inbox items (PLAN-064)
206
+ - `GET /protocol/inbox/{item_id}` โ€” get inbox item detail (PLAN-064)
207
+ - `POST /protocol/inbox/{item_id}/read` โ€” mark inbox item as read (PLAN-064)
208
+ - `POST /protocol/agents` โ€” create agent
209
+ - `GET /protocol/agents` โ€” list agents
210
+ - `GET /protocol/agents/public` โ€” list public agents directory (PLAN-064)
211
+ - `GET /protocol/agents/public/{agent_id}` โ€” get public agent detail (PLAN-064)
212
+ - `GET /protocol/agents/{agent_id}` โ€” get agent detail
213
+ - `GET /protocol/agents/{agent_id}/quality` โ€” get agent profile quality score (PLAN-064)
214
+ - `PUT /protocol/agents/{agent_id}` โ€” update agent
215
+ - `PATCH /protocol/agents/{agent_id}/visibility` โ€” set visibility
216
+ - `DELETE /protocol/agents/{agent_id}` โ€” delete agent
217
+ - `GET /protocol/invite-codes` โ€” list user's own invite codes (PLAN-064)
218
+ - `GET /protocol/demands/public` โ€” list public demands (PLAN-064)
219
+ - `GET /protocol/demands/public/{demand_id}` โ€” get public demand detail (PLAN-064)
220
+ - `PATCH /protocol/demands/{demand_id}/visibility` โ€” toggle demand visibility (PLAN-064)
221
+ - `GET /protocol/talent-pool` โ€” list talent pool (PLAN-064)
222
+ - `POST /protocol/talent-pool` โ€” add agent to talent pool (PLAN-064)
223
+ - `PUT /protocol/talent-pool/{agent_id}` โ€” update talent pool entry (PLAN-064)
224
+ - `DELETE /protocol/talent-pool/{agent_id}` โ€” remove from talent pool (PLAN-064)
225
+ - `GET /protocol/notifications/stream` โ€” SSE notifications stream (PLAN-064)
226
+ - `POST /protocol/clarification-sessions` โ€” start clarification-session session
227
+ - `GET /protocol/clarification-sessions/{session_id}` โ€” get clarification-session state
228
+ - `POST /protocol/clarification-sessions/{session_id}/reply` โ€” continue clarification-session (SSE)
229
+ - `POST /protocol/clarification-sessions/{session_id}/confirm` โ€” confirm + trigger matching; when `start_negotiation=true`, also starts hosted negotiation
230
+ - `POST /protocol/discover` โ€” ad-hoc matching query; when `start_negotiation=true`, also starts hosted negotiation
231
+ - `GET /protocol/discover/{query_id}` โ€” get matching results
232
+ - `POST /protocol/discover/{query_id}/rerun` โ€” re-run existing matching (PLAN-064)
233
+ - `GET /protocol/recommendations/{recommendation_id}` โ€” get recommendation detail
234
+ - `POST /protocol/invitations` โ€” create invitation
235
+ - `GET /protocol/invitations` โ€” list invitations
236
+ - `GET /protocol/invitations/{invitation_id}` โ€” get invitation
237
+ - `PATCH /protocol/invitations/{invitation_id}` โ€” accept/decline invitation
238
+ - `GET /protocol/runs/public` โ€” list public runs (PLAN-064)
239
+ - `GET /protocol/runs/public/{run_id}` โ€” get public run detail (PLAN-064)
240
+ - `GET /protocol/runs/public/{run_id}/result` โ€” get public run result (PLAN-064)
241
+ - `PATCH /protocol/runs/{run_id}/visibility` โ€” toggle run visibility (PLAN-064)
242
+ - `POST /protocol/runs` โ€” legacy invitation-based run creation
243
+ - `GET /protocol/runs/{run_id}` โ€” run status
244
+ - `GET /protocol/runs/{run_id}/prompt` โ€” get current round prompt
245
+ - `POST /protocol/runs/{run_id}/respond` โ€” submit participant response
246
+ - `GET /protocol/runs/{run_id}/result` โ€” get run result
247
+ - `WS /protocol/runs/{run_id}/stream` โ€” run progress WebSocket
248
+ - `POST /protocol/feedback` โ€” submit feedback
249
+ - `GET /protocol/usage` โ€” usage stats
250
+ - `GET /protocol/scenes` โ€” list available scenes (PLAN-064)
251
+ - `GET /protocol/scenes/{scene_id}` โ€” get scene configuration (PLAN-064)
252
+ - `POST /protocol/conversations` โ€” send message (inter-agent messaging)
253
+ - `GET /protocol/conversations` โ€” list conversations
254
+ - `GET /protocol/conversations/{conversation_id}/messages` โ€” get conversation messages
255
+ - `POST /protocol/conversations/{conversation_id}/read` โ€” mark conversation as read
256
+
257
+ ## Auth Lanes
258
+ - `GET /api/lanes/secondme_ai/callback` โ€” SecondMe AI lane OAuth callback (HTML)
259
+
260
+ ## Auth Headers
261
+
262
+ Admin-only routes require `boll_ADMIN_KEY` via either:
263
+ - `X-Admin-Key: <key>`
264
+ - `Authorization: Bearer <key>`
265
+
266
+ Bridge routes require `BRIDGE_API_KEY` via `Authorization: Bearer <key>`.
267
+
268
+ Protocol routes require session token via `Authorization: Bearer <session_token>` and accept `application/vnd.boll.v1+json`.
@@ -0,0 +1,20 @@
1
+ ๏ปฟ---
2
+ paths:
3
+ - "bridge_agent/**"
4
+ - "backend/product/bridge/**"
5
+ - "bridge_contract/**"
6
+ ---
7
+
8
+ # Bridge ๅฎชๆณ• (ADR-026)
9
+
10
+ Bridge ๆ˜ฏ่–„ไธญ็ปง๏ผŒไธๆ˜ฏๆœฌๅœฐ orchestratorใ€‚ไปฅไธ‹ 5 ๆก่ง„ๅˆ™็บฆๆŸๆ‰€ๆœ‰ bridge ๆ”นๅŠจ๏ผš
11
+
12
+ 1. **Worker ไธๆ‹ฅๆœ‰ไธšๅŠก่งฃ้‡Šๆƒ๏ผŒๅชไธŠๆŠฅๆ‰ง่กŒไบ‹ๅฎžใ€‚** ๅฆ‚ๆžœไธ€ๆฎต worker ไปฃ็ ้œ€่ฆ็†่งฃ่พ“ๅ‡บๅ†…ๅฎน็š„ๅซไน‰๏ผŒๅฎƒๅฐฑๅ†™้”™ไบ†ๅœฐๆ–นใ€‚
13
+ 2. **ๅŒไธ€ไธช่ฏญไน‰ๅชๅ…่ฎธๆœ‰ไธ€ไธชๅฎšไน‰ใ€‚** ไธ็ฎกๆ˜ฏๆ–‡ไปถๅๆจกๅผใ€artifact ็ฑปๅž‹ใ€่ฟ˜ๆ˜ฏ event ๅซไน‰๏ผŒๅช่ƒฝๅœจไธ€ไธชๅœฐๆ–นๅฎšไน‰ใ€‚
14
+ 3. **่ท‘้€šไบ†ๅฐฑๅ‘็ป“ๆžœ๏ผŒๆฒก่ท‘้€šๅฐฑๆŠฅ failedใ€‚** ไธๅš partial_success ๆŠขๆ•‘ใ€ไธ็”Ÿๆˆ placeholderใ€ไธไปŽๅคฑ่ดฅ stdout ้‡Œ็Œœๅ†…ๅฎนใ€‚่ฟ™ไบ›ๅฆ‚ๆžœ้œ€่ฆ๏ผŒ็”ฑ server ๅ†ณๅฎšใ€‚
15
+ 4. **็”Ÿไบงไธ่ƒฝๆ˜ฏ็ฌฌไธ€ไธช้›†ๆˆ็Žฏๅขƒใ€‚** ๆœฌๅœฐๅฟ…้กป่ƒฝ็”จ fake CLI + ็œŸๅฎž HTTP backend ่ท‘ๅฎŒๆ•ด้“พใ€‚
16
+ 5. **ๆ–ฐๅขž่ง‚ๆต‹็ปดๅบฆๆˆ– event ็ฑปๅž‹๏ผŒๅชๆ”น server๏ผŒไธๆ”น workerใ€‚** ่ฟ™ๆ˜ฏๅผ€้—ญๅŽŸๅˆ™็š„ๅ…ทไฝ“ไฝ“็Žฐใ€‚
17
+
18
+ ไธ‰ๅฑ‚่Œ่ดฃ๏ผš`boll-run` ๅฎšไน‰ๆˆๅŠŸไบง็‰ฉๅฅ‘็บฆ โ†’ `worker` ๆ‰ง่กŒๅ’ŒไธŠๆŠฅไบ‹ๅฎž โ†’ `server` ่งฃ้‡Šไบ‹ๅฎžๅนถ็”Ÿๆˆไบงๅ“่ฏญไน‰ใ€‚
19
+
20
+ ่ฏฆ่ง: `docs/decisions/ADR-026-bridge-thin-relay-architecture.md`
@@ -0,0 +1,30 @@
1
+ ---
2
+ paths:
3
+ - "docs/issues/**"
4
+ - "docs/decisions/ADR-030*"
5
+ - "scripts/hooks/**"
6
+ ---
7
+
8
+ # Closure Semantics (ADR-030)
9
+
10
+ ## Fixed ไธ‰ๅฑ‚ๅฎšไน‰
11
+
12
+ Issue ๆ ‡่ฎฐ "Fixed" ไธ็ญ‰ไบŽ"็—‡็Šถๆถˆๅคฑ"ใ€‚ไธ‰ไธชๅฑ‚็บง๏ผš
13
+
14
+ | ๅฑ‚็บง | ๅซไน‰ | ๆ ‡ๅ‡† | ๆ ‡่ฎฐ |
15
+ |------|------|------|------|
16
+ | Level 1 | ็—‡็Šถๆถˆๅคฑ | ็”ŸไบงไธๆŠฅ้”™ไบ†๏ผŒไฝ†ๆฒกๆœ‰ๅˆ†ๆžๅคๅ‘่ทฏๅพ„ | Runtime Fixed |
17
+ | Level 2 | ๅคๅ‘่ทฏๅพ„ๅ…ณ้—ญ | ไฟฎไบ†ๆ นๅ› ๏ผŒๅˆ†ๆžไบ†ๅคๅ‘่ทฏๅพ„๏ผŒๅ†™ไบ† prevention_status | **Fixed** |
18
+ | Level 3 | ๆœบๅˆถๆถˆ็ญ | Fixed + ๆœ‰ๆœบๆขฐๅŒ– guard ่‡ชๅŠจๆฃ€ๆต‹้˜ฒๆญขๅคๅ‘ | Fixed + Guarded |
19
+
20
+ ## Issue Doc YAML Frontmatter ่ง„่Œƒ
21
+
22
+ ๆ‰€ๆœ‰ `docs/issues/` ไธ‹็š„ issue ๆ–‡ๆกฃๅฟ…้กปๅŒ…ๅซไปฅไธ‹ frontmatter ๅญ—ๆฎต๏ผš
23
+
24
+ ```yaml
25
+ status: fixed|open|wont_fix # ๅฝ“ๅ‰็Šถๆ€
26
+ prevention_status: open|closed # ๅคๅ‘้ข„้˜ฒๆ˜ฏๅฆ้—ญ็Žฏ
27
+ mechanism_layer: guard|test|type|convention # ้˜ฒๆŠคๆœบๅˆถๅฑ‚็บง
28
+ ```
29
+
30
+ ่ฏฆ่ง: `docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md`
@@ -0,0 +1,13 @@
1
+ ---
2
+ paths:
3
+ - "scenes/example-coach/**"
4
+ - "backend/product/coaching/**"
5
+ - "backend/product/routes/coaching*.py"
6
+ ---
7
+
8
+ # example-coach๏ผˆkunzhi-coach๏ผ‰ๅผ€ๅ‘่ง„ๅˆ™
9
+
10
+ - ็‹ฌ็ซ‹ไธŠไธ‹ๆ–‡๏ผš`scenes/example-coach/CLAUDE.md` ๆ˜ฏไธ“ๅฑžๅผ€ๅ‘ๆŒ‡ๅ—
11
+ - ๅ่ฎฎๆŽฅๅฃๅฅ‘็บฆ๏ผš`scenes/example-coach/docs/PROTOCOL-CONTRACT.md` ๅฎšไน‰ไธŽๅ่ฎฎ็š„็ฒพ็กฎไพ่ต–
12
+ - ้ซ˜ๅฑๆจกๅผ๏ผš`scenes/example-coach/docs/ERROR-PATTERNS.md` ๅˆ—ๅ‡บ 6 ไธช coaching ไธ“ๅฑž้”™่ฏฏๆจกๅผ
13
+ - ไธคๅฅ—่ฏญ่จ€๏ผšๅ่ฎฎๆœฏ่ฏญๅ’Œ็”จๆˆท่ฏญ่จ€ไธฅๆ ผๅˆ†็ฆป๏ผŒๅœบๆ™ฏ็”จๆˆทๆฐธ่ฟœไธๆŽฅ่งฆๅ่ฎฎๅ†…้ƒจๆฆ‚ๅฟต
@@ -0,0 +1,50 @@
1
+ ๏ปฟ---
2
+ paths:
3
+ - "backend/product/config.py"
4
+ - "backend/server.py"
5
+ - "scripts/deploy*.sh"
6
+ - "scripts/deploy*.py"
7
+ - ".env*"
8
+ ---
9
+
10
+ # Important Environment Variables
11
+
12
+ ## Required
13
+ - `DATABASE_URL` โ€” PostgreSQL connection string
14
+ - `BRIDGE_API_KEY` โ€” bridge agent authentication
15
+ - `boll_ADMIN_KEY` โ€” admin route authentication
16
+
17
+ ## Optional
18
+ - `ALLOWED_ORIGINS` โ€” CORS origins (default includes localhost + <NETWORK_REDACTED> + <NETWORK_REDACTED> + auth.<NETWORK_REDACTED> + hackathon domains; see `backend/product/config.py`)
19
+ - `boll_ANTHROPIC_API_KEY` โ€” single API key (enables MPG)
20
+ - `boll_ANTHROPIC_API_KEYS` โ€” comma-separated API keys (rotation)
21
+ - `boll_ANTHROPIC_BASE_URL` โ€” custom API base URL
22
+ - `SESSION_TTL_DAYS` โ€” session expiry (default: 30)
23
+ - `BCRYPT_ROUNDS` โ€” password hash rounds (default: 12)
24
+ - `LOGIN_MAX_ATTEMPTS_PER_MINUTE` โ€” rate limit (default: 5)
25
+ - `LOGIN_FREEZE_AFTER_FAILURES` โ€” lockout threshold (default: 10)
26
+ - `LOGIN_FREEZE_MINUTES` โ€” lockout duration (default: 15)
27
+
28
+ ## Secrets (production-only)
29
+ - `boll_KEY_ENCRYPTION_SECRET` โ€” BYOK key encryption
30
+ - `boll_PROTOCOL_ENCODING_PACKAGE_SECRET` โ€” encoding package signing
31
+ - `boll_PROTOCOL_FEDERATION_SECRET` โ€” federation auth
32
+ - `boll_OSS_ACCESS_KEY_ID` / `boll_OSS_ACCESS_KEY_SECRET` / `boll_OSS_ROLE_ARN` โ€” Alibaba Cloud OSS
33
+ - `boll_SMTP_HOST` / `boll_SMTP_PORT` / `boll_SMTP_USERNAME` / `boll_SMTP_PASSWORD` / `boll_SMTP_SENDER` / `boll_SMTP_USE_TLS` โ€” email delivery
34
+ - `SECONDME_CLIENT_ID` / `SECONDME_CLIENT_SECRET` / `SECONDME_REDIRECT_URI` โ€” SecondMe OAuth
35
+
36
+ ## LLM Configuration
37
+ - `boll_DEFAULT_MODEL` โ€” default LLM model
38
+ - `boll_COACHING_ANTHROPIC_API_KEY` / `boll_COACHING_ANTHROPIC_BASE_URL` / `boll_COACHING_ANTHROPIC_MODEL` โ€” coaching-specific LLM
39
+ - `boll_OPENROUTER_API_KEY` / `boll_OPENROUTER_BASE_URL` / `boll_OPENROUTER_MODEL` โ€” OpenRouter fallback
40
+
41
+ ## Operational
42
+ - `boll_SECURE_COOKIES` โ€” cookie security flag (default: true in prod)
43
+ - `boll_PROTOCOL_BYOK_SESSION_TTL_MINUTES` โ€” BYOK session TTL
44
+ - `boll_PROTOCOL_PUBLIC_ORIGIN` / `boll_PUBLIC_BASE_URL` / `boll_APP_PUBLIC_BASE_URL` โ€” public URLs (note: `_build_public_run_url` only reads `app_public_base_url || public_base_url`; `protocol_public_origin` is reserved/unused as of 2026-04-07)
45
+ - `RATE_LIMIT_OVERRIDES` โ€” per-email rate limit overrides (`email:endpoint:max:window,...`); only effective for endpoints that pass `account_email` (not register/login)
46
+ - `RATE_LIMIT_BYPASS_IPS` โ€” comma-separated IP allowlist that skips ALL rate limiting; for internal E2E scripts and health checks running from localhost / known internal subnets so they don't burn the public per-IP register quota. Prod default: `127.0.0.1`
47
+ - `boll_QUALITY_GATE_C_THRESHOLD` / `boll_QUALITY_GATE_A_THRESHOLD` โ€” quality gate thresholds
48
+ - `FIELD_SNAPSHOT_PATH` โ€” field cache path
49
+ - `RUN_TTL_ASSIGNED_MINUTES` / `RUN_TTL_RUNNING_MINUTES` / `RUN_TTL_DELIVERING_MINUTES` โ€” run lifecycle TTLs
50
+ - `RUN_MAX_RETRY_ATTEMPTS` / `RUN_RECOVERY_INTERVAL_SECONDS` โ€” run recovery
@@ -0,0 +1,12 @@
1
+ ---
2
+ paths:
3
+ - "scenes/epic-hackathon/**"
4
+ - "backend/product/hackathon/**"
5
+ - "backend/product/routes/hackathon*.py"
6
+ ---
7
+
8
+ # Hackathon ๅผ€ๅ‘่ง„ๅˆ™
9
+
10
+ - ๅŒๅญ—ๆฎตๆจกๅผ๏ผš`_xxx_to_dict` ๅฟ…้กปๅŒๆ—ถ่ฟ”ๅ›ž `id` ๅ’Œ `xxx_id`
11
+ - ADR-037 ๅœบๆ™ฏ้€‚้…ๅ™จ๏ผšๅ่ฎฎๆฆ‚ๅฟตไธๅพ—ๆณ„้œฒๅˆฐๅœบๆ™ฏ API๏ผŒ็”จ SceneAdapter ๅš็ฟป่ฏ‘+็ผ–ๆŽ’+่ง’่‰ฒ่ทฏ็”ฑ
12
+ - ็Šถๆ€ๆœบ๏ผš`backend/product/hackathon/state_machine.py` ๆ˜ฏไบ‹ไปถ็Šถๆ€่ฝฌๆข็š„ๅ•ไธ€็œŸ็›ธๆบ
@@ -0,0 +1,184 @@
1
+ ๏ปฟ---
2
+ paths:
3
+ - "backend/**"
4
+ - "scenes/**"
5
+ - "website/**"
6
+ - "mcp-server/**"
7
+ - "mcp-server-node/**"
8
+ - "bridge_agent/**"
9
+ - "bridge_contract/**"
10
+ - "tests/**"
11
+ - "experiments/**"
12
+ ---
13
+
14
+ # Repository Structure & Development Commands
15
+
16
+ ## Repository Structure
17
+
18
+ ```
19
+ boll/
20
+ โ”œโ”€โ”€ CHANGELOG.md # Platform-level changelog (v0.1.0 ~ v0.4.1)
21
+ โ”œโ”€โ”€ backend/
22
+ โ”‚ โ”œโ”€โ”€ server.py # V2-only FastAPI entry (port 8080)
23
+ โ”‚ โ”œโ”€โ”€ boll/
24
+ โ”‚ โ”‚ โ”œโ”€โ”€ __init__.py # V2 field-only exports
25
+ โ”‚ โ”‚ โ”œโ”€โ”€ field/ # Intent Field module (12 files)
26
+ โ”‚ โ”‚ โ””โ”€โ”€ matching/ # Discovery engine core (operators, recommendation, encoding, evaluation, logging)
27
+ โ”‚ โ”œโ”€โ”€ product/ # V2 productization layer
28
+ โ”‚ โ”‚ โ”œโ”€โ”€ config.py # Pydantic env-backed config
29
+ โ”‚ โ”‚ โ”œโ”€โ”€ field_sync.py # DB โ†’ MemoryField reload
30
+ โ”‚ โ”‚ โ”œโ”€โ”€ llm.py # LLM client factory
31
+ โ”‚ โ”‚ โ”œโ”€โ”€ quota.py # Commercial quota management
32
+ โ”‚ โ”‚ โ”œโ”€โ”€ scheduler.py # Run recovery scheduler
33
+ โ”‚ โ”‚ โ”œโ”€โ”€ scene_chat_runtime.py # SSE scene chat runtime
34
+ โ”‚ โ”‚ โ”œโ”€โ”€ a2a/ # A2A protocol adapter
35
+ โ”‚ โ”‚ โ”œโ”€โ”€ auth/ # Auth service + middleware + passwords + SecondMe OAuth
36
+ โ”‚ โ”‚ โ”œโ”€โ”€ bridge/ # Bridge protocol (local Mac โ†” cloud); event_translator.py: bridgeโ†’protocol ไบ‹ไปถ็ฟป่ฏ‘ๅฑ‚
37
+ โ”‚ โ”‚ โ”œโ”€โ”€ catalyst/ # Cloud-side catalyst (coordinator, deadline scheduler, prompt loader); convergence.py: ๆ”ถๆ•›ๆ ‡่ฎฐ่งฃๆžๅ•ไธ€็œŸ็›ธๆบ
38
+ โ”‚ โ”‚ โ”œโ”€โ”€ db/ # SQLAlchemy engine + CRUD (users/demands/runs/events/artifacts)
39
+ โ”‚ โ”‚ โ”œโ”€โ”€ demands/ # Demand clarification-session + matching service
40
+ โ”‚ โ”‚ โ”œโ”€โ”€ matching/ # Discovery pipeline (scanner, nominator, store)
41
+ โ”‚ โ”‚ โ”œโ”€โ”€ inbox/ # Inbox service
42
+ โ”‚ โ”‚ โ”œโ”€โ”€ lanes/ # Auth lanes (SecondMe AI etc.)
43
+ โ”‚ โ”‚ โ”œโ”€โ”€ messaging/ # Inter-agent messaging
44
+ โ”‚ โ”‚ โ”œโ”€โ”€ metrics/ # Platform metrics calculator
45
+ โ”‚ โ”‚ โ”œโ”€โ”€ notifications/ # SSE notification stream
46
+ โ”‚ โ”‚ โ”œโ”€โ”€ coaching/ # Coaching service (kunzhi-coach prompts, export, constants)
47
+ โ”‚ โ”‚ โ”œโ”€โ”€ hackathon/ # Hackathon service (state_machine, service layer)
48
+ โ”‚ โ”‚ โ”œโ”€โ”€ openagents/ # OpenAgents runtime carrier + session manager
49
+ โ”‚ โ”‚ โ”œโ”€โ”€ protocol/ # Canonical protocol API (bootstrap, deps, encoding, federation, service)
50
+ โ”‚ โ”‚ โ”œโ”€โ”€ public_profiles/ # Public profile service
51
+ โ”‚ โ”‚ โ”œโ”€โ”€ routes/ # API routes (auth/profile/admin/demands/bridge/runs/dashboard/scene_auth/scene_chat/coaching/coaching_admin/hackathon/protocol/matching/a2a/plaza/public/public_profiles/did/messaging)
52
+ โ”‚ โ”‚ โ”œโ”€โ”€ security/ # Security utilities (URL fetcher, sanitization)
53
+ โ”‚ โ”‚ โ””โ”€โ”€ ws/ # WebSocket hub + ticket auth
54
+ โ”‚ โ”œโ”€โ”€ models/ # ML model artifacts (bge-m3 embeddings)
55
+ โ”‚ โ”œโ”€โ”€ tests/
56
+ โ”‚ โ”‚ โ”œโ”€โ”€ field/ # V2 field unit tests (89)
57
+ โ”‚ โ”‚ โ”œโ”€โ”€ product/ # Product unit tests (545, needs Docker)
58
+ โ”‚ โ”‚ โ”œโ”€โ”€ unit/ # Pure in-memory unit tests (60, no Docker)
59
+ โ”‚ โ”‚ โ”œโ”€โ”€ matching/ # Discovery engine tests (21)
60
+ โ”‚ โ”‚ โ””โ”€โ”€ test_phase0_surface.py # Phase-0 surface gate tests (8)
61
+ โ”‚ โ””โ”€โ”€ venv/
62
+ โ”œโ”€โ”€ bridge_contract/ # Pure-Python bridge contract helpers (artifacts, events, finalization, runtime_profile)
63
+ โ”œโ”€โ”€ bridge_agent/ # Local bridge agent (polls cloud โ†’ runs convergence)
64
+ โ”‚ โ”œโ”€โ”€ agent.py # Bridge agent entry
65
+ โ”‚ โ”œโ”€โ”€ bridge_listen.py # HTTP helper (await-task, monitor, complete)
66
+ โ”‚ โ”œโ”€โ”€ test_progress.py # Progress detection tests (31)
67
+ โ”‚ โ”œโ”€โ”€ config.yaml # Bridge config
68
+ โ”‚ โ””โ”€โ”€ run_e2e.py # E2E test runner
69
+ โ”œโ”€โ”€ mcp-server/ # MCP server โ€” Python (boll-mcp, version see pyproject.toml)
70
+ โ”‚ โ”œโ”€โ”€ boll_mcp/ # 74 active tools (version see pyproject.toml)
71
+ โ”‚ โ”œโ”€โ”€ CHANGELOG.md # MCP-specific changelog (0.3.0 ~ 0.4.0)
72
+ โ”‚ โ””โ”€โ”€ pyproject.toml
73
+ โ”œโ”€โ”€ mcp-server-node/ # MCP server โ€” TypeScript/Node (boll-mcp, version see package.json)
74
+ โ”‚ โ”œโ”€โ”€ src/ # 74 active tools (mirror of Python version)
75
+ โ”‚ โ””โ”€โ”€ package.json
76
+ โ”œโ”€โ”€ tests/
77
+ โ”‚ โ”œโ”€โ”€ convergence_poc/ # Crystallization protocol experiments + tests (9)
78
+ โ”‚ โ”‚ โ”œโ”€โ”€ prompts/ # Prompt version chain
79
+ โ”‚ โ”‚ โ””โ”€โ”€ simulations/real/ # RUN-001 ~ RUN-006
80
+ โ”‚ โ””โ”€โ”€ field_poc/ # Field experiment archive (EXP-005~008)
81
+ โ”œโ”€โ”€ website/
82
+ โ”‚ โ”œโ”€โ”€ app/
83
+ โ”‚ โ”‚ โ”œโ”€โ”€ page.tsx # Home
84
+ โ”‚ โ”‚ โ”œโ”€โ”€ (auth)/ # Login + Register pages
85
+ โ”‚ โ”‚ โ”œโ”€โ”€ dashboard/ # User dashboard
86
+ โ”‚ โ”‚ โ”œโ”€โ”€ demand/ # New demand + match result
87
+ โ”‚ โ”‚ โ”œโ”€โ”€ field/ # Field experience page
88
+ โ”‚ โ”‚ โ”œโ”€โ”€ profile/ # User profile
89
+ โ”‚ โ”‚ โ”œโ”€โ”€ run/ # Run progress + result
90
+ โ”‚ โ”‚ โ””โ”€โ”€ workspace/ # Startup Hub workspace
91
+ โ”‚ โ””โ”€โ”€ package.json
92
+ โ”œโ”€โ”€ docs/
93
+ โ”‚ โ”œโ”€โ”€ ARCHITECTURE_DESIGN.md # V1 architecture (archived reference)
94
+ โ”‚ โ”œโ”€โ”€ archive/ENGINEERING_REFERENCE.md # Engineering standards (archived)
95
+ โ”‚ โ”œโ”€โ”€ INDEX.md # Documentation navigation index
96
+ โ”‚ โ”œโ”€โ”€ ROADMAP.md # Milestones + current direction + planned
97
+ โ”‚ โ”œโ”€โ”€ architecture/ # Modular arch docs (principles, modules, vision)
98
+ โ”‚ โ”œโ”€โ”€ community/ # Profile contribution guide
99
+ โ”‚ โ”œโ”€โ”€ decisions/ # ADR + TECH + TEST + PLAN + REVIEW + EVAL
100
+ โ”‚ โ”‚ โ”œโ”€โ”€ ADR-001~034 # Architecture Decision Records
101
+ โ”‚ โ”‚ โ”œโ”€โ”€ TECH-015/TECH-018/TECH-SPEC-008 # Engineering designs
102
+ โ”‚ โ”‚ โ”œโ”€โ”€ TEST-015/TEST-019 # Test designs
103
+ โ”‚ โ”‚ โ”œโ”€โ”€ PLAN-001~080 # Implementation plans
104
+ โ”‚ โ”‚ โ”œโ”€โ”€ REVIEW-015~057 # Audits
105
+ โ”‚ โ”‚ โ””โ”€โ”€ tasks/ # Task documents (use `find docs/decisions/tasks -name '*.md' | wc -l` to count)
106
+ โ”‚ โ”œโ”€โ”€ issues/ # Guardian/red-team issue documents (guard-YYYYMMDD-HHMM-*.md)
107
+ โ”‚ โ”œโ”€โ”€ design-logs/ # Design evolution logs (001~008)
108
+ โ”‚ โ”œโ”€โ”€ research/ # Research reports (000~015)
109
+ โ”‚ โ”œโ”€โ”€ reviews/ # Review artifacts (review-015, review-015-2)
110
+ โ”‚ โ”œโ”€โ”€ guides/ # Developer guides
111
+ โ”‚ โ”œโ”€โ”€ archive/ # Legacy V1 docs
112
+ โ”‚ โ””โ”€โ”€ prompts/ # V1 skill prompts (archived)
113
+ โ”œโ”€โ”€ scenes/ # Scene demo apps
114
+ โ”‚ โ”œโ”€โ”€ admin-dashboard/ # ็ฎก็†ๅŽๅฐ demo (Vite + React)
115
+ โ”‚ โ”œโ”€โ”€ ai-gig-market/ # AI Agent ้›ถๅทฅๅนณๅฐ demo (Vite + React)
116
+ โ”‚ โ”œโ”€โ”€ craw-opc/ # Craw OPC (placeholder)
117
+ โ”‚ โ”œโ”€โ”€ epic-hackathon/ # Epic Hackathon demo (Vite + React)
118
+ โ”‚ โ”œโ”€โ”€ hackathon-observer/ # Hackathon ่ง‚ๅฏŸ่€… (archive)
119
+ โ”‚ โ”œโ”€โ”€ kunzhi-coach/ # example-coach scene app + prompts
120
+ โ”‚ โ”œโ”€โ”€ kunzhi-coach-admin/ # example-coachๅŽๅฐ็ฎก็† (Vite + React)
121
+ โ”‚ โ”œโ”€โ”€ lobster-office/ # ้พ™่™พๅŠžๅ…ฌ demo (Vite + React)
122
+ โ”‚ โ”œโ”€โ”€ shrimp-hackathon/ # Shrimp Hackathon (placeholder)
123
+ โ”‚ โ”œโ”€โ”€ smart-home-butler/ # ๆ™บ่ƒฝๅฎถๅฑ…็ฎกๅฎถ (placeholder)
124
+ โ”‚ โ””โ”€โ”€ startup-hub/ # Startup Hub workspace
125
+ โ”œโ”€โ”€ experiments/
126
+ โ”‚ โ””โ”€โ”€ real_data/ # Discovery GT Recall experiments (WP-015)
127
+ โ”œโ”€โ”€ scripts/ # Utility scripts
128
+ โ”œโ”€โ”€ data/
129
+ โ”‚ โ””โ”€โ”€ profiles/ # Community profiles
130
+ โ””โ”€โ”€ .claude/skills/ # Repo-local Codex skills๏ผˆ่ง docs/skills/REGISTRY.md๏ผ‰
131
+ ```
132
+
133
+ ## Development Commands
134
+
135
+ ```bash
136
+ # Backend
137
+ cd backend
138
+ source venv/bin/activate
139
+ uvicorn server:app --reload --port 8080
140
+
141
+ # Deployment (MUST use this, never manual scp โ€” hook enforced)
142
+ bash scripts/deploy.sh --yes # Full deploy: coherence check โ†’ sync โ†’ restart โ†’ verify
143
+ bash scripts/deploy.sh --dry-run # Preview only, no changes
144
+ bash scripts/deploy-edge.sh --yes # Sync repo-managed nginx edge config + verify public routes
145
+ bash scripts/deploy-edge.sh --dry-run
146
+ # Note: --yes skips interactive confirmation (required for AI execution)
147
+ # Manual scp/rsync to production server is blocked by PreToolUse hook
148
+
149
+ # Demo frontend deployment (static files, no backend restart)
150
+ bash scripts/deploy-demo.sh ai-gig-market --channel prod --yes # Build + deploy public demo
151
+ bash scripts/deploy-demo.sh ai-gig-market --channel preview --yes # Build + deploy internal preview
152
+ bash scripts/deploy-demo.sh ai-gig-market --dry-run # Preview only
153
+ bash scripts/deploy-demo.sh ai-gig-market --skip-build --yes # Deploy existing dist
154
+
155
+ # Frontend
156
+ cd website
157
+ npm run dev
158
+
159
+ # Tests (1992 collectable as of 2026-04-06)
160
+ cd /Users/nature/ไธชไบบ้กน็›ฎ/boll
161
+ backend/venv/bin/pytest -q backend/tests/test_phase0_surface.py # Phase-0 gate (8)
162
+ backend/venv/bin/pytest -q backend/tests/field # Field unit (89)
163
+ backend/venv/bin/pytest -q backend/tests/unit # Pure in-memory unit (462, no Docker)
164
+ backend/venv/bin/pytest -q backend/tests/product # Product unit (750, needs Docker)
165
+ backend/venv/bin/pytest -q backend/tests/matching # Discovery engine (21)
166
+ backend/venv/bin/pytest -q tests/convergence_poc/simulations/real # Crystallization (9)
167
+ backend/venv/bin/pytest -q bridge_agent/test_progress.py # Bridge progress (31)
168
+
169
+ # MCP Server (Python)
170
+ pip install -e ./mcp-server
171
+ boll-mcp --help
172
+
173
+ # MCP Server (Node/TypeScript)
174
+ cd mcp-server-node
175
+ npm install && npm run build
176
+ npx boll-mcp
177
+
178
+ # Official install entry
179
+ /mcp
180
+
181
+ # Frontend build
182
+ cd website
183
+ npm run build
184
+ ```