multi-agent-platform 0.3.0__tar.gz → 0.3.2__tar.gz

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 (325) hide show
  1. {multi_agent_platform-0.3.0/multi_agent_platform.egg-info → multi_agent_platform-0.3.2}/PKG-INFO +72 -80
  2. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/README.md +57 -69
  3. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/agent_client.py +15 -4
  4. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/experiment.py +37 -10
  5. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/feedback.py +2 -2
  6. multi_agent_platform-0.3.2/cli/commands/host.py +150 -0
  7. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/notification.py +1 -1
  8. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/project.py +2 -3
  9. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/runtime.py +1 -1
  10. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/skill.py +53 -3
  11. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/sync.py +3 -4
  12. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/topic.py +55 -8
  13. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/e2e_collab.py +2 -2
  14. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/main.py +112 -7
  15. multi_agent_platform-0.3.2/cli/orchestrator.py +240 -0
  16. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/runtime_chat.py +1 -1
  17. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/simple_waker.py +1 -2
  18. multi_agent_platform-0.3.2/cli/skills/experiment-host/SKILL.md +213 -0
  19. multi_agent_platform-0.3.2/cli/skills/experiment-host/references/lifecycle-transitions.md +102 -0
  20. multi_agent_platform-0.3.2/cli/skills/experiment-reviewer/SKILL.md +121 -0
  21. multi_agent_platform-0.3.2/cli/skills/experiment-reviewer/references/review-format-guide.md +59 -0
  22. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/skills/map-project-collab/SKILL.md +100 -46
  23. multi_agent_platform-0.3.2/cli/skills/map-project-collab/references/bootstrap-troubleshooting.md +92 -0
  24. multi_agent_platform-0.3.0/cli/skills/map-runtime-waker/SKILL.md → multi_agent_platform-0.3.2/cli/skills/map-project-collab/references/waker-mode.md +17 -41
  25. multi_agent_platform-0.3.2/cli/skills/map-project-collab/scripts/map-bootstrap.sh +7 -0
  26. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/skills/topic-host/SKILL.md +109 -95
  27. multi_agent_platform-0.3.2/cli/skills/topic-host/references/experiment-gate-rubric.md +130 -0
  28. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/skills/topic-participant/SKILL.md +49 -6
  29. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2/multi_agent_platform.egg-info}/PKG-INFO +72 -80
  30. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/multi_agent_platform.egg-info/SOURCES.txt +13 -2
  31. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/multi_agent_platform.egg-info/requires.txt +13 -9
  32. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/multi_agent_platform.egg-info/top_level.txt +1 -0
  33. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/pyproject.toml +23 -16
  34. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/bootstrap.py +148 -2
  35. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/client.py +39 -4
  36. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_mcp/server.py +14 -3
  37. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_sdk/__init__.py +1 -1
  38. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_types/__init__.py +3 -0
  39. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_types/enums.py +37 -0
  40. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_types/schemas.py +65 -5
  41. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/__version__.py +1 -1
  42. multi_agent_platform-0.3.2/server/api/bootstrap.py +55 -0
  43. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/experiments.py +14 -2
  44. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/router.py +2 -0
  45. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/topics.py +42 -3
  46. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/domain/models.py +25 -4
  47. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/main.py +2 -0
  48. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/agent_work_service.py +1 -1
  49. multi_agent_platform-0.3.2/server/services/bootstrap_service.py +129 -0
  50. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/mention_service.py +1 -1
  51. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/notification_service.py +1 -0
  52. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/phase_service.py +132 -25
  53. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_ack_service.py +4 -1
  54. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_comment_service.py +9 -1
  55. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_lifecycle_service.py +147 -13
  56. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_service.py +2 -0
  57. multi_agent_platform-0.3.2/tests/test_bootstrap.py +152 -0
  58. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_typing_extensions_clean.py +26 -22
  59. multi_agent_platform-0.3.2/tests/test_experiment_executor.py +484 -0
  60. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_local_cache.py +1 -2
  61. multi_agent_platform-0.3.2/tests/test_orchestrator.py +408 -0
  62. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_project_export.py +1 -2
  63. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_sdk.py +3 -3
  64. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_skill_install.py +72 -3
  65. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_topics.py +254 -8
  66. multi_agent_platform-0.3.0/cli/skills/experiment-host/SKILL.md +0 -223
  67. multi_agent_platform-0.3.0/cli/skills/experiment-reviewer/SKILL.md +0 -108
  68. multi_agent_platform-0.3.0/cli/skills/map-project-collab/scripts/map-bootstrap.sh +0 -6
  69. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/LICENSE +0 -0
  70. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/__init__.py +0 -0
  71. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/action_item_escalation.py +0 -0
  72. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/bridge_state.py +0 -0
  73. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/__init__.py +0 -0
  74. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/action.py +0 -0
  75. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/agent.py +0 -0
  76. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/audit.py +0 -0
  77. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/docs.py +0 -0
  78. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/commands/persona.py +0 -0
  79. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/git_checkpoint.py +0 -0
  80. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/host_worker_types.py +0 -0
  81. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/local_cache.py +0 -0
  82. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/map_command_client.py +0 -0
  83. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/participant_worker.py +0 -0
  84. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/project_export.py +0 -0
  85. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/reviewer_worker.py +0 -0
  86. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/runtime/__init__.py +0 -0
  87. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/runtime/run_lock.py +0 -0
  88. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/session_wake_log.py +0 -0
  89. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/skills/__init__.py +0 -0
  90. {multi_agent_platform-0.3.0/cli/skills/map-runtime-waker → multi_agent_platform-0.3.2/cli/skills/map-project-collab}/agents/openai.yaml +0 -0
  91. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/table_render.py +0 -0
  92. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/wake_backend.py +0 -0
  93. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/cli/worker_cycle_log.py +0 -0
  94. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/multi_agent_platform.egg-info/dependency_links.txt +0 -0
  95. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/multi_agent_platform.egg-info/entry_points.txt +0 -0
  96. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/__init__.py +0 -0
  97. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/config.py +0 -0
  98. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/errors.py +0 -0
  99. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/exceptions.py +0 -0
  100. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/plan_evidence.py +0 -0
  101. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/project_config.py +0 -0
  102. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/result_template.py +0 -0
  103. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_client/testing.py +0 -0
  104. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_mcp/__init__.py +0 -0
  105. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_mcp/_utils.py +0 -0
  106. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_mcp/auth.py +0 -0
  107. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_mcp/config.py +0 -0
  108. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_mcp/context.py +0 -0
  109. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_mcp/main.py +0 -0
  110. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_mcp/session.py +0 -0
  111. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/sdk/python/map_sdk/evidence.py +0 -0
  112. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/__init__.py +0 -0
  113. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/__init__.py +0 -0
  114. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/action_items.py +0 -0
  115. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/agents.py +0 -0
  116. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/audit.py +0 -0
  117. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/background_tasks.py +0 -0
  118. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/common.py +0 -0
  119. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/deps.py +0 -0
  120. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/feedback.py +0 -0
  121. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/notifications.py +0 -0
  122. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/projects.py +0 -0
  123. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/status.py +0 -0
  124. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/api/webhooks.py +0 -0
  125. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/auth/__init__.py +0 -0
  126. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/auth/experiment_access.py +0 -0
  127. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/config.py +0 -0
  128. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/db/__init__.py +0 -0
  129. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/db/base.py +0 -0
  130. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/db/deadlock_retry.py +0 -0
  131. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/db/session.py +0 -0
  132. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/domain/__init__.py +0 -0
  133. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/domain/encrypted_types.py +0 -0
  134. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/domain/schemas.py +0 -0
  135. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/domain/state_machine.py +0 -0
  136. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/domain/topic_ack_constants.py +0 -0
  137. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/scripts/__init__.py +0 -0
  138. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/scripts/migrate_notification_unique.py +0 -0
  139. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/scripts/purge_audit_pollution.py +0 -0
  140. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/__init__.py +0 -0
  141. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/_lookups.py +0 -0
  142. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/acceptance_service.py +0 -0
  143. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/action_item_migration_service.py +0 -0
  144. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/action_item_service.py +0 -0
  145. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/archive_lint_service.py +0 -0
  146. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/audit_service.py +0 -0
  147. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/auth.py +0 -0
  148. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/comment_service.py +0 -0
  149. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/errors.py +0 -0
  150. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/escalation_resolver.py +0 -0
  151. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/evidence_service.py +0 -0
  152. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/experiment_capabilities_service.py +0 -0
  153. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/inbound_event_service.py +0 -0
  154. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/lock_service.py +0 -0
  155. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/log_service.py +0 -0
  156. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/notification_stream.py +0 -0
  157. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/permissions.py +0 -0
  158. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/persona_activity_service.py +0 -0
  159. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/phase_owner_resolver.py +0 -0
  160. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/plan_marker_service.py +0 -0
  161. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/plan_service.py +0 -0
  162. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/platform_feedback_service.py +0 -0
  163. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/project_service.py +0 -0
  164. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/project_status_service.py +0 -0
  165. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/review_service.py +0 -0
  166. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/secret_encryption.py +0 -0
  167. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/similarity_service.py +0 -0
  168. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/sse_event_schemas.py +0 -0
  169. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/status_service.py +0 -0
  170. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/template_service.py +0 -0
  171. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/text_utils.py +0 -0
  172. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/thread_activity.py +0 -0
  173. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/todo_persona_filter.py +0 -0
  174. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/todo_service.py +0 -0
  175. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_action_item_ops.py +0 -0
  176. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_comment_kind.py +0 -0
  177. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_helpers.py +0 -0
  178. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_progress_service.py +0 -0
  179. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_resolve_service.py +0 -0
  180. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/topic_work_item_service.py +0 -0
  181. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/server/services/webhook_service.py +0 -0
  182. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/setup.cfg +0 -0
  183. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_18a64691_linkage.py +0 -0
  184. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_a2_action_item_cascade.py +0 -0
  185. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_accept_result_verdict.py +0 -0
  186. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_action_items.py +0 -0
  187. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_agent_client.py +0 -0
  188. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_agent_work.py +0 -0
  189. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_agents_list.py +0 -0
  190. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_arch_map_sdk_evidence.py +0 -0
  191. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_archive_lint_service.py +0 -0
  192. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_audit_admin_cli.py +0 -0
  193. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_audit_admin_filter.py +0 -0
  194. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_auth.py +0 -0
  195. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_auth_experiment_access.py +0 -0
  196. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_authz_cross_persona_capability.py +0 -0
  197. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_authz_pr3_creator_gating_extended.py +0 -0
  198. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_b_acceptance.py +0 -0
  199. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_b_action_item_stale.py +0 -0
  200. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_b_action_item_wake_endpoints.py +0 -0
  201. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_b_action_item_wake_stale.py +0 -0
  202. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_b_action_item_wake_stale_notifications.py +0 -0
  203. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_b_waker_should_wake_action_item.py +0 -0
  204. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_bridge_state.py +0 -0
  205. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cleanup_audit_log_no_commit.py +0 -0
  206. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cleanup_exp_b_paging_seven_endpoints.py +0 -0
  207. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cleanup_exp_b_paging_unified_limit.py +0 -0
  208. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_clear_action_template.py +0 -0
  209. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cli.py +0 -0
  210. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cli_error_envelope.py +0 -0
  211. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cli_evidence_contract.py +0 -0
  212. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cli_format_priority.py +0 -0
  213. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cli_n2_hard_cutover.py +0 -0
  214. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cli_schema_discovery.py +0 -0
  215. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cli_status.py +0 -0
  216. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cli_template_contract.py +0 -0
  217. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cli_work_deprecation.py +0 -0
  218. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_cross_persona_call_audit.py +0 -0
  219. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_deadlock_retry.py +0 -0
  220. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_docs_inventory.py +0 -0
  221. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_fast_gate_whitelist_complete.py +0 -0
  222. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_agent_work_service.py +0 -0
  223. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_agents.py +0 -0
  224. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_experiment_capabilities_service.py +0 -0
  225. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_experiments_projects.py +0 -0
  226. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_mention_service.py +0 -0
  227. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_notification_service.py +0 -0
  228. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_phase_service.py +0 -0
  229. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_project_service.py +0 -0
  230. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_todo_service.py +0 -0
  231. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_topic_comment_service.py +0 -0
  232. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_topic_service.py +0 -0
  233. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_topic_work_item_service.py +0 -0
  234. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_mypy_strict_topics.py +0 -0
  235. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_uv_lock.py +0 -0
  236. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_eng_version_single_source.py +0 -0
  237. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_error_codes_cli.py +0 -0
  238. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_error_envelope_and_file_options.py +0 -0
  239. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_escalation_resolver.py +0 -0
  240. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_escalation_target_endpoint.py +0 -0
  241. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_evidence_service.py +0 -0
  242. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_experiment_capabilities.py +0 -0
  243. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_experiment_capabilities_whitelist.py +0 -0
  244. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_experiment_lock_fuzz.py +0 -0
  245. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_experiment_lock_notifications.py +0 -0
  246. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_experiment_lock_unit.py +0 -0
  247. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_experiments.py +0 -0
  248. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_feedback.py +0 -0
  249. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_feedback_admin_cli.py +0 -0
  250. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_field_rename_alias.py +0 -0
  251. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_git_checkpoint.py +0 -0
  252. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_inbound_event_rejection.py +0 -0
  253. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_log_create_response.py +0 -0
  254. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_m2_flow.py +0 -0
  255. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_m3_flow.py +0 -0
  256. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_map_sdk_skeleton.py +0 -0
  257. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_mcp.py +0 -0
  258. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_mcp_http.py +0 -0
  259. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_mention_code_skip_unit.py +0 -0
  260. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_mentions.py +0 -0
  261. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_notification_bulk_filter.py +0 -0
  262. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_notification_service_v09.py +0 -0
  263. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_notification_stream.py +0 -0
  264. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_notification_upsert_pr2.py +0 -0
  265. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_notifications.py +0 -0
  266. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_participant_worker_claude_agent.py +0 -0
  267. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_perf_count_sql_fixture.py +0 -0
  268. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_perf_experiment_bundle_verdict_n_plus_one.py +0 -0
  269. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_perf_experiment_summary_bulk.py +0 -0
  270. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_perf_topic_comments_bulk.py +0 -0
  271. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_perf_work_hotpath_bulk.py +0 -0
  272. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_persona_activity.py +0 -0
  273. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_persona_compare_partition.py +0 -0
  274. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_phase_owner_orm_validation.py +0 -0
  275. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_phase_owner_resolver.py +0 -0
  276. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_plan_evidence_parser.py +0 -0
  277. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_plan_marker_service.py +0 -0
  278. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_plan_revise_auto_archive.py +0 -0
  279. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_plan_validate_cli.py +0 -0
  280. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_project_config.py +0 -0
  281. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_project_status.py +0 -0
  282. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_projects.py +0 -0
  283. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_rebutted_plan_continues_e2e.py +0 -0
  284. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_register_agent_body_model.py +0 -0
  285. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_reject_result_misuse.py +0 -0
  286. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_resolve_item_sdk_contract.py +0 -0
  287. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_resolve_item_status.py +0 -0
  288. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_result_template_parser.py +0 -0
  289. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_review_already_archived.py +0 -0
  290. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_review_archived_metadata.py +0 -0
  291. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_review_eligibility.py +0 -0
  292. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_review_item_mutation_audit.py +0 -0
  293. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_review_item_state_closed_migration.py +0 -0
  294. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_review_list_archived_filter.py +0 -0
  295. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_review_substitute_and_withdraw.py +0 -0
  296. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_review_verdict_alias.py +0 -0
  297. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_reviewer_worker_claude_agent.py +0 -0
  298. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_runtime_chat.py +0 -0
  299. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_same_second_host_reply.py +0 -0
  300. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_same_second_trio.py +0 -0
  301. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_sdk_exceptions.py +0 -0
  302. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_server_lock_service.py +0 -0
  303. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_session_wake_log.py +0 -0
  304. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_similarity_api_contract.py +0 -0
  305. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_similarity_service.py +0 -0
  306. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_simple_waker.py +0 -0
  307. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_simple_waker_pr3_dedup.py +0 -0
  308. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_simple_waker_reviewer_filter.py +0 -0
  309. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_sse_acceptance.py +0 -0
  310. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_sse_isolation.py +0 -0
  311. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_sse_schema_overlap.py +0 -0
  312. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_state_machine.py +0 -0
  313. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_state_machine_recovery_hint.py +0 -0
  314. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_systemd_install.py +0 -0
  315. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_template_api_contract.py +0 -0
  316. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_template_service.py +0 -0
  317. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_todos.py +0 -0
  318. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_topic_notifications.py +0 -0
  319. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_topic_progress.py +0 -0
  320. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_topic_read_cursor.py +0 -0
  321. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_topic_work_items.py +0 -0
  322. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_waker_phase1_acceptance.py +0 -0
  323. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_webhook_secret_encryption.py +0 -0
  324. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_webhooks_audit.py +0 -0
  325. {multi_agent_platform-0.3.0 → multi_agent_platform-0.3.2}/tests/test_work_summary.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multi-agent-platform
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Multi-Agent experiment collaboration platform
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/quantaeye/multi-agent-platform
@@ -9,26 +9,29 @@ Project-URL: Repository, https://github.com/quantaeye/multi-agent-platform
9
9
  Project-URL: Issues, https://github.com/quantaeye/multi-agent-platform/issues
10
10
  Classifier: Development Status :: 4 - Beta
11
11
  Classifier: Intended Audience :: Developers
12
+ Classifier: Programming Language :: Python :: 3.10
12
13
  Classifier: Programming Language :: Python :: 3.11
13
14
  Classifier: Programming Language :: Python :: 3.12
14
15
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
16
  Classifier: Operating System :: OS Independent
16
- Requires-Python: >=3.11
17
+ Requires-Python: >=3.10
17
18
  Description-Content-Type: text/markdown
18
19
  License-File: LICENSE
19
- Requires-Dist: fastapi<0.116,>=0.115.0
20
- Requires-Dist: uvicorn[standard]<0.41,>=0.32.0
21
- Requires-Dist: sqlalchemy<2.1,>=2.0.36
22
- Requires-Dist: alembic<2.0,>=1.14.0
23
- Requires-Dist: pydantic<2.12,>=2.10.0
24
- Requires-Dist: pydantic-settings<2.9,>=2.6.0
25
- Requires-Dist: bcrypt<6.0,>=4.2.0
26
- Requires-Dist: python-multipart<0.1,>=0.0.17
27
20
  Requires-Dist: typer<0.17,>=0.15.0
28
21
  Requires-Dist: httpx<0.29,>=0.28.0
29
22
  Requires-Dist: pyyaml<7.0,>=6.0
30
- Requires-Dist: cryptography<50.0,>=44.0.0
23
+ Requires-Dist: pydantic<2.12,>=2.10.0
24
+ Provides-Extra: server
25
+ Requires-Dist: fastapi<0.116,>=0.115.0; extra == "server"
26
+ Requires-Dist: uvicorn[standard]<0.41,>=0.32.0; extra == "server"
27
+ Requires-Dist: sqlalchemy<2.1,>=2.0.36; extra == "server"
28
+ Requires-Dist: alembic<2.0,>=1.14.0; extra == "server"
29
+ Requires-Dist: pydantic-settings<2.9,>=2.6.0; extra == "server"
30
+ Requires-Dist: bcrypt<6.0,>=4.2.0; extra == "server"
31
+ Requires-Dist: python-multipart<0.1,>=0.0.17; extra == "server"
32
+ Requires-Dist: cryptography<50.0,>=44.0.0; extra == "server"
31
33
  Provides-Extra: dev
34
+ Requires-Dist: multi-agent-platform[server]; extra == "dev"
32
35
  Requires-Dist: pytest<9.0,>=8.3.0; extra == "dev"
33
36
  Requires-Dist: pytest-asyncio<1.0,>=0.24.0; extra == "dev"
34
37
  Requires-Dist: pytest-cov<7.0,>=5.0.0; extra == "dev"
@@ -37,6 +40,7 @@ Requires-Dist: mcp<2.0,>=1.26.0; extra == "dev"
37
40
  Requires-Dist: ruff<1.0,>=0.8.0; extra == "dev"
38
41
  Requires-Dist: pydantic-to-typescript<3.0,>=2.0.0; extra == "dev"
39
42
  Provides-Extra: mcp
43
+ Requires-Dist: multi-agent-platform[server]; extra == "mcp"
40
44
  Requires-Dist: mcp<2.0,>=1.26.0; extra == "mcp"
41
45
  Provides-Extra: codex-runtime
42
46
  Provides-Extra: claude-runtime
@@ -46,18 +50,24 @@ Dynamic: license-file
46
50
  # Multi-Agent Platform (MAP)
47
51
 
48
52
  [![PyPI version](https://img.shields.io/pypi/v/multi-agent-platform.svg)](https://pypi.org/project/multi-agent-platform/)
49
- [![Python 3.11+](https://img.shields.io/pypi/pyversions/multi-agent-platform.svg)](https://pypi.org/project/multi-agent-platform/)
53
+ [![Python 3.10+](https://img.shields.io/pypi/pyversions/multi-agent-platform.svg)](https://pypi.org/project/multi-agent-platform/)
50
54
  [![License: MIT](https://img.shields.io/pypi/l/multi-agent-platform.svg)](https://github.com/quantaeye/multi-agent-platform/blob/main/LICENSE)
51
55
 
52
56
  多 Agent 实验协作平台:以话题为中心,管理实验计划、评审讨论、执行日志与项目状态。
53
57
 
54
58
  ## 安装
55
59
 
60
+ 两种安装方式,按需选择:
61
+
56
62
  ```bash
63
+ # 1. 仅安装 CLI(连接远程 MAP server 时使用,轻量)
57
64
  pip install multi-agent-platform
65
+
66
+ # 2. 安装 CLI + Server 依赖(需要本地运行 MAP server 时使用)
67
+ pip install multi-agent-platform-server
58
68
  ```
59
69
 
60
- 安装后即可使用 `map` CLI 和 `map-server` 命令。详见 [Quick Start 指南](docs/QUICKSTART.md)。
70
+ 安装后即可使用 `map` CLI;安装 server 包后还可使用 `map-server` 命令。详见 [Quick Start 指南](docs/QUICKSTART.md)。
61
71
 
62
72
  **新用户?** 一键启动:`./scripts/quickstart.sh`,或阅读 [Quick Start 指南](docs/QUICKSTART.md)。
63
73
 
@@ -69,10 +79,10 @@ pip install multi-agent-platform
69
79
 
70
80
  ```bash
71
81
  pip install multi-agent-platform
72
- map skill install # 将 6 个 Skill 文件安装到 .cursor/skills/
82
+ map skill install # 将 5 个 Skill 文件安装到 .cursor/skills/
73
83
  ```
74
84
 
75
- 安装后 Cursor 会自动发现 Skill,AI Agent 读取后即可遵循完整的 MAP 协作流程(含两轮讨论门禁、实验生命周期等)。
85
+ 安装后 Cursor 会自动发现 Skill,AI Agent 读取后即可遵循完整的 MAP 协作流程(含讨论门禁(默认两轮,可伸缩)、实验生命周期等)。
76
86
 
77
87
  **方式二:使用简化 Prompt(快速上手)**
78
88
 
@@ -80,71 +90,41 @@ map skill install # 将 6 个 Skill 文件安装到 .cursor/skills/
80
90
 
81
91
  ## 文档
82
92
 
93
+ - [文档总入口](docs/INDEX.md)
83
94
  - [MAP Agent Prompt(给 AI Agent 的协作指南)](MAP_AGENT_PROMPT.md)
84
95
  - [Quick Start 指南(新用户必读)](docs/QUICKSTART.md)
85
- - [产品需求文档(PRD)](docs/prd/archive/v0.1.md)
86
- - [产品需求文档 v0.2(角色与项目边界)](docs/prd/archive/v0.2.md)
87
- - [产品需求文档 v0.3(话题独立、UI 写闭环、待办与通知)](docs/prd/archive/v0.3.md)
88
- - [产品需求文档 v0.4(站内收件箱、@提及、计划 diff、话题置顶)](docs/prd/archive/v0.4.md)
89
- - [产品需求文档 v0.5(主持待办 pending_topic_replies、topic-host Skill)](docs/prd/archive/v0.5.md)
90
- - [产品需求文档 v0.6(列表归档、独立列表页、通知 SSE)](docs/prd/archive/v0.6.md)
91
- - [产品需求文档 v0.9 草案(waker Phase 2 通知降噪)](docs/prd/v0.9.md)
92
- - [Webhook 话题主持接线指南](docs/WEBHOOK-TOPIC-HOST.md)
93
- - [Agent Runtime 集成(simple-waker,默认)](docs/MAP-SIMPLE-WAKER.md)
96
+ - [CLI 指南](docs/CLI.md)
94
97
  - [架构设计](docs/ARCHITECTURE.md)
95
98
  - [Python SDK 指南](docs/SDK.md)
96
99
  - [MCP Server 指南(stdio)](docs/MCP.md)
100
+ - [Webhook 话题主持接线指南](docs/WEBHOOK-TOPIC-HOST.md)
101
+ - [Agent Runtime 集成(simple-waker,默认)](docs/MAP-SIMPLE-WAKER.md)
102
+ - [Persona 行为差异](docs/MAP-PERSONA-COMPARE.md)
103
+ - [Web 端 Agent UI 视图](docs/UI-AGENTS.md)
104
+ - [证据元数据契约](docs/MAP-EVIDENCE-METADATA.md)
105
+ - [错误码清单](docs/MAP-ERROR-CODES.md)
97
106
 
98
- ## 状态
99
-
100
- **M1 已完成**:数据模型、Alembic 迁移、Projects/Experiments CRUD REST API。
101
- **M2 已完成**:Plans 修订、Reviews、Comments、实验阶段与不合理项状态机。
102
- **M3 已完成**:实验日志、Start/Complete、全局 Status API、CLI(`map` 命令)。
103
- **M4 已完成**:React + Vite Web UI(看板、项目、实验话题页)。
104
- **M5 已完成**:Python SDK(`map_client`)、SDK 文档、CLI 基于 SDK 重构、Docker 部署。
105
- **M6 已完成**:MCP stdio + HTTP 服务(`map-mcp`),供 IDE Agent 调用。
106
- **M7 已完成**:项目角色边界(`project_key`、Agent 项目绑定、权限门控、Status MD v1)。
107
- **M8 已完成**:项目 Current Status MD 版本化(修订 API、历史查询、CLI/MCP)。
108
-
109
- **v0.3 已完成(M11–M14)**:
110
-
111
- - **M11**:话题(Topic)独立实体 + 评论树 + 实验↔话题可选关联 + Alembic 迁移 + CLI/SDK/MCP 适配。
112
- - **M12**:Web UI 写操作闭环——发布话题/实验、修订计划、提交评审、追加日志、撤回/取消/编辑、通用讨论;新增话题详情页。
113
- - **M13**:Agent 待办视图(`GET /agents/me/todos`)+ 实验列表筛选/分页/搜索(`q`/`creator`/`page` + `X-Total-Count` header)。
114
- - **M14**:Webhook 出站通知(HMAC 签名 + 投递记录 + Admin CRUD)+ 审计日志(关键写操作打点 + 对象/全局查询)。
115
-
116
- 详见 [PRD v0.3](docs/prd/archive/v0.3.md)。
117
-
118
- **v0.4 已完成(M15–M18)**:
119
-
120
- - **M15**:站内通知收件箱(`notifications` 表 + 统一事件扇出 + API/Web/CLI/SDK/MCP)。
121
- - **M16**:评论 `@提及` → 待办 `mentions` 分区 + 定向通知。
122
- - **M17**:实验页计划版本 diff 只读视图(`PlanDiffView`)。
123
- - **M18**:话题置顶(`topics.pinned` + 列表优先排序)。
124
-
125
- 详见 [PRD v0.4](docs/prd/archive/v0.4.md)。
126
-
127
- **v0.5 已完成(M19–M21)**:
128
-
129
- - **M19**:`GET /agents/me/todos` 新增 `pending_topic_replies`(话题主持 thread 级待回复)。
130
- - **M20**:topic-host Skill(`.cursor/skills/topic-host/SKILL.md`)。
131
- - **M21**:Webhook 主持接线文档([WEBHOOK-TOPIC-HOST.md](docs/WEBHOOK-TOPIC-HOST.md))。
107
+ ### PRD
132
108
 
133
- 详见 [PRD v0.5](docs/prd/archive/v0.5.md)。
109
+ - [现行草案:v0.9(waker Phase 2 通知降噪)](docs/prd/v0.9.md)
110
+ - [归档:v0.1 / v0.2 / v0.3 / v0.4 / v0.5 / v0.6](docs/prd/archive/)
111
+ - [占位:v0.7 / v0.8(未单独成稿)](docs/prd/archive/v0.7.md)
134
112
 
135
- **v0.6 已完成(M22–M24)**:
113
+ ## 状态
136
114
 
137
- - **M22**:话题/实验 `archived_at` 归档(默认列表排除、`include_archived`、活跃实验 per-topic 约束更新)。
138
- - **M23**:Web 独立列表页(`/projects/:id/topics`、`/experiments`)+ `client.ts` vitest。
139
- - **M24**:站内通知 **SSE**(`GET /agents/me/notifications/stream`)+ Web 实时 invalidate。
115
+ **稳定能力**:
140
116
 
141
- 详见 [PRD v0.6](docs/prd/archive/v0.6.md)。项目叙事参考 [docs/status-md-v6.md](docs/status-md-v6.md)。
117
+ - **实验生命周期**:计划修订、评审、执行日志、结果审批、状态机
118
+ - **话题协作**:独立话题 + 评论树 + @提及 + 多轮讨论 + Round Summary + 结论与行动项
119
+ - **待办与通知**:Agent 待办视图 + 站内通知 + SSE 实时推送 + Webhook 出站
120
+ - **Web UI**:React + Vite 看板 / 话题 / 实验详情,写操作闭环
121
+ - **多入口接入**:Python SDK + `map` CLI + MCP stdio/HTTP(`map-mcp`)
122
+ - **Agent Runtime**:simple-waker 默认路径(轮询 + remind + action_item 升级)
123
+ - **多 persona 协作**:`.map/` persona + Skill 指导 Agent 写回 MAP
142
124
 
143
- **v0.8 MVP 已完成**:
125
+ **当前主线**:v0.9 草案(waker Phase 2 通知降噪)。详见 [PRD v0.9](docs/prd/v0.9.md) 与 [status-md-v10.md](docs/status-md-v10.md)。
144
126
 
145
- - 话题结论(Decision)与行动项(Action Items):`POST /topics/{id}/resolve`、项目级 `decisions` / `action-items` 查询、`todos.action_items`。
146
- - CLI:`map topic resolve --id <topic-id> --file decision.md|decision.yaml`、`map project decisions`、`map action list --mine`。
147
- - Web:话题详情页展示/修订结论,项目页展示最近结论,待办页展示分配给当前 Agent 的行动项。
127
+ 历史里程碑详见 PRD 归档:[v0.1–v0.6](docs/prd/archive/) · [占位 v0.7 / v0.8](docs/prd/archive/v0.7.md)。
148
128
 
149
129
  **Agent 身份(本仓库)**:统一使用 **`.map/` persona + `map` CLI**(见 [AGENTS.md](AGENTS.md));Cursor MCP 接入计划停用。
150
130
 
@@ -153,7 +133,6 @@ map skill install # 将 6 个 Skill 文件安装到 .cursor/skills/
153
133
  MAP API 运行后,在本仓库根目录执行一次 bootstrap(生成 `.map/config.yaml` 与 persona token,详见 [AGENTS.md](AGENTS.md)):
154
134
 
155
135
  ```bash
156
- export MAP_ADMIN_TOKEN=<admin-token> # 或 ~/.map/admin.yaml
157
136
  map bootstrap \
158
137
  --key multi-agent-platform \
159
138
  --name "Multi Agents Platform" \
@@ -163,18 +142,21 @@ map --persona host persona whoami
163
142
  map --persona host todos
164
143
  ```
165
144
 
166
- 与 `docker compose up` 并列:先起服务,再 bootstrap,再用 `--persona` 协作。
145
+ 与 `docker compose up` 并列:先起服务,再 bootstrap,再用 `--persona` 协作。bootstrap 走自助 `POST /api/v1/bootstrap` 端点,**无需 admin token**(老版本 server 自动回退到 admin token 路径)。
167
146
 
168
147
  ## 快速开始
169
148
 
170
149
  ```bash
171
- # 从 PyPI 安装(用户)
150
+ # 从 PyPI 安装(仅 CLI,连接远程 server)
172
151
  pip install multi-agent-platform
173
152
 
153
+ # 或安装 CLI + Server(本地运行 server)
154
+ pip install multi-agent-platform-server
155
+
174
156
  # 或从源码开发安装(贡献者)
175
157
  pip install -e ".[dev]"
176
158
 
177
- # 运行数据库迁移
159
+ # 运行数据库迁移(需要 server 依赖)
178
160
  alembic upgrade head
179
161
 
180
162
  # 启动 API 服务
@@ -212,9 +194,19 @@ map topic archive --id <topic-id> # v0.7 P3:归档(薄包装 P
212
194
  map topic archive --id <topic-id> --undo # 反归档(--unarchive 同义)
213
195
  map experiment archive --id <exp-id> # 归档实验
214
196
  map topic comment --id <topic-id> --file comment.md
215
- map topic mark-seen --id <topic-id> # 清 contextual unread,不清 reply/ack/mention
197
+ map topic comment --id <topic-id> --body "..." --round-summary # 标记 Round Summary(触发 ack 流)
198
+ map topic advance-round --id <topic-id> # roundN → roundN+1
199
+ map topic advance-round --id <topic-id> --ready # 标记 ready(可开实验)
200
+ map topic advance-round --id <topic-id> --ack accept|reject|dismiss # participant 表态
201
+ map topic advance-round --id <topic-id> --waive-ack --waive-reason "参与者离线,结论已收敛"
202
+ map topic rollback-round --id <topic-id> # 回退一轮
203
+ map topic close --id <topic-id> --reason no_experiment_needed --note "讨论后决定不开实验"
204
+ map topic dismiss --id <topic-id> # 退出话题(与 UI ✕ 相同)
205
+ map topic mark-seen --id <topic-id> # 清 contextual unread,不清 reply/ack/mention
216
206
  map project decisions
217
207
  map action list --mine
208
+ map action mark-wake-sent --id <action-item-id> # waker 升级:标记 WAKE 已发
209
+ map action mark-stale --id <action-item-id> # waker 升级:标记 STALE
218
210
  map notification list --unread-only
219
211
  map notification read --id <notification-id>
220
212
  map notification read-all
@@ -222,6 +214,10 @@ map --persona participant mention list
222
214
  map --persona participant mention dismiss --id <mention-id>
223
215
  map --persona participant mention dismiss-all
224
216
 
217
+ # Host 编排模式:host 直接调用 participant/reviewer(同步响应,不依赖 waker 轮询)
218
+ map --persona host host invoke --persona participant --prompt "请参与话题 <topic-id> 的讨论"
219
+ map --persona host host invoke --persona reviewer --prompt-file ./review-task.md --json
220
+
225
221
  # Web UI(React + Vite)
226
222
  cd web && npm install && npm run dev # http://localhost:5173
227
223
  # 开发模式通过 Vite 代理访问 API;先在设置页填入 API Token
@@ -240,7 +236,6 @@ cd web && npm install && npm run dev # http://localhost:5173
240
236
  不依赖 Cursor MCP。每个代码仓库:
241
237
 
242
238
  ```bash
243
- export MAP_ADMIN_TOKEN=<admin-token> # 或 ~/.map/admin.yaml
244
239
  map bootstrap --key my-app --name "My App" --api-url http://localhost:8001
245
240
  map --persona host status # 查看 open_topics
246
241
  ```
@@ -277,14 +272,11 @@ simple-waker 在每次 remind 后会写一条聚合 `inbound_event` 审计行(
277
272
 
278
273
  **@mention 收敛**:在话题/实验内发过评论后,对应 `mentions` 会自动从 todos 消失;只读不回时可 `map mention dismiss`。
279
274
 
280
- ## Host Worker(旧 bridge,维护模式)
275
+ ## Host Worker(已退役)
281
276
 
282
- `map-host-bridge` / `map-host-worker` 为早期轮询 bridge(进程内 `PersonaAgentClient`),已由 **waker** 取代。`main-bac` 分支保留 bridge 实现供对照;日常开发请在 `agent-runtime` 分支使用 waker。
277
+ 早期轮询 bridge(`map-host-bridge` / `map-host-worker`、`start-host-bridge*.sh`、`start-runtime-waker-claude.sh`、`start-all-wakers-legacy.sh`)已由 **simple-waker** 全面取代并停用(`MAP_USE_LEGACY_WAKER` 不再生效)。`pyproject.toml` 仅保留 `map-participant-bridge` / `map-reviewer-bridge` 两个 legacy console entry(维护模式),`map-host-bridge` 不再提供。
283
278
 
284
- ```bash
285
- # 旧路径(不推荐新接入)
286
- map-host-bridge --persona host --interval 30
287
- ```
279
+ 详见 [docs/LEGACY-ENTRY-MATRIX.md](docs/LEGACY-ENTRY-MATRIX.md);CI 校验:`./scripts/check-deprecated.sh`。
288
280
 
289
281
  ## Docker(API + Web)
290
282
 
@@ -1,18 +1,24 @@
1
1
  # Multi-Agent Platform (MAP)
2
2
 
3
3
  [![PyPI version](https://img.shields.io/pypi/v/multi-agent-platform.svg)](https://pypi.org/project/multi-agent-platform/)
4
- [![Python 3.11+](https://img.shields.io/pypi/pyversions/multi-agent-platform.svg)](https://pypi.org/project/multi-agent-platform/)
4
+ [![Python 3.10+](https://img.shields.io/pypi/pyversions/multi-agent-platform.svg)](https://pypi.org/project/multi-agent-platform/)
5
5
  [![License: MIT](https://img.shields.io/pypi/l/multi-agent-platform.svg)](https://github.com/quantaeye/multi-agent-platform/blob/main/LICENSE)
6
6
 
7
7
  多 Agent 实验协作平台:以话题为中心,管理实验计划、评审讨论、执行日志与项目状态。
8
8
 
9
9
  ## 安装
10
10
 
11
+ 两种安装方式,按需选择:
12
+
11
13
  ```bash
14
+ # 1. 仅安装 CLI(连接远程 MAP server 时使用,轻量)
12
15
  pip install multi-agent-platform
16
+
17
+ # 2. 安装 CLI + Server 依赖(需要本地运行 MAP server 时使用)
18
+ pip install multi-agent-platform-server
13
19
  ```
14
20
 
15
- 安装后即可使用 `map` CLI 和 `map-server` 命令。详见 [Quick Start 指南](docs/QUICKSTART.md)。
21
+ 安装后即可使用 `map` CLI;安装 server 包后还可使用 `map-server` 命令。详见 [Quick Start 指南](docs/QUICKSTART.md)。
16
22
 
17
23
  **新用户?** 一键启动:`./scripts/quickstart.sh`,或阅读 [Quick Start 指南](docs/QUICKSTART.md)。
18
24
 
@@ -24,10 +30,10 @@ pip install multi-agent-platform
24
30
 
25
31
  ```bash
26
32
  pip install multi-agent-platform
27
- map skill install # 将 6 个 Skill 文件安装到 .cursor/skills/
33
+ map skill install # 将 5 个 Skill 文件安装到 .cursor/skills/
28
34
  ```
29
35
 
30
- 安装后 Cursor 会自动发现 Skill,AI Agent 读取后即可遵循完整的 MAP 协作流程(含两轮讨论门禁、实验生命周期等)。
36
+ 安装后 Cursor 会自动发现 Skill,AI Agent 读取后即可遵循完整的 MAP 协作流程(含讨论门禁(默认两轮,可伸缩)、实验生命周期等)。
31
37
 
32
38
  **方式二:使用简化 Prompt(快速上手)**
33
39
 
@@ -35,71 +41,41 @@ map skill install # 将 6 个 Skill 文件安装到 .cursor/skills/
35
41
 
36
42
  ## 文档
37
43
 
44
+ - [文档总入口](docs/INDEX.md)
38
45
  - [MAP Agent Prompt(给 AI Agent 的协作指南)](MAP_AGENT_PROMPT.md)
39
46
  - [Quick Start 指南(新用户必读)](docs/QUICKSTART.md)
40
- - [产品需求文档(PRD)](docs/prd/archive/v0.1.md)
41
- - [产品需求文档 v0.2(角色与项目边界)](docs/prd/archive/v0.2.md)
42
- - [产品需求文档 v0.3(话题独立、UI 写闭环、待办与通知)](docs/prd/archive/v0.3.md)
43
- - [产品需求文档 v0.4(站内收件箱、@提及、计划 diff、话题置顶)](docs/prd/archive/v0.4.md)
44
- - [产品需求文档 v0.5(主持待办 pending_topic_replies、topic-host Skill)](docs/prd/archive/v0.5.md)
45
- - [产品需求文档 v0.6(列表归档、独立列表页、通知 SSE)](docs/prd/archive/v0.6.md)
46
- - [产品需求文档 v0.9 草案(waker Phase 2 通知降噪)](docs/prd/v0.9.md)
47
- - [Webhook 话题主持接线指南](docs/WEBHOOK-TOPIC-HOST.md)
48
- - [Agent Runtime 集成(simple-waker,默认)](docs/MAP-SIMPLE-WAKER.md)
47
+ - [CLI 指南](docs/CLI.md)
49
48
  - [架构设计](docs/ARCHITECTURE.md)
50
49
  - [Python SDK 指南](docs/SDK.md)
51
50
  - [MCP Server 指南(stdio)](docs/MCP.md)
51
+ - [Webhook 话题主持接线指南](docs/WEBHOOK-TOPIC-HOST.md)
52
+ - [Agent Runtime 集成(simple-waker,默认)](docs/MAP-SIMPLE-WAKER.md)
53
+ - [Persona 行为差异](docs/MAP-PERSONA-COMPARE.md)
54
+ - [Web 端 Agent UI 视图](docs/UI-AGENTS.md)
55
+ - [证据元数据契约](docs/MAP-EVIDENCE-METADATA.md)
56
+ - [错误码清单](docs/MAP-ERROR-CODES.md)
52
57
 
53
- ## 状态
54
-
55
- **M1 已完成**:数据模型、Alembic 迁移、Projects/Experiments CRUD REST API。
56
- **M2 已完成**:Plans 修订、Reviews、Comments、实验阶段与不合理项状态机。
57
- **M3 已完成**:实验日志、Start/Complete、全局 Status API、CLI(`map` 命令)。
58
- **M4 已完成**:React + Vite Web UI(看板、项目、实验话题页)。
59
- **M5 已完成**:Python SDK(`map_client`)、SDK 文档、CLI 基于 SDK 重构、Docker 部署。
60
- **M6 已完成**:MCP stdio + HTTP 服务(`map-mcp`),供 IDE Agent 调用。
61
- **M7 已完成**:项目角色边界(`project_key`、Agent 项目绑定、权限门控、Status MD v1)。
62
- **M8 已完成**:项目 Current Status MD 版本化(修订 API、历史查询、CLI/MCP)。
63
-
64
- **v0.3 已完成(M11–M14)**:
65
-
66
- - **M11**:话题(Topic)独立实体 + 评论树 + 实验↔话题可选关联 + Alembic 迁移 + CLI/SDK/MCP 适配。
67
- - **M12**:Web UI 写操作闭环——发布话题/实验、修订计划、提交评审、追加日志、撤回/取消/编辑、通用讨论;新增话题详情页。
68
- - **M13**:Agent 待办视图(`GET /agents/me/todos`)+ 实验列表筛选/分页/搜索(`q`/`creator`/`page` + `X-Total-Count` header)。
69
- - **M14**:Webhook 出站通知(HMAC 签名 + 投递记录 + Admin CRUD)+ 审计日志(关键写操作打点 + 对象/全局查询)。
70
-
71
- 详见 [PRD v0.3](docs/prd/archive/v0.3.md)。
72
-
73
- **v0.4 已完成(M15–M18)**:
74
-
75
- - **M15**:站内通知收件箱(`notifications` 表 + 统一事件扇出 + API/Web/CLI/SDK/MCP)。
76
- - **M16**:评论 `@提及` → 待办 `mentions` 分区 + 定向通知。
77
- - **M17**:实验页计划版本 diff 只读视图(`PlanDiffView`)。
78
- - **M18**:话题置顶(`topics.pinned` + 列表优先排序)。
79
-
80
- 详见 [PRD v0.4](docs/prd/archive/v0.4.md)。
81
-
82
- **v0.5 已完成(M19–M21)**:
83
-
84
- - **M19**:`GET /agents/me/todos` 新增 `pending_topic_replies`(话题主持 thread 级待回复)。
85
- - **M20**:topic-host Skill(`.cursor/skills/topic-host/SKILL.md`)。
86
- - **M21**:Webhook 主持接线文档([WEBHOOK-TOPIC-HOST.md](docs/WEBHOOK-TOPIC-HOST.md))。
58
+ ### PRD
87
59
 
88
- 详见 [PRD v0.5](docs/prd/archive/v0.5.md)。
60
+ - [现行草案:v0.9(waker Phase 2 通知降噪)](docs/prd/v0.9.md)
61
+ - [归档:v0.1 / v0.2 / v0.3 / v0.4 / v0.5 / v0.6](docs/prd/archive/)
62
+ - [占位:v0.7 / v0.8(未单独成稿)](docs/prd/archive/v0.7.md)
89
63
 
90
- **v0.6 已完成(M22–M24)**:
64
+ ## 状态
91
65
 
92
- - **M22**:话题/实验 `archived_at` 归档(默认列表排除、`include_archived`、活跃实验 per-topic 约束更新)。
93
- - **M23**:Web 独立列表页(`/projects/:id/topics`、`/experiments`)+ `client.ts` vitest。
94
- - **M24**:站内通知 **SSE**(`GET /agents/me/notifications/stream`)+ Web 实时 invalidate。
66
+ **稳定能力**:
95
67
 
96
- 详见 [PRD v0.6](docs/prd/archive/v0.6.md)。项目叙事参考 [docs/status-md-v6.md](docs/status-md-v6.md)。
68
+ - **实验生命周期**:计划修订、评审、执行日志、结果审批、状态机
69
+ - **话题协作**:独立话题 + 评论树 + @提及 + 多轮讨论 + Round Summary + 结论与行动项
70
+ - **待办与通知**:Agent 待办视图 + 站内通知 + SSE 实时推送 + Webhook 出站
71
+ - **Web UI**:React + Vite 看板 / 话题 / 实验详情,写操作闭环
72
+ - **多入口接入**:Python SDK + `map` CLI + MCP stdio/HTTP(`map-mcp`)
73
+ - **Agent Runtime**:simple-waker 默认路径(轮询 + remind + action_item 升级)
74
+ - **多 persona 协作**:`.map/` persona + Skill 指导 Agent 写回 MAP
97
75
 
98
- **v0.8 MVP 已完成**:
76
+ **当前主线**:v0.9 草案(waker Phase 2 通知降噪)。详见 [PRD v0.9](docs/prd/v0.9.md) 与 [status-md-v10.md](docs/status-md-v10.md)。
99
77
 
100
- - 话题结论(Decision)与行动项(Action Items):`POST /topics/{id}/resolve`、项目级 `decisions` / `action-items` 查询、`todos.action_items`。
101
- - CLI:`map topic resolve --id <topic-id> --file decision.md|decision.yaml`、`map project decisions`、`map action list --mine`。
102
- - Web:话题详情页展示/修订结论,项目页展示最近结论,待办页展示分配给当前 Agent 的行动项。
78
+ 历史里程碑详见 PRD 归档:[v0.1–v0.6](docs/prd/archive/) · [占位 v0.7 / v0.8](docs/prd/archive/v0.7.md)。
103
79
 
104
80
  **Agent 身份(本仓库)**:统一使用 **`.map/` persona + `map` CLI**(见 [AGENTS.md](AGENTS.md));Cursor MCP 接入计划停用。
105
81
 
@@ -108,7 +84,6 @@ map skill install # 将 6 个 Skill 文件安装到 .cursor/skills/
108
84
  MAP API 运行后,在本仓库根目录执行一次 bootstrap(生成 `.map/config.yaml` 与 persona token,详见 [AGENTS.md](AGENTS.md)):
109
85
 
110
86
  ```bash
111
- export MAP_ADMIN_TOKEN=<admin-token> # 或 ~/.map/admin.yaml
112
87
  map bootstrap \
113
88
  --key multi-agent-platform \
114
89
  --name "Multi Agents Platform" \
@@ -118,18 +93,21 @@ map --persona host persona whoami
118
93
  map --persona host todos
119
94
  ```
120
95
 
121
- 与 `docker compose up` 并列:先起服务,再 bootstrap,再用 `--persona` 协作。
96
+ 与 `docker compose up` 并列:先起服务,再 bootstrap,再用 `--persona` 协作。bootstrap 走自助 `POST /api/v1/bootstrap` 端点,**无需 admin token**(老版本 server 自动回退到 admin token 路径)。
122
97
 
123
98
  ## 快速开始
124
99
 
125
100
  ```bash
126
- # 从 PyPI 安装(用户)
101
+ # 从 PyPI 安装(仅 CLI,连接远程 server)
127
102
  pip install multi-agent-platform
128
103
 
104
+ # 或安装 CLI + Server(本地运行 server)
105
+ pip install multi-agent-platform-server
106
+
129
107
  # 或从源码开发安装(贡献者)
130
108
  pip install -e ".[dev]"
131
109
 
132
- # 运行数据库迁移
110
+ # 运行数据库迁移(需要 server 依赖)
133
111
  alembic upgrade head
134
112
 
135
113
  # 启动 API 服务
@@ -167,9 +145,19 @@ map topic archive --id <topic-id> # v0.7 P3:归档(薄包装 P
167
145
  map topic archive --id <topic-id> --undo # 反归档(--unarchive 同义)
168
146
  map experiment archive --id <exp-id> # 归档实验
169
147
  map topic comment --id <topic-id> --file comment.md
170
- map topic mark-seen --id <topic-id> # 清 contextual unread,不清 reply/ack/mention
148
+ map topic comment --id <topic-id> --body "..." --round-summary # 标记 Round Summary(触发 ack 流)
149
+ map topic advance-round --id <topic-id> # roundN → roundN+1
150
+ map topic advance-round --id <topic-id> --ready # 标记 ready(可开实验)
151
+ map topic advance-round --id <topic-id> --ack accept|reject|dismiss # participant 表态
152
+ map topic advance-round --id <topic-id> --waive-ack --waive-reason "参与者离线,结论已收敛"
153
+ map topic rollback-round --id <topic-id> # 回退一轮
154
+ map topic close --id <topic-id> --reason no_experiment_needed --note "讨论后决定不开实验"
155
+ map topic dismiss --id <topic-id> # 退出话题(与 UI ✕ 相同)
156
+ map topic mark-seen --id <topic-id> # 清 contextual unread,不清 reply/ack/mention
171
157
  map project decisions
172
158
  map action list --mine
159
+ map action mark-wake-sent --id <action-item-id> # waker 升级:标记 WAKE 已发
160
+ map action mark-stale --id <action-item-id> # waker 升级:标记 STALE
173
161
  map notification list --unread-only
174
162
  map notification read --id <notification-id>
175
163
  map notification read-all
@@ -177,6 +165,10 @@ map --persona participant mention list
177
165
  map --persona participant mention dismiss --id <mention-id>
178
166
  map --persona participant mention dismiss-all
179
167
 
168
+ # Host 编排模式:host 直接调用 participant/reviewer(同步响应,不依赖 waker 轮询)
169
+ map --persona host host invoke --persona participant --prompt "请参与话题 <topic-id> 的讨论"
170
+ map --persona host host invoke --persona reviewer --prompt-file ./review-task.md --json
171
+
180
172
  # Web UI(React + Vite)
181
173
  cd web && npm install && npm run dev # http://localhost:5173
182
174
  # 开发模式通过 Vite 代理访问 API;先在设置页填入 API Token
@@ -195,7 +187,6 @@ cd web && npm install && npm run dev # http://localhost:5173
195
187
  不依赖 Cursor MCP。每个代码仓库:
196
188
 
197
189
  ```bash
198
- export MAP_ADMIN_TOKEN=<admin-token> # 或 ~/.map/admin.yaml
199
190
  map bootstrap --key my-app --name "My App" --api-url http://localhost:8001
200
191
  map --persona host status # 查看 open_topics
201
192
  ```
@@ -232,14 +223,11 @@ simple-waker 在每次 remind 后会写一条聚合 `inbound_event` 审计行(
232
223
 
233
224
  **@mention 收敛**:在话题/实验内发过评论后,对应 `mentions` 会自动从 todos 消失;只读不回时可 `map mention dismiss`。
234
225
 
235
- ## Host Worker(旧 bridge,维护模式)
226
+ ## Host Worker(已退役)
236
227
 
237
- `map-host-bridge` / `map-host-worker` 为早期轮询 bridge(进程内 `PersonaAgentClient`),已由 **waker** 取代。`main-bac` 分支保留 bridge 实现供对照;日常开发请在 `agent-runtime` 分支使用 waker。
228
+ 早期轮询 bridge(`map-host-bridge` / `map-host-worker`、`start-host-bridge*.sh`、`start-runtime-waker-claude.sh`、`start-all-wakers-legacy.sh`)已由 **simple-waker** 全面取代并停用(`MAP_USE_LEGACY_WAKER` 不再生效)。`pyproject.toml` 仅保留 `map-participant-bridge` / `map-reviewer-bridge` 两个 legacy console entry(维护模式),`map-host-bridge` 不再提供。
238
229
 
239
- ```bash
240
- # 旧路径(不推荐新接入)
241
- map-host-bridge --persona host --interval 30
242
- ```
230
+ 详见 [docs/LEGACY-ENTRY-MATRIX.md](docs/LEGACY-ENTRY-MATRIX.md);CI 校验:`./scripts/check-deprecated.sh`。
243
231
 
244
232
  ## Docker(API + Web)
245
233
 
@@ -1,6 +1,6 @@
1
1
  """Persistent in-process Claude SDK client with session resume.
2
2
 
3
- Used by map-runtime-waker (event-driven wake) and legacy bridges. The process
3
+ Used by simple-waker (event-driven wake) and legacy bridges. The process
4
4
  holds ONE ``ClaudeSDKClient`` for its lifetime; ``claude_session_id`` is
5
5
  persisted in local state so the next restart resumes the same Claude session
6
6
  (via ``ClaudeAgentOptions(resume=...)``).
@@ -49,7 +49,7 @@ _MODEL_ENV_KEYS: tuple[str, ...] = ("ANTHROPIC_MODEL", "CLAUDE_MODEL")
49
49
 
50
50
  _EXPORT_RE = re.compile(r"^\s*export\s+([A-Za-z_][A-Za-z0-9_]*)=(.*)$")
51
51
 
52
- IntegrationMode = Literal["bridge", "waker", "manual"]
52
+ IntegrationMode = Literal["bridge", "waker", "manual", "orchestrator"]
53
53
 
54
54
 
55
55
  class WakeUpEvent(TypedDict, total=False):
@@ -410,7 +410,7 @@ class PersonaAgentClient:
410
410
  if self.integration == "waker":
411
411
  return (
412
412
  f"You are the **{self.persona}** persona of the MAP (Multi-Agent Platform) "
413
- "project. When woken by map-runtime-waker you receive a single wake event. "
413
+ "project. When woken by simple-waker you receive a single wake event. "
414
414
  f"Confirm identity with `map --persona {self.persona} persona whoami`, read "
415
415
  f"latest work with `map --persona {self.persona} todos`, then handle only the "
416
416
  "event in the wake prompt using the appropriate skill from `.cursor/skills/`. "
@@ -424,7 +424,18 @@ class PersonaAgentClient:
424
424
  f"Use `map --persona {self.persona}` CLI and skills under `.cursor/skills/` "
425
425
  "(topic-host, topic-participant, experiment-host, experiment-reviewer, "
426
426
  "map-project-collab). Follow the operator's instructions for the current task. "
427
- "Do not assume map-runtime-waker will send another wake for the same work item."
427
+ "Do not assume simple-waker will send another wake for the same work item."
428
+ )
429
+ if self.integration == "orchestrator":
430
+ return (
431
+ f"You are the **{self.persona}** persona of the MAP (Multi-Agent Platform) "
432
+ "project. You are being invoked directly by the host agent via "
433
+ f"`map host invoke`. Use `map --persona {self.persona}` CLI and skills "
434
+ "under `.cursor/skills/` (topic-host, topic-participant, experiment-host, "
435
+ "experiment-reviewer, map-project-collab) to handle the task in the prompt. "
436
+ "Gather context via the `map` CLI, perform the requested action, and report "
437
+ "a brief summary when done. Do not wait for a waker — this is a synchronous "
438
+ "invocation and the host is waiting for your response."
428
439
  )
429
440
  return (
430
441
  f"You are the **{self.persona}** persona of the MAP (Multi-Agent Platform) "
@@ -18,9 +18,7 @@ from map_sdk.evidence import (
18
18
  EVIDENCE_METADATA_KEYS,
19
19
  metadata_has_completion_evidence,
20
20
  )
21
-
22
- from cli.table_render import enum_value, format_datetime, render_table, short_uuid, truncate
23
- from server.domain.schemas import (
21
+ from map_types.schemas import (
24
22
  ExperimentComplete,
25
23
  ExperimentCreate,
26
24
  ExperimentLogCreate,
@@ -30,6 +28,8 @@ from server.domain.schemas import (
30
28
  ReviewCreate,
31
29
  )
32
30
 
31
+ from cli.table_render import enum_value, format_datetime, render_table, short_uuid, truncate
32
+
33
33
  experiment_app = typer.Typer(help="Experiment commands", rich_markup_mode=None)
34
34
  lock_app = typer.Typer(help="Experiment execution lock commands (per-project).")
35
35
  review_app = typer.Typer(help="Review commands")
@@ -128,8 +128,9 @@ def experiment_list(
128
128
  Defaults to a compact table view. Use ``--format yaml`` or
129
129
  ``--format json`` for full structured output (scripts / piping).
130
130
  """
131
+ from map_types.enums import ExperimentPhase
132
+
131
133
  from cli.main import _resolve_project, _run # lazy: avoid cycle
132
- from server.domain.models import ExperimentPhase
133
134
 
134
135
  def action(c: MAPClient):
135
136
  pid = _resolve_project(c, project, project_key)
@@ -160,9 +161,34 @@ def experiment_approve(experiment_id: uuid.UUID = typer.Option(..., "--id")) ->
160
161
 
161
162
 
162
163
  @experiment_app.command("start")
163
- def experiment_start(experiment_id: uuid.UUID = typer.Option(..., "--id")) -> None:
164
- from cli.main import _run # lazy: avoid cycle
165
- _run(lambda c: c.start_experiment(experiment_id), experiment_id=experiment_id)
164
+ def experiment_start(
165
+ experiment_id: uuid.UUID = typer.Option(..., "--id"),
166
+ executor: str | None = typer.Option(
167
+ None,
168
+ "--executor",
169
+ help=(
170
+ "Delegate execution to another agent (name or UUID). The designated "
171
+ "executor becomes the sole non-admin caller allowed to ``complete``. "
172
+ "Omit to self-execute (host runs the experiment)."
173
+ ),
174
+ ),
175
+ ) -> None:
176
+ """Start experiment execution (approved → running).
177
+
178
+ Migration 042 adds optional executor delegation: pass ``--executor``
179
+ with an agent name or UUID to designate who may call ``complete``.
180
+ The host retains all other lifecycle gates (cancel / withdraw / etc).
181
+ """
182
+ from cli.main import _resolve_executor_agent_id, _resolve_project, _run # lazy: avoid cycle
183
+
184
+ def action(c: MAPClient):
185
+ executor_agent_id: uuid.UUID | None = None
186
+ if executor is not None:
187
+ pid = _resolve_project(c, None, None)
188
+ executor_agent_id = _resolve_executor_agent_id(c, pid, executor)
189
+ return c.start_experiment(experiment_id, executor_agent_id=executor_agent_id)
190
+
191
+ _run(action, experiment_id=experiment_id)
166
192
 
167
193
 
168
194
  @experiment_app.command("pre-complete")
@@ -519,7 +545,7 @@ def experiment_archive(
519
545
  """
520
546
  from cli.main import _require_option_uuid, _run # lazy: avoid cycle
521
547
  experiment_id = _require_option_uuid(experiment_id)
522
- from server.domain.schemas import ExperimentUpdate
548
+ from map_types.schemas import ExperimentUpdate
523
549
 
524
550
  payload = ExperimentUpdate(archived=not (undo or unarchive))
525
551
  object_kind = "experiment"
@@ -735,9 +761,10 @@ def experiment_comment(
735
761
  body_file: Path | None = typer.Option(None, "--file", help="Read body from a file (avoids shell-quoting issues)."),
736
762
  parent: uuid.UUID | None = typer.Option(None, "--parent"),
737
763
  ) -> None:
764
+ from map_types.enums import CommentAnchorType
765
+ from map_types.schemas import CommentCreate
766
+
738
767
  from cli.main import _read_text_file, _run # lazy: avoid cycle
739
- from server.domain.models import CommentAnchorType
740
- from server.domain.schemas import CommentCreate
741
768
 
742
769
  if body is None and body_file is None:
743
770
  typer.echo("Error: either --body or --file is required", err=True)