massgen 0.1.5__tar.gz → 0.1.6__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.5 → massgen-0.1.6}/CHANGELOG.md +66 -3
- {massgen-0.1.5 → massgen-0.1.6}/CONTRIBUTING.md +93 -11
- {massgen-0.1.5 → massgen-0.1.6}/PKG-INFO +104 -76
- {massgen-0.1.5 → massgen-0.1.6}/README.md +98 -75
- {massgen-0.1.5 → massgen-0.1.6}/README_PYPI.md +98 -75
- massgen-0.1.6/assets/thumbnail.png +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/__init__.py +1 -1
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/base_with_custom_tool_and_mcp.py +453 -23
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/capabilities.py +39 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/chat_completions.py +111 -197
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/claude.py +210 -181
- massgen-0.1.6/massgen/backend/gemini.py +1450 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/grok.py +3 -2
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/response.py +160 -220
- {massgen-0.1.5 → massgen-0.1.6}/massgen/cli.py +73 -6
- {massgen-0.1.5 → massgen-0.1.6}/massgen/config_builder.py +20 -54
- massgen-0.1.6/massgen/config_validator.py +931 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/README.md +51 -8
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_custom_tool_with_mcp_example.yaml +1 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_custom_tool_example_no_path.yaml +1 -1
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_custom_tool_with_mcp_example.yaml +1 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/computer_use_browser_example.yaml +1 -1
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/computer_use_docker_example.yaml +1 -1
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_custom_tool_with_mcp_example.yaml +1 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_with_mcp_example.yaml +1 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_with_mcp_example.yaml +1 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_with_mcp_example.yaml +1 -0
- massgen-0.1.6/massgen/configs/tools/custom_tools/interop/ag2_and_langgraph_lesson_planner.yaml +65 -0
- massgen-0.1.6/massgen/configs/tools/custom_tools/interop/ag2_and_openai_assistant_lesson_planner.yaml +65 -0
- massgen-0.1.6/massgen/configs/tools/custom_tools/interop/ag2_lesson_planner_example.yaml +48 -0
- massgen-0.1.6/massgen/configs/tools/custom_tools/interop/agentscope_lesson_planner_example.yaml +48 -0
- massgen-0.1.6/massgen/configs/tools/custom_tools/interop/langgraph_lesson_planner_example.yaml +49 -0
- massgen-0.1.6/massgen/configs/tools/custom_tools/interop/openai_assistant_lesson_planner_example.yaml +50 -0
- massgen-0.1.6/massgen/configs/tools/custom_tools/interop/smolagent_lesson_planner_example.yaml +49 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_with_mcp_example.yaml +1 -0
- massgen-0.1.6/massgen/configs/tools/custom_tools/two_models_with_tools_example.yaml +44 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_gemini_formatter.py +61 -15
- massgen-0.1.6/massgen/tests/test_ag2_lesson_planner.py +223 -0
- massgen-0.1.6/massgen/tests/test_config_validator.py +1156 -0
- massgen-0.1.6/massgen/tests/test_langgraph_lesson_planner.py +223 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/__init__.py +2 -9
- massgen-0.1.6/massgen/tool/_decorators.py +52 -0
- massgen-0.1.6/massgen/tool/_extraframework_agents/ag2_lesson_planner_tool.py +251 -0
- massgen-0.1.6/massgen/tool/_extraframework_agents/agentscope_lesson_planner_tool.py +303 -0
- massgen-0.1.6/massgen/tool/_extraframework_agents/langgraph_lesson_planner_tool.py +275 -0
- massgen-0.1.6/massgen/tool/_extraframework_agents/openai_assistant_lesson_planner_tool.py +247 -0
- massgen-0.1.6/massgen/tool/_extraframework_agents/smolagent_lesson_planner_tool.py +180 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_manager.py +102 -16
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_registered_tool.py +3 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_result.py +3 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/PKG-INFO +104 -76
- {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/SOURCES.txt +19 -7
- {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/requires.txt +5 -0
- {massgen-0.1.5 → massgen-0.1.6}/pyproject.toml +5 -0
- massgen-0.1.5/massgen/backend/gemini.py +0 -1994
- massgen-0.1.5/massgen/backend/gemini_mcp_manager.py +0 -545
- massgen-0.1.5/massgen/backend/gemini_trackers.py +0 -344
- massgen-0.1.5/massgen/configs/tools/custom_tools/multimodal_tools/playwright_with_img_understanding.yaml +0 -98
- massgen-0.1.5/massgen/configs/tools/custom_tools/multimodal_tools/understand_video_example.yaml +0 -54
- massgen-0.1.5/massgen/tools/__init__.py +0 -8
- massgen-0.1.5/massgen/tools/_planning_mcp_server.py +0 -520
- massgen-0.1.5/massgen/tools/planning_dataclasses.py +0 -434
- {massgen-0.1.5 → massgen-0.1.6}/.env.example +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/LICENSE +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/MANIFEST.in +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/MassGen-v1.gif +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/cos.png +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/favicon.ico +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/logo-dark.png +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/logo.png +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/massgen-demo-light.gif +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/massgen-demo.gif +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/release_related_figures/context_path.png +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/release_related_figures/copy_file.png +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/assets/thumbnail_old.png +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/ag2_adapter.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/base.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/tests/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/tests/test_ag2_adapter.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/tests/test_agent_adapter.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/utils/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/utils/ag2_utils.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/utils/tests/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/utils/tests/test_ag2_utils.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/agent_config.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_api_params_handler_base.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_chat_completions_api_params_handler.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_claude_api_params_handler.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_gemini_api_params_handler.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_response_api_params_handler.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/azure_openai.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/base.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/claude_code.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/cli_base.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/BACKEND_ARCHITECTURE.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/CLAUDE_API_RESEARCH.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/Function calling openai responses.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/GEMINI_API_DOCUMENTATION.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/Gemini MCP Integration Analysis.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/MCP_IMPLEMENTATION_CLAUDE_BACKEND.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/MCP_INTEGRATION_RESPONSE_BACKEND.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/OPENAI_GPT5_MODELS.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/OPENAI_RESPONSE_API_TOOL_CALLS.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/OPENAI_response_streaming.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/inference_backend.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/permissions_and_context_files.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/external.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/gemini_utils.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/inference.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/lmstudio.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/chat_agent.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/BACKEND_CONFIGURATION.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_case_study.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_coder.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_coder_case_study.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_gemini.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_groupchat.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_groupchat_gpt.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_single_agent.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/fast_timeout_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gemini_4o_claude.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gemini_gpt5nano_claude.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/geminicode_4o_claude.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/geminicode_gpt5nano_claude.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/glm_gemini_claude.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gpt4o_audio_generation.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gpt4o_image_generation.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gpt5nano_glm_qwen.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gpt5nano_image_understanding.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/three_agents_default.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/three_agents_opensource.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/three_agents_vllm.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/two_agents_gemini.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/two_agents_gpt5.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/two_agents_opensource_lmstudio.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/two_qwen_vllm_sglang.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_agent.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_flash2.5.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gemini2.5pro.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt4o_audio_generation.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt4o_image_generation.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt4o_video_generation.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt5nano.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt5nano_file_search.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt5nano_image_understanding.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gptoss120b.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_openrouter_audio_understanding.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_qwen_video_understanding.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/code_execution/command_filtering_blacklist.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/code_execution/command_filtering_whitelist.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/code_execution/docker_verification.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/restart_test_controlled.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/restart_test_controlled_filesystem.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/skip_coordination_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/test_sdk_migration.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/docs/DISCORD_MCP_SETUP.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/docs/TWITTER_MCP_ENESCINAR_SETUP.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/gpt5mini_gemini_baseline_research_to_implementation.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/gpt5mini_gemini_context_window_management.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/gpt5mini_gemini_research_to_implementation.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/gpt5mini_high_reasoning_gemini.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/single_agent_compression_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/azure/azure_openai_multi.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/azure/azure_openai_single.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/claude/claude.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/gemini/gemini_gpt5nano.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/local/lmstudio.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/openai/gpt5.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/openai/gpt5_nano.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/others/grok_single_agent.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/others/zai_coding_team.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/others/zai_glm45.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/creative/creative_team.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/creative/travel_planning.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/research/news_analysis.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/research/research_team.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/research/technical_analysis.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/basic_command_execution.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/code_execution_use_case_simple.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_claude_code.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_multi_agent.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_simple.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_with_resource_limits.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_with_sudo.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/multi_agent_playwright_automation.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_custom_tool_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_custom_tool_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/computer_use_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/crawl4ai_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_custom_tool_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/github_issue_market_analysis.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_multi.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_single.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_multi.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_single.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_multi.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_single.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_multi.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_single.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/understand_audio.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/understand_file.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/understand_image.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/understand_video.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/youtube_video_analysis.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_example_no_path.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_wrong_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_wrong_custom_tool_with_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/cc_gpt5_gemini_filesystem.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_context_sharing.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_flash2.5.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_flash2.5_gptoss.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_gpt5nano.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_single.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/fs_permissions_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gemini_gemini_workspace_cleanup.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gemini_gpt5_filesystem_casestudy.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gemini_gpt5nano_file_context_path.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gemini_gpt5nano_protected_paths.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gpt5mini_cc_fs_context_path.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/grok4_gpt5_gemini_filesystem.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/multiturn/grok4_gpt5_claude_code_filesystem_multiturn.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/multiturn/grok4_gpt5_gemini_filesystem_multiturn.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/multiturn/two_claude_code_filesystem_multiturn.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/multiturn/two_gemini_flash_filesystem_multiturn.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_code_discord_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_code_simple_mcp.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_code_twitter_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_mcp_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/five_agents_travel_mcp_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/five_agents_weather_mcp_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_sharing.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_single_agent.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_with_claude_code.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_notion_mcp.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt5_nano_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt5_nano_mcp_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt5mini_claude_code_discord_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt_oss_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt_oss_mcp_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/grok3_mini_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/grok3_mini_mcp_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/multimcp_gemini.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/qwen_api_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/qwen_api_mcp_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/qwen_local_mcp_example.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/qwen_local_mcp_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/five_agents_twitter_mcp_planning_mode.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/gpt5_mini_case_study_mcp_planning_mode.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/claude_streamable_http_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/gemini_streamable_http_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/gpt5_mini_streamable_http_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/gpt_oss_streamable_http_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/grok3_mini_streamable_http_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/qwen_api_streamable_http_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/qwen_local_streamable_http_test.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/voting/gemini_gpt_voting_sensitivity.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/coordination_tracker.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/docker/README.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_base.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_code_execution_server.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_docker_manager.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_file_operation_tracker.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_filesystem_manager.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_path_permission_manager.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_workspace_tools_server.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_chat_completions_formatter.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_claude_formatter.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_formatter_base.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_response_formatter.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/coordination_ui.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/base_display.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/create_coordination_table.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/rich_terminal_display.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/simple_display.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/terminal_display.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/logger_config.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/README.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/backend_utils.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/circuit_breaker.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/client.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/config_validator.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/circuit_breaker.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/client.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/config_validator.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/exceptions.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/security.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/exceptions.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/hooks.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/security.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/README.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_base.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_compression.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_context_monitor.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_conversation.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_fact_extraction_prompts.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_mem0_adapters.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_persistent.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docker-compose.qdrant.yml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/DESIGN.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/QUICKSTART.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/SUMMARY.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/agent_use_memory.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/orchestrator_use_memory.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/examples.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/message_templates.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/orchestrator.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/stream_chunk/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/stream_chunk/base.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/stream_chunk/multimodal.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/stream_chunk/text.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/custom_tools_example.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/mcp_test_server.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/memory/test_agent_compression.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/memory/test_context_window_management.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/memory/test_force_compression.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/memory/test_simple_compression.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/multi_turn_conversation_design.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/multiturn_llm_input_analysis.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_agent_memory.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_azure_openai_backend.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_backend_capabilities.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_backend_event_loop_all.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_binary_file_blocking.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_case_studies.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_chat_completions_refactor.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_claude_backend.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_claude_code.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_claude_code_context_sharing.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_claude_code_orchestrator.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_cli_backends.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_code_execution.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_config_builder.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_conversation_memory.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_custom_tools.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_external_agent_backend.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_final_presentation_fallback.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_gemini_planning_mode.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_grok_backend.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_http_mcp_server.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_integration_simple.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_intelligent_planning_mode.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_mcp_blocking.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_message_context_building.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_multimodal_size_limits.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_orchestration_restart.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_orchestrator_final_presentation.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_orchestrator_memory.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_path_permission_manager.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_persistent_memory.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_rich_terminal_display.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_timeout.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_tools.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_v3_3agents.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_v3_simple.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_v3_three_agents.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_v3_two_agents.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/token_manager/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/token_manager/token_manager.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/README.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_async_helpers.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_basic/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_basic/_two_num_tool.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_code_executors/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_code_executors/_python_executor.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_code_executors/_shell_executor.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_exceptions.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_file_handlers/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_file_handlers/_file_operations.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/image_to_image_generation.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_file_generation.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_image_generation.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_speech_continue_generation.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_speech_transcription_generation.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_video_generation.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/understand_audio.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/understand_file.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/understand_image.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/understand_video.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_self_evolution/_github_issue_analyzer.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_web_tools/crawl4ai_tool.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/builtin_tools.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/exceptions.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/execution_results.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/manager.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/multimodal_tools.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/workflow_toolkits.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/base.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/new_answer.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/post_evaluation.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/vote.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/utils.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/README.md +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/__init__.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/agent.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/agents.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/backends/gemini.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/backends/grok.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/backends/oai.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/cli.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/config.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/examples/fast-4o-mini-config.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/examples/fast_config.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/examples/production.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/examples/single_agent.yaml +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/logging.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/main.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/orchestrator.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/streaming_display.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/tools.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/types.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/utils.py +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/dependency_links.txt +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/entry_points.txt +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/not-zip-safe +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/top_level.txt +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/requirements.txt +0 -0
- {massgen-0.1.5 → massgen-0.1.6}/setup.cfg +0 -0
|
@@ -7,17 +7,80 @@ 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.6 (November 2025)** - Framework Interoperability & Backend Refactoring
|
|
11
|
+
External agent framework integration as tools (AG2, LangGraph, AgentScope, OpenAI Assistants, SmoLAgent), unified tool execution architecture, Gemini backend simplification, and comprehensive configuration validation.
|
|
12
|
+
|
|
10
13
|
**v0.1.5 (October 2025)** - Memory System
|
|
11
14
|
Long-term memory with semantic retrieval via mem0, automatic context compression, and memory sharing for multi-turn conversations.
|
|
12
15
|
|
|
13
16
|
**v0.1.4 (October 2025)** - Multimodal Generation Tools & Binary File Protection
|
|
14
17
|
Comprehensive generation tools for images, videos, audio, and documents with OpenAI APIs, binary file blocking for security, web crawling integration, and enhanced documentation infrastructure.
|
|
15
18
|
|
|
16
|
-
**v0.1.3 (October 2025)** - Post-Evaluation Tools & Multimodal Understanding
|
|
17
|
-
Post-evaluation workflow with submit/restart capabilities, custom multimodal understanding tools, Docker sudo mode, and enhanced config builder.
|
|
18
|
-
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
+
## [0.1.6] - 2025-10-31
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- **Framework Interoperability**: External agent framework integration as MassGen custom tools
|
|
25
|
+
- New `massgen/tool/_extraframework_agents/` module with 5 framework integrations
|
|
26
|
+
- **AG2 Lesson Planner Tool**: Nested chat functionality wrapped as custom tool for multi-agent lesson planning (supports streaming)
|
|
27
|
+
- **LangGraph Lesson Planner Tool**: LangGraph graph-based workflows integrated as tool
|
|
28
|
+
- **AgentScope Lesson Planner Tool**: AgentScope agent system wrapped for lesson creation
|
|
29
|
+
- **OpenAI Assistants Lesson Planner Tool**: OpenAI Assistants API integrated as tool
|
|
30
|
+
- **SmoLAgent Lesson Planner Tool**: HuggingFace SmoLAgent integration for lesson planning
|
|
31
|
+
- Enables MassGen agents to delegate tasks to specialized external frameworks
|
|
32
|
+
- Each framework runs autonomously and returns results to MassGen orchestrator
|
|
33
|
+
- Note: Only AG2 currently supports streaming; other frameworks return complete results
|
|
34
|
+
|
|
35
|
+
- **Configuration Validator**: Comprehensive YAML configuration validation system
|
|
36
|
+
- New `ConfigValidator` class in `massgen/config_validator.py` for pre-flight validation
|
|
37
|
+
- Memory configuration validation with detailed error messages
|
|
38
|
+
- Pre-commit hook integration for automatic config validation
|
|
39
|
+
- Comprehensive test suite in `massgen/tests/test_config_validator.py`
|
|
40
|
+
- Validates agent configurations, backend parameters, tool settings, and memory options
|
|
41
|
+
- Provides actionable error messages with suggestions for common mistakes
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
- **Backend Architecture Refactoring**: Unified tool execution with ToolExecutionConfig
|
|
45
|
+
- New `ToolExecutionConfig` dataclass in `base_with_custom_tool_and_mcp.py` for standardized tool handling
|
|
46
|
+
- Refactored `ResponseBackend` with unified tool execution flow
|
|
47
|
+
- Refactored `ChatCompletionsBackend` with unified tool execution flow
|
|
48
|
+
- Refactored `ClaudeBackend` with unified tool execution methods
|
|
49
|
+
- Eliminates duplicate code paths between custom tools and MCP tools
|
|
50
|
+
- Consistent error handling and status reporting across all tool types
|
|
51
|
+
- Improved maintainability and extensibility for future tool systems
|
|
52
|
+
|
|
53
|
+
- **Gemini Backend Simplification**: Major architectural cleanup and consolidation
|
|
54
|
+
- Removed `gemini_mcp_manager.py` module
|
|
55
|
+
- Removed `gemini_trackers.py` module
|
|
56
|
+
- Refactored `gemini.py` to use manual tool execution via base class
|
|
57
|
+
- Streamlined tool handling and cleanup logic
|
|
58
|
+
- Removed continuation logic and duplicate code
|
|
59
|
+
- Updated `_gemini_formatter.py` for simplified tool conversion
|
|
60
|
+
- Net reduction of 1,598 lines through consolidation
|
|
61
|
+
- Improved maintainability and performance
|
|
62
|
+
|
|
63
|
+
- **Custom Tool System Enhancement**: Improved tool management and execution
|
|
64
|
+
- Enhanced `ToolManager` with category management capabilities
|
|
65
|
+
- Improved tool registration and validation system
|
|
66
|
+
- Enhanced tool result handling and error reporting
|
|
67
|
+
- Better support for async tool execution
|
|
68
|
+
- Improved tool schema generation for LLM consumption
|
|
69
|
+
|
|
70
|
+
### Documentations, Configurations and Resources
|
|
71
|
+
|
|
72
|
+
- **Framework Interoperability Examples**: 8 new configuration files demonstrating external framework integration
|
|
73
|
+
- **AG2 Examples**: `ag2_lesson_planner_example.yaml`, `ag2_and_langgraph_lesson_planner.yaml`, `ag2_and_openai_assistant_lesson_planner.yaml`
|
|
74
|
+
- **LangGraph Examples**: `langgraph_lesson_planner_example.yaml`
|
|
75
|
+
- **AgentScope Examples**: `agentscope_lesson_planner_example.yaml`
|
|
76
|
+
- **OpenAI Assistants Examples**: `openai_assistant_lesson_planner_example.yaml`
|
|
77
|
+
- **SmoLAgent Examples**: `smolagent_lesson_planner_example.yaml`
|
|
78
|
+
- **Multi-Framework Examples**: `two_models_with_tools_example.yaml`
|
|
79
|
+
|
|
80
|
+
### Technical Details
|
|
81
|
+
- **Major Focus**: Framework interoperability for external agent integration, unified tool execution architecture, Gemini backend simplification, and configuration validation system
|
|
82
|
+
- **Contributors**: @Eric-Shang @praneeth999 @ncrispino @qidanrui @sonichi @Henry-811 and the MassGen team
|
|
83
|
+
|
|
21
84
|
## [0.1.5] - 2025-10-29
|
|
22
85
|
|
|
23
86
|
### Added
|
|
@@ -95,9 +95,85 @@ To add support for a new model provider:
|
|
|
95
95
|
2. Inherit from the base backend class in `massgen/backend/base.py`
|
|
96
96
|
3. Implement the required methods for message processing and completion parsing
|
|
97
97
|
4. Add the model mapping in `massgen/utils.py`
|
|
98
|
-
5.
|
|
99
|
-
6.
|
|
100
|
-
7.
|
|
98
|
+
5. **Add backend capabilities to `massgen/backend/capabilities.py`** - Required for config validation
|
|
99
|
+
6. Update configuration templates in `massgen/configs/`
|
|
100
|
+
7. Add tests in `massgen/tests/`
|
|
101
|
+
8. **Update the config validator** - See [Updating the Config Validator](#updating-the-config-validator) below
|
|
102
|
+
9. Update documentation
|
|
103
|
+
|
|
104
|
+
### Updating the Config Validator
|
|
105
|
+
|
|
106
|
+
**⚠️ IMPORTANT**: Whenever you add new configuration options, backends, or change the config schema, you MUST update the config validator.
|
|
107
|
+
|
|
108
|
+
The config validator (`massgen/config_validator.py`) ensures users get helpful error messages when they make configuration mistakes. When you add a new feature:
|
|
109
|
+
|
|
110
|
+
**1. Add to Backend Capabilities** (for new backends)
|
|
111
|
+
```python
|
|
112
|
+
# In massgen/backend/capabilities.py
|
|
113
|
+
BACKEND_CAPABILITIES = {
|
|
114
|
+
# ...
|
|
115
|
+
"your_backend": BackendCapabilities(
|
|
116
|
+
backend_type="your_backend",
|
|
117
|
+
provider_name="Your Backend Name",
|
|
118
|
+
supported_capabilities={"mcp", "web_search", ...},
|
|
119
|
+
builtin_tools=[...],
|
|
120
|
+
filesystem_support="mcp",
|
|
121
|
+
models=["model-1", "model-2"],
|
|
122
|
+
default_model="model-1",
|
|
123
|
+
env_var="YOUR_API_KEY",
|
|
124
|
+
notes="Description of your backend",
|
|
125
|
+
),
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**2. Update Validator Enums** (for new config options)
|
|
130
|
+
```python
|
|
131
|
+
# In massgen/config_validator.py
|
|
132
|
+
# If adding new valid values for existing fields:
|
|
133
|
+
VALID_PERMISSION_MODES = {"default", "acceptEdits", "bypassPermissions", "plan"}
|
|
134
|
+
VALID_DISPLAY_TYPES = {"rich_terminal", "simple"}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**3. Add Validation Logic** (for new config fields)
|
|
138
|
+
```python
|
|
139
|
+
# In massgen/config_validator.py
|
|
140
|
+
# Add validation in the appropriate _validate_* method
|
|
141
|
+
def _validate_your_feature(self, config, result):
|
|
142
|
+
if "your_field" in config:
|
|
143
|
+
# Validate type
|
|
144
|
+
# Validate values
|
|
145
|
+
# Add helpful error messages
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**4. Add Tests for Common Mistakes**
|
|
149
|
+
```python
|
|
150
|
+
# In massgen/tests/test_config_validator.py
|
|
151
|
+
def test_invalid_your_feature(self):
|
|
152
|
+
"""Test invalid your_feature value."""
|
|
153
|
+
config = {
|
|
154
|
+
"your_field": "invalid_value",
|
|
155
|
+
# ...
|
|
156
|
+
}
|
|
157
|
+
validator = ConfigValidator()
|
|
158
|
+
result = validator.validate_config(config)
|
|
159
|
+
assert not result.is_valid()
|
|
160
|
+
assert any("your helpful error message" in error.message for error in result.errors)
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**5. Test Validation**
|
|
164
|
+
```bash
|
|
165
|
+
# Validate all example configs still pass
|
|
166
|
+
uv run python scripts/validate_all_configs.py
|
|
167
|
+
|
|
168
|
+
# Run validator tests
|
|
169
|
+
uv run pytest massgen/tests/test_config_validator.py -v
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Why This Matters:**
|
|
173
|
+
- Users get clear, actionable error messages instead of cryptic failures
|
|
174
|
+
- Prevents common configuration mistakes
|
|
175
|
+
- Makes the framework more accessible to new users
|
|
176
|
+
- Pre-commit hooks automatically validate configs in `massgen/configs/`
|
|
101
177
|
|
|
102
178
|
## 🔒 API Stability & Versioning
|
|
103
179
|
|
|
@@ -269,7 +345,7 @@ Create a `.env` file in the `massgen` directory as described in [README](README.
|
|
|
269
345
|
|
|
270
346
|
## 🔧 Development Workflow
|
|
271
347
|
|
|
272
|
-
> **Important**: Our next version is v0.1.
|
|
348
|
+
> **Important**: Our next version is v0.1.7. If you want to contribute, please contribute to the `dev/v0.1.7` branch (or `main` if dev/v0.1.7 doesn't exist yet).
|
|
273
349
|
|
|
274
350
|
### 1. Create Feature Branch
|
|
275
351
|
|
|
@@ -277,8 +353,8 @@ Create a `.env` file in the `massgen` directory as described in [README](README.
|
|
|
277
353
|
# Fetch latest changes from upstream
|
|
278
354
|
git fetch upstream
|
|
279
355
|
|
|
280
|
-
# Create feature branch from dev/v0.1.
|
|
281
|
-
git checkout -b feature/your-feature-name upstream/dev/v0.1.
|
|
356
|
+
# Create feature branch from dev/v0.1.7 (or main if dev branch doesn't exist yet)
|
|
357
|
+
git checkout -b feature/your-feature-name upstream/dev/v0.1.7
|
|
282
358
|
```
|
|
283
359
|
|
|
284
360
|
### 2. Make Your Changes
|
|
@@ -375,7 +451,7 @@ git push origin feature/your-feature-name
|
|
|
375
451
|
```
|
|
376
452
|
|
|
377
453
|
Then create a pull request on GitHub:
|
|
378
|
-
- Base branch: `dev/v0.1.
|
|
454
|
+
- Base branch: `dev/v0.1.7` (or `main` if dev branch doesn't exist yet)
|
|
379
455
|
- Compare branch: `feature/your-feature-name`
|
|
380
456
|
- Add clear description of changes
|
|
381
457
|
- Link any related issues
|
|
@@ -481,7 +557,7 @@ Have a significant feature idea not covered by existing tracks?
|
|
|
481
557
|
- [ ] Tests pass locally
|
|
482
558
|
- [ ] Documentation is updated if needed
|
|
483
559
|
- [ ] Commit messages follow convention
|
|
484
|
-
- [ ] PR targets `dev/v0.1.
|
|
560
|
+
- [ ] PR targets `dev/v0.1.7` branch (or `main` if dev branch doesn't exist yet)
|
|
485
561
|
|
|
486
562
|
### PR Description Should Include
|
|
487
563
|
|
|
@@ -568,15 +644,20 @@ Every feature needs documentation! Here's how to decide where and what to write.
|
|
|
568
644
|
- Location: `docs/source/quickstart/configuration.rst`
|
|
569
645
|
- What to include: YAML examples, parameter descriptions
|
|
570
646
|
|
|
571
|
-
3. ✅ **
|
|
647
|
+
3. ✅ **Config Validator** - **REQUIRED if feature changes config schema**
|
|
648
|
+
- Location: `massgen/config_validator.py` and `massgen/backend/capabilities.py`
|
|
649
|
+
- What to include: Validation logic, error messages, tests
|
|
650
|
+
- **See**: [Updating the Config Validator](#updating-the-config-validator) section above
|
|
651
|
+
|
|
652
|
+
4. ✅ **API Reference** - If feature changes Python API
|
|
572
653
|
- Location: `docs/source/api/`
|
|
573
654
|
- What to include: Docstrings, function signatures, examples
|
|
574
655
|
|
|
575
|
-
|
|
656
|
+
5. ✅ **CHANGELOG.md** - What changed in this version
|
|
576
657
|
- Location: Root directory
|
|
577
658
|
- What to include: Brief description under "Added", "Changed", or "Fixed"
|
|
578
659
|
|
|
579
|
-
|
|
660
|
+
6. ✅ **Examples** - **REQUIRED for every feature**
|
|
580
661
|
- Location: `docs/source/examples/basic_examples.rst` or feature-specific example files
|
|
581
662
|
- What to include: Runnable code showing feature in action
|
|
582
663
|
- **Note**: Examples are ALWAYS required, even if you write a case study. Case studies showcase real-world usage; examples show basic functionality.
|
|
@@ -657,6 +738,7 @@ Every feature needs documentation! Here's how to decide where and what to write.
|
|
|
657
738
|
|--------------|-------------|----------|-----------|
|
|
658
739
|
| **User Guide** | Every feature | `docs/source/user_guide/` | ✅ Yes |
|
|
659
740
|
| **Config Docs** | Config changes | `docs/source/quickstart/configuration.rst` | ✅ Yes |
|
|
741
|
+
| **Config Validator** | Config schema changes | `massgen/config_validator.py` | ✅ Yes (if config changes) |
|
|
660
742
|
| **API Docs** | API changes | `docs/source/api/` | ✅ Yes |
|
|
661
743
|
| **CHANGELOG** | Every PR | `CHANGELOG.md` | ✅ Yes |
|
|
662
744
|
| **Examples** | **Every feature** | `docs/source/examples/` | ✅ **ALWAYS** |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: massgen
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
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
|
|
@@ -49,6 +49,11 @@ Requires-Dist: ag2>=0.9.10
|
|
|
49
49
|
Requires-Dist: pyautogen>=0.10.0
|
|
50
50
|
Requires-Dist: vertexai>=1.71.1
|
|
51
51
|
Requires-Dist: pytest>=8.4.2
|
|
52
|
+
Requires-Dist: langchain-openai>=1.0.0
|
|
53
|
+
Requires-Dist: langgraph>=1.0.0
|
|
54
|
+
Requires-Dist: langchain-core>=1.0.0
|
|
55
|
+
Requires-Dist: agentscope>=1.0.6
|
|
56
|
+
Requires-Dist: smolagents[litellm]>=1.22.0
|
|
52
57
|
Requires-Dist: python-docx>=1.2.0
|
|
53
58
|
Requires-Dist: openpyxl>=3.1.5
|
|
54
59
|
Requires-Dist: python-pptx>=1.0.2
|
|
@@ -127,7 +132,7 @@ Dynamic: license-file
|
|
|
127
132
|
</p>
|
|
128
133
|
|
|
129
134
|
<p align="center">
|
|
130
|
-
<i>
|
|
135
|
+
<i>Scaling AI with collaborative, continuously improving agents</i>
|
|
131
136
|
</p>
|
|
132
137
|
|
|
133
138
|
MassGen is a cutting-edge multi-agent system that leverages the power of collaborative AI to solve complex tasks. It assigns a task to multiple AI agents who work in parallel, observe each other's progress, and refine their approaches to converge on the best solution to deliver a comprehensive and high-quality result. The power of this "parallel study group" approach is exemplified by advanced systems like xAI's Grok Heavy and Google DeepMind's Gemini Deep Think.
|
|
@@ -151,7 +156,7 @@ This project started with the "threads of thought" and "iterative refinement" id
|
|
|
151
156
|
<details open>
|
|
152
157
|
<summary><h3>🆕 Latest Features</h3></summary>
|
|
153
158
|
|
|
154
|
-
- [v0.1.
|
|
159
|
+
- [v0.1.6 Features](#-latest-features-v016)
|
|
155
160
|
</details>
|
|
156
161
|
|
|
157
162
|
<details open>
|
|
@@ -196,15 +201,15 @@ This project started with the "threads of thought" and "iterative refinement" id
|
|
|
196
201
|
<summary><h3>🗺️ Roadmap</h3></summary>
|
|
197
202
|
|
|
198
203
|
- Recent Achievements
|
|
199
|
-
- [v0.1.
|
|
200
|
-
- [v0.0.3 - v0.1.
|
|
204
|
+
- [v0.1.6](#recent-achievements-v016)
|
|
205
|
+
- [v0.0.3 - v0.1.5](#previous-achievements-v003---v015)
|
|
201
206
|
- [Key Future Enhancements](#key-future-enhancements)
|
|
202
207
|
- Bug Fixes & Backend Improvements
|
|
203
208
|
- Advanced Agent Collaboration
|
|
204
209
|
- Expanded Model, Tool & Agent Integrations
|
|
205
210
|
- Improved Performance & Scalability
|
|
206
211
|
- Enhanced Developer Experience
|
|
207
|
-
- [v0.1.
|
|
212
|
+
- [v0.1.7 Roadmap](#v017-roadmap)
|
|
208
213
|
</details>
|
|
209
214
|
|
|
210
215
|
<details open>
|
|
@@ -229,49 +234,54 @@ This project started with the "threads of thought" and "iterative refinement" id
|
|
|
229
234
|
|
|
230
235
|
---
|
|
231
236
|
|
|
232
|
-
## 🆕 Latest Features (v0.1.
|
|
237
|
+
## 🆕 Latest Features (v0.1.6)
|
|
233
238
|
|
|
234
|
-
**🎉 Released: October 2025**
|
|
239
|
+
**🎉 Released: October 31, 2025**
|
|
235
240
|
|
|
236
|
-
**What's New in v0.1.
|
|
237
|
-
-
|
|
238
|
-
-
|
|
239
|
-
-
|
|
241
|
+
**What's New in v0.1.6:**
|
|
242
|
+
- **🔗 Framework Interoperability** - Use agents from AG2, LangGraph, AgentScope, OpenAI Assistants, and SmoLAgent as tools
|
|
243
|
+
- **✅ Configuration Validator** - Pre-flight YAML validation with detailed error messages and suggestions
|
|
244
|
+
- **🔧 Unified Tool Execution** - Streamlined backend architecture with consistent tool handling
|
|
245
|
+
- **⚡ Gemini Backend Simplification** - Major cleanup reducing codebase by 1,598 lines
|
|
240
246
|
|
|
241
247
|
**Key Improvements:**
|
|
242
|
-
-
|
|
243
|
-
-
|
|
244
|
-
-
|
|
245
|
-
-
|
|
246
|
-
-
|
|
248
|
+
- External agent frameworks work as MassGen custom tools
|
|
249
|
+
- Comprehensive config validation with pre-commit hooks
|
|
250
|
+
- ToolExecutionConfig dataclass for standardized tool handling across backends
|
|
251
|
+
- Simplified Gemini backend with improved maintainability
|
|
252
|
+
- Enhanced ToolManager with category management
|
|
247
253
|
|
|
248
|
-
**
|
|
254
|
+
**Try v0.1.6 Features:**
|
|
249
255
|
```bash
|
|
250
256
|
# Install or upgrade from PyPI
|
|
251
257
|
pip install --upgrade massgen
|
|
252
258
|
|
|
253
|
-
#
|
|
254
|
-
|
|
255
|
-
|
|
259
|
+
# Use AG2 agents as tools for lesson planning (supports streaming)
|
|
260
|
+
# Requirements: pip install pyautogen, OPENAI_API_KEY must be set
|
|
261
|
+
massgen --config massgen/configs/tools/custom_tools/ag2_lesson_planner_example.yaml "Create a lesson plan for photosynthesis"
|
|
256
262
|
|
|
257
|
-
#
|
|
258
|
-
#
|
|
259
|
-
|
|
260
|
-
-v $(pwd)/.massgen/qdrant_storage:/qdrant/storage:z qdrant/qdrant
|
|
261
|
-
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:latest
|
|
263
|
+
# Use LangGraph workflows as tools
|
|
264
|
+
# Requirements: pip install langgraph langchain-openai langchain-core, OPENAI_API_KEY must be set
|
|
265
|
+
massgen --config massgen/configs/tools/custom_tools/langgraph_lesson_planner_example.yaml "Create a lesson plan for photosynthesis"
|
|
262
266
|
|
|
263
|
-
#
|
|
264
|
-
|
|
265
|
-
|
|
267
|
+
# Use AgentScope multi-agent framework as tools
|
|
268
|
+
# Requirements: pip install agentscope, OPENAI_API_KEY must be set
|
|
269
|
+
massgen --config massgen/configs/tools/custom_tools/agentscope_lesson_planner_example.yaml "Create a lesson plan for photosynthesis"
|
|
266
270
|
|
|
267
|
-
#
|
|
268
|
-
#
|
|
271
|
+
# Use OpenAI Assistants API as tools
|
|
272
|
+
# Requirements: pip install openai, OPENAI_API_KEY must be set
|
|
273
|
+
massgen --config massgen/configs/tools/custom_tools/openai_assistant_lesson_planner_example.yaml "Create a lesson plan for photosynthesis"
|
|
269
274
|
|
|
270
|
-
|
|
275
|
+
# Use SmolAgent (HuggingFace) as tools
|
|
276
|
+
# Requirements: pip install smolagents, OPENAI_API_KEY must be set
|
|
277
|
+
massgen --config massgen/configs/tools/custom_tools/smolagent_lesson_planner_example.yaml "Create a lesson plan for photosynthesis"
|
|
271
278
|
|
|
272
|
-
#
|
|
273
|
-
|
|
274
|
-
|
|
279
|
+
# Combine multiple frameworks - AG2 + LangGraph collaboration
|
|
280
|
+
# Requirements: pip install pyautogen langgraph langchain-openai langchain-core, OPENAI_API_KEY must be set
|
|
281
|
+
massgen --config massgen/configs/tools/custom_tools/ag2_and_langgraph_lesson_planner.yaml "Create a lesson plan for photosynthesis"
|
|
282
|
+
|
|
283
|
+
# Validate your configuration before running
|
|
284
|
+
python -m massgen.config_validator your_config.yaml
|
|
275
285
|
```
|
|
276
286
|
|
|
277
287
|
→ [See full release history and examples](massgen/configs/README.md#release-history--examples)
|
|
@@ -1115,43 +1125,60 @@ MassGen is currently in its foundational stage, with a focus on parallel, asynch
|
|
|
1115
1125
|
|
|
1116
1126
|
⚠️ **Early Stage Notice:** As MassGen is in active development, please expect upcoming breaking architecture changes as we continue to refine and improve the system.
|
|
1117
1127
|
|
|
1118
|
-
### Recent Achievements (v0.1.
|
|
1119
|
-
|
|
1120
|
-
**🎉 Released: October 2025**
|
|
1121
|
-
|
|
1122
|
-
####
|
|
1123
|
-
- **
|
|
1124
|
-
- **
|
|
1125
|
-
- **
|
|
1126
|
-
- **
|
|
1127
|
-
- **
|
|
1128
|
-
- **
|
|
1129
|
-
- **
|
|
1130
|
-
- **
|
|
1131
|
-
|
|
1132
|
-
####
|
|
1133
|
-
- **
|
|
1134
|
-
- **
|
|
1135
|
-
- **
|
|
1136
|
-
- **
|
|
1128
|
+
### Recent Achievements (v0.1.6)
|
|
1129
|
+
|
|
1130
|
+
**🎉 Released: October 31, 2025**
|
|
1131
|
+
|
|
1132
|
+
#### Framework Interoperability
|
|
1133
|
+
- **AG2 Integration**: Nested chat functionality wrapped as custom tool for multi-agent lesson planning (supports streaming)
|
|
1134
|
+
- **LangGraph Integration**: Graph-based workflows integrated as tools for structured task execution
|
|
1135
|
+
- **AgentScope Integration**: AgentScope agent system wrapped for collaborative task handling
|
|
1136
|
+
- **OpenAI Assistants Integration**: OpenAI Assistants API integrated as tools for specialized workflows
|
|
1137
|
+
- **SmoLAgent Integration**: HuggingFace SmoLAgent wrapped for flexible agent orchestration
|
|
1138
|
+
- **Cross-Framework Collaboration**: MassGen orchestrates agents from multiple frameworks seamlessly
|
|
1139
|
+
- **Tool Module**: New `massgen/tool/_extraframework_agents/` module with 5 framework integrations
|
|
1140
|
+
- **Streaming Support**: Only AG2 currently supports streaming; other frameworks return complete results
|
|
1141
|
+
|
|
1142
|
+
#### Configuration Validator
|
|
1143
|
+
- **ConfigValidator Class**: Comprehensive YAML validation in `massgen/config_validator.py`
|
|
1144
|
+
- **Memory Validation**: Detailed validation for memory configuration parameters
|
|
1145
|
+
- **Pre-commit Integration**: Automatic configuration validation before commits
|
|
1146
|
+
- **Error Messaging**: Actionable error messages with suggestions for common mistakes
|
|
1147
|
+
- **Test Coverage**: Comprehensive test suite in `massgen/tests/test_config_validator.py`
|
|
1148
|
+
|
|
1149
|
+
#### Backend Architecture Refactoring
|
|
1150
|
+
- **ToolExecutionConfig**: Unified tool execution with new dataclass in `base_with_custom_tool_and_mcp.py`
|
|
1151
|
+
- **ResponseBackend Refactoring**: Unified tool execution flow eliminating duplicate code paths
|
|
1152
|
+
- **ChatCompletionsBackend Refactoring**: Consistent tool handling across Chat Completions providers
|
|
1153
|
+
- **ClaudeBackend Refactoring**: Unified tool execution methods for Claude backend
|
|
1154
|
+
- **Consistent Error Handling**: Standardized status reporting across all tool types
|
|
1155
|
+
|
|
1156
|
+
#### Gemini Backend Simplification
|
|
1157
|
+
- **Module Removal**: Removed `gemini_mcp_manager.py` and `gemini_trackers.py` modules
|
|
1158
|
+
- **Code Consolidation**: Refactored to use manual tool execution via base class
|
|
1159
|
+
- **Streamlined Logic**: Removed continuation logic and duplicate code
|
|
1160
|
+
- **Codebase Reduction**: Net reduction of 1,598 lines through consolidation
|
|
1161
|
+
- **Formatter Updates**: Updated `_gemini_formatter.py` for simplified tool conversion
|
|
1162
|
+
|
|
1163
|
+
#### Custom Tool System Enhancement
|
|
1164
|
+
- **ToolManager Improvements**: Enhanced category management capabilities
|
|
1165
|
+
- **Registration System**: Improved tool registration and validation
|
|
1166
|
+
- **Result Handling**: Enhanced error reporting and async execution support
|
|
1167
|
+
- **Schema Generation**: Improved tool schema generation for LLM consumption
|
|
1137
1168
|
|
|
1138
1169
|
#### Configuration Files
|
|
1139
|
-
- `
|
|
1140
|
-
- `
|
|
1141
|
-
- `
|
|
1142
|
-
- `
|
|
1143
|
-
- `
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
-
|
|
1147
|
-
- Design decisions documentation explaining architectural choices
|
|
1148
|
-
- API reference for PersistentMemory, ConversationMemory, and ContextMonitor classes
|
|
1149
|
-
- Comprehensive troubleshooting guide and monitoring instructions
|
|
1170
|
+
- `ag2_lesson_planner_example.yaml` - AG2 nested chat as custom tool
|
|
1171
|
+
- `langgraph_lesson_planner_example.yaml` - LangGraph workflows integrated
|
|
1172
|
+
- `agentscope_lesson_planner_example.yaml` - AgentScope agent integration
|
|
1173
|
+
- `openai_assistant_lesson_planner_example.yaml` - OpenAI Assistants as tools
|
|
1174
|
+
- `smolagent_lesson_planner_example.yaml` - SmoLAgent integration
|
|
1175
|
+
- `ag2_and_langgraph_lesson_planner.yaml` - Multi-framework collaboration
|
|
1176
|
+
- `ag2_and_openai_assistant_lesson_planner.yaml` - AG2 + OpenAI Assistants combo
|
|
1177
|
+
- `two_models_with_tools_example.yaml` - Multiple models with custom tools
|
|
1150
1178
|
|
|
1151
|
-
|
|
1152
|
-
- Memory test suite: `test_agent_memory.py`, `test_conversation_memory.py`, `test_orchestrator_memory.py`, `test_persistent_memory.py`
|
|
1179
|
+
### Previous Achievements (v0.0.3 - v0.1.5)
|
|
1153
1180
|
|
|
1154
|
-
|
|
1181
|
+
✅ **Memory System (v0.1.5)**: Long-term semantic memory via mem0 integration with fact extraction and retrieval across sessions, short-term conversational memory for active context, automatic context compression when approaching token limits, cross-agent memory sharing with turn-aware filtering, session management for memory isolation and continuation, Qdrant vector database integration for semantic search
|
|
1155
1182
|
|
|
1156
1183
|
✅ **Multimodal Generation Tools (v0.1.4)**: Create images from text via DALL-E API, generate videos from descriptions, text-to-speech with audio transcription support, document generation for PDF/DOCX/XLSX/PPTX formats, image transformation capabilities for existing images
|
|
1157
1184
|
|
|
@@ -1271,21 +1298,22 @@ MassGen is currently in its foundational stage, with a focus on parallel, asynch
|
|
|
1271
1298
|
|
|
1272
1299
|
We welcome community contributions to achieve these goals.
|
|
1273
1300
|
|
|
1274
|
-
### v0.1.
|
|
1301
|
+
### v0.1.7 Roadmap
|
|
1275
1302
|
|
|
1276
|
-
Version 0.1.
|
|
1303
|
+
Version 0.1.7 focuses on agent task planning and rate limiting for improved coordination and cost management:
|
|
1277
1304
|
|
|
1278
1305
|
#### Planned Features
|
|
1279
|
-
- **
|
|
1306
|
+
- **Agent Task Planning System**: Enable agents to organize complex multi-step work with task plans, dependency tracking, and progress monitoring via 8 new MCP planning tools
|
|
1307
|
+
- **Gemini Rate Limiting System**: Multi-dimensional rate limiting (RPM, TPM, RPD) to prevent API spam and manage costs with model-specific limits and configurable thresholds
|
|
1280
1308
|
|
|
1281
1309
|
Key technical approach:
|
|
1282
|
-
- **
|
|
1283
|
-
- **
|
|
1284
|
-
- **
|
|
1310
|
+
- **Task Planning**: MCP-based planning tools with dependency graphs, status tracking, and maximum 100 tasks per plan safety limit
|
|
1311
|
+
- **Rate Limiting**: Sliding window tracking, external YAML configuration, optional CLI flag, mandatory cooldown periods after startup
|
|
1312
|
+
- **Configuration**: Both features are optional and configurable via flags (`enable_agent_task_planning`, `--rate-limit`)
|
|
1285
1313
|
|
|
1286
|
-
**Target Release**: November
|
|
1314
|
+
**Target Release**: November 3, 2025 (Monday @ 9am PT)
|
|
1287
1315
|
|
|
1288
|
-
For detailed milestones and technical specifications, see the [full v0.1.
|
|
1316
|
+
For detailed milestones and technical specifications, see the [full v0.1.7 roadmap](ROADMAP_v0.1.7.md).
|
|
1289
1317
|
|
|
1290
1318
|
---
|
|
1291
1319
|
|