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.
- {massgen-0.1.1 → massgen-0.1.2}/CHANGELOG.md +49 -3
- {massgen-0.1.1 → massgen-0.1.2}/CONTRIBUTING.md +4 -4
- {massgen-0.1.1 → massgen-0.1.2}/MANIFEST.in +1 -0
- {massgen-0.1.1 → massgen-0.1.2}/PKG-INFO +53 -53
- {massgen-0.1.1 → massgen-0.1.2}/README.md +52 -52
- massgen-0.1.2/assets/MassGen-v1.gif +0 -0
- massgen-0.1.2/assets/cos.png +0 -0
- massgen-0.1.2/assets/favicon.ico +0 -0
- massgen-0.1.2/assets/logo-dark.png +0 -0
- massgen-0.1.2/assets/logo.png +0 -0
- massgen-0.1.2/assets/massgen-demo-light.gif +0 -0
- massgen-0.1.2/assets/massgen-demo.gif +0 -0
- massgen-0.1.2/assets/release_related_figures/context_path.png +0 -0
- massgen-0.1.2/assets/release_related_figures/copy_file.png +0 -0
- massgen-0.1.2/assets/thumbnail.png +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/__init__.py +1 -1
- {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_chat_completions_api_params_handler.py +7 -1
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/base.py +52 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/base_with_custom_tool_and_mcp.py +4 -4
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/capabilities.py +6 -6
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/chat_completions.py +18 -11
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/gemini.py +36 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/grok.py +39 -6
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/response.py +18 -11
- {massgen-0.1.1 → massgen-0.1.2}/massgen/cli.py +28 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/README.md +33 -21
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/three_agents_default.yaml +2 -2
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml +7 -29
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml +5 -6
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml +4 -4
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/five_agents_twitter_mcp_planning_mode.yaml +4 -4
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/planning/gpt5_mini_case_study_mcp_planning_mode.yaml +2 -2
- {massgen-0.1.1 → massgen-0.1.2}/massgen/orchestrator.py +333 -6
- massgen-0.1.2/massgen/tests/test_intelligent_planning_mode.py +643 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/token_manager/token_manager.py +13 -4
- {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/PKG-INFO +53 -53
- {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/SOURCES.txt +11 -0
- {massgen-0.1.1 → massgen-0.1.2}/.env.example +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/LICENSE +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/ag2_adapter.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/base.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/tests/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/tests/test_ag2_adapter.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/tests/test_agent_adapter.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/utils/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/utils/ag2_utils.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/utils/tests/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/adapters/utils/tests/test_ag2_utils.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/agent_config.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_api_params_handler_base.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_claude_api_params_handler.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_gemini_api_params_handler.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_response_api_params_handler.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/azure_openai.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/claude.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/claude_code.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/cli_base.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/BACKEND_ARCHITECTURE.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/CLAUDE_API_RESEARCH.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/Function calling openai responses.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/GEMINI_API_DOCUMENTATION.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/Gemini MCP Integration Analysis.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/MCP_IMPLEMENTATION_CLAUDE_BACKEND.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/MCP_INTEGRATION_RESPONSE_BACKEND.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/OPENAI_GPT5_MODELS.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/OPENAI_RESPONSE_API_TOOL_CALLS.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/OPENAI_response_streaming.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/inference_backend.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/docs/permissions_and_context_files.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/external.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/gemini_mcp_manager.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/gemini_trackers.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/gemini_utils.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/inference.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/backend/lmstudio.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/chat_agent.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/config_builder.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/BACKEND_CONFIGURATION.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_case_study.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_coder.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_coder_case_study.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_gemini.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_groupchat.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_groupchat_gpt.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/ag2/ag2_single_agent.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/fast_timeout_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gemini_4o_claude.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gemini_gpt5nano_claude.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/geminicode_4o_claude.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/geminicode_gpt5nano_claude.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/glm_gemini_claude.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gpt4o_audio_generation.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gpt4o_image_generation.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gpt5nano_glm_qwen.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/gpt5nano_image_understanding.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/three_agents_opensource.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/three_agents_vllm.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/two_agents_gemini.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/two_agents_gpt5.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/two_agents_opensource_lmstudio.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/multi/two_qwen_vllm_sglang.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_agent.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_flash2.5.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gemini2.5pro.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt4o_audio_generation.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt4o_image_generation.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt4o_video_generation.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt5nano.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt5nano_file_search.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gpt5nano_image_understanding.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_gptoss120b.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_openrouter_audio_understanding.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/basic/single/single_qwen_video_understanding.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/code_execution/command_filtering_blacklist.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/code_execution/command_filtering_whitelist.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/code_execution/docker_verification.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/skip_coordination_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/debug/test_sdk_migration.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/docs/DISCORD_MCP_SETUP.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/docs/TWITTER_MCP_ENESCINAR_SETUP.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/azure/azure_openai_multi.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/azure/azure_openai_single.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/claude/claude.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/gemini/gemini_gpt5nano.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/local/lmstudio.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/openai/gpt5.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/openai/gpt5_nano.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/others/grok_single_agent.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/others/zai_coding_team.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/providers/others/zai_glm45.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/creative/creative_team.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/creative/travel_planning.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/research/news_analysis.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/research/research_team.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/teams/research/technical_analysis.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/basic_command_execution.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/code_execution_use_case_simple.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/docker_claude_code.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/docker_multi_agent.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/docker_simple.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/docker_with_resource_limits.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/code-execution/multi_agent_playwright_automation.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_custom_tool_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_code_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_custom_tool_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/claude_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_custom_tool_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gemini_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/github_issue_market_analysis.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt5_nano_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/gpt_oss_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/grok3_mini_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_api_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/custom_tools/qwen_local_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/cc_gpt5_gemini_filesystem.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_context_sharing.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_flash2.5.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_flash2.5_gptoss.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_gpt5nano.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/claude_code_single.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/fs_permissions_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gemini_gemini_workspace_cleanup.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gemini_gpt5_filesystem_casestudy.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gemini_gpt5nano_file_context_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gemini_gpt5nano_protected_paths.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/gpt5mini_cc_fs_context_path.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/grok4_gpt5_gemini_filesystem.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/multiturn/grok4_gpt5_claude_code_filesystem_multiturn.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/multiturn/grok4_gpt5_gemini_filesystem_multiturn.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/multiturn/two_claude_code_filesystem_multiturn.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/filesystem/multiturn/two_gemini_flash_filesystem_multiturn.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_code_discord_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_code_simple_mcp.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_code_twitter_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/claude_mcp_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/five_agents_travel_mcp_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/five_agents_weather_mcp_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_sharing.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_single_agent.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_with_claude_code.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_mcp_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gemini_notion_mcp.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt5_nano_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt5_nano_mcp_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt5mini_claude_code_discord_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt_oss_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/gpt_oss_mcp_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/grok3_mini_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/grok3_mini_mcp_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/multimcp_gemini.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/qwen_api_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/qwen_api_mcp_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/qwen_local_mcp_example.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/mcp/qwen_local_mcp_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/claude_streamable_http_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/gemini_streamable_http_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/gpt5_mini_streamable_http_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/gpt_oss_streamable_http_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/grok3_mini_streamable_http_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/qwen_api_streamable_http_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/tools/web-search/qwen_local_streamable_http_test.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/configs/voting/gemini_gpt_voting_sensitivity.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/coordination_tracker.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/docker/README.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_base.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_code_execution_server.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_docker_manager.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_file_operation_tracker.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_filesystem_manager.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_path_permission_manager.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/filesystem_manager/_workspace_tools_server.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_chat_completions_formatter.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_claude_formatter.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_formatter_base.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_gemini_formatter.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/formatter/_response_formatter.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/coordination_ui.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/base_display.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/create_coordination_table.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/rich_terminal_display.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/simple_display.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/frontend/displays/terminal_display.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/logger_config.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/README.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/backend_utils.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/circuit_breaker.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/client.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/config_validator.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/circuit_breaker.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/client.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/config_validator.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/exceptions.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/docs/security.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/exceptions.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/hooks.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/mcp_tools/security.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/message_templates.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/stream_chunk/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/stream_chunk/base.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/stream_chunk/multimodal.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/stream_chunk/text.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/custom_tools_example.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/mcp_test_server.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/multi_turn_conversation_design.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/multiturn_llm_input_analysis.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_azure_openai_backend.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_backend_capabilities.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_backend_event_loop_all.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_case_studies.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_chat_completions_refactor.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_claude_backend.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_claude_code.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_claude_code_context_sharing.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_claude_code_orchestrator.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_cli_backends.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_code_execution.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_config_builder.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_custom_tools.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_external_agent_backend.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_final_presentation_fallback.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_gemini_planning_mode.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_grok_backend.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_http_mcp_server.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_integration_simple.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_mcp_blocking.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_message_context_building.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_orchestrator_final_presentation.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_path_permission_manager.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_rich_terminal_display.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_timeout.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_tools.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_v3_3agents.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_v3_simple.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_v3_three_agents.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tests/test_v3_two_agents.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/token_manager/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/README.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_async_helpers.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_basic/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_basic/_two_num_tool.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_code_executors/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_code_executors/_python_executor.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_code_executors/_shell_executor.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_exceptions.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_file_handlers/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_file_handlers/_file_operations.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_manager.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_registered_tool.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_result.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/_self_evolution/_github_issue_analyzer.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/builtin_tools.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/exceptions.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/execution_results.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/manager.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/docs/workflow_toolkits.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/workflow_toolkits/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/workflow_toolkits/base.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/workflow_toolkits/new_answer.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/tool/workflow_toolkits/vote.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/utils.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/README.md +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/__init__.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/agent.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/agents.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/backends/gemini.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/backends/grok.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/backends/oai.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/cli.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/config.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/examples/fast-4o-mini-config.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/examples/fast_config.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/examples/production.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/examples/single_agent.yaml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/logging.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/main.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/orchestrator.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/streaming_display.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/tools.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/types.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen/v1/utils.py +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/dependency_links.txt +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/entry_points.txt +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/not-zip-safe +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/requires.txt +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/massgen.egg-info/top_level.txt +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/pyproject.toml +0 -0
- {massgen-0.1.1 → massgen-0.1.2}/requirements.txt +0 -0
- {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.
|
|
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.
|
|
279
|
-
git checkout -b feature/your-feature-name upstream/dev/v0.1.
|
|
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.
|
|
482
|
+
- [ ] PR targets `dev/v0.1.3` branch
|
|
483
483
|
|
|
484
484
|
### PR Description Should Include
|
|
485
485
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: massgen
|
|
3
|
-
Version: 0.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="
|
|
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="
|
|
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.
|
|
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.
|
|
187
|
-
- [v0.0.3 - v0.1.
|
|
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.
|
|
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.
|
|
219
|
+
## 🆕 Latest Features (v0.1.2)
|
|
220
220
|
|
|
221
|
-
**🎉 Released: October
|
|
221
|
+
**🎉 Released: October 22, 2025**
|
|
222
222
|
|
|
223
|
-
**What's New in v0.1.
|
|
224
|
-
-
|
|
225
|
-
-
|
|
226
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
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
|
|
247
|
-
|
|
248
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
####
|
|
1090
|
-
- **
|
|
1091
|
-
- **
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
1211
|
+
### v0.1.3 Roadmap
|
|
1210
1212
|
|
|
1211
|
-
Version 0.1.
|
|
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.
|
|
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="
|
|
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="
|
|
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.
|
|
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.
|
|
103
|
-
- [v0.0.3 - v0.1.
|
|
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.
|
|
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.
|
|
135
|
+
## 🆕 Latest Features (v0.1.2)
|
|
136
136
|
|
|
137
|
-
**🎉 Released: October
|
|
137
|
+
**🎉 Released: October 22, 2025**
|
|
138
138
|
|
|
139
|
-
**What's New in v0.1.
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
|
163
|
-
|
|
164
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
####
|
|
1006
|
-
- **
|
|
1007
|
-
- **
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
1127
|
+
### v0.1.3 Roadmap
|
|
1126
1128
|
|
|
1127
|
-
Version 0.1.
|
|
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.
|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
{massgen-0.1.1 → massgen-0.1.2}/massgen/api_params_handler/_chat_completions_api_params_handler.py
RENAMED
|
@@ -31,7 +31,13 @@ class ChatCompletionsAPIParamsHandler(APIParamsHandlerBase):
|
|
|
31
31
|
"""Get provider tools for Chat Completions format."""
|
|
32
32
|
provider_tools = []
|
|
33
33
|
|
|
34
|
-
if
|
|
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
|
|
537
|
-
if self.
|
|
538
|
-
logger.info(f"[MCP] Planning mode enabled - blocking MCP tool
|
|
539
|
-
error_str = "🚫 [MCP]
|
|
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
|