massgen 0.1.1__tar.gz → 0.1.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.

Potentially problematic release.


This version of massgen might be problematic. Click here for more details.

Files changed (370) hide show
  1. {massgen-0.1.1 → massgen-0.1.2}/CHANGELOG.md +49 -3
  2. {massgen-0.1.1 → massgen-0.1.2}/CONTRIBUTING.md +4 -4
  3. {massgen-0.1.1 → massgen-0.1.2}/MANIFEST.in +1 -0
  4. {massgen-0.1.1 → massgen-0.1.2}/PKG-INFO +53 -53
  5. {massgen-0.1.1 → massgen-0.1.2}/README.md +52 -52
  6. massgen-0.1.2/assets/MassGen-v1.gif +0 -0
  7. massgen-0.1.2/assets/cos.png +0 -0
  8. massgen-0.1.2/assets/favicon.ico +0 -0
  9. massgen-0.1.2/assets/logo-dark.png +0 -0
  10. massgen-0.1.2/assets/logo.png +0 -0
  11. massgen-0.1.2/assets/massgen-demo-light.gif +0 -0
  12. massgen-0.1.2/assets/massgen-demo.gif +0 -0
  13. massgen-0.1.2/assets/release_related_figures/context_path.png +0 -0
  14. massgen-0.1.2/assets/release_related_figures/copy_file.png +0 -0
  15. massgen-0.1.2/assets/thumbnail.png +0 -0
  16. {massgen-0.1.1 → massgen-0.1.2}/massgen/__init__.py +1 -1
  17. {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_chat_completions_api_params_handler.py +7 -1
  18. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/base.py +52 -0
  19. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/base_with_custom_tool_and_mcp.py +4 -4
  20. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/capabilities.py +6 -6
  21. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/chat_completions.py +18 -11
  22. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/gemini.py +36 -0
  23. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/grok.py +39 -6
  24. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/response.py +18 -11
  25. {massgen-0.1.1 → massgen-0.1.2}/massgen/cli.py +28 -0
  26. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/README.md +33 -21
  27. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/three_agents_default.yaml +2 -2
  28. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml +7 -29
  29. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml +5 -6
  30. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml +4 -4
  31. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/five_agents_twitter_mcp_planning_mode.yaml +4 -4
  32. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/gpt5_mini_case_study_mcp_planning_mode.yaml +2 -2
  33. {massgen-0.1.1 → massgen-0.1.2}/massgen/orchestrator.py +333 -6
  34. massgen-0.1.2/massgen/tests/test_intelligent_planning_mode.py +643 -0
  35. {massgen-0.1.1 → massgen-0.1.2}/massgen/token_manager/token_manager.py +13 -4
  36. {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/PKG-INFO +53 -53
  37. {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/SOURCES.txt +11 -0
  38. {massgen-0.1.1 → massgen-0.1.2}/.env.example +0 -0
  39. {massgen-0.1.1 → massgen-0.1.2}/LICENSE +0 -0
  40. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/__init__.py +0 -0
  41. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/ag2_adapter.py +0 -0
  42. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/base.py +0 -0
  43. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/tests/__init__.py +0 -0
  44. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/tests/test_ag2_adapter.py +0 -0
  45. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/tests/test_agent_adapter.py +0 -0
  46. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/utils/__init__.py +0 -0
  47. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/utils/ag2_utils.py +0 -0
  48. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/utils/tests/__init__.py +0 -0
  49. {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/utils/tests/test_ag2_utils.py +0 -0
  50. {massgen-0.1.1 → massgen-0.1.2}/massgen/agent_config.py +0 -0
  51. {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/__init__.py +0 -0
  52. {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_api_params_handler_base.py +0 -0
  53. {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_claude_api_params_handler.py +0 -0
  54. {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_gemini_api_params_handler.py +0 -0
  55. {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_response_api_params_handler.py +0 -0
  56. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/__init__.py +0 -0
  57. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/azure_openai.py +0 -0
  58. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/claude.py +0 -0
  59. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/claude_code.py +0 -0
  60. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/cli_base.py +0 -0
  61. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/BACKEND_ARCHITECTURE.md +0 -0
  62. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/CLAUDE_API_RESEARCH.md +0 -0
  63. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/Function calling openai responses.md +0 -0
  64. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/GEMINI_API_DOCUMENTATION.md +0 -0
  65. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/Gemini MCP Integration Analysis.md +0 -0
  66. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/MCP_IMPLEMENTATION_CLAUDE_BACKEND.md +0 -0
  67. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/MCP_INTEGRATION_RESPONSE_BACKEND.md +0 -0
  68. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/OPENAI_GPT5_MODELS.md +0 -0
  69. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/OPENAI_RESPONSE_API_TOOL_CALLS.md +0 -0
  70. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/OPENAI_response_streaming.md +0 -0
  71. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/inference_backend.md +0 -0
  72. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/permissions_and_context_files.md +0 -0
  73. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/external.py +0 -0
  74. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/gemini_mcp_manager.py +0 -0
  75. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/gemini_trackers.py +0 -0
  76. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/gemini_utils.py +0 -0
  77. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/inference.py +0 -0
  78. {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/lmstudio.py +0 -0
  79. {massgen-0.1.1 → massgen-0.1.2}/massgen/chat_agent.py +0 -0
  80. {massgen-0.1.1 → massgen-0.1.2}/massgen/config_builder.py +0 -0
  81. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/BACKEND_CONFIGURATION.md +0 -0
  82. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_case_study.yaml +0 -0
  83. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_coder.yaml +0 -0
  84. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_coder_case_study.yaml +0 -0
  85. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_gemini.yaml +0 -0
  86. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_groupchat.yaml +0 -0
  87. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_groupchat_gpt.yaml +0 -0
  88. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_single_agent.yaml +0 -0
  89. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/fast_timeout_example.yaml +0 -0
  90. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gemini_4o_claude.yaml +0 -0
  91. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gemini_gpt5nano_claude.yaml +0 -0
  92. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/geminicode_4o_claude.yaml +0 -0
  93. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/geminicode_gpt5nano_claude.yaml +0 -0
  94. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/glm_gemini_claude.yaml +0 -0
  95. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gpt4o_audio_generation.yaml +0 -0
  96. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gpt4o_image_generation.yaml +0 -0
  97. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gpt5nano_glm_qwen.yaml +0 -0
  98. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gpt5nano_image_understanding.yaml +0 -0
  99. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/three_agents_opensource.yaml +0 -0
  100. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/three_agents_vllm.yaml +0 -0
  101. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/two_agents_gemini.yaml +0 -0
  102. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/two_agents_gpt5.yaml +0 -0
  103. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/two_agents_opensource_lmstudio.yaml +0 -0
  104. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/two_qwen_vllm_sglang.yaml +0 -0
  105. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_agent.yaml +0 -0
  106. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_flash2.5.yaml +0 -0
  107. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gemini2.5pro.yaml +0 -0
  108. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt4o_audio_generation.yaml +0 -0
  109. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt4o_image_generation.yaml +0 -0
  110. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt4o_video_generation.yaml +0 -0
  111. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt5nano.yaml +0 -0
  112. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt5nano_file_search.yaml +0 -0
  113. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt5nano_image_understanding.yaml +0 -0
  114. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gptoss120b.yaml +0 -0
  115. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_openrouter_audio_understanding.yaml +0 -0
  116. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_qwen_video_understanding.yaml +0 -0
  117. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/code_execution/command_filtering_blacklist.yaml +0 -0
  118. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/code_execution/command_filtering_whitelist.yaml +0 -0
  119. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/code_execution/docker_verification.yaml +0 -0
  120. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/skip_coordination_test.yaml +0 -0
  121. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/test_sdk_migration.yaml +0 -0
  122. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/docs/DISCORD_MCP_SETUP.md +0 -0
  123. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/docs/TWITTER_MCP_ENESCINAR_SETUP.md +0 -0
  124. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/azure/azure_openai_multi.yaml +0 -0
  125. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/azure/azure_openai_single.yaml +0 -0
  126. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/claude/claude.yaml +0 -0
  127. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/gemini/gemini_gpt5nano.yaml +0 -0
  128. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/local/lmstudio.yaml +0 -0
  129. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/openai/gpt5.yaml +0 -0
  130. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/openai/gpt5_nano.yaml +0 -0
  131. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/others/grok_single_agent.yaml +0 -0
  132. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/others/zai_coding_team.yaml +0 -0
  133. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/others/zai_glm45.yaml +0 -0
  134. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/creative/creative_team.yaml +0 -0
  135. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/creative/travel_planning.yaml +0 -0
  136. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/research/news_analysis.yaml +0 -0
  137. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/research/research_team.yaml +0 -0
  138. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/research/technical_analysis.yaml +0 -0
  139. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/basic_command_execution.yaml +0 -0
  140. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/code_execution_use_case_simple.yaml +0 -0
  141. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/docker_claude_code.yaml +0 -0
  142. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/docker_multi_agent.yaml +0 -0
  143. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/docker_simple.yaml +0 -0
  144. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/docker_with_resource_limits.yaml +0 -0
  145. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/multi_agent_playwright_automation.yaml +0 -0
  146. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_custom_tool_example.yaml +0 -0
  147. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_custom_tool_example_no_path.yaml +0 -0
  148. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_custom_tool_with_mcp_example.yaml +0 -0
  149. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_custom_tool_with_wrong_mcp_example.yaml +0 -0
  150. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_wrong_custom_tool_with_mcp_example.yaml +0 -0
  151. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_custom_tool_example.yaml +0 -0
  152. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_custom_tool_example_no_path.yaml +0 -0
  153. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_custom_tool_with_mcp_example.yaml +0 -0
  154. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_custom_tool_with_wrong_mcp_example.yaml +0 -0
  155. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_wrong_custom_tool_with_mcp_example.yaml +0 -0
  156. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_custom_tool_example.yaml +0 -0
  157. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_custom_tool_example_no_path.yaml +0 -0
  158. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_custom_tool_with_mcp_example.yaml +0 -0
  159. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_custom_tool_with_wrong_mcp_example.yaml +0 -0
  160. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_wrong_custom_tool_with_mcp_example.yaml +0 -0
  161. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/github_issue_market_analysis.yaml +0 -0
  162. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_example.yaml +0 -0
  163. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_example_no_path.yaml +0 -0
  164. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_with_mcp_example.yaml +0 -0
  165. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_with_wrong_mcp_example.yaml +0 -0
  166. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_wrong_custom_tool_with_mcp_example.yaml +0 -0
  167. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_example.yaml +0 -0
  168. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_example_no_path.yaml +0 -0
  169. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_with_mcp_example.yaml +0 -0
  170. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_with_wrong_mcp_example.yaml +0 -0
  171. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_wrong_custom_tool_with_mcp_example.yaml +0 -0
  172. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_example.yaml +0 -0
  173. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_example_no_path.yaml +0 -0
  174. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_with_mcp_example.yaml +0 -0
  175. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_with_wrong_mcp_example.yaml +0 -0
  176. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_wrong_custom_tool_with_mcp_example.yaml +0 -0
  177. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_example.yaml +0 -0
  178. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_example_no_path.yaml +0 -0
  179. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_with_mcp_example.yaml +0 -0
  180. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_with_wrong_mcp_example.yaml +0 -0
  181. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_wrong_custom_tool_with_mcp_example.yaml +0 -0
  182. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_example.yaml +0 -0
  183. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_example_no_path.yaml +0 -0
  184. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_mcp_example.yaml +0 -0
  185. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_wrong_mcp_example.yaml +0 -0
  186. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_wrong_custom_tool_with_mcp_example.yaml +0 -0
  187. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/cc_gpt5_gemini_filesystem.yaml +0 -0
  188. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_context_sharing.yaml +0 -0
  189. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_flash2.5.yaml +0 -0
  190. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_flash2.5_gptoss.yaml +0 -0
  191. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_gpt5nano.yaml +0 -0
  192. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_single.yaml +0 -0
  193. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/fs_permissions_test.yaml +0 -0
  194. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gemini_gemini_workspace_cleanup.yaml +0 -0
  195. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gemini_gpt5_filesystem_casestudy.yaml +0 -0
  196. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gemini_gpt5nano_file_context_path.yaml +0 -0
  197. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gemini_gpt5nano_protected_paths.yaml +0 -0
  198. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gpt5mini_cc_fs_context_path.yaml +0 -0
  199. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/grok4_gpt5_gemini_filesystem.yaml +0 -0
  200. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/multiturn/grok4_gpt5_claude_code_filesystem_multiturn.yaml +0 -0
  201. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/multiturn/grok4_gpt5_gemini_filesystem_multiturn.yaml +0 -0
  202. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/multiturn/two_claude_code_filesystem_multiturn.yaml +0 -0
  203. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/multiturn/two_gemini_flash_filesystem_multiturn.yaml +0 -0
  204. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_code_discord_mcp_example.yaml +0 -0
  205. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_code_simple_mcp.yaml +0 -0
  206. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_code_twitter_mcp_example.yaml +0 -0
  207. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_mcp_example.yaml +0 -0
  208. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_mcp_test.yaml +0 -0
  209. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/five_agents_travel_mcp_test.yaml +0 -0
  210. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/five_agents_weather_mcp_test.yaml +0 -0
  211. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_example.yaml +0 -0
  212. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test.yaml +0 -0
  213. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_sharing.yaml +0 -0
  214. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_single_agent.yaml +0 -0
  215. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_with_claude_code.yaml +0 -0
  216. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_test.yaml +0 -0
  217. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_notion_mcp.yaml +0 -0
  218. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt5_nano_mcp_example.yaml +0 -0
  219. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt5_nano_mcp_test.yaml +0 -0
  220. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt5mini_claude_code_discord_mcp_example.yaml +0 -0
  221. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt_oss_mcp_example.yaml +0 -0
  222. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt_oss_mcp_test.yaml +0 -0
  223. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/grok3_mini_mcp_example.yaml +0 -0
  224. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/grok3_mini_mcp_test.yaml +0 -0
  225. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/multimcp_gemini.yaml +0 -0
  226. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/qwen_api_mcp_example.yaml +0 -0
  227. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/qwen_api_mcp_test.yaml +0 -0
  228. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/qwen_local_mcp_example.yaml +0 -0
  229. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/qwen_local_mcp_test.yaml +0 -0
  230. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/claude_streamable_http_test.yaml +0 -0
  231. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/gemini_streamable_http_test.yaml +0 -0
  232. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/gpt5_mini_streamable_http_test.yaml +0 -0
  233. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/gpt_oss_streamable_http_test.yaml +0 -0
  234. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/grok3_mini_streamable_http_test.yaml +0 -0
  235. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/qwen_api_streamable_http_test.yaml +0 -0
  236. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/qwen_local_streamable_http_test.yaml +0 -0
  237. {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/voting/gemini_gpt_voting_sensitivity.yaml +0 -0
  238. {massgen-0.1.1 → massgen-0.1.2}/massgen/coordination_tracker.py +0 -0
  239. {massgen-0.1.1 → massgen-0.1.2}/massgen/docker/README.md +0 -0
  240. {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/__init__.py +0 -0
  241. {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_base.py +0 -0
  242. {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_code_execution_server.py +0 -0
  243. {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_docker_manager.py +0 -0
  244. {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_file_operation_tracker.py +0 -0
  245. {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_filesystem_manager.py +0 -0
  246. {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_path_permission_manager.py +0 -0
  247. {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_workspace_tools_server.py +0 -0
  248. {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/__init__.py +0 -0
  249. {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_chat_completions_formatter.py +0 -0
  250. {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_claude_formatter.py +0 -0
  251. {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_formatter_base.py +0 -0
  252. {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_gemini_formatter.py +0 -0
  253. {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_response_formatter.py +0 -0
  254. {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/__init__.py +0 -0
  255. {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/coordination_ui.py +0 -0
  256. {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/__init__.py +0 -0
  257. {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/base_display.py +0 -0
  258. {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/create_coordination_table.py +0 -0
  259. {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/rich_terminal_display.py +0 -0
  260. {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/simple_display.py +0 -0
  261. {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/terminal_display.py +0 -0
  262. {massgen-0.1.1 → massgen-0.1.2}/massgen/logger_config.py +0 -0
  263. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/README.md +0 -0
  264. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/__init__.py +0 -0
  265. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/backend_utils.py +0 -0
  266. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/circuit_breaker.py +0 -0
  267. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/client.py +0 -0
  268. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/config_validator.py +0 -0
  269. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/circuit_breaker.md +0 -0
  270. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/client.md +0 -0
  271. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/config_validator.md +0 -0
  272. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/exceptions.md +0 -0
  273. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/security.md +0 -0
  274. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/exceptions.py +0 -0
  275. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/hooks.py +0 -0
  276. {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/security.py +0 -0
  277. {massgen-0.1.1 → massgen-0.1.2}/massgen/message_templates.py +0 -0
  278. {massgen-0.1.1 → massgen-0.1.2}/massgen/stream_chunk/__init__.py +0 -0
  279. {massgen-0.1.1 → massgen-0.1.2}/massgen/stream_chunk/base.py +0 -0
  280. {massgen-0.1.1 → massgen-0.1.2}/massgen/stream_chunk/multimodal.py +0 -0
  281. {massgen-0.1.1 → massgen-0.1.2}/massgen/stream_chunk/text.py +0 -0
  282. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/__init__.py +0 -0
  283. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/custom_tools_example.py +0 -0
  284. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/mcp_test_server.py +0 -0
  285. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/multi_turn_conversation_design.md +0 -0
  286. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/multiturn_llm_input_analysis.md +0 -0
  287. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_azure_openai_backend.py +0 -0
  288. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_backend_capabilities.py +0 -0
  289. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_backend_event_loop_all.py +0 -0
  290. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_case_studies.md +0 -0
  291. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_chat_completions_refactor.py +0 -0
  292. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_claude_backend.py +0 -0
  293. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_claude_code.py +0 -0
  294. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_claude_code_context_sharing.py +0 -0
  295. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_claude_code_orchestrator.py +0 -0
  296. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_cli_backends.py +0 -0
  297. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_code_execution.py +0 -0
  298. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_config_builder.py +0 -0
  299. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_custom_tools.py +0 -0
  300. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_external_agent_backend.py +0 -0
  301. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_final_presentation_fallback.py +0 -0
  302. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_gemini_planning_mode.py +0 -0
  303. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_grok_backend.py +0 -0
  304. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_http_mcp_server.py +0 -0
  305. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_integration_simple.py +0 -0
  306. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_mcp_blocking.py +0 -0
  307. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_message_context_building.py +0 -0
  308. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_orchestrator_final_presentation.py +0 -0
  309. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_path_permission_manager.py +0 -0
  310. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_rich_terminal_display.py +0 -0
  311. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_timeout.py +0 -0
  312. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_tools.py +0 -0
  313. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_v3_3agents.py +0 -0
  314. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_v3_simple.py +0 -0
  315. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_v3_three_agents.py +0 -0
  316. {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_v3_two_agents.py +0 -0
  317. {massgen-0.1.1 → massgen-0.1.2}/massgen/token_manager/__init__.py +0 -0
  318. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/README.md +0 -0
  319. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/__init__.py +0 -0
  320. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_async_helpers.py +0 -0
  321. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_basic/__init__.py +0 -0
  322. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_basic/_two_num_tool.py +0 -0
  323. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_code_executors/__init__.py +0 -0
  324. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_code_executors/_python_executor.py +0 -0
  325. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_code_executors/_shell_executor.py +0 -0
  326. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_exceptions.py +0 -0
  327. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_file_handlers/__init__.py +0 -0
  328. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_file_handlers/_file_operations.py +0 -0
  329. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_manager.py +0 -0
  330. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_registered_tool.py +0 -0
  331. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_result.py +0 -0
  332. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_self_evolution/_github_issue_analyzer.py +0 -0
  333. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/builtin_tools.md +0 -0
  334. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/exceptions.md +0 -0
  335. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/execution_results.md +0 -0
  336. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/manager.md +0 -0
  337. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/workflow_toolkits.md +0 -0
  338. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/workflow_toolkits/__init__.py +0 -0
  339. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/workflow_toolkits/base.py +0 -0
  340. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/workflow_toolkits/new_answer.py +0 -0
  341. {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/workflow_toolkits/vote.py +0 -0
  342. {massgen-0.1.1 → massgen-0.1.2}/massgen/utils.py +0 -0
  343. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/README.md +0 -0
  344. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/__init__.py +0 -0
  345. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/agent.py +0 -0
  346. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/agents.py +0 -0
  347. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/backends/gemini.py +0 -0
  348. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/backends/grok.py +0 -0
  349. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/backends/oai.py +0 -0
  350. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/cli.py +0 -0
  351. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/config.py +0 -0
  352. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/examples/fast-4o-mini-config.yaml +0 -0
  353. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/examples/fast_config.yaml +0 -0
  354. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/examples/production.yaml +0 -0
  355. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/examples/single_agent.yaml +0 -0
  356. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/logging.py +0 -0
  357. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/main.py +0 -0
  358. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/orchestrator.py +0 -0
  359. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/streaming_display.py +0 -0
  360. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/tools.py +0 -0
  361. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/types.py +0 -0
  362. {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/utils.py +0 -0
  363. {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/dependency_links.txt +0 -0
  364. {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/entry_points.txt +0 -0
  365. {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/not-zip-safe +0 -0
  366. {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/requires.txt +0 -0
  367. {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/top_level.txt +0 -0
  368. {massgen-0.1.1 → massgen-0.1.2}/pyproject.toml +0 -0
  369. {massgen-0.1.1 → massgen-0.1.2}/requirements.txt +0 -0
  370. {massgen-0.1.1 → massgen-0.1.2}/setup.cfg +0 -0
@@ -7,17 +7,63 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## Recent Releases
9
9
 
10
+ **v0.1.2 (October 2025)** - Intelligent Planning Mode & Model Updates
11
+ Automatic irreversibility analysis for MCP tools, selective tool blocking, Claude 4.5 Haiku support, and Grok web search improvements.
12
+
10
13
  **v0.1.1 (October 2025)** - Custom Tools, Voting Controls & Documentation
11
14
  Custom Python function tools, voting sensitivity controls, interactive config builder, and comprehensive Sphinx documentation.
12
15
 
13
16
  **v0.1.0 (October 2025)** - PyPI Package & Documentation
14
17
  Official PyPI release with enhanced documentation and installation via `pip install massgen`.
15
18
 
16
- **v0.0.32 (October 2025)** - Docker Execution Mode
17
- Isolated command execution in Docker containers with resource limits and multi-agent support.
18
-
19
19
  ---
20
20
 
21
+ ## [0.1.2] - 2025-10-22
22
+
23
+ ### Added
24
+ - **Claude 4.5 Haiku Support**: Added latest Claude Haiku model
25
+ - New model: `claude-haiku-4-5-20251001`
26
+ - Updated model registry in `backend/capabilities.py`
27
+
28
+ ### Changed
29
+ - **Planning Mode Enhancement**: Intelligent automatic MCP tool blocking based on operation safety
30
+ - New `_analyze_question_irreversibility()` method in orchestrator analyzes questions to determine if MCP operations are reversible
31
+ - New `set_planning_mode_blocked_tools()`, `get_planning_mode_blocked_tools()`, and `is_mcp_tool_blocked()` methods in backend for selective tool control
32
+ - Dynamically enables/disables planning mode - read-only operations allowed during coordination, write operations blocked
33
+ - Planning mode supports different workspaces without conflicts
34
+ - Zero configuration required - works transparently
35
+
36
+
37
+ - **Claude Model Priority**: Reorganized model list in capabilities registry
38
+ - Changed default model from `claude-sonnet-4-20250514` to `claude-sonnet-4-5-20250929`
39
+ - Moved `claude-opus-4-1-20250805` higher in priority order
40
+ - Updated in both Claude and Claude Code backends
41
+
42
+ ### Fixed
43
+ - **Grok Web Search**: Resolved web search functionality in Grok backend
44
+ - Fixed `extra_body` parameter handling for Grok's Live Search API
45
+ - New `_add_grok_search_params()` method for proper search parameter injection
46
+ - Enhanced `_stream_with_custom_and_mcp_tools()` to support Grok-specific parameters
47
+ - Improved error handling for conflicting search configurations
48
+ - Better integration with Chat Completions API params handler
49
+
50
+ ### Documentations, Configurations and Resources
51
+
52
+ - **Intelligent Planning Mode Case Study**: Complete feature documentation
53
+ - `docs/case_studies/INTELLIGENT_PLANNING_MODE.md`: Comprehensive guide for automatic planning mode
54
+ - Demonstrates automatic irreversibility detection
55
+ - Shows read/write operation classification
56
+ - Includes examples for Discord, filesystem, and Twitter operations
57
+
58
+ - **Configuration Updates**: Enhanced YAML examples
59
+ - Updated 5 planning mode configurations in `configs/tools/planning/` with selective blocking examples
60
+ - Updated `three_agents_default.yaml` with Grok-4-fast model
61
+ - Test coverage in `test_intelligent_planning_mode.py`
62
+
63
+ ### Technical Details
64
+ - **Major Focus**: Intelligent planning mode with selective tool blocking, model support enhancements
65
+ - **Contributors**: @franklinnwren @ncrispino @qidanrui @sonichi @Henry-811 and the MassGen team
66
+
21
67
  ## [0.1.1] - 2025-10-20
22
68
 
23
69
  ### Added
@@ -267,7 +267,7 @@ Create a `.env` file in the `massgen` directory as described in [README](README.
267
267
 
268
268
  ## 🔧 Development Workflow
269
269
 
270
- > **Important**: Our next version is v0.1.2. If you want to contribute, please contribute to the `dev/v0.1.2` branch.
270
+ > **Important**: Our next version is v0.1.3. If you want to contribute, please contribute to the `dev/v0.1.3` branch.
271
271
 
272
272
  ### 1. Create Feature Branch
273
273
 
@@ -275,8 +275,8 @@ Create a `.env` file in the `massgen` directory as described in [README](README.
275
275
  # Fetch latest changes from upstream
276
276
  git fetch upstream
277
277
 
278
- # Create feature branch from dev/v0.1.2
279
- git checkout -b feature/your-feature-name upstream/dev/v0.1.2
278
+ # Create feature branch from dev/v0.1.3
279
+ git checkout -b feature/your-feature-name upstream/dev/v0.1.3
280
280
  ```
281
281
 
282
282
  ### 2. Make Your Changes
@@ -479,7 +479,7 @@ Have a significant feature idea not covered by existing tracks?
479
479
  - [ ] Tests pass locally
480
480
  - [ ] Documentation is updated if needed
481
481
  - [ ] Commit messages follow convention
482
- - [ ] PR targets `dev/v0.1.2` branch
482
+ - [ ] PR targets `dev/v0.1.3` branch
483
483
 
484
484
  ### PR Description Should Include
485
485
 
@@ -5,6 +5,7 @@ include CHANGELOG.md
5
5
  include requirements.txt
6
6
  recursive-include massgen/configs *.yaml *.yml
7
7
  include .env.example
8
+ recursive-include assets *.png *.gif *.jpg *.jpeg *.ico
8
9
  recursive-exclude * __pycache__
9
10
  recursive-exclude * *.py[co]
10
11
  exclude .gitignore
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: massgen
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Multi-Agent Scaling System - A powerful framework for collaborative AI
5
5
  Author-email: MassGen Team <contact@massgen.dev>
6
6
  License: Apache-2.0
@@ -83,7 +83,7 @@ Provides-Extra: all
83
83
  Dynamic: license-file
84
84
 
85
85
  <p align="center">
86
- <img src="https://raw.githubusercontent.com/Leezekun/MassGen/main/assets/logo.png" alt="MassGen Logo" width="360" />
86
+ <img src="assets/logo.png" alt="MassGen Logo" width="360" />
87
87
  </p>
88
88
 
89
89
  <p align="center">
@@ -109,7 +109,7 @@ Dynamic: license-file
109
109
 
110
110
  <p align="center">
111
111
  <a href="https://www.youtube.com/watch?v=Dp2oldJJImw">
112
- <img src="https://raw.githubusercontent.com/Leezekun/MassGen/main/assets/massgen-demo.gif" alt="MassGen case study -- Berkeley Agentic AI Summit Question" width="800">
112
+ <img src="assets/massgen-demo.gif" alt="MassGen case study -- Berkeley Agentic AI Summit Question" width="800">
113
113
  </a>
114
114
  </p>
115
115
 
@@ -138,7 +138,7 @@ This project started with the "threads of thought" and "iterative refinement" id
138
138
  <details open>
139
139
  <summary><h3>🆕 Latest Features</h3></summary>
140
140
 
141
- - [v0.1.1 Features](#-latest-features-v011)
141
+ - [v0.1.2 Features](#-latest-features-v012)
142
142
  </details>
143
143
 
144
144
  <details open>
@@ -183,15 +183,15 @@ This project started with the "threads of thought" and "iterative refinement" id
183
183
  <summary><h3>🗺️ Roadmap</h3></summary>
184
184
 
185
185
  - Recent Achievements
186
- - [v0.1.1](#recent-achievements-v011)
187
- - [v0.0.3 - v0.1.0](#previous-achievements-v003---v010)
186
+ - [v0.1.2](#recent-achievements-v012)
187
+ - [v0.0.3 - v0.1.1](#previous-achievements-v003---v011)
188
188
  - [Key Future Enhancements](#key-future-enhancements)
189
189
  - Bug Fixes & Backend Improvements
190
190
  - Advanced Agent Collaboration
191
191
  - Expanded Model, Tool & Agent Integrations
192
192
  - Improved Performance & Scalability
193
193
  - Enhanced Developer Experience
194
- - [v0.1.2 Roadmap](#v012-roadmap)
194
+ - [v0.1.3 Roadmap](#v013-roadmap)
195
195
  </details>
196
196
 
197
197
  <details open>
@@ -216,36 +216,36 @@ This project started with the "threads of thought" and "iterative refinement" id
216
216
 
217
217
  ---
218
218
 
219
- ## 🆕 Latest Features (v0.1.1)
219
+ ## 🆕 Latest Features (v0.1.2)
220
220
 
221
- **🎉 Released: October 20, 2025**
221
+ **🎉 Released: October 22, 2025**
222
222
 
223
- **What's New in v0.1.1:**
224
- - **🔧 Custom Tools System** - Register your own Python functions as tools
225
- - **⚖️ Voting Sensitivity Controls** - Three-tier quality control for multi-agent consensus
226
- - **🎯 Configuration Builder** - Interactive wizard to create custom configs
227
- - **📊 Backend Capabilities Registry** - Centralized feature support tracking
228
- - **🔬 Self-Evolution Capability** - Agents autonomously analyze GitHub issues and market trends for feature prioritization
223
+ **What's New in v0.1.2:**
224
+ - **🧠 Intelligent Planning Mode** - Automatic question analysis for safe MCP tool blocking
225
+ - **🎭 Claude 4.5 Haiku Support** - Access to latest Claude Haiku model
226
+ - **🔍 Grok Web Search Fix** - Improved web search functionality in Grok backend
229
227
 
230
- [![MassGen v0.1.1 Custom Tools & Voting Demo](https://img.youtube.com/vi/eXK_oF177zY/0.jpg)](https://youtu.be/eXK_oF177zY)
228
+ **Key Improvements:**
229
+ - Automatically determines if questions require irreversible operations
230
+ - Read-only MCP operations allowed during coordination for better decisions
231
+ - Write operations automatically blocked for safety
232
+ - Zero configuration required - works transparently
233
+ - Enhanced model support with latest Claude 4.5 Haiku
231
234
 
232
- *Watch the v0.1.1 demo showcasing custom Python tool registration and three-tier voting sensitivity controls for multi-agent quality assurance*
233
-
234
- **Get Started with v0.1.1:**
235
+ **Get Started with v0.1.2:**
235
236
  ```bash
236
237
  # Install or upgrade from PyPI
237
238
  pip install --upgrade massgen
238
239
 
239
- # Create a configuration with the interactive builder
240
- massgen --setup
241
-
242
- # Try custom tools with agents
243
- massgen --config @examples/tools/custom_tools/claude_custom_tool_example \
244
- "What's the sum of 123 and 456?"
240
+ # Try intelligent planning mode with MCP tools
241
+ # (Please read the YAML file for required API keys: DISCORD_TOKEN, OPENAI_API_KEY, etc.)
242
+ massgen --config @examples/tools/planning/five_agents_discord_mcp_planning_mode \
243
+ "Check recent messages in our development channel, summarize the discussion, and post a helpful response about the current topic."
245
244
 
246
- # Use voting sensitivity controls for quality assurance
247
- massgen --config @examples/voting/gemini_gpt_voting_sensitivity \
248
- "What are the pros and cons of renewable energy?"
245
+ # Use latest Claude 4.5 Haiku model
246
+ # (Requires ANTHROPIC_API_KEY in .env)
247
+ massgen --model claude-haiku-4-5-20251001 \
248
+ "Summarize the latest AI developments"
249
249
  ```
250
250
 
251
251
  → [See full release history and examples](massgen/configs/README.md#release-history--examples)
@@ -1082,31 +1082,33 @@ MassGen is currently in its foundational stage, with a focus on parallel, asynch
1082
1082
 
1083
1083
  ⚠️ **Early Stage Notice:** As MassGen is in active development, please expect upcoming breaking architecture changes as we continue to refine and improve the system.
1084
1084
 
1085
- ### Recent Achievements (v0.1.1)
1085
+ ### Recent Achievements (v0.1.2)
1086
+
1087
+ **🎉 Released: October 22, 2025**
1088
+
1089
+ #### Intelligent Planning Mode
1090
+ - **Automatic Question Analysis**: New `_analyze_question_irreversibility()` method in orchestrator determines if MCP operations are reversible
1091
+ - **Selective Tool Blocking**: Granular control with `set_planning_mode_blocked_tools()`, `get_planning_mode_blocked_tools()`, and `is_mcp_tool_blocked()` methods
1092
+ - **Dynamic Behavior**: Read-only MCP operations allowed during coordination, write operations blocked for safety
1093
+ - **Zero Configuration**: Works transparently without setup
1094
+ - **Multi-Workspace Support**: Planning mode works across different workspaces without conflicts
1095
+ - **Test Coverage**: Comprehensive tests in `massgen/tests/test_intelligent_planning_mode.py`
1096
+ - **Documentation**: Complete guide in `docs/case_studies/INTELLIGENT_PLANNING_MODE.md`
1086
1097
 
1087
- **🎉 Released: October 20, 2025**
1098
+ #### Model Support & Improvements
1099
+ - **Claude 4.5 Haiku**: Added latest Claude Haiku model `claude-haiku-4-5-20251001`
1100
+ - **Model Priority Updates**: Reorganized Claude model list with updated defaults (`claude-sonnet-4-5-20250929`)
1101
+ - **Grok Web Search Fix**: Resolved `extra_body` parameter handling for Grok's Live Search API with new `_add_grok_search_params()` method
1088
1102
 
1089
- #### Custom Tools System
1090
- - **User-Defined Functions**: Register Python functions as tools using `ToolManager` class in `massgen/tool/_manager.py`
1091
- - **Cross-Backend Support**: Works alongside MCP servers across all backends (Claude, Gemini, OpenAI, Chat Completions, Claude Code)
1092
- - **Tool Categories**: Builtin, MCP, and custom tools with automatic discovery and conflict resolution
1093
- - **40+ Examples**: Ready-to-use configurations in `massgen/configs/tools/custom_tools/`
1103
+ #### Configuration Updates
1104
+ - **Planning Mode Configs**: Updated 5 configurations in `massgen/configs/tools/planning/` with selective blocking examples
1105
+ - **Default Configuration**: Updated `three_agents_default.yaml` with Grok-4-fast model
1094
1106
 
1095
- #### Voting Sensitivity & Answer Quality Controls
1096
- - **Three-Tier System**: "lenient", "balanced", "strict" voting modes
1097
- - **Answer Novelty Detection**: Prevents duplicate submissions with configurable similarity thresholds
1098
- - **Quality Assurance**: Configurable `max_new_answers_per_agent` and token-based overlap detection
1099
- - **Configuration**: `massgen/configs/voting/gemini_gpt_voting_sensitivity.yaml`
1107
+ ### Previous Achievements (v0.0.3 - v0.1.1)
1100
1108
 
1101
- #### Backend & Documentation Enhancements
1102
- - **Gemini Refactoring**: Extracted MCP management (`gemini_mcp_manager.py`), tracking (`gemini_trackers.py`), and utilities
1103
- - **Capabilities Registry**: New `massgen/backend/capabilities.py` documenting feature support across backends
1104
- - **Documentation Updates**: Enhanced custom tools guide, reorganized case studies, updated configuration schema
1105
- - **Case Studies**:
1106
- - `docs/case_studies/github-issue-market-analysis.md` - Custom tools with GitHub issue market analysis (v0.1.1)
1107
- - `docs/case_studies/universal-code-execution-mcp.md` - MCP code execution across backends (v0.0.31)
1109
+ **Custom Tools System (v0.1.1)**: User-defined Python function registration using `ToolManager` class in `massgen/tool/_manager.py`, cross-backend support alongside MCP servers, builtin/MCP/custom tool categories with automatic discovery, 40+ examples in `massgen/configs/tools/custom_tools/`, voting sensitivity controls with three-tier quality system (lenient/balanced/strict), answer novelty detection preventing duplicates
1108
1110
 
1109
- ### Previous Achievements (v0.0.3 - v0.1.0)
1111
+ **Backend Enhancements (v0.1.1)**: Gemini architecture refactoring with extracted MCP management (`gemini_mcp_manager.py`), tracking (`gemini_trackers.py`), and utilities, new capabilities registry in `massgen/backend/capabilities.py` documenting feature support across backends
1110
1112
 
1111
1113
  ✅ **PyPI Package Release (v0.1.0)**: Official distribution via `pip install massgen` with simplified installation, global `massgen` command accessible from any directory, comprehensive Sphinx documentation at [docs.massgen.ai](https://docs.massgen.ai/), interactive setup wizard with use case presets and API key management, enhanced CLI with `@examples/` prefix for built-in configurations
1112
1114
 
@@ -1206,21 +1208,19 @@ MassGen is currently in its foundational stage, with a focus on parallel, asynch
1206
1208
 
1207
1209
  We welcome community contributions to achieve these goals.
1208
1210
 
1209
- ### v0.1.2 Roadmap
1211
+ ### v0.1.3 Roadmap
1210
1212
 
1211
- Version 0.1.2 focuses on enterprise collaboration and intelligent agent workflows:
1213
+ Version 0.1.3 focuses on general interoperability and enterprise collaboration:
1212
1214
 
1213
1215
  #### Required Features
1214
1216
  - **General Interoperability**: Enable MassGen to orchestrate agents from multiple external frameworks with unified interface
1215
1217
  - **Final Agent Submit/Restart Tools**: Enable final agent to decide whether to submit or restart orchestration
1216
- - **Memory Module - Phase 1**: Long-term memory implementation using mem0 for reasoning and document understanding
1217
1218
 
1218
1219
  Key technical approach:
1219
1220
  - **Framework Integration**: Multi-agent coordination supporting external agent frameworks with specialized agent roles (researcher, analyst, critic, synthesizer)
1220
1221
  - **Submit/Restart**: Multi-step task verification with access to previous agents' responses and workspaces
1221
- - **Memory Module**: Session-based memory management with persistent context across conversations
1222
1222
 
1223
- For detailed milestones and technical specifications, see the [full v0.1.2 roadmap](ROADMAP.md).
1223
+ For detailed milestones and technical specifications, see the [full v0.1.3 roadmap](ROADMAP.md).
1224
1224
 
1225
1225
  ---
1226
1226
 
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="https://raw.githubusercontent.com/Leezekun/MassGen/main/assets/logo.png" alt="MassGen Logo" width="360" />
2
+ <img src="assets/logo.png" alt="MassGen Logo" width="360" />
3
3
  </p>
4
4
 
5
5
  <p align="center">
@@ -25,7 +25,7 @@
25
25
 
26
26
  <p align="center">
27
27
  <a href="https://www.youtube.com/watch?v=Dp2oldJJImw">
28
- <img src="https://raw.githubusercontent.com/Leezekun/MassGen/main/assets/massgen-demo.gif" alt="MassGen case study -- Berkeley Agentic AI Summit Question" width="800">
28
+ <img src="assets/massgen-demo.gif" alt="MassGen case study -- Berkeley Agentic AI Summit Question" width="800">
29
29
  </a>
30
30
  </p>
31
31
 
@@ -54,7 +54,7 @@ This project started with the "threads of thought" and "iterative refinement" id
54
54
  <details open>
55
55
  <summary><h3>🆕 Latest Features</h3></summary>
56
56
 
57
- - [v0.1.1 Features](#-latest-features-v011)
57
+ - [v0.1.2 Features](#-latest-features-v012)
58
58
  </details>
59
59
 
60
60
  <details open>
@@ -99,15 +99,15 @@ This project started with the "threads of thought" and "iterative refinement" id
99
99
  <summary><h3>🗺️ Roadmap</h3></summary>
100
100
 
101
101
  - Recent Achievements
102
- - [v0.1.1](#recent-achievements-v011)
103
- - [v0.0.3 - v0.1.0](#previous-achievements-v003---v010)
102
+ - [v0.1.2](#recent-achievements-v012)
103
+ - [v0.0.3 - v0.1.1](#previous-achievements-v003---v011)
104
104
  - [Key Future Enhancements](#key-future-enhancements)
105
105
  - Bug Fixes & Backend Improvements
106
106
  - Advanced Agent Collaboration
107
107
  - Expanded Model, Tool & Agent Integrations
108
108
  - Improved Performance & Scalability
109
109
  - Enhanced Developer Experience
110
- - [v0.1.2 Roadmap](#v012-roadmap)
110
+ - [v0.1.3 Roadmap](#v013-roadmap)
111
111
  </details>
112
112
 
113
113
  <details open>
@@ -132,36 +132,36 @@ This project started with the "threads of thought" and "iterative refinement" id
132
132
 
133
133
  ---
134
134
 
135
- ## 🆕 Latest Features (v0.1.1)
135
+ ## 🆕 Latest Features (v0.1.2)
136
136
 
137
- **🎉 Released: October 20, 2025**
137
+ **🎉 Released: October 22, 2025**
138
138
 
139
- **What's New in v0.1.1:**
140
- - **🔧 Custom Tools System** - Register your own Python functions as tools
141
- - **⚖️ Voting Sensitivity Controls** - Three-tier quality control for multi-agent consensus
142
- - **🎯 Configuration Builder** - Interactive wizard to create custom configs
143
- - **📊 Backend Capabilities Registry** - Centralized feature support tracking
144
- - **🔬 Self-Evolution Capability** - Agents autonomously analyze GitHub issues and market trends for feature prioritization
139
+ **What's New in v0.1.2:**
140
+ - **🧠 Intelligent Planning Mode** - Automatic question analysis for safe MCP tool blocking
141
+ - **🎭 Claude 4.5 Haiku Support** - Access to latest Claude Haiku model
142
+ - **🔍 Grok Web Search Fix** - Improved web search functionality in Grok backend
145
143
 
146
- [![MassGen v0.1.1 Custom Tools & Voting Demo](https://img.youtube.com/vi/eXK_oF177zY/0.jpg)](https://youtu.be/eXK_oF177zY)
144
+ **Key Improvements:**
145
+ - Automatically determines if questions require irreversible operations
146
+ - Read-only MCP operations allowed during coordination for better decisions
147
+ - Write operations automatically blocked for safety
148
+ - Zero configuration required - works transparently
149
+ - Enhanced model support with latest Claude 4.5 Haiku
147
150
 
148
- *Watch the v0.1.1 demo showcasing custom Python tool registration and three-tier voting sensitivity controls for multi-agent quality assurance*
149
-
150
- **Get Started with v0.1.1:**
151
+ **Get Started with v0.1.2:**
151
152
  ```bash
152
153
  # Install or upgrade from PyPI
153
154
  pip install --upgrade massgen
154
155
 
155
- # Create a configuration with the interactive builder
156
- massgen --setup
157
-
158
- # Try custom tools with agents
159
- massgen --config @examples/tools/custom_tools/claude_custom_tool_example \
160
- "What's the sum of 123 and 456?"
156
+ # Try intelligent planning mode with MCP tools
157
+ # (Please read the YAML file for required API keys: DISCORD_TOKEN, OPENAI_API_KEY, etc.)
158
+ massgen --config @examples/tools/planning/five_agents_discord_mcp_planning_mode \
159
+ "Check recent messages in our development channel, summarize the discussion, and post a helpful response about the current topic."
161
160
 
162
- # Use voting sensitivity controls for quality assurance
163
- massgen --config @examples/voting/gemini_gpt_voting_sensitivity \
164
- "What are the pros and cons of renewable energy?"
161
+ # Use latest Claude 4.5 Haiku model
162
+ # (Requires ANTHROPIC_API_KEY in .env)
163
+ massgen --model claude-haiku-4-5-20251001 \
164
+ "Summarize the latest AI developments"
165
165
  ```
166
166
 
167
167
  → [See full release history and examples](massgen/configs/README.md#release-history--examples)
@@ -998,31 +998,33 @@ MassGen is currently in its foundational stage, with a focus on parallel, asynch
998
998
 
999
999
  ⚠️ **Early Stage Notice:** As MassGen is in active development, please expect upcoming breaking architecture changes as we continue to refine and improve the system.
1000
1000
 
1001
- ### Recent Achievements (v0.1.1)
1001
+ ### Recent Achievements (v0.1.2)
1002
+
1003
+ **🎉 Released: October 22, 2025**
1004
+
1005
+ #### Intelligent Planning Mode
1006
+ - **Automatic Question Analysis**: New `_analyze_question_irreversibility()` method in orchestrator determines if MCP operations are reversible
1007
+ - **Selective Tool Blocking**: Granular control with `set_planning_mode_blocked_tools()`, `get_planning_mode_blocked_tools()`, and `is_mcp_tool_blocked()` methods
1008
+ - **Dynamic Behavior**: Read-only MCP operations allowed during coordination, write operations blocked for safety
1009
+ - **Zero Configuration**: Works transparently without setup
1010
+ - **Multi-Workspace Support**: Planning mode works across different workspaces without conflicts
1011
+ - **Test Coverage**: Comprehensive tests in `massgen/tests/test_intelligent_planning_mode.py`
1012
+ - **Documentation**: Complete guide in `docs/case_studies/INTELLIGENT_PLANNING_MODE.md`
1002
1013
 
1003
- **🎉 Released: October 20, 2025**
1014
+ #### Model Support & Improvements
1015
+ - **Claude 4.5 Haiku**: Added latest Claude Haiku model `claude-haiku-4-5-20251001`
1016
+ - **Model Priority Updates**: Reorganized Claude model list with updated defaults (`claude-sonnet-4-5-20250929`)
1017
+ - **Grok Web Search Fix**: Resolved `extra_body` parameter handling for Grok's Live Search API with new `_add_grok_search_params()` method
1004
1018
 
1005
- #### Custom Tools System
1006
- - **User-Defined Functions**: Register Python functions as tools using `ToolManager` class in `massgen/tool/_manager.py`
1007
- - **Cross-Backend Support**: Works alongside MCP servers across all backends (Claude, Gemini, OpenAI, Chat Completions, Claude Code)
1008
- - **Tool Categories**: Builtin, MCP, and custom tools with automatic discovery and conflict resolution
1009
- - **40+ Examples**: Ready-to-use configurations in `massgen/configs/tools/custom_tools/`
1019
+ #### Configuration Updates
1020
+ - **Planning Mode Configs**: Updated 5 configurations in `massgen/configs/tools/planning/` with selective blocking examples
1021
+ - **Default Configuration**: Updated `three_agents_default.yaml` with Grok-4-fast model
1010
1022
 
1011
- #### Voting Sensitivity & Answer Quality Controls
1012
- - **Three-Tier System**: "lenient", "balanced", "strict" voting modes
1013
- - **Answer Novelty Detection**: Prevents duplicate submissions with configurable similarity thresholds
1014
- - **Quality Assurance**: Configurable `max_new_answers_per_agent` and token-based overlap detection
1015
- - **Configuration**: `massgen/configs/voting/gemini_gpt_voting_sensitivity.yaml`
1023
+ ### Previous Achievements (v0.0.3 - v0.1.1)
1016
1024
 
1017
- #### Backend & Documentation Enhancements
1018
- - **Gemini Refactoring**: Extracted MCP management (`gemini_mcp_manager.py`), tracking (`gemini_trackers.py`), and utilities
1019
- - **Capabilities Registry**: New `massgen/backend/capabilities.py` documenting feature support across backends
1020
- - **Documentation Updates**: Enhanced custom tools guide, reorganized case studies, updated configuration schema
1021
- - **Case Studies**:
1022
- - `docs/case_studies/github-issue-market-analysis.md` - Custom tools with GitHub issue market analysis (v0.1.1)
1023
- - `docs/case_studies/universal-code-execution-mcp.md` - MCP code execution across backends (v0.0.31)
1025
+ **Custom Tools System (v0.1.1)**: User-defined Python function registration using `ToolManager` class in `massgen/tool/_manager.py`, cross-backend support alongside MCP servers, builtin/MCP/custom tool categories with automatic discovery, 40+ examples in `massgen/configs/tools/custom_tools/`, voting sensitivity controls with three-tier quality system (lenient/balanced/strict), answer novelty detection preventing duplicates
1024
1026
 
1025
- ### Previous Achievements (v0.0.3 - v0.1.0)
1027
+ **Backend Enhancements (v0.1.1)**: Gemini architecture refactoring with extracted MCP management (`gemini_mcp_manager.py`), tracking (`gemini_trackers.py`), and utilities, new capabilities registry in `massgen/backend/capabilities.py` documenting feature support across backends
1026
1028
 
1027
1029
  ✅ **PyPI Package Release (v0.1.0)**: Official distribution via `pip install massgen` with simplified installation, global `massgen` command accessible from any directory, comprehensive Sphinx documentation at [docs.massgen.ai](https://docs.massgen.ai/), interactive setup wizard with use case presets and API key management, enhanced CLI with `@examples/` prefix for built-in configurations
1028
1030
 
@@ -1122,21 +1124,19 @@ MassGen is currently in its foundational stage, with a focus on parallel, asynch
1122
1124
 
1123
1125
  We welcome community contributions to achieve these goals.
1124
1126
 
1125
- ### v0.1.2 Roadmap
1127
+ ### v0.1.3 Roadmap
1126
1128
 
1127
- Version 0.1.2 focuses on enterprise collaboration and intelligent agent workflows:
1129
+ Version 0.1.3 focuses on general interoperability and enterprise collaboration:
1128
1130
 
1129
1131
  #### Required Features
1130
1132
  - **General Interoperability**: Enable MassGen to orchestrate agents from multiple external frameworks with unified interface
1131
1133
  - **Final Agent Submit/Restart Tools**: Enable final agent to decide whether to submit or restart orchestration
1132
- - **Memory Module - Phase 1**: Long-term memory implementation using mem0 for reasoning and document understanding
1133
1134
 
1134
1135
  Key technical approach:
1135
1136
  - **Framework Integration**: Multi-agent coordination supporting external agent frameworks with specialized agent roles (researcher, analyst, critic, synthesizer)
1136
1137
  - **Submit/Restart**: Multi-step task verification with access to previous agents' responses and workspaces
1137
- - **Memory Module**: Session-based memory management with persistent context across conversations
1138
1138
 
1139
- For detailed milestones and technical specifications, see the [full v0.1.2 roadmap](ROADMAP.md).
1139
+ For detailed milestones and technical specifications, see the [full v0.1.3 roadmap](ROADMAP.md).
1140
1140
 
1141
1141
  ---
1142
1142
 
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -68,7 +68,7 @@ from .chat_agent import (
68
68
  from .message_templates import MessageTemplates, get_templates
69
69
  from .orchestrator import Orchestrator, create_orchestrator
70
70
 
71
- __version__ = "0.1.1"
71
+ __version__ = "0.1.2"
72
72
  __author__ = "MassGen Contributors"
73
73
 
74
74
 
@@ -31,7 +31,13 @@ class ChatCompletionsAPIParamsHandler(APIParamsHandlerBase):
31
31
  """Get provider tools for Chat Completions format."""
32
32
  provider_tools = []
33
33
 
34
- if all_params.get("enable_web_search", False):
34
+ # Check if this is Grok backend - Grok uses extra_body.search_parameters instead of function tools
35
+ backend_provider = getattr(self.backend, "get_provider_name", lambda: "")()
36
+ is_grok = backend_provider.lower() == "grok"
37
+
38
+ # Add web_search function tool for non-Grok backends
39
+ # Grok handles web search via extra_body.search_parameters (set in grok.py)
40
+ if all_params.get("enable_web_search", False) and not is_grok:
35
41
  provider_tools.append(
36
42
  {
37
43
  "type": "function",
@@ -70,6 +70,11 @@ class LLMBackend(ABC):
70
70
  # Planning mode flag - when True, MCP tools should be blocked during coordination
71
71
  self._planning_mode_enabled: bool = False
72
72
 
73
+ # Selective tool blocking - list of specific MCP tools to block during planning mode
74
+ # When planning_mode is enabled, only these specific tools are blocked
75
+ # If empty, ALL MCP tools are blocked (backward compatible behavior)
76
+ self._planning_mode_blocked_tools: set = set()
77
+
73
78
  self.token_calculator = TokenCostCalculator()
74
79
 
75
80
  # Filesystem manager integration
@@ -465,6 +470,53 @@ class LLMBackend(ABC):
465
470
  """
466
471
  return self._planning_mode_enabled
467
472
 
473
+ def set_planning_mode_blocked_tools(self, tool_names: set) -> None:
474
+ """
475
+ Set specific MCP tools to block during planning mode.
476
+
477
+ This enables selective tool blocking - only the specified tools will be blocked
478
+ when planning mode is enabled, allowing other MCP tools to be used.
479
+
480
+ Args:
481
+ tool_names: Set of MCP tool names to block (e.g., {'mcp__discord__discord_send'})
482
+ If empty set, ALL MCP tools are blocked (backward compatible)
483
+ """
484
+ self._planning_mode_blocked_tools = set(tool_names)
485
+
486
+ def get_planning_mode_blocked_tools(self) -> set:
487
+ """
488
+ Get the set of MCP tools currently blocked in planning mode.
489
+
490
+ Returns:
491
+ Set of blocked MCP tool names. Empty set means ALL MCP tools are blocked.
492
+ """
493
+ return self._planning_mode_blocked_tools.copy()
494
+
495
+ def is_mcp_tool_blocked(self, tool_name: str) -> bool:
496
+ """
497
+ Check if a specific MCP tool is blocked in planning mode.
498
+
499
+ Args:
500
+ tool_name: Name of the MCP tool to check (e.g., 'mcp__discord__discord_send')
501
+
502
+ Returns:
503
+ True if the tool should be blocked, False otherwise
504
+
505
+ Note:
506
+ - If planning mode is disabled, returns False (no blocking)
507
+ - If planning mode is enabled and blocked_tools is empty, returns True (block ALL)
508
+ - If planning mode is enabled and blocked_tools is set, returns True only if tool is in the set
509
+ """
510
+ if not self._planning_mode_enabled:
511
+ return False
512
+
513
+ # Empty set means block ALL MCP tools (backward compatible behavior)
514
+ if not self._planning_mode_blocked_tools:
515
+ return True
516
+
517
+ # Otherwise, block only if tool is in the blocked set
518
+ return tool_name in self._planning_mode_blocked_tools
519
+
468
520
  async def _cleanup_client(self, client: Any) -> None:
469
521
  """Clean up OpenAI client resources."""
470
522
  try:
@@ -533,10 +533,10 @@ class CustomToolAndMCPBackend(LLMBackend):
533
533
  max_retries: int = 3,
534
534
  ) -> Tuple[str, Any]:
535
535
  """Execute MCP function with exponential backoff retry logic."""
536
- # Check if planning mode is enabled - block MCP tool execution during planning
537
- if self.is_planning_mode_enabled():
538
- logger.info(f"[MCP] Planning mode enabled - blocking MCP tool execution: {function_name}")
539
- error_str = "🚫 [MCP] Planning mode active - MCP tools blocked during coordination"
536
+ # Check if this specific MCP tool is blocked by planning mode
537
+ if self.is_mcp_tool_blocked(function_name):
538
+ logger.info(f"[MCP] Planning mode enabled - blocking MCP tool: {function_name}")
539
+ error_str = f"🚫 [MCP] Tool '{function_name}' blocked during coordination (planning mode active)"
540
540
  return error_str, {"error": error_str, "blocked_by": "planning_mode", "function_name": function_name}
541
541
 
542
542
  # Convert JSON string to dict for shared utility