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.

Files changed (461) hide show
  1. {massgen-0.1.5 → massgen-0.1.6}/CHANGELOG.md +66 -3
  2. {massgen-0.1.5 → massgen-0.1.6}/CONTRIBUTING.md +93 -11
  3. {massgen-0.1.5 → massgen-0.1.6}/PKG-INFO +104 -76
  4. {massgen-0.1.5 → massgen-0.1.6}/README.md +98 -75
  5. {massgen-0.1.5 → massgen-0.1.6}/README_PYPI.md +98 -75
  6. massgen-0.1.6/assets/thumbnail.png +0 -0
  7. {massgen-0.1.5 → massgen-0.1.6}/massgen/__init__.py +1 -1
  8. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/base_with_custom_tool_and_mcp.py +453 -23
  9. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/capabilities.py +39 -0
  10. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/chat_completions.py +111 -197
  11. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/claude.py +210 -181
  12. massgen-0.1.6/massgen/backend/gemini.py +1450 -0
  13. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/grok.py +3 -2
  14. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/response.py +160 -220
  15. {massgen-0.1.5 → massgen-0.1.6}/massgen/cli.py +73 -6
  16. {massgen-0.1.5 → massgen-0.1.6}/massgen/config_builder.py +20 -54
  17. massgen-0.1.6/massgen/config_validator.py +931 -0
  18. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/README.md +51 -8
  19. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_custom_tool_with_mcp_example.yaml +1 -0
  20. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_custom_tool_example_no_path.yaml +1 -1
  21. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_custom_tool_with_mcp_example.yaml +1 -0
  22. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/computer_use_browser_example.yaml +1 -1
  23. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/computer_use_docker_example.yaml +1 -1
  24. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_custom_tool_with_mcp_example.yaml +1 -0
  25. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_with_mcp_example.yaml +1 -0
  26. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_with_mcp_example.yaml +1 -0
  27. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_with_mcp_example.yaml +1 -0
  28. massgen-0.1.6/massgen/configs/tools/custom_tools/interop/ag2_and_langgraph_lesson_planner.yaml +65 -0
  29. massgen-0.1.6/massgen/configs/tools/custom_tools/interop/ag2_and_openai_assistant_lesson_planner.yaml +65 -0
  30. massgen-0.1.6/massgen/configs/tools/custom_tools/interop/ag2_lesson_planner_example.yaml +48 -0
  31. massgen-0.1.6/massgen/configs/tools/custom_tools/interop/agentscope_lesson_planner_example.yaml +48 -0
  32. massgen-0.1.6/massgen/configs/tools/custom_tools/interop/langgraph_lesson_planner_example.yaml +49 -0
  33. massgen-0.1.6/massgen/configs/tools/custom_tools/interop/openai_assistant_lesson_planner_example.yaml +50 -0
  34. massgen-0.1.6/massgen/configs/tools/custom_tools/interop/smolagent_lesson_planner_example.yaml +49 -0
  35. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_with_mcp_example.yaml +1 -0
  36. massgen-0.1.6/massgen/configs/tools/custom_tools/two_models_with_tools_example.yaml +44 -0
  37. {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_gemini_formatter.py +61 -15
  38. massgen-0.1.6/massgen/tests/test_ag2_lesson_planner.py +223 -0
  39. massgen-0.1.6/massgen/tests/test_config_validator.py +1156 -0
  40. massgen-0.1.6/massgen/tests/test_langgraph_lesson_planner.py +223 -0
  41. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/__init__.py +2 -9
  42. massgen-0.1.6/massgen/tool/_decorators.py +52 -0
  43. massgen-0.1.6/massgen/tool/_extraframework_agents/ag2_lesson_planner_tool.py +251 -0
  44. massgen-0.1.6/massgen/tool/_extraframework_agents/agentscope_lesson_planner_tool.py +303 -0
  45. massgen-0.1.6/massgen/tool/_extraframework_agents/langgraph_lesson_planner_tool.py +275 -0
  46. massgen-0.1.6/massgen/tool/_extraframework_agents/openai_assistant_lesson_planner_tool.py +247 -0
  47. massgen-0.1.6/massgen/tool/_extraframework_agents/smolagent_lesson_planner_tool.py +180 -0
  48. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_manager.py +102 -16
  49. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_registered_tool.py +3 -0
  50. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_result.py +3 -0
  51. {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/PKG-INFO +104 -76
  52. {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/SOURCES.txt +19 -7
  53. {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/requires.txt +5 -0
  54. {massgen-0.1.5 → massgen-0.1.6}/pyproject.toml +5 -0
  55. massgen-0.1.5/massgen/backend/gemini.py +0 -1994
  56. massgen-0.1.5/massgen/backend/gemini_mcp_manager.py +0 -545
  57. massgen-0.1.5/massgen/backend/gemini_trackers.py +0 -344
  58. massgen-0.1.5/massgen/configs/tools/custom_tools/multimodal_tools/playwright_with_img_understanding.yaml +0 -98
  59. massgen-0.1.5/massgen/configs/tools/custom_tools/multimodal_tools/understand_video_example.yaml +0 -54
  60. massgen-0.1.5/massgen/tools/__init__.py +0 -8
  61. massgen-0.1.5/massgen/tools/_planning_mcp_server.py +0 -520
  62. massgen-0.1.5/massgen/tools/planning_dataclasses.py +0 -434
  63. {massgen-0.1.5 → massgen-0.1.6}/.env.example +0 -0
  64. {massgen-0.1.5 → massgen-0.1.6}/LICENSE +0 -0
  65. {massgen-0.1.5 → massgen-0.1.6}/MANIFEST.in +0 -0
  66. {massgen-0.1.5 → massgen-0.1.6}/assets/MassGen-v1.gif +0 -0
  67. {massgen-0.1.5 → massgen-0.1.6}/assets/cos.png +0 -0
  68. {massgen-0.1.5 → massgen-0.1.6}/assets/favicon.ico +0 -0
  69. {massgen-0.1.5 → massgen-0.1.6}/assets/logo-dark.png +0 -0
  70. {massgen-0.1.5 → massgen-0.1.6}/assets/logo.png +0 -0
  71. {massgen-0.1.5 → massgen-0.1.6}/assets/massgen-demo-light.gif +0 -0
  72. {massgen-0.1.5 → massgen-0.1.6}/assets/massgen-demo.gif +0 -0
  73. {massgen-0.1.5 → massgen-0.1.6}/assets/release_related_figures/context_path.png +0 -0
  74. {massgen-0.1.5 → massgen-0.1.6}/assets/release_related_figures/copy_file.png +0 -0
  75. {massgen-0.1.5 → massgen-0.1.6}/assets/thumbnail_old.png +0 -0
  76. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/__init__.py +0 -0
  77. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/ag2_adapter.py +0 -0
  78. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/base.py +0 -0
  79. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/tests/__init__.py +0 -0
  80. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/tests/test_ag2_adapter.py +0 -0
  81. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/tests/test_agent_adapter.py +0 -0
  82. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/utils/__init__.py +0 -0
  83. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/utils/ag2_utils.py +0 -0
  84. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/utils/tests/__init__.py +0 -0
  85. {massgen-0.1.5 → massgen-0.1.6}/massgen/adapters/utils/tests/test_ag2_utils.py +0 -0
  86. {massgen-0.1.5 → massgen-0.1.6}/massgen/agent_config.py +0 -0
  87. {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/__init__.py +0 -0
  88. {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_api_params_handler_base.py +0 -0
  89. {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_chat_completions_api_params_handler.py +0 -0
  90. {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_claude_api_params_handler.py +0 -0
  91. {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_gemini_api_params_handler.py +0 -0
  92. {massgen-0.1.5 → massgen-0.1.6}/massgen/api_params_handler/_response_api_params_handler.py +0 -0
  93. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/__init__.py +0 -0
  94. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/azure_openai.py +0 -0
  95. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/base.py +0 -0
  96. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/claude_code.py +0 -0
  97. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/cli_base.py +0 -0
  98. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/BACKEND_ARCHITECTURE.md +0 -0
  99. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/CLAUDE_API_RESEARCH.md +0 -0
  100. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/Function calling openai responses.md +0 -0
  101. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/GEMINI_API_DOCUMENTATION.md +0 -0
  102. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/Gemini MCP Integration Analysis.md +0 -0
  103. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/MCP_IMPLEMENTATION_CLAUDE_BACKEND.md +0 -0
  104. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/MCP_INTEGRATION_RESPONSE_BACKEND.md +0 -0
  105. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/OPENAI_GPT5_MODELS.md +0 -0
  106. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/OPENAI_RESPONSE_API_TOOL_CALLS.md +0 -0
  107. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/OPENAI_response_streaming.md +0 -0
  108. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/inference_backend.md +0 -0
  109. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/docs/permissions_and_context_files.md +0 -0
  110. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/external.py +0 -0
  111. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/gemini_utils.py +0 -0
  112. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/inference.py +0 -0
  113. {massgen-0.1.5 → massgen-0.1.6}/massgen/backend/lmstudio.py +0 -0
  114. {massgen-0.1.5 → massgen-0.1.6}/massgen/chat_agent.py +0 -0
  115. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/BACKEND_CONFIGURATION.md +0 -0
  116. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_case_study.yaml +0 -0
  117. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_coder.yaml +0 -0
  118. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_coder_case_study.yaml +0 -0
  119. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_gemini.yaml +0 -0
  120. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_groupchat.yaml +0 -0
  121. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_groupchat_gpt.yaml +0 -0
  122. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/ag2/ag2_single_agent.yaml +0 -0
  123. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/fast_timeout_example.yaml +0 -0
  124. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gemini_4o_claude.yaml +0 -0
  125. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gemini_gpt5nano_claude.yaml +0 -0
  126. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/geminicode_4o_claude.yaml +0 -0
  127. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/geminicode_gpt5nano_claude.yaml +0 -0
  128. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/glm_gemini_claude.yaml +0 -0
  129. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gpt4o_audio_generation.yaml +0 -0
  130. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gpt4o_image_generation.yaml +0 -0
  131. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gpt5nano_glm_qwen.yaml +0 -0
  132. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/gpt5nano_image_understanding.yaml +0 -0
  133. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/three_agents_default.yaml +0 -0
  134. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/three_agents_opensource.yaml +0 -0
  135. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/three_agents_vllm.yaml +0 -0
  136. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/two_agents_gemini.yaml +0 -0
  137. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/two_agents_gpt5.yaml +0 -0
  138. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/two_agents_opensource_lmstudio.yaml +0 -0
  139. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/multi/two_qwen_vllm_sglang.yaml +0 -0
  140. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_agent.yaml +0 -0
  141. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_flash2.5.yaml +0 -0
  142. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gemini2.5pro.yaml +0 -0
  143. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt4o_audio_generation.yaml +0 -0
  144. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt4o_image_generation.yaml +0 -0
  145. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt4o_video_generation.yaml +0 -0
  146. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt5nano.yaml +0 -0
  147. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt5nano_file_search.yaml +0 -0
  148. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gpt5nano_image_understanding.yaml +0 -0
  149. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_gptoss120b.yaml +0 -0
  150. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_openrouter_audio_understanding.yaml +0 -0
  151. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/basic/single/single_qwen_video_understanding.yaml +0 -0
  152. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/code_execution/command_filtering_blacklist.yaml +0 -0
  153. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/code_execution/command_filtering_whitelist.yaml +0 -0
  154. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/code_execution/docker_verification.yaml +0 -0
  155. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/restart_test_controlled.yaml +0 -0
  156. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/restart_test_controlled_filesystem.yaml +0 -0
  157. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/skip_coordination_test.yaml +0 -0
  158. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/debug/test_sdk_migration.yaml +0 -0
  159. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/docs/DISCORD_MCP_SETUP.md +0 -0
  160. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/docs/TWITTER_MCP_ENESCINAR_SETUP.md +0 -0
  161. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/gpt5mini_gemini_baseline_research_to_implementation.yaml +0 -0
  162. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/gpt5mini_gemini_context_window_management.yaml +0 -0
  163. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/gpt5mini_gemini_research_to_implementation.yaml +0 -0
  164. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/gpt5mini_high_reasoning_gemini.yaml +0 -0
  165. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/memory/single_agent_compression_test.yaml +0 -0
  166. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/azure/azure_openai_multi.yaml +0 -0
  167. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/azure/azure_openai_single.yaml +0 -0
  168. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/claude/claude.yaml +0 -0
  169. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/gemini/gemini_gpt5nano.yaml +0 -0
  170. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/local/lmstudio.yaml +0 -0
  171. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/openai/gpt5.yaml +0 -0
  172. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/openai/gpt5_nano.yaml +0 -0
  173. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/others/grok_single_agent.yaml +0 -0
  174. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/others/zai_coding_team.yaml +0 -0
  175. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/providers/others/zai_glm45.yaml +0 -0
  176. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/creative/creative_team.yaml +0 -0
  177. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/creative/travel_planning.yaml +0 -0
  178. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/research/news_analysis.yaml +0 -0
  179. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/research/research_team.yaml +0 -0
  180. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/teams/research/technical_analysis.yaml +0 -0
  181. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/basic_command_execution.yaml +0 -0
  182. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/code_execution_use_case_simple.yaml +0 -0
  183. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_claude_code.yaml +0 -0
  184. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_multi_agent.yaml +0 -0
  185. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_simple.yaml +0 -0
  186. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_with_resource_limits.yaml +0 -0
  187. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/docker_with_sudo.yaml +0 -0
  188. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/code-execution/multi_agent_playwright_automation.yaml +0 -0
  189. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_custom_tool_example.yaml +0 -0
  190. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_custom_tool_example_no_path.yaml +0 -0
  191. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_custom_tool_with_wrong_mcp_example.yaml +0 -0
  192. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_code_wrong_custom_tool_with_mcp_example.yaml +0 -0
  193. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_custom_tool_example.yaml +0 -0
  194. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_custom_tool_with_wrong_mcp_example.yaml +0 -0
  195. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/claude_wrong_custom_tool_with_mcp_example.yaml +0 -0
  196. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/computer_use_example.yaml +0 -0
  197. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/crawl4ai_example.yaml +0 -0
  198. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_custom_tool_example.yaml +0 -0
  199. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_custom_tool_example_no_path.yaml +0 -0
  200. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_custom_tool_with_wrong_mcp_example.yaml +0 -0
  201. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gemini_wrong_custom_tool_with_mcp_example.yaml +0 -0
  202. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/github_issue_market_analysis.yaml +0 -0
  203. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_example.yaml +0 -0
  204. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_example_no_path.yaml +0 -0
  205. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_with_wrong_mcp_example.yaml +0 -0
  206. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt5_nano_wrong_custom_tool_with_mcp_example.yaml +0 -0
  207. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_example.yaml +0 -0
  208. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_example_no_path.yaml +0 -0
  209. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_custom_tool_with_wrong_mcp_example.yaml +0 -0
  210. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/gpt_oss_wrong_custom_tool_with_mcp_example.yaml +0 -0
  211. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_example.yaml +0 -0
  212. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_example_no_path.yaml +0 -0
  213. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_custom_tool_with_wrong_mcp_example.yaml +0 -0
  214. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/grok3_mini_wrong_custom_tool_with_mcp_example.yaml +0 -0
  215. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_multi.yaml +0 -0
  216. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_single.yaml +0 -0
  217. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_multi.yaml +0 -0
  218. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_single.yaml +0 -0
  219. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_multi.yaml +0 -0
  220. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_single.yaml +0 -0
  221. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_multi.yaml +0 -0
  222. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_single.yaml +0 -0
  223. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/understand_audio.yaml +0 -0
  224. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/understand_file.yaml +0 -0
  225. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/understand_image.yaml +0 -0
  226. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/understand_video.yaml +0 -0
  227. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/multimodal_tools/youtube_video_analysis.yaml +0 -0
  228. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_example.yaml +0 -0
  229. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_example_no_path.yaml +0 -0
  230. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_custom_tool_with_wrong_mcp_example.yaml +0 -0
  231. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_api_wrong_custom_tool_with_mcp_example.yaml +0 -0
  232. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_example.yaml +0 -0
  233. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_example_no_path.yaml +0 -0
  234. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_mcp_example.yaml +0 -0
  235. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_wrong_mcp_example.yaml +0 -0
  236. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/custom_tools/qwen_local_wrong_custom_tool_with_mcp_example.yaml +0 -0
  237. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/cc_gpt5_gemini_filesystem.yaml +0 -0
  238. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_context_sharing.yaml +0 -0
  239. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_flash2.5.yaml +0 -0
  240. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_flash2.5_gptoss.yaml +0 -0
  241. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_gpt5nano.yaml +0 -0
  242. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/claude_code_single.yaml +0 -0
  243. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/fs_permissions_test.yaml +0 -0
  244. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gemini_gemini_workspace_cleanup.yaml +0 -0
  245. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gemini_gpt5_filesystem_casestudy.yaml +0 -0
  246. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gemini_gpt5nano_file_context_path.yaml +0 -0
  247. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gemini_gpt5nano_protected_paths.yaml +0 -0
  248. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/gpt5mini_cc_fs_context_path.yaml +0 -0
  249. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/grok4_gpt5_gemini_filesystem.yaml +0 -0
  250. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/multiturn/grok4_gpt5_claude_code_filesystem_multiturn.yaml +0 -0
  251. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/multiturn/grok4_gpt5_gemini_filesystem_multiturn.yaml +0 -0
  252. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/multiturn/two_claude_code_filesystem_multiturn.yaml +0 -0
  253. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/filesystem/multiturn/two_gemini_flash_filesystem_multiturn.yaml +0 -0
  254. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_code_discord_mcp_example.yaml +0 -0
  255. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_code_simple_mcp.yaml +0 -0
  256. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_code_twitter_mcp_example.yaml +0 -0
  257. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_mcp_example.yaml +0 -0
  258. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/claude_mcp_test.yaml +0 -0
  259. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/five_agents_travel_mcp_test.yaml +0 -0
  260. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/five_agents_weather_mcp_test.yaml +0 -0
  261. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_example.yaml +0 -0
  262. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test.yaml +0 -0
  263. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_sharing.yaml +0 -0
  264. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_single_agent.yaml +0 -0
  265. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_filesystem_test_with_claude_code.yaml +0 -0
  266. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_mcp_test.yaml +0 -0
  267. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gemini_notion_mcp.yaml +0 -0
  268. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt5_nano_mcp_example.yaml +0 -0
  269. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt5_nano_mcp_test.yaml +0 -0
  270. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt5mini_claude_code_discord_mcp_example.yaml +0 -0
  271. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt_oss_mcp_example.yaml +0 -0
  272. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/gpt_oss_mcp_test.yaml +0 -0
  273. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/grok3_mini_mcp_example.yaml +0 -0
  274. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/grok3_mini_mcp_test.yaml +0 -0
  275. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/multimcp_gemini.yaml +0 -0
  276. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/qwen_api_mcp_example.yaml +0 -0
  277. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/qwen_api_mcp_test.yaml +0 -0
  278. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/qwen_local_mcp_example.yaml +0 -0
  279. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/mcp/qwen_local_mcp_test.yaml +0 -0
  280. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml +0 -0
  281. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml +0 -0
  282. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml +0 -0
  283. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/five_agents_twitter_mcp_planning_mode.yaml +0 -0
  284. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/planning/gpt5_mini_case_study_mcp_planning_mode.yaml +0 -0
  285. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/claude_streamable_http_test.yaml +0 -0
  286. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/gemini_streamable_http_test.yaml +0 -0
  287. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/gpt5_mini_streamable_http_test.yaml +0 -0
  288. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/gpt_oss_streamable_http_test.yaml +0 -0
  289. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/grok3_mini_streamable_http_test.yaml +0 -0
  290. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/qwen_api_streamable_http_test.yaml +0 -0
  291. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/tools/web-search/qwen_local_streamable_http_test.yaml +0 -0
  292. {massgen-0.1.5 → massgen-0.1.6}/massgen/configs/voting/gemini_gpt_voting_sensitivity.yaml +0 -0
  293. {massgen-0.1.5 → massgen-0.1.6}/massgen/coordination_tracker.py +0 -0
  294. {massgen-0.1.5 → massgen-0.1.6}/massgen/docker/README.md +0 -0
  295. {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/__init__.py +0 -0
  296. {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_base.py +0 -0
  297. {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_code_execution_server.py +0 -0
  298. {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_docker_manager.py +0 -0
  299. {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_file_operation_tracker.py +0 -0
  300. {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_filesystem_manager.py +0 -0
  301. {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_path_permission_manager.py +0 -0
  302. {massgen-0.1.5 → massgen-0.1.6}/massgen/filesystem_manager/_workspace_tools_server.py +0 -0
  303. {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/__init__.py +0 -0
  304. {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_chat_completions_formatter.py +0 -0
  305. {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_claude_formatter.py +0 -0
  306. {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_formatter_base.py +0 -0
  307. {massgen-0.1.5 → massgen-0.1.6}/massgen/formatter/_response_formatter.py +0 -0
  308. {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/__init__.py +0 -0
  309. {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/coordination_ui.py +0 -0
  310. {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/__init__.py +0 -0
  311. {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/base_display.py +0 -0
  312. {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/create_coordination_table.py +0 -0
  313. {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/rich_terminal_display.py +0 -0
  314. {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/simple_display.py +0 -0
  315. {massgen-0.1.5 → massgen-0.1.6}/massgen/frontend/displays/terminal_display.py +0 -0
  316. {massgen-0.1.5 → massgen-0.1.6}/massgen/logger_config.py +0 -0
  317. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/README.md +0 -0
  318. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/__init__.py +0 -0
  319. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/backend_utils.py +0 -0
  320. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/circuit_breaker.py +0 -0
  321. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/client.py +0 -0
  322. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/config_validator.py +0 -0
  323. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/circuit_breaker.md +0 -0
  324. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/client.md +0 -0
  325. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/config_validator.md +0 -0
  326. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/exceptions.md +0 -0
  327. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/docs/security.md +0 -0
  328. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/exceptions.py +0 -0
  329. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/hooks.py +0 -0
  330. {massgen-0.1.5 → massgen-0.1.6}/massgen/mcp_tools/security.py +0 -0
  331. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/README.md +0 -0
  332. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/__init__.py +0 -0
  333. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_base.py +0 -0
  334. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_compression.py +0 -0
  335. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_context_monitor.py +0 -0
  336. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_conversation.py +0 -0
  337. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_fact_extraction_prompts.py +0 -0
  338. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_mem0_adapters.py +0 -0
  339. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/_persistent.py +0 -0
  340. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docker-compose.qdrant.yml +0 -0
  341. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/DESIGN.md +0 -0
  342. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/QUICKSTART.md +0 -0
  343. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/SUMMARY.md +0 -0
  344. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/agent_use_memory.md +0 -0
  345. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/docs/orchestrator_use_memory.md +0 -0
  346. {massgen-0.1.5 → massgen-0.1.6}/massgen/memory/examples.py +0 -0
  347. {massgen-0.1.5 → massgen-0.1.6}/massgen/message_templates.py +0 -0
  348. {massgen-0.1.5 → massgen-0.1.6}/massgen/orchestrator.py +0 -0
  349. {massgen-0.1.5 → massgen-0.1.6}/massgen/stream_chunk/__init__.py +0 -0
  350. {massgen-0.1.5 → massgen-0.1.6}/massgen/stream_chunk/base.py +0 -0
  351. {massgen-0.1.5 → massgen-0.1.6}/massgen/stream_chunk/multimodal.py +0 -0
  352. {massgen-0.1.5 → massgen-0.1.6}/massgen/stream_chunk/text.py +0 -0
  353. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/__init__.py +0 -0
  354. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/custom_tools_example.py +0 -0
  355. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/mcp_test_server.py +0 -0
  356. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/memory/test_agent_compression.py +0 -0
  357. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/memory/test_context_window_management.py +0 -0
  358. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/memory/test_force_compression.py +0 -0
  359. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/memory/test_simple_compression.py +0 -0
  360. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/multi_turn_conversation_design.md +0 -0
  361. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/multiturn_llm_input_analysis.md +0 -0
  362. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_agent_memory.py +0 -0
  363. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_azure_openai_backend.py +0 -0
  364. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_backend_capabilities.py +0 -0
  365. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_backend_event_loop_all.py +0 -0
  366. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_binary_file_blocking.py +0 -0
  367. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_case_studies.md +0 -0
  368. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_chat_completions_refactor.py +0 -0
  369. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_claude_backend.py +0 -0
  370. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_claude_code.py +0 -0
  371. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_claude_code_context_sharing.py +0 -0
  372. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_claude_code_orchestrator.py +0 -0
  373. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_cli_backends.py +0 -0
  374. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_code_execution.py +0 -0
  375. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_config_builder.py +0 -0
  376. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_conversation_memory.py +0 -0
  377. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_custom_tools.py +0 -0
  378. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_external_agent_backend.py +0 -0
  379. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_final_presentation_fallback.py +0 -0
  380. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_gemini_planning_mode.py +0 -0
  381. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_grok_backend.py +0 -0
  382. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_http_mcp_server.py +0 -0
  383. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_integration_simple.py +0 -0
  384. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_intelligent_planning_mode.py +0 -0
  385. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_mcp_blocking.py +0 -0
  386. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_message_context_building.py +0 -0
  387. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_multimodal_size_limits.py +0 -0
  388. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_orchestration_restart.py +0 -0
  389. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_orchestrator_final_presentation.py +0 -0
  390. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_orchestrator_memory.py +0 -0
  391. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_path_permission_manager.py +0 -0
  392. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_persistent_memory.py +0 -0
  393. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_rich_terminal_display.py +0 -0
  394. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_timeout.py +0 -0
  395. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_tools.py +0 -0
  396. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_v3_3agents.py +0 -0
  397. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_v3_simple.py +0 -0
  398. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_v3_three_agents.py +0 -0
  399. {massgen-0.1.5 → massgen-0.1.6}/massgen/tests/test_v3_two_agents.py +0 -0
  400. {massgen-0.1.5 → massgen-0.1.6}/massgen/token_manager/__init__.py +0 -0
  401. {massgen-0.1.5 → massgen-0.1.6}/massgen/token_manager/token_manager.py +0 -0
  402. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/README.md +0 -0
  403. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_async_helpers.py +0 -0
  404. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_basic/__init__.py +0 -0
  405. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_basic/_two_num_tool.py +0 -0
  406. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_code_executors/__init__.py +0 -0
  407. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_code_executors/_python_executor.py +0 -0
  408. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_code_executors/_shell_executor.py +0 -0
  409. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_exceptions.py +0 -0
  410. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_file_handlers/__init__.py +0 -0
  411. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_file_handlers/_file_operations.py +0 -0
  412. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/image_to_image_generation.py +0 -0
  413. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_file_generation.py +0 -0
  414. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_image_generation.py +0 -0
  415. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_speech_continue_generation.py +0 -0
  416. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_speech_transcription_generation.py +0 -0
  417. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/text_to_video_generation.py +0 -0
  418. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/understand_audio.py +0 -0
  419. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/understand_file.py +0 -0
  420. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/understand_image.py +0 -0
  421. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_multimodal_tools/understand_video.py +0 -0
  422. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_self_evolution/_github_issue_analyzer.py +0 -0
  423. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/_web_tools/crawl4ai_tool.py +0 -0
  424. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/builtin_tools.md +0 -0
  425. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/exceptions.md +0 -0
  426. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/execution_results.md +0 -0
  427. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/manager.md +0 -0
  428. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/multimodal_tools.md +0 -0
  429. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/docs/workflow_toolkits.md +0 -0
  430. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/__init__.py +0 -0
  431. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/base.py +0 -0
  432. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/new_answer.py +0 -0
  433. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/post_evaluation.py +0 -0
  434. {massgen-0.1.5 → massgen-0.1.6}/massgen/tool/workflow_toolkits/vote.py +0 -0
  435. {massgen-0.1.5 → massgen-0.1.6}/massgen/utils.py +0 -0
  436. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/README.md +0 -0
  437. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/__init__.py +0 -0
  438. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/agent.py +0 -0
  439. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/agents.py +0 -0
  440. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/backends/gemini.py +0 -0
  441. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/backends/grok.py +0 -0
  442. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/backends/oai.py +0 -0
  443. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/cli.py +0 -0
  444. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/config.py +0 -0
  445. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/examples/fast-4o-mini-config.yaml +0 -0
  446. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/examples/fast_config.yaml +0 -0
  447. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/examples/production.yaml +0 -0
  448. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/examples/single_agent.yaml +0 -0
  449. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/logging.py +0 -0
  450. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/main.py +0 -0
  451. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/orchestrator.py +0 -0
  452. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/streaming_display.py +0 -0
  453. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/tools.py +0 -0
  454. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/types.py +0 -0
  455. {massgen-0.1.5 → massgen-0.1.6}/massgen/v1/utils.py +0 -0
  456. {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/dependency_links.txt +0 -0
  457. {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/entry_points.txt +0 -0
  458. {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/not-zip-safe +0 -0
  459. {massgen-0.1.5 → massgen-0.1.6}/massgen.egg-info/top_level.txt +0 -0
  460. {massgen-0.1.5 → massgen-0.1.6}/requirements.txt +0 -0
  461. {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. Update configuration templates in `massgen/configs/`
99
- 6. Add tests in `massgen/tests/`
100
- 7. Update documentation
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.6. If you want to contribute, please contribute to the `dev/v0.1.6` branch.
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.6
281
- git checkout -b feature/your-feature-name upstream/dev/v0.1.6
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.6`
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.6` branch
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. ✅ **API Reference** - If feature changes Python API
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
- 4. ✅ **CHANGELOG.md** - What changed in this version
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
- 5. ✅ **Examples** - **REQUIRED for every feature**
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.5
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>Multi-agent scaling through intelligent collaboration in Grok Heavy style</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.5 Features](#-latest-features-v015)
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.5](#recent-achievements-v015)
200
- - [v0.0.3 - v0.1.4](#previous-achievements-v003---v014)
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.6 Roadmap](#v016-roadmap)
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.5)
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.5:**
237
- - **🧠 Long-Term Memory System** - Semantic memory with retrieval across sessions
238
- - **🗜️ Automatic Context Compression** - Smart compression when approaching token limits
239
- - **🔄 Memory Sharing for Multi-Turn Conversations** - Agents access knowledge from previous turns
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
- - Persistent memory via mem0 integration with vector storage
243
- - Conversational memory for short-term context tracking
244
- - Context monitoring with real-time token usage tracking
245
- - Session management for memory isolation and continuation
246
- - Qdrant vector database integration for semantic search
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
- **Get Started with v0.1.5:**
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
- # Multi-agent collaboration with context compression
254
- massgen --config @examples/memory/gpt5mini_gemini_context_window_management \
255
- "Analyze the MassGen codebase comprehensively. Create an architecture document that explains: (1) Core components and their responsibilities, (2) How different modules interact, (3) Key design patterns used, (4) Main entry points and request flows. Read > 30 files to build a complete understanding."
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
- # Research-to-implementation workflow with memory persistence
258
- # Prerequisites: Start Qdrant and crawl4ai Docker containers
259
- docker run -d -p 6333:6333 -p 6334:6334 \
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
- # Session 1 - Research phase:
264
- massgen --config @examples/memory/gpt5mini_gemini_research_to_implementation \
265
- "Use crawl4ai to research the latest multi-agent AI papers and techniques from 2025. Focus on: coordination mechanisms, voting strategies, tool-use patterns, and architectural innovations."
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
- # Session 2 - Implementation analysis (continue in same session):
268
- # "Based on the multi-agent research from earlier, which techniques should we implement in MassGen to make it more state-of-the-art? Consider MassGen's current architecture and what would be most impactful."
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
- See [Multi-Turn Persistent Memory Case Study](docs/source/examples/case_studies/multi-turn-persistent-memory.md) for detailed analysis
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
- # Test automatic context compression
273
- massgen --config @examples/memory/single_agent_compression_test \
274
- "Analyze the MassGen codebase comprehensively. Create an architecture document that explains: (1) Core components and their responsibilities, (2) How different modules interact, (3) Key design patterns used, (4) Main entry points and request flows. Read > 30 files to build a complete understanding."
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.5)
1119
-
1120
- **🎉 Released: October 2025**
1121
-
1122
- #### Memory System
1123
- - **PersistentMemory**: Long-term semantic memory storage via mem0 integration with fact extraction and retrieval across sessions
1124
- - **ConversationMemory**: Short-term verbatim message tracking for active conversation context
1125
- - **Automatic Context Compression**: Smart compression when approaching token limits with configurable thresholds (trigger_threshold, target_ratio)
1126
- - **Cross-Agent Memory Sharing**: Agents share memory with turn-aware filtering to prevent temporal information leakage
1127
- - **Context Monitoring**: Real-time token usage tracking with automatic compression triggers
1128
- - **Session Management**: Memory isolation and continuation across runs with session naming support
1129
- - **Qdrant Integration**: Vector database support for efficient semantic search in both server and local modes
1130
- - **Configurable Memory Providers**: Support for OpenAI, Anthropic, Groq, and other mem0-compatible LLM and embedding providers
1131
-
1132
- #### Memory Configuration
1133
- - **Global and Per-Agent Control**: Enable/disable memory at system or individual agent level
1134
- - **Compression Settings**: Configurable trigger thresholds and target ratios for context window management
1135
- - **Retrieval Configuration**: Customizable retrieval limits and smart filtering to exclude recent messages
1136
- - **Memory Persistence**: Session continuation with named sessions for cross-session memory access
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
- - `gpt5mini_gemini_context_window_management.yaml` - Multi-agent with automatic context compression
1140
- - `gpt5mini_gemini_research_to_implementation.yaml` - Research-to-implementation workflow with memory
1141
- - `gpt5mini_high_reasoning_gemini.yaml` - High reasoning agents with memory integration
1142
- - `gpt5mini_gemini_baseline_research_to_implementation.yaml` - Baseline research workflow for comparison
1143
- - `single_agent_compression_test.yaml` - Single agent testing context compression behavior
1144
-
1145
- #### Documentation
1146
- - Complete memory system user guide: `docs/source/user_guide/memory.rst`
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
- #### Testing Infrastructure
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
- ### Previous Achievements (v0.0.3 - v0.1.4)
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.6 Roadmap
1301
+ ### v0.1.7 Roadmap
1275
1302
 
1276
- Version 0.1.6 focuses on backend code refactoring for improved maintainability and developer experience:
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
- - **Backend Code Refactoring**: Major code refactoring for improved maintainability and developer experience with better code organization, modularity, and architectural improvements
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
- - **Code Architecture**: Enhanced code organization with improved modularity and separation of concerns
1283
- - **Developer Experience**: Simplified backend extension points, improved API clarity, better error handling and debugging support
1284
- - **Quality Assurance**: Comprehensive testing to ensure no functionality regressions
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 1, 2025 (Friday @ 9am PT)
1314
+ **Target Release**: November 3, 2025 (Monday @ 9am PT)
1287
1315
 
1288
- For detailed milestones and technical specifications, see the [full v0.1.6 roadmap](ROADMAP_v0.1.6.md).
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