massgen 0.1.2__py3-none-any.whl → 0.1.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. massgen/__init__.py +1 -1
  2. massgen/agent_config.py +33 -7
  3. massgen/api_params_handler/_api_params_handler_base.py +3 -0
  4. massgen/backend/azure_openai.py +9 -1
  5. massgen/backend/base.py +4 -0
  6. massgen/backend/claude_code.py +9 -1
  7. massgen/backend/gemini.py +35 -6
  8. massgen/backend/gemini_utils.py +30 -0
  9. massgen/chat_agent.py +9 -3
  10. massgen/cli.py +291 -43
  11. massgen/config_builder.py +163 -18
  12. massgen/configs/README.md +52 -6
  13. massgen/configs/debug/restart_test_controlled.yaml +60 -0
  14. massgen/configs/debug/restart_test_controlled_filesystem.yaml +73 -0
  15. massgen/configs/tools/code-execution/docker_with_sudo.yaml +35 -0
  16. massgen/configs/tools/custom_tools/computer_use_browser_example.yaml +56 -0
  17. massgen/configs/tools/custom_tools/computer_use_docker_example.yaml +65 -0
  18. massgen/configs/tools/custom_tools/computer_use_example.yaml +50 -0
  19. massgen/configs/tools/custom_tools/crawl4ai_mcp_example.yaml +67 -0
  20. massgen/configs/tools/custom_tools/crawl4ai_multi_agent_example.yaml +68 -0
  21. massgen/configs/tools/custom_tools/multimodal_tools/playwright_with_img_understanding.yaml +98 -0
  22. massgen/configs/tools/custom_tools/multimodal_tools/understand_audio.yaml +33 -0
  23. massgen/configs/tools/custom_tools/multimodal_tools/understand_file.yaml +34 -0
  24. massgen/configs/tools/custom_tools/multimodal_tools/understand_image.yaml +33 -0
  25. massgen/configs/tools/custom_tools/multimodal_tools/understand_video.yaml +34 -0
  26. massgen/configs/tools/custom_tools/multimodal_tools/understand_video_example.yaml +54 -0
  27. massgen/configs/tools/custom_tools/multimodal_tools/youtube_video_analysis.yaml +59 -0
  28. massgen/configs/tools/memory/README.md +199 -0
  29. massgen/configs/tools/memory/gpt5mini_gemini_context_window_management.yaml +131 -0
  30. massgen/configs/tools/memory/gpt5mini_gemini_no_persistent_memory.yaml +133 -0
  31. massgen/configs/tools/memory/test_context_window_management.py +286 -0
  32. massgen/configs/tools/multimodal/gpt5mini_gpt5nano_documentation_evolution.yaml +97 -0
  33. massgen/docker/README.md +83 -0
  34. massgen/filesystem_manager/_code_execution_server.py +22 -7
  35. massgen/filesystem_manager/_docker_manager.py +21 -1
  36. massgen/filesystem_manager/_filesystem_manager.py +8 -0
  37. massgen/filesystem_manager/_workspace_tools_server.py +0 -997
  38. massgen/formatter/_gemini_formatter.py +73 -0
  39. massgen/frontend/coordination_ui.py +175 -257
  40. massgen/frontend/displays/base_display.py +29 -0
  41. massgen/frontend/displays/rich_terminal_display.py +155 -9
  42. massgen/frontend/displays/simple_display.py +21 -0
  43. massgen/frontend/displays/terminal_display.py +22 -2
  44. massgen/logger_config.py +50 -6
  45. massgen/message_templates.py +123 -3
  46. massgen/orchestrator.py +319 -38
  47. massgen/tests/test_code_execution.py +178 -0
  48. massgen/tests/test_orchestration_restart.py +204 -0
  49. massgen/tool/__init__.py +4 -0
  50. massgen/tool/_multimodal_tools/understand_audio.py +193 -0
  51. massgen/tool/_multimodal_tools/understand_file.py +550 -0
  52. massgen/tool/_multimodal_tools/understand_image.py +212 -0
  53. massgen/tool/_multimodal_tools/understand_video.py +313 -0
  54. massgen/tool/docs/multimodal_tools.md +779 -0
  55. massgen/tool/workflow_toolkits/__init__.py +26 -0
  56. massgen/tool/workflow_toolkits/post_evaluation.py +216 -0
  57. massgen/utils.py +1 -0
  58. {massgen-0.1.2.dist-info → massgen-0.1.3.dist-info}/METADATA +8 -3
  59. {massgen-0.1.2.dist-info → massgen-0.1.3.dist-info}/RECORD +63 -36
  60. {massgen-0.1.2.dist-info → massgen-0.1.3.dist-info}/WHEEL +0 -0
  61. {massgen-0.1.2.dist-info → massgen-0.1.3.dist-info}/entry_points.txt +0 -0
  62. {massgen-0.1.2.dist-info → massgen-0.1.3.dist-info}/licenses/LICENSE +0 -0
  63. {massgen-0.1.2.dist-info → massgen-0.1.3.dist-info}/top_level.txt +0 -0
@@ -7,6 +7,7 @@ from typing import Dict, List, Optional
7
7
 
8
8
  from .base import BaseToolkit, ToolType
9
9
  from .new_answer import NewAnswerToolkit
10
+ from .post_evaluation import PostEvaluationToolkit
10
11
  from .vote import VoteToolkit
11
12
 
12
13
  __all__ = [
@@ -14,7 +15,9 @@ __all__ = [
14
15
  "ToolType",
15
16
  "NewAnswerToolkit",
16
17
  "VoteToolkit",
18
+ "PostEvaluationToolkit",
17
19
  "get_workflow_tools",
20
+ "get_post_evaluation_tools",
18
21
  ]
19
22
 
20
23
 
@@ -55,3 +58,26 @@ def get_workflow_tools(
55
58
  tools.extend(vote_toolkit.get_tools(config))
56
59
 
57
60
  return tools
61
+
62
+
63
+ def get_post_evaluation_tools(
64
+ template_overrides: Optional[Dict] = None,
65
+ api_format: str = "chat_completions",
66
+ ) -> List[Dict]:
67
+ """
68
+ Get post-evaluation tool definitions (submit and restart_orchestration).
69
+
70
+ Args:
71
+ template_overrides: Optional template overrides
72
+ api_format: API format to use (chat_completions, claude, response)
73
+
74
+ Returns:
75
+ List of tool definitions [submit, restart_orchestration]
76
+ """
77
+ config = {
78
+ "api_format": api_format,
79
+ "enable_post_evaluation_tools": True,
80
+ }
81
+
82
+ post_eval_toolkit = PostEvaluationToolkit(template_overrides=template_overrides)
83
+ return post_eval_toolkit.get_tools(config)
@@ -0,0 +1,216 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Post-evaluation toolkit for MassGen orchestration restart feature.
4
+
5
+ This toolkit provides tools for post-evaluation phase where the winning agent
6
+ evaluates its own answer and decides whether to submit or restart with improvements.
7
+ """
8
+
9
+ from typing import Any, Dict, List, Optional
10
+
11
+ from .base import BaseToolkit, ToolType
12
+
13
+
14
+ class PostEvaluationToolkit(BaseToolkit):
15
+ """Post-evaluation toolkit for orchestration restart feature."""
16
+
17
+ def __init__(self, template_overrides: Optional[Dict[str, Any]] = None):
18
+ """
19
+ Initialize the PostEvaluation toolkit.
20
+
21
+ Args:
22
+ template_overrides: Optional template overrides for customization
23
+ """
24
+ self._template_overrides = template_overrides or {}
25
+
26
+ @property
27
+ def toolkit_id(self) -> str:
28
+ """Unique identifier for post-evaluation toolkit."""
29
+ return "post_evaluation"
30
+
31
+ @property
32
+ def toolkit_type(self) -> ToolType:
33
+ """Type of this toolkit."""
34
+ return ToolType.WORKFLOW
35
+
36
+ def is_enabled(self, config: Dict[str, Any]) -> bool:
37
+ """
38
+ Check if post-evaluation is enabled in configuration.
39
+
40
+ Args:
41
+ config: Configuration dictionary.
42
+
43
+ Returns:
44
+ True if post-evaluation tools are enabled.
45
+ """
46
+ return config.get("enable_post_evaluation_tools", True)
47
+
48
+ def get_tools(self, config: Dict[str, Any]) -> List[Dict[str, Any]]:
49
+ """
50
+ Get post-evaluation tool definitions based on API format.
51
+
52
+ Args:
53
+ config: Configuration including api_format.
54
+
55
+ Returns:
56
+ List containing submit and restart_orchestration tool definitions.
57
+ """
58
+ api_format = config.get("api_format", "chat_completions")
59
+
60
+ if api_format == "claude":
61
+ # Claude native format
62
+ return self._get_claude_tools()
63
+ elif api_format == "response":
64
+ # Response API format
65
+ return self._get_response_tools()
66
+ else:
67
+ # Default Chat Completions format
68
+ return self._get_chat_completions_tools()
69
+
70
+ def _get_claude_tools(self) -> List[Dict[str, Any]]:
71
+ """Get Claude native format tools."""
72
+ submit_tool = {
73
+ "name": "submit",
74
+ "description": "Confirm that the final answer fully addresses the original task and submit it to the user. Use this when the answer is complete, accurate, and satisfactory.",
75
+ "input_schema": {
76
+ "type": "object",
77
+ "properties": {
78
+ "confirmed": {
79
+ "type": "boolean",
80
+ "description": "Set to true to confirm the answer is satisfactory",
81
+ "enum": [True],
82
+ },
83
+ },
84
+ "required": ["confirmed"],
85
+ },
86
+ }
87
+
88
+ restart_tool = {
89
+ "name": "restart_orchestration",
90
+ "description": "Restart the orchestration process with specific guidance for improvement. Use this when the answer is incomplete, incorrect, or does not fully address the original task.",
91
+ "input_schema": {
92
+ "type": "object",
93
+ "properties": {
94
+ "reason": {
95
+ "type": "string",
96
+ "description": "Clear explanation of why the answer is insufficient (e.g., 'The task required descriptions of two Beatles, but only John Lennon was described')",
97
+ },
98
+ "instructions": {
99
+ "type": "string",
100
+ "description": (
101
+ "Detailed, actionable guidance for agents on the next attempt "
102
+ "(e.g., 'Provide two descriptions (John Lennon AND Paul McCartney). "
103
+ "Each should include: birth year, role in band, notable songs, impact on music. "
104
+ "Use 4-6 sentences per person.')"
105
+ ),
106
+ },
107
+ },
108
+ "required": ["reason", "instructions"],
109
+ },
110
+ }
111
+
112
+ return [submit_tool, restart_tool]
113
+
114
+ def _get_response_tools(self) -> List[Dict[str, Any]]:
115
+ """Get Response API format tools."""
116
+ submit_tool = {
117
+ "type": "function",
118
+ "function": {
119
+ "name": "submit",
120
+ "description": "Confirm that the final answer fully addresses the original task and submit it to the user. Use this when the answer is complete, accurate, and satisfactory.",
121
+ "parameters": {
122
+ "type": "object",
123
+ "properties": {
124
+ "confirmed": {
125
+ "type": "boolean",
126
+ "description": "Set to true to confirm the answer is satisfactory",
127
+ "enum": [True],
128
+ },
129
+ },
130
+ "required": ["confirmed"],
131
+ },
132
+ },
133
+ }
134
+
135
+ restart_tool = {
136
+ "type": "function",
137
+ "function": {
138
+ "name": "restart_orchestration",
139
+ "description": (
140
+ "Restart the orchestration process with specific guidance for improvement. " "Use this when the answer is incomplete, incorrect, or does not fully address the original task."
141
+ ),
142
+ "parameters": {
143
+ "type": "object",
144
+ "properties": {
145
+ "reason": {
146
+ "type": "string",
147
+ "description": "Clear explanation of why the answer is insufficient (e.g., 'The task required descriptions of two Beatles, but only John Lennon was described')",
148
+ },
149
+ "instructions": {
150
+ "type": "string",
151
+ "description": (
152
+ "Detailed, actionable guidance for agents on the next attempt "
153
+ "(e.g., 'Provide two descriptions (John Lennon AND Paul McCartney). "
154
+ "Each should include: birth year, role in band, notable songs, impact on music. "
155
+ "Use 4-6 sentences per person.')"
156
+ ),
157
+ },
158
+ },
159
+ "required": ["reason", "instructions"],
160
+ },
161
+ },
162
+ }
163
+
164
+ return [submit_tool, restart_tool]
165
+
166
+ def _get_chat_completions_tools(self) -> List[Dict[str, Any]]:
167
+ """Get Chat Completions format tools."""
168
+ submit_tool = {
169
+ "type": "function",
170
+ "function": {
171
+ "name": "submit",
172
+ "description": "Confirm that the final answer fully addresses the original task and submit it to the user. Use this when the answer is complete, accurate, and satisfactory.",
173
+ "parameters": {
174
+ "type": "object",
175
+ "properties": {
176
+ "confirmed": {
177
+ "type": "boolean",
178
+ "description": "Set to true to confirm the answer is satisfactory",
179
+ "enum": [True],
180
+ },
181
+ },
182
+ "required": ["confirmed"],
183
+ },
184
+ },
185
+ }
186
+
187
+ restart_tool = {
188
+ "type": "function",
189
+ "function": {
190
+ "name": "restart_orchestration",
191
+ "description": (
192
+ "Restart the orchestration process with specific guidance for improvement. " "Use this when the answer is incomplete, incorrect, or does not fully address the original task."
193
+ ),
194
+ "parameters": {
195
+ "type": "object",
196
+ "properties": {
197
+ "reason": {
198
+ "type": "string",
199
+ "description": "Clear explanation of why the answer is insufficient (e.g., 'The task required descriptions of two Beatles, but only John Lennon was described')",
200
+ },
201
+ "instructions": {
202
+ "type": "string",
203
+ "description": (
204
+ "Detailed, actionable guidance for agents on the next attempt "
205
+ "(e.g., 'Provide two descriptions (John Lennon AND Paul McCartney). "
206
+ "Each should include: birth year, role in band, notable songs, impact on music. "
207
+ "Use 4-6 sentences per person.')"
208
+ ),
209
+ },
210
+ },
211
+ "required": ["reason", "instructions"],
212
+ },
213
+ },
214
+ }
215
+
216
+ return [submit_tool, restart_tool]
massgen/utils.py CHANGED
@@ -31,6 +31,7 @@ class CoordinationStage(Enum):
31
31
  INITIAL_ANSWER = "initial_answer" # initial answer generation
32
32
  ENFORCEMENT = "enforcement"
33
33
  PRESENTATION = "presentation"
34
+ POST_EVALUATION = "post_evaluation" # post-evaluation phase (MCP tools enabled)
34
35
 
35
36
 
36
37
  MODEL_MAPPINGS = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: massgen
3
- Version: 0.1.2
3
+ Version: 0.1.3
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: python-docx>=1.2.0
53
+ Requires-Dist: openpyxl>=3.1.5
54
+ Requires-Dist: python-pptx>=1.0.2
55
+ Requires-Dist: opencv-python>=4.12.0.88
56
+ Requires-Dist: pypdf2>=3.0.1
52
57
  Provides-Extra: dev
53
58
  Requires-Dist: pytest>=7.0.0; extra == "dev"
54
59
  Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
@@ -83,7 +88,7 @@ Provides-Extra: all
83
88
  Dynamic: license-file
84
89
 
85
90
  <p align="center">
86
- <img src="assets/logo.png" alt="MassGen Logo" width="360" />
91
+ <img src="https://raw.githubusercontent.com/Leezekun/MassGen/main/assets/logo.png" alt="MassGen Logo" width="360" />
87
92
  </p>
88
93
 
89
94
  <p align="center">
@@ -109,7 +114,7 @@ Dynamic: license-file
109
114
 
110
115
  <p align="center">
111
116
  <a href="https://www.youtube.com/watch?v=Dp2oldJJImw">
112
- <img src="assets/massgen-demo.gif" alt="MassGen case study -- Berkeley Agentic AI Summit Question" width="800">
117
+ <img src="https://raw.githubusercontent.com/Leezekun/MassGen/main/assets/thumbnail.png" alt="MassGen case study -- Berkeley Agentic AI Summit Question" width="800">
113
118
  </a>
114
119
  </p>
115
120
 
@@ -1,13 +1,13 @@
1
- massgen/__init__.py,sha256=a_L5OU7YQP9RXLSXxSdLfH9EVqGKzGLJq2bhHwvHUXA,7974
2
- massgen/agent_config.py,sha256=5jKQC7lf3B-XlZg2zw3UyUvPkZxzPM2TUIqzEubjg_w,31797
3
- massgen/chat_agent.py,sha256=doJSk6yhaqE1-Qy1AYpsSvUiJwHB92xXCBeS8hGh8wQ,18567
4
- massgen/cli.py,sha256=eiaTosu5sxJx7sVpSdaxy3d4Pfi4zk4vbEq_WxYLX2A,103095
5
- massgen/config_builder.py,sha256=m_igDLQ09NWoQfjROwHx79Ugx3e2fsR8ywxz_JWgYno,133348
1
+ massgen/__init__.py,sha256=mM120i5cRrhv4-7QnwUYWIASIA_vW9VVq0adNucOf7Q,7974
2
+ massgen/agent_config.py,sha256=wC4_V858My4yDvajLDqo0A84hSNqzj9kEU7v_9fl6RQ,33136
3
+ massgen/chat_agent.py,sha256=Oa1yv_yzfe2twbeqCM9LGzVOXA93p13RTE35Ks-XCpk,18903
4
+ massgen/cli.py,sha256=3VNtpflBKfTSrr1Dj07iFMMH-YhnoCDcJWWlmJ2vNW0,114861
5
+ massgen/config_builder.py,sha256=J881XcXqUwX_fGNAahGK0RG-zJbkWHYS-O-C8y6rWxA,142182
6
6
  massgen/coordination_tracker.py,sha256=_r8Man3uomovpXKHrlc4YBI030tkuavYQ-6fEk2JsfM,28201
7
- massgen/logger_config.py,sha256=Noe76y5nPe6bwvsxqbFHI5aipKJ6UVdgmPE89D7AqO0,23786
8
- massgen/message_templates.py,sha256=jbzAMQDVjgn1LIL6TD-Pw3PwpnRLW7ofM_THGhXFRhY,40901
9
- massgen/orchestrator.py,sha256=VwC_pYFMjWmHbtNkuEnv9DaXbM_AhF5mI99ctmhnGyA,150216
10
- massgen/utils.py,sha256=ssCKRV5T5LgY4LDSHBGeUUrAdgDNTf4rUXeFVKYUM9Y,2992
7
+ massgen/logger_config.py,sha256=BalZOpvGyeejyI5Q8e8aa9OG3dvYf7VaR-k7u9MLZBg,25457
8
+ massgen/message_templates.py,sha256=38TtFZdPDiHFoq9x6RCpcINf03YD9vrNN3SUQyT1njY,46143
9
+ massgen/orchestrator.py,sha256=8y3-Sp0UQYlrFacJEGu46Hagkuno9jZyAB2HKxR-co0,166095
10
+ massgen/utils.py,sha256=dWsLMoRRCwBtzDe8vJQ8mfKDTpyLqstC1aH8L4j2clE,3077
11
11
  massgen/adapters/__init__.py,sha256=lYDbplvbiRfXup5e_Q3GzvGujP3V0vqElEJqVfQog2Q,726
12
12
  massgen/adapters/ag2_adapter.py,sha256=71I1acslxIrTPDWTkiTICsp2lyRrrc_F4SwQqa2K_vY,18465
13
13
  massgen/adapters/base.py,sha256=K2VvA5XmurCoCfuIcNd_6Q3jOqXvlsE6UrfOnRK9Q1s,5201
@@ -19,25 +19,25 @@ massgen/adapters/utils/ag2_utils.py,sha256=R08NpX6gY2hc74jRAqF5rPaLziifhacBMFOGL
19
19
  massgen/adapters/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  massgen/adapters/utils/tests/test_ag2_utils.py,sha256=AUI2xjOUBbi71h0DBHF3zBjAB3P01Ie-L1PeiLlG3VE,4030
21
21
  massgen/api_params_handler/__init__.py,sha256=Qki1IO0xdBP8dBN1DUjR2bK0GyVkQIJgzUc01TWiQnI,439
22
- massgen/api_params_handler/_api_params_handler_base.py,sha256=bpkSK1eIDeYO2Z4SuWCIMmgVv5TqHrJ4_VCjZC9Kj7M,3523
22
+ massgen/api_params_handler/_api_params_handler_base.py,sha256=qs8fEWzJyj_rEBhfsbSpWG7uXrjx24Z97Px3fS7klSM,3660
23
23
  massgen/api_params_handler/_chat_completions_api_params_handler.py,sha256=LO-ZADOl0CifhnBFku19ilcABXAR6dlJFOKGuAmMSu4,7713
24
24
  massgen/api_params_handler/_claude_api_params_handler.py,sha256=9rlmPI0smid7DezGWb2vkx7rEVqtFffOaAQi_rtE_4k,3946
25
25
  massgen/api_params_handler/_gemini_api_params_handler.py,sha256=AsWzdOOCjXT-TQFsupZyKsdhNxmmD852VB6hk8siH-s,2494
26
26
  massgen/api_params_handler/_response_api_params_handler.py,sha256=rk8EGVF2FgCBoQlM3_qIy3M5ihFwwcbEub44mB7aPFg,4962
27
27
  massgen/backend/__init__.py,sha256=hIxCbgDqHgO6zzFXnulR8dx2gm1Yi4IDdutDsja1fSg,1749
28
- massgen/backend/azure_openai.py,sha256=8PnIhRgTylazrFnRe0d_uk0qIEs1VJ48jdCpxcjjHT4,17962
29
- massgen/backend/base.py,sha256=gnN0_of7BAfXWdydzjZORjPYCSLIVH-3QDI8eb7rL2A,21173
28
+ massgen/backend/azure_openai.py,sha256=hyefku806OPzy_eozz0RU8gcLmYosj-5IwaDXZHIZ2A,18512
29
+ massgen/backend/base.py,sha256=UQWk6nSGnarHmOIzBN2xNNJNeh06WOW0M_6s8E-aexA,21419
30
30
  massgen/backend/base_with_custom_tool_and_mcp.py,sha256=kqpl3uAWysdplAHjc1O5Z2InkjVw8CQTXo17LtNmCbE,57511
31
31
  massgen/backend/capabilities.py,sha256=kPM_yjnzI34XuZnYw9hlkcUNRvqlZUKdbKVjH_A4iQg,13229
32
32
  massgen/backend/chat_completions.py,sha256=V2xSIGEsxCfewEbeN7LXI3yQdoPecUOCY_pbKPvs4N4,36646
33
33
  massgen/backend/claude.py,sha256=ttYzZoUlJEOET_WE0-qvseUHBs7YaTix2mBSCLoXH1I,59426
34
- massgen/backend/claude_code.py,sha256=HHYOB139GFGEKMlepCUX6mVvLnQa6D6G5Gssyj6k0no,68722
34
+ massgen/backend/claude_code.py,sha256=1x1o8oGl40FA-g3Ulk4n6_lS35prQIQPQ5JdPdKD8Bk,69304
35
35
  massgen/backend/cli_base.py,sha256=SlaDxjUdyhhbby6XqU8FdTCtcLuAGR0AmQePDRDSDW4,6820
36
36
  massgen/backend/external.py,sha256=uKl91wgJP4psSBuvBCg33nH8bkMcuNVoKE4vNaCNXP4,4300
37
- massgen/backend/gemini.py,sha256=uoq-2GlP221EybsEwcI8qyhsXbbmuti4ycJCCs0oxrA,115838
37
+ massgen/backend/gemini.py,sha256=2wPezTM76DltibBEL2s1PbxTmkfAYd0olR7MiLsbdGI,117327
38
38
  massgen/backend/gemini_mcp_manager.py,sha256=Uakj7TTrrbqGkj70aE2avNHInYJevkZ41H3sfcnzL34,23635
39
39
  massgen/backend/gemini_trackers.py,sha256=MQCr1KcDIfWClXCWWqpMDMx8eB38GeCSmm-4-xs89CQ,12557
40
- massgen/backend/gemini_utils.py,sha256=iRKufFUg-yvxD1Hpn1vZPmh5YrIvPEpX1p-_6r0nFPo,1473
40
+ massgen/backend/gemini_utils.py,sha256=fv5KoiEqabmoe2BRHQ0Ztz2aTJgm05txrfKICDWhYik,2778
41
41
  massgen/backend/grok.py,sha256=H1AjXBTZWGi0qVoQ305gb8WzvChqnB_HQQxncPGeHvU,4147
42
42
  massgen/backend/inference.py,sha256=PT_e9fDEHlME0TtJT7_dse2aPtaHliYul9D52n_nXns,5971
43
43
  massgen/backend/lmstudio.py,sha256=UEd3Wkdy9r5ceJ3oM7_LR3MYEQv4ghcn2je5F1d-dyU,7267
@@ -55,7 +55,7 @@ massgen/backend/docs/OPENAI_response_streaming.md,sha256=ees0GpokNKgg_aAuAODJifD
55
55
  massgen/backend/docs/inference_backend.md,sha256=NNxvh6JWc2BPWLQrAJKXsXAyvggT-_KRHmboulYNw7Y,6372
56
56
  massgen/backend/docs/permissions_and_context_files.md,sha256=1afQsz-s6rQdNmOgs2GhPHrYOd1t4cM-2EqkOArR42Q,40484
57
57
  massgen/configs/BACKEND_CONFIGURATION.md,sha256=eJL8dBpGnb3o705R0Uk5QbWanKG9C30jFd8U3gqlbeE,13051
58
- massgen/configs/README.md,sha256=HEI59MjPZ2hgGXNPrsv-eV1mjq0vTj7TzmLuxhPCMzA,29815
58
+ massgen/configs/README.md,sha256=G52pBkX59ioG0lnDbMRq6pBF6oYeS1WPb5ekI2RXY1I,32108
59
59
  massgen/configs/ag2/ag2_case_study.yaml,sha256=kiQanWKY3VyZD6Sl-0ZBMOcWoOWU2AF26IJKKhKak4k,767
60
60
  massgen/configs/ag2/ag2_coder.yaml,sha256=jtIBULpg55BthnQ-YRXrJ1xG7Q_IqK-1N5qCitC_A_4,1131
61
61
  massgen/configs/ag2/ag2_coder_case_study.yaml,sha256=3mE5mq9zU7V6RZ_XsgiA_-4S04zCNCAYPH7FmTE1suE,1273
@@ -92,6 +92,8 @@ massgen/configs/basic/single/single_gpt5nano_image_understanding.yaml,sha256=yif
92
92
  massgen/configs/basic/single/single_gptoss120b.yaml,sha256=s-hyREulmUu9A-OCHedMMSE2HQXSNIF3XjVlRqTgI1k,318
93
93
  massgen/configs/basic/single/single_openrouter_audio_understanding.yaml,sha256=VHTZ3Ysq_-00hMzD2KDqPouZ2kBki5knVmKVbZSa6_g,542
94
94
  massgen/configs/basic/single/single_qwen_video_understanding.yaml,sha256=kjRBHHeW1syMYcCl5P8Nm9rIoXGG8zuJ_COQHxjbJ-A,540
95
+ massgen/configs/debug/restart_test_controlled.yaml,sha256=8dpXwpaZOO2kH882L5VrUUy0ifaMj79hmnyrfceqpL0,2223
96
+ massgen/configs/debug/restart_test_controlled_filesystem.yaml,sha256=BfMZEg4sUkwOI02Whdx7oL9gQps_EO6NGWjtLHD4HKg,2411
95
97
  massgen/configs/debug/skip_coordination_test.yaml,sha256=PHz1K8ykHSy7R-UgAajVVbE0IhMfK8YmfFl_IUeuI30,899
96
98
  massgen/configs/debug/test_sdk_migration.yaml,sha256=4I7gnOh_0-UdARNixnd7TsOwpOMC9TZnCZxFMWzMi1g,463
97
99
  massgen/configs/debug/code_execution/command_filtering_blacklist.yaml,sha256=_BekigQZgv9CMSlSfAa4FmWUZaoq4Wd4VaDE29g75Os,1011
@@ -120,6 +122,7 @@ massgen/configs/tools/code-execution/docker_claude_code.yaml,sha256=YnfyCijkJHjH
120
122
  massgen/configs/tools/code-execution/docker_multi_agent.yaml,sha256=N4Z6H-EGLcYHaK8hCd_nTa95IbInf0RLnT9KK0A4ylE,1030
121
123
  massgen/configs/tools/code-execution/docker_simple.yaml,sha256=ctM5U8MU8JXOof7ZBpjctH0fDGctzRXS0ySpBKjrjcg,1088
122
124
  massgen/configs/tools/code-execution/docker_with_resource_limits.yaml,sha256=B87ceocgmF_XqeGhQhOAZWiMTXMs9qlMZOVeqbug74g,1185
125
+ massgen/configs/tools/code-execution/docker_with_sudo.yaml,sha256=dazWZYH2xt6TI9wbeUv-7Pq1e9gSwSOniu_QZ1Cy-Ao,1244
123
126
  massgen/configs/tools/code-execution/multi_agent_playwright_automation.yaml,sha256=Y730nR5O737u85xmbkXX-Gb3yDIgrnx2HRNNijQYWG4,2124
124
127
  massgen/configs/tools/custom_tools/claude_code_custom_tool_example.yaml,sha256=2pksSj-t_HVuCuEUJl7O1yX5lAs5OqdarVBHGT4lmeU,1278
125
128
  massgen/configs/tools/custom_tools/claude_code_custom_tool_example_no_path.yaml,sha256=RogCKe-ZF2FNNVX8QBKbg-k1g1s2jzqXF6zWw5YgZWw,1085
@@ -131,6 +134,11 @@ massgen/configs/tools/custom_tools/claude_custom_tool_example_no_path.yaml,sha25
131
134
  massgen/configs/tools/custom_tools/claude_custom_tool_with_mcp_example.yaml,sha256=XdjRJc20VX5KHEihpqITI6A2c1pMN2of8fysiQeCN0A,1604
132
135
  massgen/configs/tools/custom_tools/claude_custom_tool_with_wrong_mcp_example.yaml,sha256=V9VLjM16o59ipc_ktBqlLyYph27J4EBWTG0kB8nK_jc,1582
133
136
  massgen/configs/tools/custom_tools/claude_wrong_custom_tool_with_mcp_example.yaml,sha256=pJdkL0yQZscsHWJynUkmXv7BufZILs12PxAHM2AL8cI,1556
137
+ massgen/configs/tools/custom_tools/computer_use_browser_example.yaml,sha256=cAqo5_8kOSOAB0x2HT26j0tJZ463qT9eVeCZL7VBJ0w,1935
138
+ massgen/configs/tools/custom_tools/computer_use_docker_example.yaml,sha256=dsdADJgrVhTh5ogzSJkaw-KIy9RyLi-7YTByISuZ2MU,2146
139
+ massgen/configs/tools/custom_tools/computer_use_example.yaml,sha256=lXeVCFsCsKhqmlCNpBoieRe_WblzRgJcmf3Tt8Uvmi4,1902
140
+ massgen/configs/tools/custom_tools/crawl4ai_mcp_example.yaml,sha256=CqA8jKpm6AdqQ8-QpT-slmM_CeP1o_lnV4nk620oNiM,2316
141
+ massgen/configs/tools/custom_tools/crawl4ai_multi_agent_example.yaml,sha256=UBWAXqsJgk3SrDdnqOqJ-TmQVPPx4JJEYDYlJM2Rxfs,2184
134
142
  massgen/configs/tools/custom_tools/gemini_custom_tool_example.yaml,sha256=5-XCjo2O7SqyTILWD8x3qPD7AWafLWkhBW5giN4JyMM,981
135
143
  massgen/configs/tools/custom_tools/gemini_custom_tool_example_no_path.yaml,sha256=Hd6zC7Mms1PxrNQ9KpmVFgSDeQCzejpIRzzJgVqVkQY,900
136
144
  massgen/configs/tools/custom_tools/gemini_custom_tool_with_mcp_example.yaml,sha256=YBNSQugHOWsaz3VGPf_RIj59bPPNssftVqHEkvYN8yE,1614
@@ -162,6 +170,13 @@ massgen/configs/tools/custom_tools/qwen_local_custom_tool_example_no_path.yaml,s
162
170
  massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_mcp_example.yaml,sha256=zfvh9RNycLiPAauQmw0_qEAO2qaHBAf-sAvYpKiP87s,1609
163
171
  massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_wrong_mcp_example.yaml,sha256=73JeuKxgCHz6nkquj5mANDcTBkW8Cg1zjCVtUGqYdJM,1587
164
172
  massgen/configs/tools/custom_tools/qwen_local_wrong_custom_tool_with_mcp_example.yaml,sha256=ruGn-4X-ObShSY3ZqtTSxee6_TmBniJRKF7I_3to4CM,1561
173
+ massgen/configs/tools/custom_tools/multimodal_tools/playwright_with_img_understanding.yaml,sha256=V4K3I7sv1AVWH_8skm_ZntCAny21MSu5nvIbWALjg3w,3594
174
+ massgen/configs/tools/custom_tools/multimodal_tools/understand_audio.yaml,sha256=ZHLywTxOLVlXoBE4AmXiJ390viX8ERUmUVYvn6uWil0,1278
175
+ massgen/configs/tools/custom_tools/multimodal_tools/understand_file.yaml,sha256=PfGU0Ps8C5sD96yWviSEmsD5hJhWo1McfqF1DGXJnW8,1345
176
+ massgen/configs/tools/custom_tools/multimodal_tools/understand_image.yaml,sha256=olNe4LHWffzvKgRRkXzvdmYzETxjbxRV-QooIMdbVQY,1295
177
+ massgen/configs/tools/custom_tools/multimodal_tools/understand_video.yaml,sha256=7kBiodIJESBvB_P9pyQNDyGfUBIVYeYeQ4jgHegoKII,1329
178
+ massgen/configs/tools/custom_tools/multimodal_tools/understand_video_example.yaml,sha256=LfdJxppclGnz764y-9BR_d0ksmUA89Y5DAeqs6ch1og,1664
179
+ massgen/configs/tools/custom_tools/multimodal_tools/youtube_video_analysis.yaml,sha256=DUhUWYZUyla1y0pHnhxKtfpODXuhmHbtpeuRnJZ0va4,2086
165
180
  massgen/configs/tools/filesystem/cc_gpt5_gemini_filesystem.yaml,sha256=eCnljU999bu5GG7Sl1ANdkojxnjU1vvQltmtcMjpiCM,831
166
181
  massgen/configs/tools/filesystem/claude_code_context_sharing.yaml,sha256=MvNtesvnJC2nvq5cXkCzwt7oR2ApeO3xtmrZzy8Jjks,3060
167
182
  massgen/configs/tools/filesystem/claude_code_flash2.5.yaml,sha256=zuyFzh1deUz6yGS602Z2JEuAFN43UVe9dnPSiDFVrq4,1703
@@ -205,6 +220,11 @@ massgen/configs/tools/mcp/qwen_api_mcp_example.yaml,sha256=OL_VdY9P3215daqOzrn7L
205
220
  massgen/configs/tools/mcp/qwen_api_mcp_test.yaml,sha256=BDY94AvE5OTsJyjapDfbt5Cs6Ylrz7cY8D2nG60wM0w,1053
206
221
  massgen/configs/tools/mcp/qwen_local_mcp_example.yaml,sha256=6fW3E64dL8RCWr5mak8KpHuhXPbtJGogsPOxkLUKse4,1031
207
222
  massgen/configs/tools/mcp/qwen_local_mcp_test.yaml,sha256=2ilQXKCW4wY_pahwhPOdwSBVZP6K9Ng4sQDtXix5sQQ,992
223
+ massgen/configs/tools/memory/README.md,sha256=04Y3grz4h0IwGVeYFovZmliRD7dnFiRWLG6_JzKjc7Y,6787
224
+ massgen/configs/tools/memory/gpt5mini_gemini_context_window_management.yaml,sha256=50EosHS19e9VvVxqjPlMTBZS-TAfBX0fMa-Zw3vVUhY,5052
225
+ massgen/configs/tools/memory/gpt5mini_gemini_no_persistent_memory.yaml,sha256=hNuKlyWmQDWv7pyyfmrvStObAAGeBiWpki7QEssyYCI,4530
226
+ massgen/configs/tools/memory/test_context_window_management.py,sha256=Um_W2Jd1ONWnlRW_6nixKQeyEDlwtII5QwyF5bUb1do,10906
227
+ massgen/configs/tools/multimodal/gpt5mini_gpt5nano_documentation_evolution.yaml,sha256=L2fgw9-Ew0QwxfM7UwhcGJUyJ2yGbWyaAJHM-QLounk,3976
208
228
  massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml,sha256=lctHFq_ZqdrssBHNQh5HPcpmJnmh9ti1O7yLViNH0K8,4181
209
229
  massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml,sha256=ylXOcRZTvqUFQ5Q2RzpRMBo1vlybfzBAYp3S7H0rjn4,6204
210
230
  massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml,sha256=XYRoZeu_VGOeOA1OosOf2IWm9SwilHzySh7cxKLkLyU,5657
@@ -218,29 +238,29 @@ massgen/configs/tools/web-search/grok3_mini_streamable_http_test.yaml,sha256=uO-
218
238
  massgen/configs/tools/web-search/qwen_api_streamable_http_test.yaml,sha256=-7eBgZJkJJyymVwtNBJRjl2brxfJX6xB3nwTOEh4urI,2262
219
239
  massgen/configs/tools/web-search/qwen_local_streamable_http_test.yaml,sha256=nvxUK_J7pDI9Hoa8t8TGdcVCosnjdIegnbgp8os0YWo,2201
220
240
  massgen/configs/voting/gemini_gpt_voting_sensitivity.yaml,sha256=Xp84UmJKx_fqNej5FLXJNohBgtG3j_QBswHU_Xguzm4,2389
221
- massgen/docker/README.md,sha256=a1c5Ow5pH7DShmYvWaSVvtcqqJ8CPyeMEoWpRTU832Q,12596
241
+ massgen/docker/README.md,sha256=I9QBN282Ifyo02o_3163amvlGXqaq7yi3Mdf2npxfwc,15819
222
242
  massgen/filesystem_manager/__init__.py,sha256=4rWTzNHcx_ISTiph9iICjteyTS2R1hl1yELpsoIbUdQ,590
223
243
  massgen/filesystem_manager/_base.py,sha256=4pR1rqPvqtNo9OsdaUM3j1TebOnQm27olNwbvijRAOA,151
224
- massgen/filesystem_manager/_code_execution_server.py,sha256=LFjN4V7y3D4A2DUz8WnM5VDO3uGsx6KWigF63rX-ySg,20284
225
- massgen/filesystem_manager/_docker_manager.py,sha256=wmrVDaTovVTC9e_CYZdRJtdJuR1avm4kN-72Lk04PZ4,18406
244
+ massgen/filesystem_manager/_code_execution_server.py,sha256=PCKnS0gUayqsn62GRtdkXphCs7A84EQBQkH9KPiijVQ,20884
245
+ massgen/filesystem_manager/_docker_manager.py,sha256=eu2qECtv1205rg7Gg5qCLu3I5VgFXyaC6KSQAi_Ydto,19512
226
246
  massgen/filesystem_manager/_file_operation_tracker.py,sha256=voYhy0xyO2qTWyz545esYdLjqTN3UYp_S-q4QVwxTn8,8668
227
- massgen/filesystem_manager/_filesystem_manager.py,sha256=DFoPVf0mC0Pq8pmMhMQQT_g-C8BtH3dTMutuEn8eDDM,36316
247
+ massgen/filesystem_manager/_filesystem_manager.py,sha256=kz01wFdrmtxCzsf8RYWMGfzfxYdjxnKlJemAkoFxT3k,36814
228
248
  massgen/filesystem_manager/_path_permission_manager.py,sha256=pmOTMPda4kTohqAXQaxtqfZPZQ79YzLYaxI89vXlBTA,56326
229
- massgen/filesystem_manager/_workspace_tools_server.py,sha256=WAeX5uHdYTqfOI7-Af_pHZK_ZGuODBc-qNi2sAegkCc,74102
249
+ massgen/filesystem_manager/_workspace_tools_server.py,sha256=cq73WgZavnk9wXHd0Xxgvkra0BkZ9XOm3yAQDso7qV4,32983
230
250
  massgen/formatter/__init__.py,sha256=t3qDPvytyzIBkqYW9CCqTflikQ8ynw_AlF0PFgnH9Yc,370
231
251
  massgen/formatter/_chat_completions_formatter.py,sha256=3ezx30SDf4XHQac0qRWfgobCs7iS7vlsKpSrgymmq-c,16034
232
252
  massgen/formatter/_claude_formatter.py,sha256=J3fzg17dOJPdK4oEDCkkOsnx92J-7EOye3gpXoNqKUA,15435
233
253
  massgen/formatter/_formatter_base.py,sha256=aoAzCQwDQC8vCOS_0lgFzTWue2nENxXbGUMw76uetqw,4790
234
- massgen/formatter/_gemini_formatter.py,sha256=kI0P7v023pYlxKvHJl5TDY4YYgwgcjQTMUtR16Ttpks,16866
254
+ massgen/formatter/_gemini_formatter.py,sha256=7G3Sw54vJc7fGUC-s_NKkDrQJh0CqM_RNHTfUfk6RvU,19447
235
255
  massgen/formatter/_response_formatter.py,sha256=DKGZwF_QVnaSXE6Bq8iw-jdcrLALQn_AM74MYCnZFtA,14245
236
256
  massgen/frontend/__init__.py,sha256=mF_-mNFccS9V1SwqKD7_FB2mvzI2Agzuk3orxtxsWDc,658
237
- massgen/frontend/coordination_ui.py,sha256=EuuxHeM5lqX-wolXrkA4RLQ-2Xw2jCDQ8CWE9x_nusQ,54879
257
+ massgen/frontend/coordination_ui.py,sha256=A2jW3pj8dKeZ1_KV2sxkJvJLHdmi67H0jJZU2Eu9MdU,50606
238
258
  massgen/frontend/displays/__init__.py,sha256=QxEXAGDTBbFenYafmXLgSCulFcbaUr7ls5atXIkX3m8,536
239
- massgen/frontend/displays/base_display.py,sha256=X2SadlXOkfWf1T5MtijKaMxBUnHR7n7TFZ3gK4_yeFI,4810
259
+ massgen/frontend/displays/base_display.py,sha256=7X3RQsq6CJqgrwaF_fGK4cVMrRuVUCtELQa_9_cThXE,5802
240
260
  massgen/frontend/displays/create_coordination_table.py,sha256=CyRFVo58GJIw3EzXW3-eIVxe3dsmjD4BE6ouvMxOois,77862
241
- massgen/frontend/displays/rich_terminal_display.py,sha256=9CKbxvvajisEIj-y1l1ZeT2qQgCTv4m3NbewojofY1Q,163186
242
- massgen/frontend/displays/simple_display.py,sha256=P1Cdd5tgbn4dKnN0EfcTpYzxOWfdNl0ELsM9Nj1tdqs,3787
243
- massgen/frontend/displays/terminal_display.py,sha256=umKrD4gH6WqEyVsRFXCrFBoJ5UfrbShjhEsy3LptQO4,15164
261
+ massgen/frontend/displays/rich_terminal_display.py,sha256=fMbNtLmYy7DhzVlSeRA1Tpga1W9DnxRxgDa4RCVoJYk,169511
262
+ massgen/frontend/displays/simple_display.py,sha256=3m2fOyMiMa3-YtHJxO0scmeSoUmzws3nCX7vDypVSEU,4731
263
+ massgen/frontend/displays/terminal_display.py,sha256=QKTd2sWDWNSo8quBXIk7Krv2yY3woZTyDFYW7YwLvxw,16061
244
264
  massgen/mcp_tools/README.md,sha256=jjDIbBseNV-ppkeeLaTD1hYA2RN8BmUhUwnuUI0wGtE,7425
245
265
  massgen/mcp_tools/__init__.py,sha256=Hk1GCf4anFwRceTKHnbamF5x3Xyckq3m8A_OypPRrCU,2589
246
266
  massgen/mcp_tools/backend_utils.py,sha256=8G6yzUjMrBtDVFnjdaEc89Db3FNuq4fpEAcsnO-7Tuc,38231
@@ -274,7 +294,7 @@ massgen/tests/test_claude_code.py,sha256=BKrJOv7r-sLWTIplt7zvEkge5O9KRd50-7uhAu6
274
294
  massgen/tests/test_claude_code_context_sharing.py,sha256=VhEBv2rUmT8cU2hMb9Qn6z-bEbENdH1JWh5muY0tG1o,8164
275
295
  massgen/tests/test_claude_code_orchestrator.py,sha256=1bFLHQSgPqw2ecPjoZpsSg5lw8HEc8GXNrmyrrq5Xoo,5822
276
296
  massgen/tests/test_cli_backends.py,sha256=6KPYnNgwGYRCGIXJTNWBCBHK1w8ylrBWFqt_HBWlelk,5918
277
- massgen/tests/test_code_execution.py,sha256=aqR3ceOo99a4uMuqUBRkvkdDif_mf3FWWh8r70wPSYI,22759
297
+ massgen/tests/test_code_execution.py,sha256=fbXNg7NeUpuodpixeR7WhNAAtk9Je1VLwQQfw6N3CYU,30099
278
298
  massgen/tests/test_config_builder.py,sha256=OcDfeVcKp_7zUruujNwKkpf0pwQ5f5ZzrgnHQYiEA2g,17781
279
299
  massgen/tests/test_custom_tools.py,sha256=zUOjlZdT1eC7jgx28Z3TfzUTqFvAmRumK2Uv-lq1f3E,12905
280
300
  massgen/tests/test_external_agent_backend.py,sha256=1ImeUo0tQIdaG7ASn1X-rkuHBuAUrmk3d4l8U4LaJHI,3948
@@ -286,6 +306,7 @@ massgen/tests/test_integration_simple.py,sha256=Dps0m3Nfjqphi_1cLTultnfqxJTonL3a
286
306
  massgen/tests/test_intelligent_planning_mode.py,sha256=T2KjezqA6_1Ixj8uIEpXb9yuN0kG8tINfkl2C7KyWu8,24685
287
307
  massgen/tests/test_mcp_blocking.py,sha256=rMvkozLGbEScYj01p8gfQmX2gssGriCIVDVo1e2bplU,4606
288
308
  massgen/tests/test_message_context_building.py,sha256=8AXcVDtv0R8uI-1PVLwYVFSWP-t3KeIDvy7vifrLPyU,10563
309
+ massgen/tests/test_orchestration_restart.py,sha256=YqYXokEdQuzC9u8xFAkSMSbDKtRUk2Vu2eoKxt66iOk,7239
289
310
  massgen/tests/test_orchestrator_final_presentation.py,sha256=Yt0-IACu0PGe4IpoGW7mpBDNdyFW_6W5Q1Hzry3gAys,1238
290
311
  massgen/tests/test_path_permission_manager.py,sha256=DjOQvhUE6Tg4UGGJzl8AwnFnlvQgJf2WaUVvebkK8UA,88275
291
312
  massgen/tests/test_rich_terminal_display.py,sha256=r-SfoWf8T1P-cwZTnbVp3AYuxr-98h0K7XqI8Y5tcR4,12157
@@ -298,7 +319,7 @@ massgen/tests/test_v3_two_agents.py,sha256=G3WJuMdCjMdp0WItur48IGJ69B4HBs5RhpDjY
298
319
  massgen/token_manager/__init__.py,sha256=SxFK64M3S69E51d1M37pq38O39mIZp-9TMxAspwR3wY,143
299
320
  massgen/token_manager/token_manager.py,sha256=rp1DY6KYLK9QSaAZh6IBlAwpTgwSr7PRWxd-9Ifh4bs,16586
300
321
  massgen/tool/README.md,sha256=wauBHnWMUIQiGendrYUeUFW7LesRznGpJx9TR5qJpEU,24365
301
- massgen/tool/__init__.py,sha256=mA7JLNGnxg3khwtDIDndBYk6fp3ea-ksJoQKUXvIEak,994
322
+ massgen/tool/__init__.py,sha256=YrLYvYDtVcTKs6WtwF4rtR90uoLGMmXXTedTq9GiIY4,1114
302
323
  massgen/tool/_async_helpers.py,sha256=SyfWZ_fLLq2knwM5j4TaYVV1cTWElxWRSzH1FkapcL8,2411
303
324
  massgen/tool/_exceptions.py,sha256=HGFXB1-cpj1bLCRtiVAP8BeiyBdzVWWsNGekQCvergA,1188
304
325
  massgen/tool/_manager.py,sha256=7TzzTf9DCqX3y4QsIN6o8Z4HR8EfoVb93T70QGO8aok,23266
@@ -311,15 +332,21 @@ massgen/tool/_code_executors/_python_executor.py,sha256=G7n9qknm5A3mxlVq5NwGuNeq
311
332
  massgen/tool/_code_executors/_shell_executor.py,sha256=SIV8-GyrlKNOqDB4SHYlK46ff82_eAV1CgxvChnG4FA,1872
312
333
  massgen/tool/_file_handlers/__init__.py,sha256=GoQ5hNFkU6UyGux_NfMhvYqJIwMWV0FIYDT0hO6FV-Q,232
313
334
  massgen/tool/_file_handlers/_file_operations.py,sha256=r-ykRNVSTUv6HSWr86EsjGkW5r_LTJGcYo0VchByA0A,6915
335
+ massgen/tool/_multimodal_tools/understand_audio.py,sha256=eie4fMjN0PDISjMERxitOdJprCexv_e4hmasdnxBtWU,6846
336
+ massgen/tool/_multimodal_tools/understand_file.py,sha256=kiLZmks0hFO--7HkIIF7g1e0iWSS7idT8sLWYyYIfSo,18986
337
+ massgen/tool/_multimodal_tools/understand_image.py,sha256=_IzVMi6P6BTrtldDEoLz8oJ0tQBzFFuTFDIR2vRlV6c,7311
338
+ massgen/tool/_multimodal_tools/understand_video.py,sha256=zYVnAsldUd7BQqodrwaUMMEBX-la-55h99J5rimoFlY,10864
314
339
  massgen/tool/_self_evolution/_github_issue_analyzer.py,sha256=jN3LmeXsgGD2qQD6xASUi-erdyU6cot-C496095l5IQ,12470
315
340
  massgen/tool/docs/builtin_tools.md,sha256=pZHL0e6gGqwb91M5nghhlhbAWnV2S7w4lrdbEdACCF4,16818
316
341
  massgen/tool/docs/exceptions.md,sha256=t1DLJTf6ZJW864OgvZLWAYf4Ws0Ms84l5AZVTjDw4DI,23468
317
342
  massgen/tool/docs/execution_results.md,sha256=scpwavPHJiY6SR0s6jf0U4MMMKkkJr0yVExgRBJ4pog,18929
318
343
  massgen/tool/docs/manager.md,sha256=dbBkiqnkPIrbrUZjnH78MnCDX-UJIyH6OI1szLWOupM,27928
344
+ massgen/tool/docs/multimodal_tools.md,sha256=0YSowzw8WZnXQqfLsOhA-UIBZ-0mMhOn_FeG_pTcgWE,22284
319
345
  massgen/tool/docs/workflow_toolkits.md,sha256=VV4NslGYj0b2bPvCpu6CsaO2PY2EIA2l-tl0wg4MPAQ,13296
320
- massgen/tool/workflow_toolkits/__init__.py,sha256=A1Ch7Fgt7d7oBKbfhhmSfw1f1ks5q6yZufYxjsy6MU4,1413
346
+ massgen/tool/workflow_toolkits/__init__.py,sha256=xMd559Ci0mv5-T9ezWAnF2Y9TrhVorljILq_WnDZRIU,2213
321
347
  massgen/tool/workflow_toolkits/base.py,sha256=VcT6JOhtusYTwpc6FOdgG2Z-99ImsMNKudM-AMPsOVM,1301
322
348
  massgen/tool/workflow_toolkits/new_answer.py,sha256=x2KfMs0rM9_sJmIVYQf8Acq_NNXMIIFrmZBRFpP6y9I,4482
349
+ massgen/tool/workflow_toolkits/post_evaluation.py,sha256=Zrp0sSdiiMm4IfiublcUAM-vMg-Duqp5WwJmVH9Rvng,9040
323
350
  massgen/tool/workflow_toolkits/vote.py,sha256=u-Tqr45OjkoaNajriLUYeQZnM69Am0M8HR-_yrDpasA,6106
324
351
  massgen/v1/README.md,sha256=37ZEbNR0O5IcdqQXkqtvNCpmVX1Z_dO4HGcKreaP-0E,13631
325
352
  massgen/v1/__init__.py,sha256=hZUuhjtGlLJ-QW4Ty2V4IMlaoUB5oP0TSl0XeuCoWqU,2733
@@ -341,9 +368,9 @@ massgen/v1/examples/fast-4o-mini-config.yaml,sha256=t7zmN8sWQrrWivjaBB9w_WHFDnU-
341
368
  massgen/v1/examples/fast_config.yaml,sha256=BDBCpSYJPzTZi9vAEGsCZ3lt3JV25RN-4Nf_17JAhUU,846
342
369
  massgen/v1/examples/production.yaml,sha256=hrNqzOqlQG1sL-5U8ZlA8QpCwGSoiCtqMu7Mi2gOd9s,2002
343
370
  massgen/v1/examples/single_agent.yaml,sha256=h8ysGIwPjvgnpRxTcBqw5nBz5D2MTXI_Ygdn4D9RdIA,1256
344
- massgen-0.1.2.dist-info/licenses/LICENSE,sha256=_r2TwhSv0GcpGeIKfwbz9z2qzOI62FHCfgSfnZ1z2fc,11386
345
- massgen-0.1.2.dist-info/METADATA,sha256=21kJXptZUVT4EHnJTYw3Elo5S91E76r5l9vG_zBTkyw,59674
346
- massgen-0.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
347
- massgen-0.1.2.dist-info/entry_points.txt,sha256=On6OV7swWO0StsAXeOri3MzmuxhO9C-PUvKW-5pJ6gA,49
348
- massgen-0.1.2.dist-info/top_level.txt,sha256=jm8ZxEGdkjsh8aPWXvCpnexL_S2ZRkFeT9vl6vIm_3I,8
349
- massgen-0.1.2.dist-info/RECORD,,
371
+ massgen-0.1.3.dist-info/licenses/LICENSE,sha256=_r2TwhSv0GcpGeIKfwbz9z2qzOI62FHCfgSfnZ1z2fc,11386
372
+ massgen-0.1.3.dist-info/METADATA,sha256=YFxdq0Xrwco4CjtkAXQ6oh_IR4G7G51Ej2bcmzXxjCY,59951
373
+ massgen-0.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
374
+ massgen-0.1.3.dist-info/entry_points.txt,sha256=On6OV7swWO0StsAXeOri3MzmuxhO9C-PUvKW-5pJ6gA,49
375
+ massgen-0.1.3.dist-info/top_level.txt,sha256=jm8ZxEGdkjsh8aPWXvCpnexL_S2ZRkFeT9vl6vIm_3I,8
376
+ massgen-0.1.3.dist-info/RECORD,,