@bolloon/bolloon-agent 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/package.json +1 -1
  2. package/dist/constraint-runtime/tests/agent.test.js +0 -16
  3. package/dist/constraint-runtime/tests/constraint.test.js +0 -41
  4. package/dist/constraint-runtime/tests/skill.test.js +0 -19
  5. package/dist/constraint-runtime/tests/thinking.test.js +0 -22
  6. package/dist/electron-preload.js +0 -15
  7. package/dist/electron-preload.js.map +0 -1
  8. package/dist/electron.js +0 -206
  9. package/dist/electron.js.map +0 -1
  10. package/dist/test/constraint-layer.test.js +0 -164
  11. package/dist/test/global-shared-context.test.js +0 -315
  12. package/dist/test/pi-sdk.test.js +0 -47
  13. package/dist/test/set-persona.test.js +0 -38
  14. package/dist/test/subagent-manager.test.js +0 -276
  15. package/dist/test/workflow-engine.test.js +0 -87
  16. package/dist/workflows/collaboration.js +0 -374
  17. package/dist/workflows/index.js +0 -54
  18. package/docs/agent-communication.md +0 -333
  19. package/docs/plans/2026-05-15-document-agent-design.md +0 -479
  20. package/docs/plans/2026-05-15-document-agent-implementation-plan.md +0 -792
  21. package/docs/plans/2026-05-16-chat-ui-design.md +0 -86
  22. package/docs/plans/2026-05-16-constraint-runtime-design.md +0 -106
  23. package/docs/plans/2026-05-16-constraint-runtime-implementation.md +0 -441
  24. 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 +0 -287
  25. package/src/bollharness/.boll/CLAUDE.md.template +0 -34
  26. package/src/bollharness/.boll/MANIFEST.yaml +0 -213
  27. package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
  28. package/src/bollharness/.boll/agents/review-base.yaml +0 -108
  29. package/src/bollharness/.boll/deploy-allowlist.yaml +0 -38
  30. package/src/bollharness/.boll/inbox/schema/message-v1.json +0 -99
  31. package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
  32. package/src/bollharness/.boll/issue-adapter.yaml +0 -31
  33. package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +0 -85
  34. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  35. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  36. package/src/bollharness/.boll/rules/backend-routes.md +0 -31
  37. package/src/bollharness/.boll/rules/closure-semantics.md +0 -30
  38. package/src/bollharness/.boll/rules/env-vars.md +0 -32
  39. package/src/bollharness/.boll/rules/hanis-protocol.md +0 -145
  40. package/src/bollharness/.boll/rules/repo-structure.md +0 -42
  41. package/src/bollharness/.boll/rules/review-agent-isolation.md +0 -73
  42. package/src/bollharness/.boll/rules/source-of-truth.md +0 -33
  43. package/src/bollharness/.boll/settings.json +0 -180
  44. package/src/bollharness/.boll/settings.json.template +0 -31
  45. package/src/bollharness/.boll/skills/arch/SKILL.md +0 -372
  46. package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +0 -168
  47. package/src/bollharness/.boll/skills/bug-triage/SKILL.md +0 -161
  48. package/src/bollharness/.boll/skills/context-chains/SKILL.md +0 -250
  49. package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +0 -48
  50. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +0 -142
  51. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +0 -126
  52. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +0 -148
  53. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +0 -162
  54. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +0 -116
  55. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +0 -136
  56. package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +0 -93
  57. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +0 -34
  58. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +0 -34
  59. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +0 -35
  60. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +0 -34
  61. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +0 -43
  62. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +0 -34
  63. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +0 -37
  64. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +0 -46
  65. package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +0 -415
  66. package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +0 -320
  67. package/src/bollharness/.boll/skills/harness-dev/SKILL.md +0 -93
  68. package/src/bollharness/.boll/skills/harness-dev/examples/README.md +0 -227
  69. package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +0 -165
  70. package/src/bollharness/.boll/skills/harness-eng/SKILL.md +0 -110
  71. package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +0 -79
  72. package/src/bollharness/.boll/skills/harness-lab/SKILL.md +0 -170
  73. package/src/bollharness/.boll/skills/harness-ops/SKILL.md +0 -57
  74. package/src/bollharness/.boll/skills/harness-voice/SKILL.md +0 -183
  75. package/src/bollharness/.boll/skills/judgment/SKILL.md +0 -115
  76. package/src/bollharness/.boll/skills/lead/SKILL.md +0 -245
  77. package/src/bollharness/.boll/skills/lead/install-wow-harness.md +0 -77
  78. package/src/bollharness/.boll/skills/lead/ref-review-sop.md +0 -91
  79. package/src/bollharness/.boll/skills/lead/ref-stages.md +0 -129
  80. package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +0 -169
  81. package/src/bollharness/.boll/skills/task-arch/SKILL.md +0 -106
  82. package/src/bollharness/.boll/skills/toolkit/SKILL.md +0 -57
  83. package/src/bollharness/.boll/tasks/.gitkeep +0 -0
  84. package/src/bollharness/.boll/toolkit-index.yaml +0 -112
  85. package/src/bollharness/.claude/agents/review-base.yaml +0 -108
  86. package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +0 -44
  87. package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +0 -24
  88. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  89. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  90. package/src/bollharness/.claude/settings.json +0 -157
  91. package/src/bollharness/.claude/skills/arch/SKILL.md +0 -64
  92. package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +0 -93
  93. package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +0 -44
  94. package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +0 -324
  95. package/src/bollharness/.claude/skills/harness-dev/SKILL.md +0 -93
  96. package/src/bollharness/.claude/skills/harness-dev/examples/README.md +0 -17
  97. package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +0 -165
  98. package/src/bollharness/.claude/skills/harness-eng/SKILL.md +0 -183
  99. package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +0 -57
  100. package/src/bollharness/.claude/skills/harness-ops/SKILL.md +0 -57
  101. package/src/bollharness/.claude/skills/harness-voice/SKILL.md +0 -84
  102. package/src/bollharness/.claude/skills/lead/INDEX.md +0 -28
  103. package/src/bollharness/.claude/skills/lead/SKILL.md +0 -24
  104. package/src/bollharness/.claude/skills/lead/install-wow-harness.md +0 -77
  105. package/src/bollharness/.claude/skills/lead/ref-review-sop.md +0 -48
  106. package/src/bollharness/.claude/skills/lead/ref-stages.md +0 -58
  107. package/src/bollharness/.claude/skills/plan-lock/SKILL.md +0 -74
  108. package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +0 -120
  109. package/src/bollharness/.claude/skills/task-arch/SKILL.md +0 -106
  110. package/src/bollharness/.claude/skills/toolkit/SKILL.md +0 -57
  111. package/src/bollharness/.claude/skills/toolkit/list.sh +0 -92
  112. package/src/bollharness/.githooks/pre-commit +0 -21
  113. package/src/bollharness/.github/workflows/ci.yml +0 -88
  114. package/src/bollharness/CLAUDE.md +0 -73
  115. package/src/bollharness/README.md +0 -143
  116. package/src/bollharness/README.zh-CN.md +0 -131
  117. package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +0 -1076
  118. package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +0 -2039
  119. package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +0 -128
  120. package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +0 -188
  121. package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +0 -183
  122. package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +0 -133
  123. package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +0 -146
  124. package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +0 -212
  125. package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +0 -211
  126. package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +0 -202
  127. package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +0 -231
  128. package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +0 -270
  129. package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +0 -291
  130. package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +0 -228
  131. package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +0 -227
  132. package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +0 -239
  133. package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +0 -325
  134. package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +0 -242
  135. package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +0 -378
  136. package/src/bollharness/docs/launch-article-en.md +0 -276
  137. package/src/bollharness/docs/launch-article-zh.md +0 -305
  138. package/src/bollharness/docs/practice.html +0 -356
  139. package/src/bollharness/docs/practice.md +0 -82
  140. package/src/bollharness/docs/research/round-1/README.md +0 -11
  141. package/src/bollharness/docs/research/round-2/README.md +0 -11
  142. package/src/bollharness/docs/research/round-3/README.md +0 -11
  143. package/src/bollharness/docs/research/round-4/README.md +0 -11
  144. package/src/bollharness/docs/research/round-5/README.md +0 -11
  145. package/src/bollharness/docs/research/round-6/README.md +0 -11
  146. package/src/bollharness/package-lock.json +0 -48
  147. package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +0 -268
  148. package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +0 -20
  149. package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +0 -30
  150. package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +0 -13
  151. package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +0 -50
  152. package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +0 -12
  153. package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +0 -184
  154. package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +0 -112
  155. package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +0 -12
  156. package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +0 -551
  157. package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +0 -26
  158. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +0 -227
  159. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +0 -4
  160. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +0 -142
  161. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +0 -107
  162. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +0 -893
  163. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +0 -89
  164. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +0 -93
  165. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +0 -209
  166. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +0 -165
  167. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +0 -110
  168. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +0 -203
  169. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +0 -27
  170. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +0 -28
  171. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +0 -27
  172. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +0 -79
  173. package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +0 -372
  174. package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +0 -437
  175. package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +0 -27
  176. package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +0 -442
  177. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +0 -421
  178. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +0 -326
  179. package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +0 -155
  180. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +0 -91
  181. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +0 -129
  182. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
  183. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
  184. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
  185. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
  186. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +0 -425
  187. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +0 -62
  188. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +0 -78
  189. package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +0 -76
  190. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +0 -57
  191. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +0 -153
  192. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +0 -52
  193. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +0 -76
  194. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +0 -50
  195. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +0 -108
  196. package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +0 -151
  197. package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +0 -56
  198. package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +0 -76
  199. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +0 -116
  200. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +0 -200
  201. package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +0 -84
  202. package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +0 -209
  203. package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +0 -181
  204. package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +0 -754
  205. package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +0 -57
  206. package/src/bollharness/scripts/context-fragments/artifact-linkage.md +0 -14
  207. package/src/bollharness/scripts/context-fragments/auth-consumers.md +0 -17
  208. package/src/bollharness/scripts/context-fragments/bridge-constitution.md +0 -13
  209. package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +0 -18
  210. package/src/bollharness/scripts/context-fragments/closure-checklist.md +0 -13
  211. package/src/bollharness/scripts/context-fragments/contract-consumers.md +0 -15
  212. package/src/bollharness/scripts/context-fragments/db-shared-structures.md +0 -15
  213. package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +0 -19
  214. package/src/bollharness/scripts/context-fragments/general-dev-principles.md +0 -11
  215. package/src/bollharness/scripts/context-fragments/issue-first.md +0 -8
  216. package/src/bollharness/scripts/context-fragments/mcp-parity.md +0 -16
  217. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +0 -74
  218. package/src/bollharness/scripts/context-fragments/protocol-consumers.md +0 -15
  219. package/src/bollharness/scripts/context-fragments/run-events-consumers.md +0 -15
  220. package/src/bollharness/scripts/context-fragments/scene-fidelity.md +0 -13
  221. package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +0 -15
  222. package/src/bollharness/scripts/context-fragments/two-language.md +0 -15
  223. package/src/bollharness/scripts/context-fragments/version-sources.md +0 -14
  224. package/src/bollharness/scripts/hooks/stop-evaluator.md +0 -83
  225. package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
  226. package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
  227. package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
  228. package/src/bollharness/templates/scaffold/CLAUDE.md +0 -89
  229. package/src/bollharness/templates/scaffold/docs/INDEX.md +0 -3
  230. package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +0 -38
  231. package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +0 -45
  232. package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +0 -2
  233. package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
  234. package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +0 -35
  235. package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +0 -51
  236. package/src/bollharness/tsconfig.json +0 -26
  237. package/src/constraint-runtime/package-lock.json +0 -48
  238. package/src/constraint-runtime/package.json +0 -34
  239. package/src/constraint-runtime/src/_archive_helper.ts +0 -16
  240. package/src/constraint-runtime/src/agent/coordinator.ts +0 -71
  241. package/src/constraint-runtime/src/agent/index.ts +0 -1
  242. package/src/constraint-runtime/src/assistant/index.ts +0 -15
  243. package/src/constraint-runtime/src/bootstrap/index.ts +0 -15
  244. package/src/constraint-runtime/src/bootstrap_graph.ts +0 -17
  245. package/src/constraint-runtime/src/bridge/index.ts +0 -15
  246. package/src/constraint-runtime/src/buddy/index.ts +0 -15
  247. package/src/constraint-runtime/src/cli/index.ts +0 -15
  248. package/src/constraint-runtime/src/command_graph.ts +0 -20
  249. package/src/constraint-runtime/src/commands.ts +0 -83
  250. package/src/constraint-runtime/src/components/index.ts +0 -15
  251. package/src/constraint-runtime/src/constants/index.ts +0 -15
  252. package/src/constraint-runtime/src/constraint/budget.ts +0 -25
  253. package/src/constraint-runtime/src/constraint/index.ts +0 -3
  254. package/src/constraint-runtime/src/constraint/permission.ts +0 -28
  255. package/src/constraint-runtime/src/context.ts +0 -45
  256. package/src/constraint-runtime/src/coordinator/index.ts +0 -15
  257. package/src/constraint-runtime/src/cost_hook.ts +0 -6
  258. package/src/constraint-runtime/src/cost_tracker.ts +0 -9
  259. package/src/constraint-runtime/src/deferred_init.ts +0 -18
  260. package/src/constraint-runtime/src/direct_modes.ts +0 -13
  261. package/src/constraint-runtime/src/dynamic-tool-loader.ts +0 -115
  262. package/src/constraint-runtime/src/entrypoints/index.ts +0 -15
  263. package/src/constraint-runtime/src/execution_registry.ts +0 -41
  264. package/src/constraint-runtime/src/history.ts +0 -16
  265. package/src/constraint-runtime/src/hooks/index.ts +0 -15
  266. package/src/constraint-runtime/src/index.ts +0 -28
  267. package/src/constraint-runtime/src/ink.ts +0 -4
  268. package/src/constraint-runtime/src/keybindings/index.ts +0 -15
  269. package/src/constraint-runtime/src/memdir/index.ts +0 -15
  270. package/src/constraint-runtime/src/migrations/index.ts +0 -15
  271. package/src/constraint-runtime/src/models.ts +0 -49
  272. package/src/constraint-runtime/src/moreright/index.ts +0 -15
  273. package/src/constraint-runtime/src/native_ts/index.ts +0 -15
  274. package/src/constraint-runtime/src/output_styles/index.ts +0 -15
  275. package/src/constraint-runtime/src/parity_audit.ts +0 -23
  276. package/src/constraint-runtime/src/plugins/index.ts +0 -15
  277. package/src/constraint-runtime/src/port_manifest.ts +0 -20
  278. package/src/constraint-runtime/src/prefetch.ts +0 -17
  279. package/src/constraint-runtime/src/query.ts +0 -7
  280. package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +0 -63
  281. package/src/constraint-runtime/src/reference_data/commands_snapshot.json +0 -1037
  282. package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +0 -10
  283. package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +0 -12
  284. package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +0 -14
  285. package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +0 -8
  286. package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +0 -8
  287. package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +0 -32
  288. package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +0 -13
  289. package/src/constraint-runtime/src/reference_data/subsystems/cli.json +0 -26
  290. package/src/constraint-runtime/src/reference_data/subsystems/components.json +0 -32
  291. package/src/constraint-runtime/src/reference_data/subsystems/constants.json +0 -28
  292. package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +0 -8
  293. package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +0 -15
  294. package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +0 -32
  295. package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +0 -21
  296. package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +0 -15
  297. package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +0 -18
  298. package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +0 -8
  299. package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +0 -11
  300. package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +0 -8
  301. package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +0 -9
  302. package/src/constraint-runtime/src/reference_data/subsystems/remote.json +0 -11
  303. package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +0 -8
  304. package/src/constraint-runtime/src/reference_data/subsystems/screens.json +0 -10
  305. package/src/constraint-runtime/src/reference_data/subsystems/server.json +0 -10
  306. package/src/constraint-runtime/src/reference_data/subsystems/services.json +0 -32
  307. package/src/constraint-runtime/src/reference_data/subsystems/skills.json +0 -27
  308. package/src/constraint-runtime/src/reference_data/subsystems/state.json +0 -13
  309. package/src/constraint-runtime/src/reference_data/subsystems/types.json +0 -18
  310. package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +0 -9
  311. package/src/constraint-runtime/src/reference_data/subsystems/utils.json +0 -32
  312. package/src/constraint-runtime/src/reference_data/subsystems/vim.json +0 -12
  313. package/src/constraint-runtime/src/reference_data/subsystems/voice.json +0 -8
  314. package/src/constraint-runtime/src/reference_data/tools_snapshot.json +0 -1042
  315. package/src/constraint-runtime/src/remote/index.ts +0 -15
  316. package/src/constraint-runtime/src/remote_runtime.ts +0 -17
  317. package/src/constraint-runtime/src/runtime/index.ts +0 -1
  318. package/src/constraint-runtime/src/runtime/session.ts +0 -42
  319. package/src/constraint-runtime/src/schemas/index.ts +0 -15
  320. package/src/constraint-runtime/src/screens/index.ts +0 -15
  321. package/src/constraint-runtime/src/server/index.ts +0 -15
  322. package/src/constraint-runtime/src/services/index.ts +0 -15
  323. package/src/constraint-runtime/src/session_store.ts +0 -32
  324. package/src/constraint-runtime/src/setup.ts +0 -50
  325. package/src/constraint-runtime/src/skills/index.ts +0 -1
  326. package/src/constraint-runtime/src/skills/skill-registry.ts +0 -40
  327. package/src/constraint-runtime/src/state/index.ts +0 -15
  328. package/src/constraint-runtime/src/system_init.ts +0 -21
  329. package/src/constraint-runtime/src/thinking/engine.ts +0 -61
  330. package/src/constraint-runtime/src/thinking/index.ts +0 -1
  331. package/src/constraint-runtime/src/tool_pool.ts +0 -20
  332. package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +0 -12
  333. package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +0 -12
  334. package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +0 -13
  335. package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +0 -10
  336. package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +0 -13
  337. package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +0 -14
  338. package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +0 -10
  339. package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +0 -24
  340. package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +0 -13
  341. package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +0 -23
  342. package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +0 -12
  343. package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +0 -12
  344. package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +0 -10
  345. package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +0 -10
  346. package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +0 -14
  347. package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +0 -58
  348. package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +0 -19
  349. package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +0 -28
  350. package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +0 -34
  351. package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +0 -50
  352. package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +0 -23
  353. package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +0 -49
  354. package/src/constraint-runtime/src/tools.ts +0 -100
  355. package/src/constraint-runtime/src/transcript.ts +0 -23
  356. package/src/constraint-runtime/src/types/index.ts +0 -15
  357. package/src/constraint-runtime/src/upstream_proxy/index.ts +0 -15
  358. package/src/constraint-runtime/src/utils/index.ts +0 -15
  359. package/src/constraint-runtime/src/vim/index.ts +0 -15
  360. package/src/constraint-runtime/src/voice/index.ts +0 -15
  361. package/src/constraint-runtime/tests/agent.test.ts +0 -20
  362. package/src/constraint-runtime/tests/constraint.test.ts +0 -47
  363. package/src/constraint-runtime/tests/skill.test.ts +0 -23
  364. package/src/constraint-runtime/tests/thinking.test.ts +0 -28
  365. package/src/constraint-runtime/tsconfig.json +0 -13
  366. package/src/pi-ecosystem/index.ts +0 -453
  367. package/src/pi-ecosystem-colony/index.ts +0 -482
  368. package/src/pi-ecosystem-goals/index.ts +0 -585
  369. package/src/pi-ecosystem-judgment/decision.ts +0 -431
  370. package/src/pi-ecosystem-judgment/distillation.ts +0 -398
  371. package/src/pi-ecosystem-judgment/human-value-store.ts +0 -580
  372. package/src/pi-ecosystem-judgment/index.ts +0 -678
  373. package/src/pi-ecosystem-judgment/value-injection.ts +0 -744
  374. package/src/pi-ecosystem-mcp/index.ts +0 -427
  375. package/src/pi-ecosystem-subagents/index.ts +0 -408
  376. package/src/test/ai-judgment-test.ts +0 -92
  377. package/src/test/bollharness-integration.test.ts +0 -398
  378. package/src/test/channel-agent-multi-dialogue.ts +0 -265
  379. package/src/test/channel-heartbeat-agent-test.ts +0 -244
  380. package/src/test/constraint-layer.test.ts +0 -191
  381. package/src/test/diap-identity-test.ts +0 -222
  382. package/src/test/diap-quick-test.ts +0 -73
  383. package/src/test/global-shared-context.test.ts +0 -393
  384. package/src/test/harness-judgment-injection.test.ts +0 -353
  385. package/src/test/harness-workflow-integrator-test.ts +0 -285
  386. package/src/test/human-value-store.test.ts +0 -316
  387. package/src/test/hybrid-integration-test.ts +0 -126
  388. package/src/test/hybrid-messenger-verify.ts +0 -68
  389. package/src/test/iroh-bistream-debug.ts +0 -50
  390. package/src/test/iroh-communication.test.ts +0 -81
  391. package/src/test/iroh-debug-test.ts +0 -69
  392. package/src/test/iroh-diap-test.ts +0 -90
  393. package/src/test/iroh-direct-connect.ts +0 -65
  394. package/src/test/iroh-e2e-fixed.ts +0 -106
  395. package/src/test/iroh-e2e-same-process.ts +0 -83
  396. package/src/test/iroh-e2e.ts +0 -83
  397. package/src/test/iroh-final-e2e.ts +0 -84
  398. package/src/test/iroh-relay-test.ts +0 -46
  399. package/src/test/iroh-simple-test.ts +0 -49
  400. package/src/test/iroh-transport-verify.ts +0 -60
  401. package/src/test/iroh-transport.test.ts +0 -47
  402. package/src/test/iroh-two-nodes.ts +0 -87
  403. package/src/test/iroh-verify.ts +0 -55
  404. package/src/test/judgment-decision.test.ts +0 -373
  405. package/src/test/llm-judgment-integration.test.ts +0 -257
  406. package/src/test/p2p-agent-complex-dialogue.ts +0 -490
  407. package/src/test/p2p-agent-dialogue.ts +0 -423
  408. package/src/test/p2p-agent-full-bidirectional.ts +0 -686
  409. package/src/test/p2p-agent-harness-flow.ts +0 -562
  410. package/src/test/p2p-agent-harness-single.ts +0 -175
  411. package/src/test/p2p-ai-dialogue-test.ts +0 -374
  412. package/src/test/p2p-cid-connect-test.ts +0 -245
  413. package/src/test/p2p-connect-receiver.ts +0 -85
  414. package/src/test/p2p-iroh-test.ts +0 -214
  415. package/src/test/p2p-minimal-test.ts +0 -264
  416. package/src/test/p2p-node-1.ts +0 -172
  417. package/src/test/p2p-node-2.ts +0 -172
  418. package/src/test/p2p-server.ts +0 -335
  419. package/src/test/p2p-two-nodes-test.ts +0 -542
  420. package/src/test/pi-sdk.test.ts +0 -47
  421. package/src/test/set-persona.ts +0 -56
  422. package/src/test/simple.test.ts +0 -11
  423. package/src/test/storage-integration.test.ts +0 -191
  424. package/src/test/subagent-manager.test.ts +0 -392
  425. package/src/test/test-gate-flow.test.ts +0 -92
  426. package/src/test/workflow-engine.test.ts +0 -101
  427. package/src/web/design.md +0 -99
  428. package/src/workflows/collaboration.ts +0 -455
  429. package/src/workflows/index.ts +0 -64
  430. package/vitest.config.ts +0 -12
  431. package//346/203/263/346/263/225.md +0 -79
@@ -1,101 +0,0 @@
1
- /**
2
- * WorkflowEngine Tests
3
- */
4
-
5
- import { describe, it, expect, vi, beforeEach } from 'vitest';
6
- import { WorkflowEngine, WorkflowStep } from '../agents/workflow-engine.js';
7
- import { WorkflowContext, ConstraintLayer } from '../agents/constraint-layer.js';
8
-
9
- // Mock dependencies
10
- vi.mock('../documents/reader.js', () => ({
11
- documentReader: {
12
- read: vi.fn().mockResolvedValue({
13
- text: 'test content',
14
- metadata: { filename: 'test.txt', size: 12, type: '.txt' }
15
- }),
16
- chunk: vi.fn().mockReturnValue(['test content'])
17
- }
18
- }));
19
-
20
- vi.mock('../llm/minimax.js', () => ({
21
- getMinimax: vi.fn().mockReturnValue({
22
- summarize: vi.fn().mockResolvedValue({ summary: 'test summary', qualityScore: 0.8 }),
23
- improveContent: vi.fn().mockResolvedValue('improved content')
24
- })
25
- }));
26
-
27
- vi.mock('../network/p2p.js', () => ({
28
- p2pNetwork: {
29
- getPeers: vi.fn().mockReturnValue(['peer1', 'peer2']),
30
- sendMessage: vi.fn().mockResolvedValue(undefined),
31
- broadcast: vi.fn().mockResolvedValue(undefined)
32
- }
33
- }));
34
-
35
- describe('WorkflowEngine', () => {
36
- let engine: WorkflowEngine;
37
-
38
- beforeEach(() => {
39
- engine = new WorkflowEngine();
40
- vi.clearAllMocks();
41
- });
42
-
43
- describe('executeStep', () => {
44
- it('should execute read step successfully', async () => {
45
- const step: WorkflowStep = {
46
- id: 'read',
47
- type: 'read',
48
- config: { path: 'test.txt' },
49
- retry: { max: 0, current: 0, backoffMs: 0 },
50
- onFail: 'abort'
51
- };
52
-
53
- const context: WorkflowContext = { peers: [], logs: [] };
54
- const result = await engine.executeStep(step, context);
55
-
56
- expect(result.status).toBe('success');
57
- });
58
- });
59
-
60
- describe('executeWorkflow', () => {
61
- it('should execute multiple steps in order', async () => {
62
- const steps: WorkflowStep[] = [
63
- {
64
- id: 'read',
65
- type: 'read',
66
- config: { path: 'test.txt' },
67
- retry: { max: 0, current: 0, backoffMs: 0 },
68
- onFail: 'abort'
69
- },
70
- {
71
- id: 'chunk',
72
- type: 'chunk',
73
- config: { maxChunkSize: 1000 },
74
- retry: { max: 0, current: 0, backoffMs: 0 },
75
- onFail: 'abort'
76
- }
77
- ];
78
-
79
- const workflow = await engine.executeWorkflow(steps);
80
-
81
- expect(workflow.status).toBe('completed');
82
- expect(workflow.results.size).toBe(2);
83
- });
84
- });
85
-
86
- describe('getConstraintLayer', () => {
87
- it('should return the constraint layer instance', () => {
88
- const layer = engine.getConstraintLayer();
89
- expect(layer).toBeDefined();
90
- expect(layer instanceof ConstraintLayer).toBe(true);
91
- });
92
- });
93
-
94
- describe('setConstraintLayer', () => {
95
- it('should allow setting a custom constraint layer', () => {
96
- const customLayer = new ConstraintLayer();
97
- engine.setConstraintLayer(customLayer);
98
- expect(engine.getConstraintLayer()).toBe(customLayer);
99
- });
100
- });
101
- });
package/src/web/design.md DELETED
@@ -1,99 +0,0 @@
1
- 以下是一个已在真实项目中验证的工程化实践方案Prompt模板,融合了阿里巴巴内部A2UI(Agent-to-UI)框架、Ant Design Pro工程规范及Twind原子化CSS实践。该方案已在金融风控看板、B端低代码平台等场景落地,关键特征是通过结构化约束将AI生成错误率从47%降至8%以下:
2
-
3
- 📌 工程化AI前端生成方案Prompt(可直接复制使用)
4
- 任务目标
5
- 为「bolloon API监控」生成符合Ant Design Pro 5规范的实时流量热力图模块,需严格遵循以下约束:
6
-
7
- 一、强制设计系统(违反任一即终止生成)
8
- 视觉规范
9
- 品牌色:主色 #d5ff18(不可替换),警示色仅限 #ce4d4f(错误)/ #52c41a(正常)
10
- 字体:标题 Inter Bold 16px,数据 DIN Pro Medium 14px(禁止使用默认字体栈)
11
- 禁用项:
12
- ✘ 卡片阴影(仅允许 0.5px solid #f0f0f0 边框)
13
- ✘ 渐变效果
14
- ✘ 圆角 > 2px
15
-
16
- 组件约束
17
- 仅允许使用:
18
- @ant-design/pro-components@5 中的 StatisticCard、MiniArea
19
- @umijs/use-antd-theme 主题钩子
20
- 禁止自定义组件(需复用现有设计令牌)
21
- 数据格式:
22
- ts
23
- interface HeatData {
24
- timestamp: number; // Unix毫秒
25
- qps: number; // 0~1000
26
- errorRate: number; // 0~1
27
- }
28
-
29
- 二、技术实现规则
30
- 代码生成要求
31
- 必须使用Twind原子化CSS(通过cn工具函数):
32
- tsx
33
-
34
- 禁止直接写CSS,所有样式必须通过@apply复用预定义类(见src/styles/twind.config.ts)
35
- 动效规范:
36
- 数据更新仅允许 opacity-0 → opacity-100 过渡(duration-200)
37
-
38
- 后端API对接
39
- 数据源:调用 /api/monitor/traffic(GET)
40
- ts
41
- // 必须使用此封装函数
42
- const { data } = useRequest('/api/monitor/traffic', {
43
- pollingInterval: 5000,
44
- formatResult: (res) => res.data.items // 自动转换为HeatData[]
45
- });
46
- 错误处理:
47
- HTTP 429:显示 (从@shared/components导入)
48
- 数据异常:保留最后有效数据 + 半透明遮罩层
49
-
50
- 三、生成流程(分阶段执行)
51
- 先输出设计决策文档(JSON格式):
52
- json
53
- {
54
- "layout": "horizontal-split (70% chart / 30% stats)",
55
- "keyAnimation": "实时数据流滚动效果(参考AntV G2实时图表规范)",
56
- "accessibility": "ARIA标签必须包含当前QPS数值"
57
- }
58
- 人工确认后,再生成完整TypeScript代码
59
- 必须包含:
60
- @/components/monitor/Heatmap/index.tsx(主组件)
61
- @/components/monitor/Heatmap/mock.ts(符合接口规范的Mock数据)
62
-
63
- 四、质量验证标准
64
- ✅ 通过eslint-plugin-ant-design检查(禁止any类型)
65
- ✅ 所有颜色值必须来自@ant-design/theme变量
66
- ✅ 单元测试覆盖率 ≥ 85%(使用@umijs/test生成测试桩)
67
-
68
- 🔧 为什么这个方案能工程化落地?
69
- 规避AI典型缺陷的机制
70
- 问题 本方案对策
71
- 同质化设计 硬性禁用卡片/渐变,强制指定字体与色值
72
-
73
- 代码质量不稳定 限定组件库版本 + Twind原子类约束,避免CSS歧义
74
-
75
- 脱离后端协议 要求复用useRequest封装,Mock数据必须符合接口规范
76
-
77
- 真实项目数据(某金融风控平台)
78
- 指标 传统AI生成 本方案生成
79
- 人工修改率 63% 12%
80
-
81
- 首次可用组件比例 28% 89%
82
-
83
- 品牌规范符合度 41% 97%
84
-
85
- 与后端协作关键点
86
- 协议先行:Mock数据必须通过openapi2typescript自动生成,确保字段100%对齐
87
- 错误隔离:AI仅处理UI层,网络请求/数据转换由@umijs/plugins统一拦截
88
- 渐进增强:当后端返回errorRate>0.1时,自动注入组件(预定义逻辑)
89
-
90
- 💡 执行建议
91
- 将此Prompt存为.ai-prompt/monitor-heatmap.md,纳入Git仓库
92
- 搭配@antfu/ni工具链自动校验生成结果:
93
- npx ai-ui-generate --prompt .ai-prompt/monitor-heatmap.md
94
-
95
- 关键原则:
96
- > AI只负责「在格子里填色」,人类定义「格子的尺寸与边界」
97
- > 所有工程化成功的案例,都把AI定位为设计系统执行器而非创意主体
98
-
99
- 该方案已在阿里云ARMS监控平台、某券商交易看板等6个项目复用,平均减少UI开发工时40%。核心不是让AI更聪明,而是让规则足够笨——笨到AI无法犯错。
@@ -1,455 +0,0 @@
1
- /**
2
- * Multi-Agent Collaboration Workflow
3
- *
4
- * 工作流设计:
5
- * 1. 命令解析 - 理解用户意图
6
- * 2. DID查询 - 从IPNS/IPFS查找已注册智能体
7
- * 3. 协作判断 - 分析是否需要多智能体协作
8
- * 4. 任务分发 - 发送文档给其他智能体
9
- * 5. 结果汇总 - 收集并整合协作结果
10
- */
11
-
12
- import { AgentProtocol, AgentMessage, Task, TaskResult, ImproveResult } from '../agents/protocol.js';
13
- import { p2pNetwork } from '../network/p2p.js';
14
- import { documentReader } from '../documents/reader.js';
15
- import { getMinimax } from '../constraints/index.js';
16
- import { IpfsClient } from '@diap/sdk';
17
-
18
- export interface AgentInfo {
19
- did: string;
20
- name: string;
21
- ipnsName?: string;
22
- peerId?: string;
23
- lastSeen?: number;
24
- }
25
-
26
- export interface CollaborationResult {
27
- success: boolean;
28
- collaborated: boolean;
29
- agents: AgentInfo[];
30
- taskId?: string;
31
- result?: string;
32
- qualityScore?: number;
33
- error?: string;
34
- }
35
-
36
- export interface CommandIntent {
37
- action: 'read' | 'summarize' | 'improve' | 'collaborate' | 'report' | 'query';
38
- target?: string;
39
- requirements?: string;
40
- context?: string;
41
- needCollaboration: boolean;
42
- suggestedAgents?: string[];
43
- }
44
-
45
- /**
46
- * 命令解析器 - 将用户输入解析为结构化意图
47
- */
48
- export class CommandParser {
49
- private collaborationKeywords = ['协作', '合作', '其他', '帮忙', '请教', '团队', '分享', '交给'];
50
- private improvementKeywords = ['改进', '优化', '修改', '完善', '润色', '修正'];
51
- private queryKeywords = ['查看', '列表', '查询', '有哪些', '谁在线'];
52
-
53
- parse(input: string, context?: string): CommandIntent {
54
- const lowerInput = input.toLowerCase();
55
-
56
- // 检测是否需要协作
57
- const needCollaboration = this.collaborationKeywords.some(k => lowerInput.includes(k));
58
-
59
- // 解析动作
60
- let action: CommandIntent['action'] = 'query';
61
-
62
- if (lowerInput.includes('改进') || lowerInput.includes('优化') || lowerInput.includes('修改')) {
63
- action = 'improve';
64
- } else if (lowerInput.includes('总结') || lowerInput.includes('摘要')) {
65
- action = 'summarize';
66
- } else if (lowerInput.includes('读取') || lowerInput.includes('阅读')) {
67
- action = 'read';
68
- } else if (lowerInput.includes('汇报') || lowerInput.includes('报告')) {
69
- action = 'report';
70
- } else if (this.queryKeywords.some(k => lowerInput.includes(k))) {
71
- action = 'query';
72
- }
73
-
74
- // 提取目标文件/主题
75
- const targetMatch = input.match(/[\w\.\/]+\.(md|txt|pdf|docx)/i);
76
- const target = targetMatch ? targetMatch[0] : undefined;
77
-
78
- // 提取需求描述
79
- const requirements = this.extractRequirements(input);
80
-
81
- // 识别建议的智能体(如果有)
82
- const suggestedAgents = this.extractAgentNames(input);
83
-
84
- return {
85
- action,
86
- target,
87
- requirements,
88
- context: context || input,
89
- needCollaboration,
90
- suggestedAgents
91
- };
92
- }
93
-
94
- private extractRequirements(input: string): string | undefined {
95
- // 查找引号内的内容或特定模式
96
- const quotes = input.match(/["'""]([^""']+)[""'"]/);
97
- if (quotes) return quotes[1];
98
-
99
- const afterKeywords = input.match(/(?:改进|优化|修改|要求|需要)[::]\s*(.+)/i);
100
- if (afterKeywords) return afterKeywords[1];
101
-
102
- return undefined;
103
- }
104
-
105
- private extractAgentNames(input: string): string[] | undefined {
106
- const names = input.match(/[@@]\w+/g);
107
- return names ? names.map(n => n.substring(1)) : undefined;
108
- }
109
- }
110
-
111
- /**
112
- * DID注册表 - 管理已知智能体的DID信息
113
- */
114
- export class DIDRegistry {
115
- private agents: Map<string, AgentInfo> = new Map();
116
- private ipfsClient: IpfsClient;
117
-
118
- constructor(ipfsApiUrl: string = 'http://127.0.0.1:5001') {
119
- this.ipfsClient = new IpfsClient(ipfsApiUrl, null);
120
- }
121
-
122
- async registerAgent(agent: AgentInfo): Promise<void> {
123
- this.agents.set(agent.did, {
124
- ...agent,
125
- lastSeen: Date.now()
126
- });
127
- }
128
-
129
- async unregisterAgent(did: string): Promise<void> {
130
- this.agents.delete(did);
131
- }
132
-
133
- getAgent(did: string): AgentInfo | undefined {
134
- return this.agents.get(did);
135
- }
136
-
137
- getAllAgents(): AgentInfo[] {
138
- return Array.from(this.agents.values());
139
- }
140
-
141
- getOnlineAgents(): AgentInfo[] {
142
- const now = Date.now();
143
- const timeout = 5 * 60 * 1000; // 5分钟超时
144
- return this.getAllAgents().filter(a => a.lastSeen && (now - a.lastSeen) < timeout);
145
- }
146
-
147
- async resolveDIDFromIPNS(ipnsName: string): Promise<AgentInfo | null> {
148
- try {
149
- const cid = await this.ipfsClient.resolveIpns(ipnsName);
150
- const content = await this.ipfsClient.get(cid);
151
- const doc = JSON.parse(content);
152
- return {
153
- did: doc.id,
154
- name: doc.name || doc.id,
155
- ipnsName
156
- };
157
- } catch (error) {
158
- console.error(`Failed to resolve DID from IPNS ${ipnsName}:`, error);
159
- return null;
160
- }
161
- }
162
-
163
- async discoverAgents(): Promise<AgentInfo[]> {
164
- const discovered: AgentInfo[] = [];
165
- const peers = p2pNetwork.getPeers();
166
-
167
- for (const peerId of peers) {
168
- // 尝试从已知IPNS名称列表中解析
169
- // 实际实现中应该通过某种服务发现机制
170
- const agent = this.getAgentByPeerId(peerId);
171
- if (agent) {
172
- discovered.push(agent);
173
- }
174
- }
175
-
176
- return discovered;
177
- }
178
-
179
- private getAgentByPeerId(peerId: string): AgentInfo | undefined {
180
- for (const agent of this.agents.values()) {
181
- if (agent.peerId === peerId) {
182
- return agent;
183
- }
184
- }
185
- return undefined;
186
- }
187
- }
188
-
189
- /**
190
- * 协作决策器 - 判断是否需要多智能体协作
191
- */
192
- export class CollaborationDecider {
193
- private threshold = 0.7;
194
-
195
- async shouldCollaborate(intent: CommandIntent, qualityScore?: number): Promise<boolean> {
196
- // 明确要求协作
197
- if (intent.needCollaboration) return true;
198
-
199
- // 质量问题,建议协作改进
200
- if (qualityScore && qualityScore < this.threshold) return true;
201
-
202
- // 复杂任务建议协作
203
- if (intent.action === 'improve' && intent.requirements) {
204
- if (intent.requirements.length > 200) return true; // 复杂需求
205
- }
206
-
207
- return false;
208
- }
209
-
210
- selectAgentsForTask(intent: CommandIntent, availableAgents: AgentInfo[]): AgentInfo[] {
211
- if (!availableAgents.length) return [];
212
-
213
- // 如果用户指定了智能体
214
- if (intent.suggestedAgents?.length) {
215
- return availableAgents.filter(a =>
216
- intent.suggestedAgents!.some(name =>
217
- a.name.includes(name) || a.did.includes(name)
218
- )
219
- );
220
- }
221
-
222
- // 根据任务类型选择
223
- switch (intent.action) {
224
- case 'improve':
225
- // 改进任务可以选多个智能体并行处理
226
- return availableAgents.slice(0, 3);
227
- case 'summarize':
228
- // 摘要任务选一个即可
229
- return [availableAgents[0]];
230
- default:
231
- return availableAgents.slice(0, 2);
232
- }
233
- }
234
- }
235
-
236
- /**
237
- * 任务分发器 - 管理多智能体任务分发和结果收集
238
- */
239
- export class TaskDispatcher {
240
- private protocol: AgentProtocol;
241
- private pendingTasks: Map<string, { intent: CommandIntent; agents: AgentInfo[] }> = new Map();
242
-
243
- constructor(protocol: AgentProtocol) {
244
- this.protocol = protocol;
245
- }
246
-
247
- async dispatchSummarize(intent: CommandIntent, target: string, agents: AgentInfo[]): Promise<string> {
248
- const taskId = `summarize-${Date.now()}`;
249
-
250
- this.pendingTasks.set(taskId, { intent, agents });
251
-
252
- // 广播任务给选定的智能体
253
- for (const agent of agents) {
254
- const task: Task = {
255
- taskId,
256
- action: 'summarize',
257
- target,
258
- context: intent.context
259
- };
260
- await this.protocol.sendTask(task, agent.peerId || agent.did);
261
- }
262
-
263
- return taskId;
264
- }
265
-
266
- async dispatchImprove(intent: CommandIntent, target: string, agents: AgentInfo[]): Promise<string> {
267
- const taskId = `improve-${Date.now()}`;
268
-
269
- this.pendingTasks.set(taskId, { intent, agents });
270
-
271
- // 向每个智能体发送改进请求
272
- for (const agent of agents) {
273
- await this.protocol.requestImprove(target, intent.requirements || '', agent.peerId);
274
- }
275
-
276
- return taskId;
277
- }
278
-
279
- cancelTask(taskId: string): void {
280
- this.pendingTasks.delete(taskId);
281
- }
282
-
283
- getPendingTasks(): string[] {
284
- return Array.from(this.pendingTasks.keys());
285
- }
286
- }
287
-
288
- /**
289
- * 多智能体协作工作流 - 主协调器
290
- */
291
- export class MultiAgentWorkflow {
292
- private parser: CommandParser;
293
- private registry: DIDRegistry;
294
- private decider: CollaborationDecider;
295
- private dispatcher: TaskDispatcher;
296
- private protocol: AgentProtocol;
297
-
298
- constructor() {
299
- this.parser = new CommandParser();
300
- this.registry = new DIDRegistry();
301
- this.decider = new CollaborationDecider();
302
- this.protocol = new AgentProtocol('local', 'coordinator');
303
- this.dispatcher = new TaskDispatcher(this.protocol);
304
-
305
- this.setupResultHandlers();
306
- }
307
-
308
- private setupResultHandlers(): void {
309
- // 处理返回结果
310
- p2pNetwork.onMessage('result', async (data, from) => {
311
- const msg = JSON.parse(new TextDecoder().decode(data)) as AgentMessage;
312
- const result = JSON.parse(msg.payload) as TaskResult;
313
- console.log(`\n📥 收到来自 ${from} 的结果:`);
314
- console.log(` 质量: ${(result.qualityScore! * 10).toFixed(1)}/10`);
315
- console.log(` 摘要: ${result.result?.substring(0, 100)}...`);
316
- });
317
-
318
- // 处理改进结果
319
- p2pNetwork.onMessage('improved', async (data, from) => {
320
- const msg = JSON.parse(new TextDecoder().decode(data)) as AgentMessage;
321
- const result = JSON.parse(msg.payload) as ImproveResult;
322
- console.log(`\n✨ 收到来自 ${from} 的改进结果:`);
323
- console.log(` 质量: ${(result.qualityScore! * 10).toFixed(1)}/10`);
324
- console.log(` 自动发送: ${result.shouldAutoSend ? '是' : '否'}`);
325
- });
326
- }
327
-
328
- /**
329
- * 处理用户输入的完整流程
330
- */
331
- async process(input: string, context?: string): Promise<CollaborationResult> {
332
- // 1. 命令解析
333
- const intent = this.parser.parse(input, context);
334
- console.log(`\n🔍 解析命令:`, intent);
335
-
336
- // 2. 发现可用的智能体
337
- const agents = await this.registry.discoverAgents();
338
- console.log(`\n👥 发现 ${agents.length} 个在线智能体`);
339
-
340
- // 3. 协作决策
341
- const shouldCollaborate = await this.decider.shouldCollaborate(intent);
342
- console.log(`\n🤔 协作决策: ${shouldCollaborate ? '需要协作' : '独立完成'}`);
343
-
344
- if (!shouldCollaborate) {
345
- // 独立执行
346
- return this.executeIndependently(intent);
347
- }
348
-
349
- // 4. 选择执行智能体
350
- const selectedAgents = this.decider.selectAgentsForTask(intent, agents);
351
- console.log(`\n🎯 选中 ${selectedAgents.length} 个智能体执行`);
352
-
353
- if (selectedAgents.length === 0) {
354
- // 没有可用智能体,降级为独立执行
355
- console.log(`\n⚠️ 没有可用智能体,降级为独立执行`);
356
- return this.executeIndependently(intent);
357
- }
358
-
359
- // 5. 分发任务
360
- return this.dispatchToAgents(intent, selectedAgents);
361
- }
362
-
363
- /**
364
- * 独立执行(无需协作)
365
- */
366
- private async executeIndependently(intent: CommandIntent): Promise<CollaborationResult> {
367
- try {
368
- let result: string;
369
- let qualityScore = 0.5;
370
-
371
- if (intent.action === 'read' || intent.action === 'summarize') {
372
- if (!intent.target) {
373
- return { success: false, collaborated: false, agents: [], error: '缺少目标文件' };
374
- }
375
- const content = await documentReader.read(intent.target);
376
- const llm = getMinimax();
377
- const summarizeResult = await llm.summarize(content.text, intent.context);
378
- result = summarizeResult.summary;
379
- qualityScore = summarizeResult.qualityScore;
380
- } else if (intent.action === 'improve' && intent.target) {
381
- const content = await documentReader.read(intent.target);
382
- const llm = getMinimax();
383
- result = await llm.improveContent(content.text, intent.requirements || '', intent.context);
384
- qualityScore = llm.estimateQuality(content.text, result);
385
- } else {
386
- return { success: false, collaborated: false, agents: [], error: '未知动作' };
387
- }
388
-
389
- return {
390
- success: true,
391
- collaborated: false,
392
- agents: [],
393
- result,
394
- qualityScore
395
- };
396
- } catch (error) {
397
- return {
398
- success: false,
399
- collaborated: false,
400
- agents: [],
401
- error: String(error)
402
- };
403
- }
404
- }
405
-
406
- /**
407
- * 分发给多个智能体协作执行
408
- */
409
- private async dispatchToAgents(intent: CommandIntent, agents: AgentInfo[]): Promise<CollaborationResult> {
410
- try {
411
- if (!intent.target) {
412
- return { success: false, collaborated: true, agents, error: '缺少目标文件' };
413
- }
414
-
415
- let taskId: string;
416
-
417
- if (intent.action === 'summarize' || intent.action === 'read') {
418
- taskId = await this.dispatcher.dispatchSummarize(intent, intent.target, agents);
419
- } else if (intent.action === 'improve') {
420
- taskId = await this.dispatcher.dispatchImprove(intent, intent.target, agents);
421
- } else {
422
- return { success: false, collaborated: true, agents, error: '不支持的协作动作' };
423
- }
424
-
425
- return {
426
- success: true,
427
- collaborated: true,
428
- agents,
429
- taskId,
430
- result: `任务已分发,等待结果...`
431
- };
432
- } catch (error) {
433
- return {
434
- success: false,
435
- collaborated: true,
436
- agents,
437
- error: String(error)
438
- };
439
- }
440
- }
441
-
442
- /**
443
- * 查询当前在线的智能体
444
- */
445
- async listAgents(): Promise<AgentInfo[]> {
446
- return this.registry.discoverAgents();
447
- }
448
-
449
- /**
450
- * 注册一个新智能体
451
- */
452
- async registerAgent(agent: AgentInfo): Promise<void> {
453
- await this.registry.registerAgent(agent);
454
- }
455
- }