massgen 0.0.3__py3-none-any.whl → 0.1.0__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.

Potentially problematic release.


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

Files changed (268) hide show
  1. massgen/__init__.py +142 -8
  2. massgen/adapters/__init__.py +29 -0
  3. massgen/adapters/ag2_adapter.py +483 -0
  4. massgen/adapters/base.py +183 -0
  5. massgen/adapters/tests/__init__.py +0 -0
  6. massgen/adapters/tests/test_ag2_adapter.py +439 -0
  7. massgen/adapters/tests/test_agent_adapter.py +128 -0
  8. massgen/adapters/utils/__init__.py +2 -0
  9. massgen/adapters/utils/ag2_utils.py +236 -0
  10. massgen/adapters/utils/tests/__init__.py +0 -0
  11. massgen/adapters/utils/tests/test_ag2_utils.py +138 -0
  12. massgen/agent_config.py +329 -55
  13. massgen/api_params_handler/__init__.py +10 -0
  14. massgen/api_params_handler/_api_params_handler_base.py +99 -0
  15. massgen/api_params_handler/_chat_completions_api_params_handler.py +176 -0
  16. massgen/api_params_handler/_claude_api_params_handler.py +113 -0
  17. massgen/api_params_handler/_response_api_params_handler.py +130 -0
  18. massgen/backend/__init__.py +39 -4
  19. massgen/backend/azure_openai.py +385 -0
  20. massgen/backend/base.py +341 -69
  21. massgen/backend/base_with_mcp.py +1102 -0
  22. massgen/backend/capabilities.py +386 -0
  23. massgen/backend/chat_completions.py +577 -130
  24. massgen/backend/claude.py +1033 -537
  25. massgen/backend/claude_code.py +1203 -0
  26. massgen/backend/cli_base.py +209 -0
  27. massgen/backend/docs/BACKEND_ARCHITECTURE.md +126 -0
  28. massgen/backend/{CLAUDE_API_RESEARCH.md → docs/CLAUDE_API_RESEARCH.md} +18 -18
  29. massgen/backend/{GEMINI_API_DOCUMENTATION.md → docs/GEMINI_API_DOCUMENTATION.md} +9 -9
  30. massgen/backend/docs/Gemini MCP Integration Analysis.md +1050 -0
  31. massgen/backend/docs/MCP_IMPLEMENTATION_CLAUDE_BACKEND.md +177 -0
  32. massgen/backend/docs/MCP_INTEGRATION_RESPONSE_BACKEND.md +352 -0
  33. massgen/backend/docs/OPENAI_GPT5_MODELS.md +211 -0
  34. massgen/backend/{OPENAI_RESPONSES_API_FORMAT.md → docs/OPENAI_RESPONSE_API_TOOL_CALLS.md} +3 -3
  35. massgen/backend/docs/OPENAI_response_streaming.md +20654 -0
  36. massgen/backend/docs/inference_backend.md +257 -0
  37. massgen/backend/docs/permissions_and_context_files.md +1085 -0
  38. massgen/backend/external.py +126 -0
  39. massgen/backend/gemini.py +1850 -241
  40. massgen/backend/grok.py +40 -156
  41. massgen/backend/inference.py +156 -0
  42. massgen/backend/lmstudio.py +171 -0
  43. massgen/backend/response.py +1095 -322
  44. massgen/chat_agent.py +131 -113
  45. massgen/cli.py +1560 -275
  46. massgen/config_builder.py +2396 -0
  47. massgen/configs/BACKEND_CONFIGURATION.md +458 -0
  48. massgen/configs/README.md +559 -216
  49. massgen/configs/ag2/ag2_case_study.yaml +27 -0
  50. massgen/configs/ag2/ag2_coder.yaml +34 -0
  51. massgen/configs/ag2/ag2_coder_case_study.yaml +36 -0
  52. massgen/configs/ag2/ag2_gemini.yaml +27 -0
  53. massgen/configs/ag2/ag2_groupchat.yaml +108 -0
  54. massgen/configs/ag2/ag2_groupchat_gpt.yaml +118 -0
  55. massgen/configs/ag2/ag2_single_agent.yaml +21 -0
  56. massgen/configs/basic/multi/fast_timeout_example.yaml +37 -0
  57. massgen/configs/basic/multi/gemini_4o_claude.yaml +31 -0
  58. massgen/configs/basic/multi/gemini_gpt5nano_claude.yaml +36 -0
  59. massgen/configs/{gemini_4o_claude.yaml → basic/multi/geminicode_4o_claude.yaml} +3 -3
  60. massgen/configs/basic/multi/geminicode_gpt5nano_claude.yaml +36 -0
  61. massgen/configs/basic/multi/glm_gemini_claude.yaml +25 -0
  62. massgen/configs/basic/multi/gpt4o_audio_generation.yaml +30 -0
  63. massgen/configs/basic/multi/gpt4o_image_generation.yaml +31 -0
  64. massgen/configs/basic/multi/gpt5nano_glm_qwen.yaml +26 -0
  65. massgen/configs/basic/multi/gpt5nano_image_understanding.yaml +26 -0
  66. massgen/configs/{three_agents_default.yaml → basic/multi/three_agents_default.yaml} +8 -4
  67. massgen/configs/basic/multi/three_agents_opensource.yaml +27 -0
  68. massgen/configs/basic/multi/three_agents_vllm.yaml +20 -0
  69. massgen/configs/basic/multi/two_agents_gemini.yaml +19 -0
  70. massgen/configs/{two_agents.yaml → basic/multi/two_agents_gpt5.yaml} +14 -6
  71. massgen/configs/basic/multi/two_agents_opensource_lmstudio.yaml +31 -0
  72. massgen/configs/basic/multi/two_qwen_vllm_sglang.yaml +28 -0
  73. massgen/configs/{single_agent.yaml → basic/single/single_agent.yaml} +1 -1
  74. massgen/configs/{single_flash2.5.yaml → basic/single/single_flash2.5.yaml} +1 -2
  75. massgen/configs/basic/single/single_gemini2.5pro.yaml +16 -0
  76. massgen/configs/basic/single/single_gpt4o_audio_generation.yaml +22 -0
  77. massgen/configs/basic/single/single_gpt4o_image_generation.yaml +22 -0
  78. massgen/configs/basic/single/single_gpt4o_video_generation.yaml +24 -0
  79. massgen/configs/basic/single/single_gpt5nano.yaml +20 -0
  80. massgen/configs/basic/single/single_gpt5nano_file_search.yaml +18 -0
  81. massgen/configs/basic/single/single_gpt5nano_image_understanding.yaml +17 -0
  82. massgen/configs/basic/single/single_gptoss120b.yaml +15 -0
  83. massgen/configs/basic/single/single_openrouter_audio_understanding.yaml +15 -0
  84. massgen/configs/basic/single/single_qwen_video_understanding.yaml +15 -0
  85. massgen/configs/debug/code_execution/command_filtering_blacklist.yaml +29 -0
  86. massgen/configs/debug/code_execution/command_filtering_whitelist.yaml +28 -0
  87. massgen/configs/debug/code_execution/docker_verification.yaml +29 -0
  88. massgen/configs/debug/skip_coordination_test.yaml +27 -0
  89. massgen/configs/debug/test_sdk_migration.yaml +17 -0
  90. massgen/configs/docs/DISCORD_MCP_SETUP.md +208 -0
  91. massgen/configs/docs/TWITTER_MCP_ENESCINAR_SETUP.md +82 -0
  92. massgen/configs/providers/azure/azure_openai_multi.yaml +21 -0
  93. massgen/configs/providers/azure/azure_openai_single.yaml +19 -0
  94. massgen/configs/providers/claude/claude.yaml +14 -0
  95. massgen/configs/providers/gemini/gemini_gpt5nano.yaml +28 -0
  96. massgen/configs/providers/local/lmstudio.yaml +11 -0
  97. massgen/configs/providers/openai/gpt5.yaml +46 -0
  98. massgen/configs/providers/openai/gpt5_nano.yaml +46 -0
  99. massgen/configs/providers/others/grok_single_agent.yaml +19 -0
  100. massgen/configs/providers/others/zai_coding_team.yaml +108 -0
  101. massgen/configs/providers/others/zai_glm45.yaml +12 -0
  102. massgen/configs/{creative_team.yaml → teams/creative/creative_team.yaml} +16 -6
  103. massgen/configs/{travel_planning.yaml → teams/creative/travel_planning.yaml} +16 -6
  104. massgen/configs/{news_analysis.yaml → teams/research/news_analysis.yaml} +16 -6
  105. massgen/configs/{research_team.yaml → teams/research/research_team.yaml} +15 -7
  106. massgen/configs/{technical_analysis.yaml → teams/research/technical_analysis.yaml} +16 -6
  107. massgen/configs/tools/code-execution/basic_command_execution.yaml +25 -0
  108. massgen/configs/tools/code-execution/code_execution_use_case_simple.yaml +41 -0
  109. massgen/configs/tools/code-execution/docker_claude_code.yaml +32 -0
  110. massgen/configs/tools/code-execution/docker_multi_agent.yaml +32 -0
  111. massgen/configs/tools/code-execution/docker_simple.yaml +29 -0
  112. massgen/configs/tools/code-execution/docker_with_resource_limits.yaml +32 -0
  113. massgen/configs/tools/code-execution/multi_agent_playwright_automation.yaml +57 -0
  114. massgen/configs/tools/filesystem/cc_gpt5_gemini_filesystem.yaml +34 -0
  115. massgen/configs/tools/filesystem/claude_code_context_sharing.yaml +68 -0
  116. massgen/configs/tools/filesystem/claude_code_flash2.5.yaml +43 -0
  117. massgen/configs/tools/filesystem/claude_code_flash2.5_gptoss.yaml +49 -0
  118. massgen/configs/tools/filesystem/claude_code_gpt5nano.yaml +31 -0
  119. massgen/configs/tools/filesystem/claude_code_single.yaml +40 -0
  120. massgen/configs/tools/filesystem/fs_permissions_test.yaml +87 -0
  121. massgen/configs/tools/filesystem/gemini_gemini_workspace_cleanup.yaml +54 -0
  122. massgen/configs/tools/filesystem/gemini_gpt5_filesystem_casestudy.yaml +30 -0
  123. massgen/configs/tools/filesystem/gemini_gpt5nano_file_context_path.yaml +43 -0
  124. massgen/configs/tools/filesystem/gemini_gpt5nano_protected_paths.yaml +45 -0
  125. massgen/configs/tools/filesystem/gpt5mini_cc_fs_context_path.yaml +31 -0
  126. massgen/configs/tools/filesystem/grok4_gpt5_gemini_filesystem.yaml +32 -0
  127. massgen/configs/tools/filesystem/multiturn/grok4_gpt5_claude_code_filesystem_multiturn.yaml +58 -0
  128. massgen/configs/tools/filesystem/multiturn/grok4_gpt5_gemini_filesystem_multiturn.yaml +58 -0
  129. massgen/configs/tools/filesystem/multiturn/two_claude_code_filesystem_multiturn.yaml +47 -0
  130. massgen/configs/tools/filesystem/multiturn/two_gemini_flash_filesystem_multiturn.yaml +48 -0
  131. massgen/configs/tools/mcp/claude_code_discord_mcp_example.yaml +27 -0
  132. massgen/configs/tools/mcp/claude_code_simple_mcp.yaml +35 -0
  133. massgen/configs/tools/mcp/claude_code_twitter_mcp_example.yaml +32 -0
  134. massgen/configs/tools/mcp/claude_mcp_example.yaml +24 -0
  135. massgen/configs/tools/mcp/claude_mcp_test.yaml +27 -0
  136. massgen/configs/tools/mcp/five_agents_travel_mcp_test.yaml +157 -0
  137. massgen/configs/tools/mcp/five_agents_weather_mcp_test.yaml +103 -0
  138. massgen/configs/tools/mcp/gemini_mcp_example.yaml +24 -0
  139. massgen/configs/tools/mcp/gemini_mcp_filesystem_test.yaml +23 -0
  140. massgen/configs/tools/mcp/gemini_mcp_filesystem_test_sharing.yaml +23 -0
  141. massgen/configs/tools/mcp/gemini_mcp_filesystem_test_single_agent.yaml +17 -0
  142. massgen/configs/tools/mcp/gemini_mcp_filesystem_test_with_claude_code.yaml +24 -0
  143. massgen/configs/tools/mcp/gemini_mcp_test.yaml +27 -0
  144. massgen/configs/tools/mcp/gemini_notion_mcp.yaml +52 -0
  145. massgen/configs/tools/mcp/gpt5_nano_mcp_example.yaml +24 -0
  146. massgen/configs/tools/mcp/gpt5_nano_mcp_test.yaml +27 -0
  147. massgen/configs/tools/mcp/gpt5mini_claude_code_discord_mcp_example.yaml +38 -0
  148. massgen/configs/tools/mcp/gpt_oss_mcp_example.yaml +25 -0
  149. massgen/configs/tools/mcp/gpt_oss_mcp_test.yaml +28 -0
  150. massgen/configs/tools/mcp/grok3_mini_mcp_example.yaml +24 -0
  151. massgen/configs/tools/mcp/grok3_mini_mcp_test.yaml +27 -0
  152. massgen/configs/tools/mcp/multimcp_gemini.yaml +111 -0
  153. massgen/configs/tools/mcp/qwen_api_mcp_example.yaml +25 -0
  154. massgen/configs/tools/mcp/qwen_api_mcp_test.yaml +28 -0
  155. massgen/configs/tools/mcp/qwen_local_mcp_example.yaml +24 -0
  156. massgen/configs/tools/mcp/qwen_local_mcp_test.yaml +27 -0
  157. massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml +140 -0
  158. massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml +151 -0
  159. massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml +151 -0
  160. massgen/configs/tools/planning/five_agents_twitter_mcp_planning_mode.yaml +155 -0
  161. massgen/configs/tools/planning/gpt5_mini_case_study_mcp_planning_mode.yaml +73 -0
  162. massgen/configs/tools/web-search/claude_streamable_http_test.yaml +43 -0
  163. massgen/configs/tools/web-search/gemini_streamable_http_test.yaml +43 -0
  164. massgen/configs/tools/web-search/gpt5_mini_streamable_http_test.yaml +43 -0
  165. massgen/configs/tools/web-search/gpt_oss_streamable_http_test.yaml +44 -0
  166. massgen/configs/tools/web-search/grok3_mini_streamable_http_test.yaml +43 -0
  167. massgen/configs/tools/web-search/qwen_api_streamable_http_test.yaml +44 -0
  168. massgen/configs/tools/web-search/qwen_local_streamable_http_test.yaml +43 -0
  169. massgen/coordination_tracker.py +708 -0
  170. massgen/docker/README.md +462 -0
  171. massgen/filesystem_manager/__init__.py +21 -0
  172. massgen/filesystem_manager/_base.py +9 -0
  173. massgen/filesystem_manager/_code_execution_server.py +545 -0
  174. massgen/filesystem_manager/_docker_manager.py +477 -0
  175. massgen/filesystem_manager/_file_operation_tracker.py +248 -0
  176. massgen/filesystem_manager/_filesystem_manager.py +813 -0
  177. massgen/filesystem_manager/_path_permission_manager.py +1261 -0
  178. massgen/filesystem_manager/_workspace_tools_server.py +1815 -0
  179. massgen/formatter/__init__.py +10 -0
  180. massgen/formatter/_chat_completions_formatter.py +284 -0
  181. massgen/formatter/_claude_formatter.py +235 -0
  182. massgen/formatter/_formatter_base.py +156 -0
  183. massgen/formatter/_response_formatter.py +263 -0
  184. massgen/frontend/__init__.py +1 -2
  185. massgen/frontend/coordination_ui.py +471 -286
  186. massgen/frontend/displays/base_display.py +56 -11
  187. massgen/frontend/displays/create_coordination_table.py +1956 -0
  188. massgen/frontend/displays/rich_terminal_display.py +1259 -619
  189. massgen/frontend/displays/simple_display.py +9 -4
  190. massgen/frontend/displays/terminal_display.py +27 -68
  191. massgen/logger_config.py +681 -0
  192. massgen/mcp_tools/README.md +232 -0
  193. massgen/mcp_tools/__init__.py +105 -0
  194. massgen/mcp_tools/backend_utils.py +1035 -0
  195. massgen/mcp_tools/circuit_breaker.py +195 -0
  196. massgen/mcp_tools/client.py +894 -0
  197. massgen/mcp_tools/config_validator.py +138 -0
  198. massgen/mcp_tools/docs/circuit_breaker.md +646 -0
  199. massgen/mcp_tools/docs/client.md +950 -0
  200. massgen/mcp_tools/docs/config_validator.md +478 -0
  201. massgen/mcp_tools/docs/exceptions.md +1165 -0
  202. massgen/mcp_tools/docs/security.md +854 -0
  203. massgen/mcp_tools/exceptions.py +338 -0
  204. massgen/mcp_tools/hooks.py +212 -0
  205. massgen/mcp_tools/security.py +780 -0
  206. massgen/message_templates.py +342 -64
  207. massgen/orchestrator.py +1515 -241
  208. massgen/stream_chunk/__init__.py +35 -0
  209. massgen/stream_chunk/base.py +92 -0
  210. massgen/stream_chunk/multimodal.py +237 -0
  211. massgen/stream_chunk/text.py +162 -0
  212. massgen/tests/mcp_test_server.py +150 -0
  213. massgen/tests/multi_turn_conversation_design.md +0 -8
  214. massgen/tests/test_azure_openai_backend.py +156 -0
  215. massgen/tests/test_backend_capabilities.py +262 -0
  216. massgen/tests/test_backend_event_loop_all.py +179 -0
  217. massgen/tests/test_chat_completions_refactor.py +142 -0
  218. massgen/tests/test_claude_backend.py +15 -28
  219. massgen/tests/test_claude_code.py +268 -0
  220. massgen/tests/test_claude_code_context_sharing.py +233 -0
  221. massgen/tests/test_claude_code_orchestrator.py +175 -0
  222. massgen/tests/test_cli_backends.py +180 -0
  223. massgen/tests/test_code_execution.py +679 -0
  224. massgen/tests/test_external_agent_backend.py +134 -0
  225. massgen/tests/test_final_presentation_fallback.py +237 -0
  226. massgen/tests/test_gemini_planning_mode.py +351 -0
  227. massgen/tests/test_grok_backend.py +7 -10
  228. massgen/tests/test_http_mcp_server.py +42 -0
  229. massgen/tests/test_integration_simple.py +198 -0
  230. massgen/tests/test_mcp_blocking.py +125 -0
  231. massgen/tests/test_message_context_building.py +29 -47
  232. massgen/tests/test_orchestrator_final_presentation.py +48 -0
  233. massgen/tests/test_path_permission_manager.py +2087 -0
  234. massgen/tests/test_rich_terminal_display.py +14 -13
  235. massgen/tests/test_timeout.py +133 -0
  236. massgen/tests/test_v3_3agents.py +11 -12
  237. massgen/tests/test_v3_simple.py +8 -13
  238. massgen/tests/test_v3_three_agents.py +11 -18
  239. massgen/tests/test_v3_two_agents.py +8 -13
  240. massgen/token_manager/__init__.py +7 -0
  241. massgen/token_manager/token_manager.py +400 -0
  242. massgen/utils.py +52 -16
  243. massgen/v1/agent.py +45 -91
  244. massgen/v1/agents.py +18 -53
  245. massgen/v1/backends/gemini.py +50 -153
  246. massgen/v1/backends/grok.py +21 -54
  247. massgen/v1/backends/oai.py +39 -111
  248. massgen/v1/cli.py +36 -93
  249. massgen/v1/config.py +8 -12
  250. massgen/v1/logging.py +43 -127
  251. massgen/v1/main.py +18 -32
  252. massgen/v1/orchestrator.py +68 -209
  253. massgen/v1/streaming_display.py +62 -163
  254. massgen/v1/tools.py +8 -12
  255. massgen/v1/types.py +9 -23
  256. massgen/v1/utils.py +5 -23
  257. massgen-0.1.0.dist-info/METADATA +1245 -0
  258. massgen-0.1.0.dist-info/RECORD +273 -0
  259. massgen-0.1.0.dist-info/entry_points.txt +2 -0
  260. massgen/frontend/logging/__init__.py +0 -9
  261. massgen/frontend/logging/realtime_logger.py +0 -197
  262. massgen-0.0.3.dist-info/METADATA +0 -568
  263. massgen-0.0.3.dist-info/RECORD +0 -76
  264. massgen-0.0.3.dist-info/entry_points.txt +0 -2
  265. /massgen/backend/{Function calling openai responses.md → docs/Function calling openai responses.md} +0 -0
  266. {massgen-0.0.3.dist-info → massgen-0.1.0.dist-info}/WHEEL +0 -0
  267. {massgen-0.0.3.dist-info → massgen-0.1.0.dist-info}/licenses/LICENSE +0 -0
  268. {massgen-0.0.3.dist-info → massgen-0.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,273 @@
1
+ massgen/__init__.py,sha256=iGPQgeGSAER-W9VjU_yQACZ_Lybdmo6B0c56oVeMBco,7974
2
+ massgen/agent_config.py,sha256=FQZhOvEJq-h9oI2YEDKXX5o6sAWxBg2yu_g9NrI1sP0,30661
3
+ massgen/chat_agent.py,sha256=doJSk6yhaqE1-Qy1AYpsSvUiJwHB92xXCBeS8hGh8wQ,18567
4
+ massgen/cli.py,sha256=5SZ2K1eU13H6kZZERycWSJ5PHmFdF8l_s4QocY2x7iQ,84217
5
+ massgen/config_builder.py,sha256=wR94ptSnnGH8LMw6J0lEZh-X5qHcKj8AWoUM2mIN3Pw,112897
6
+ massgen/coordination_tracker.py,sha256=_r8Man3uomovpXKHrlc4YBI030tkuavYQ-6fEk2JsfM,28201
7
+ massgen/logger_config.py,sha256=wga7v8yIASxDaO7vwjbw_gyCxe0ZxIggV6kGyyMGYlM,22686
8
+ massgen/message_templates.py,sha256=toBE7Kdn0I6SsM6-DxC1El0nPBFWgakFZcAPdQVfl5E,37945
9
+ massgen/orchestrator.py,sha256=w4McgCVsPy5v1H2JUX7uGpOJ02A1H1Iqmi-dfcXSTQk,124565
10
+ massgen/utils.py,sha256=ssCKRV5T5LgY4LDSHBGeUUrAdgDNTf4rUXeFVKYUM9Y,2992
11
+ massgen/adapters/__init__.py,sha256=lYDbplvbiRfXup5e_Q3GzvGujP3V0vqElEJqVfQog2Q,726
12
+ massgen/adapters/ag2_adapter.py,sha256=71I1acslxIrTPDWTkiTICsp2lyRrrc_F4SwQqa2K_vY,18465
13
+ massgen/adapters/base.py,sha256=K2VvA5XmurCoCfuIcNd_6Q3jOqXvlsE6UrfOnRK9Q1s,5201
14
+ massgen/adapters/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ massgen/adapters/tests/test_ag2_adapter.py,sha256=em-mDd4BFeUkI8kBOIwSE8t86KrQ8PydshHU_HeK0rQ,14412
16
+ massgen/adapters/tests/test_agent_adapter.py,sha256=8t_fBleT7rbjA0ptawhzrutQz3mycwHIGYARJNOdLI0,3433
17
+ massgen/adapters/utils/__init__.py,sha256=eVIcirvJ8ltJRBSlL8qs-DcCzbb8lDsWsmGgGLa9QKI,62
18
+ massgen/adapters/utils/ag2_utils.py,sha256=R08NpX6gY2hc74jRAqF5rPaLziifhacBMFOGLG2s7u4,8840
19
+ massgen/adapters/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ massgen/adapters/utils/tests/test_ag2_utils.py,sha256=AUI2xjOUBbi71h0DBHF3zBjAB3P01Ie-L1PeiLlG3VE,4030
21
+ massgen/api_params_handler/__init__.py,sha256=Qki1IO0xdBP8dBN1DUjR2bK0GyVkQIJgzUc01TWiQnI,439
22
+ massgen/api_params_handler/_api_params_handler_base.py,sha256=YRWpHe_nfd6N6JtrSryNg9OEcmcb1mw0qzq1gkVCB_o,3451
23
+ massgen/api_params_handler/_chat_completions_api_params_handler.py,sha256=oC7yxO46hA0oImK2alfj9BoAuUKoO-Kq4Tr9A1E8jDM,6964
24
+ massgen/api_params_handler/_claude_api_params_handler.py,sha256=tyQ08rwhk70c5EoOwsUOuh8oaVzirPWrZ__nRiTo9-c,3603
25
+ massgen/api_params_handler/_response_api_params_handler.py,sha256=4qtu4Ku_E4T-fvnb33DD2HcsoBoqtHg0k1Fi2F2xy8M,4616
26
+ massgen/backend/__init__.py,sha256=hIxCbgDqHgO6zzFXnulR8dx2gm1Yi4IDdutDsja1fSg,1749
27
+ massgen/backend/azure_openai.py,sha256=8PnIhRgTylazrFnRe0d_uk0qIEs1VJ48jdCpxcjjHT4,17962
28
+ massgen/backend/base.py,sha256=9gGT8FySocv3wUIr1hBzsAwbI4rfRGfIGap8849OaeI,17731
29
+ massgen/backend/base_with_mcp.py,sha256=TpjeC40ohr2WraIMN14IuZBfYGIwOlkmwJZoFEXB5w4,45922
30
+ massgen/backend/capabilities.py,sha256=rq9aRNH3IWOFVgt9PUX_l32h5c_Yuc86hnPbgXbfuDo,13215
31
+ massgen/backend/chat_completions.py,sha256=dNvrFC6Rzc8KrgbmhrrfhrMr1J9-GYY5kAhswgRZGyw,32198
32
+ massgen/backend/claude.py,sha256=ZJ_e4xtStcgx94wnJw-SRsfy1Namq1BIBfWCzV6uCF0,54951
33
+ massgen/backend/claude_code.py,sha256=4b4CT3zB5nxG8k835WxZCd4dKPIV1LgjniAsAINf-70,53240
34
+ massgen/backend/cli_base.py,sha256=SlaDxjUdyhhbby6XqU8FdTCtcLuAGR0AmQePDRDSDW4,6820
35
+ massgen/backend/external.py,sha256=uKl91wgJP4psSBuvBCg33nH8bkMcuNVoKE4vNaCNXP4,4300
36
+ massgen/backend/gemini.py,sha256=RgdSuQVBbhApSujB1xNZ3TZiGSqAtaPw8u6SHIVMX28,101326
37
+ massgen/backend/grok.py,sha256=lSRW_uaRgV32xISfwpZZQqIW2KQP3fgrJ3gqWuJYCp4,2914
38
+ massgen/backend/inference.py,sha256=PT_e9fDEHlME0TtJT7_dse2aPtaHliYul9D52n_nXns,5971
39
+ massgen/backend/lmstudio.py,sha256=UEd3Wkdy9r5ceJ3oM7_LR3MYEQv4ghcn2je5F1d-dyU,7267
40
+ massgen/backend/response.py,sha256=pUG2frZtLxatfreKA41r5TutglGalOyBtNGK8qDDib4,53527
41
+ massgen/backend/docs/BACKEND_ARCHITECTURE.md,sha256=so30oNBwmJBeQz3rHuFCECJjC2Sufwc40--2Rb01jeU,4483
42
+ massgen/backend/docs/CLAUDE_API_RESEARCH.md,sha256=wovwi7WBBv8463yDRVmFaX_YR_b7gvOo7qaPmS_tFMw,9842
43
+ massgen/backend/docs/Function calling openai responses.md,sha256=ffrh5nEkO0tQGO8vJeamcWsgIEB_37XShrSYKLZldTg,37480
44
+ massgen/backend/docs/GEMINI_API_DOCUMENTATION.md,sha256=twmiwQ3JDfYQsPK5YSg7ETu_SJYtnKXK-6_CZcBkKxk,12354
45
+ massgen/backend/docs/Gemini MCP Integration Analysis.md,sha256=yIaqleQnawMHJ_ygHMw_8Kc9AIw3nIohwOINiNway54,33122
46
+ massgen/backend/docs/MCP_IMPLEMENTATION_CLAUDE_BACKEND.md,sha256=fxLgQSyieSXzjgJDyp_ddovQjA1-ukXLpol96Bwa_bE,10392
47
+ massgen/backend/docs/MCP_INTEGRATION_RESPONSE_BACKEND.md,sha256=GY2ZUFdmdKU90vLUYYFXNqnvj7GZ0t09aKonqJX2Eak,15494
48
+ massgen/backend/docs/OPENAI_GPT5_MODELS.md,sha256=8RMYc3mkTDrpbstNqmMjR07NeWmZlI_p3jYV2l6UGCk,7077
49
+ massgen/backend/docs/OPENAI_RESPONSE_API_TOOL_CALLS.md,sha256=lqvb2k20OmCPImJPN8EQt0mOuXCPrp8u5V_slxQOnP0,1897
50
+ massgen/backend/docs/OPENAI_response_streaming.md,sha256=ees0GpokNKgg_aAuAODJifDaxY2c8gwUmfgrQ35r0JM,500324
51
+ massgen/backend/docs/inference_backend.md,sha256=NNxvh6JWc2BPWLQrAJKXsXAyvggT-_KRHmboulYNw7Y,6372
52
+ massgen/backend/docs/permissions_and_context_files.md,sha256=1afQsz-s6rQdNmOgs2GhPHrYOd1t4cM-2EqkOArR42Q,40484
53
+ massgen/configs/BACKEND_CONFIGURATION.md,sha256=eJL8dBpGnb3o705R0Uk5QbWanKG9C30jFd8U3gqlbeE,13051
54
+ massgen/configs/README.md,sha256=EPL0nId8Xl1ihtqMZuMI9DiYGX3np-CH38yVa65WOfY,28287
55
+ massgen/configs/ag2/ag2_case_study.yaml,sha256=kiQanWKY3VyZD6Sl-0ZBMOcWoOWU2AF26IJKKhKak4k,767
56
+ massgen/configs/ag2/ag2_coder.yaml,sha256=jtIBULpg55BthnQ-YRXrJ1xG7Q_IqK-1N5qCitC_A_4,1131
57
+ massgen/configs/ag2/ag2_coder_case_study.yaml,sha256=3mE5mq9zU7V6RZ_XsgiA_-4S04zCNCAYPH7FmTE1suE,1273
58
+ massgen/configs/ag2/ag2_gemini.yaml,sha256=Y1aiAvJPCI4SBT-KmcNow8YBgRU0zKW66lCyQEM9yd0,730
59
+ massgen/configs/ag2/ag2_groupchat.yaml,sha256=TNx5AT-gvHfx5ug0PX2pM9UtgcdUG9Nd-wEOEd5-3bc,4731
60
+ massgen/configs/ag2/ag2_groupchat_gpt.yaml,sha256=l02mNSKCjZlw5l8VESrbbY3RYthon8pick1G4PLjFIg,4965
61
+ massgen/configs/ag2/ag2_single_agent.yaml,sha256=-6l0go8aGi4XpKKCnjLEtEKYamieRfdvzUnf0fsDMMI,587
62
+ massgen/configs/basic/multi/fast_timeout_example.yaml,sha256=Oic9rFZfu2GxPbIpHSR3ZrXd3BXeRpincFbvaFvoBL8,1266
63
+ massgen/configs/basic/multi/gemini_4o_claude.yaml,sha256=FLXBax7d6yQQR2AWRb4gxT14iU5yNApCjnfH5uJajdY,1359
64
+ massgen/configs/basic/multi/gemini_gpt5nano_claude.yaml,sha256=iJ_l0KboxbX4go86LrWvpchHOzxfQLzS4NbmdAoFJe0,1477
65
+ massgen/configs/basic/multi/geminicode_4o_claude.yaml,sha256=ZeFD8FI1rUjRll08NJpsjhsWOdij1SEoBZWb2J0QVuo,1279
66
+ massgen/configs/basic/multi/geminicode_gpt5nano_claude.yaml,sha256=HQTO-6MCrxl9uE6eLRZg7UH2J6UD4HbVFRk8y9B7tvg,1388
67
+ massgen/configs/basic/multi/glm_gemini_claude.yaml,sha256=J7jVLiMt12qUiQ836YGdwYXaM3v8ObVotm4chvtnJTU,482
68
+ massgen/configs/basic/multi/gpt4o_audio_generation.yaml,sha256=Pgqjhvlpk4wIdVJkh1yfmk3uPC9KvLmgdLdozk5a7Gs,1043
69
+ massgen/configs/basic/multi/gpt4o_image_generation.yaml,sha256=1lSvyvoxzRKcfUqqFiGE3ns4FxHp81JpyMhO94MACsw,900
70
+ massgen/configs/basic/multi/gpt5nano_glm_qwen.yaml,sha256=FHSBx2QbThKO9Di9YqZf7knyD5Jw0BEvCWEP0z8HSgo,552
71
+ massgen/configs/basic/multi/gpt5nano_image_understanding.yaml,sha256=cIJYs17uzDlkfAbaIShuofZcHVKO4JNgtWGHnjexORs,865
72
+ massgen/configs/basic/multi/three_agents_default.yaml,sha256=T8DdP82b54DunSAOMOjshfkKAGJYbXXo1ELVZvtbaB4,1325
73
+ massgen/configs/basic/multi/three_agents_opensource.yaml,sha256=PMBPCza71F3d4QuDuh-ory4sjx7pi9huG6rM09Sguhg,705
74
+ massgen/configs/basic/multi/three_agents_vllm.yaml,sha256=gfU1l6CCCMJqXlQB7K6TfjwR4fDynG1AFfQa6VQUW1Y,547
75
+ massgen/configs/basic/multi/two_agents_gemini.yaml,sha256=AotP_V0A0jiIIonB_J8jeIO8fZxCETsQGuJkbjwCYEU,930
76
+ massgen/configs/basic/multi/two_agents_gpt5.yaml,sha256=-WGyLurnM1nP2ZxcoX8mS4OkeGrUT4wHHcmNqKAU6Xc,1282
77
+ massgen/configs/basic/multi/two_agents_opensource_lmstudio.yaml,sha256=QLnRas-5tkfKeYpBjbLjD_8nIqicJX6KG1d_uuty_Cw,737
78
+ massgen/configs/basic/multi/two_qwen_vllm_sglang.yaml,sha256=tJX7IB9OrjpUbnBZztkWLfJfT7yfhgBebWLsjAqjMCI,1084
79
+ massgen/configs/basic/single/single_agent.yaml,sha256=7woZ1Y2HVJ0Cwyya3SadsMG9yAAfNpVb7IJoXtGwRqU,529
80
+ massgen/configs/basic/single/single_flash2.5.yaml,sha256=r9j80dQXaC4zSW4PoSlvpsg6-7bkq5W5Act9yWI7J6c,1288
81
+ massgen/configs/basic/single/single_gemini2.5pro.yaml,sha256=KOKCrDP05vYOmSHU9sDkSwYnc2eWpNTKdhEWsg5QQmM,433
82
+ massgen/configs/basic/single/single_gpt4o_audio_generation.yaml,sha256=k861UZutFeJmRXkHkcPH90pXKUnTIsM3sQJ9a5oL52I,1020
83
+ massgen/configs/basic/single/single_gpt4o_image_generation.yaml,sha256=Jja9ec5bUd2pY0YPx2sqizH-lta7aAXOxfM9md9kvEs,898
84
+ massgen/configs/basic/single/single_gpt4o_video_generation.yaml,sha256=Mz8YYGQAgpQjcv8Gg5jzOUBbA2-qGDm84ZZvxTXEYhA,1213
85
+ massgen/configs/basic/single/single_gpt5nano.yaml,sha256=F7lztj8DbjMMrbXJSVOKe2u2nS4UvMkcHkFkMKzdhD0,777
86
+ massgen/configs/basic/single/single_gpt5nano_file_search.yaml,sha256=y5MjjTUtZQLRfyhk0Ho1uRXPwGl9PxEr0vyJ37piW0w,615
87
+ massgen/configs/basic/single/single_gpt5nano_image_understanding.yaml,sha256=yif4zX2BVmNt99NFFI1ThFimCyFOvItE_31xLY5yCCw,617
88
+ massgen/configs/basic/single/single_gptoss120b.yaml,sha256=s-hyREulmUu9A-OCHedMMSE2HQXSNIF3XjVlRqTgI1k,318
89
+ massgen/configs/basic/single/single_openrouter_audio_understanding.yaml,sha256=VHTZ3Ysq_-00hMzD2KDqPouZ2kBki5knVmKVbZSa6_g,542
90
+ massgen/configs/basic/single/single_qwen_video_understanding.yaml,sha256=kjRBHHeW1syMYcCl5P8Nm9rIoXGG8zuJ_COQHxjbJ-A,540
91
+ massgen/configs/debug/skip_coordination_test.yaml,sha256=PHz1K8ykHSy7R-UgAajVVbE0IhMfK8YmfFl_IUeuI30,899
92
+ massgen/configs/debug/test_sdk_migration.yaml,sha256=4I7gnOh_0-UdARNixnd7TsOwpOMC9TZnCZxFMWzMi1g,463
93
+ massgen/configs/debug/code_execution/command_filtering_blacklist.yaml,sha256=_BekigQZgv9CMSlSfAa4FmWUZaoq4Wd4VaDE29g75Os,1011
94
+ massgen/configs/debug/code_execution/command_filtering_whitelist.yaml,sha256=EixymYWO_8eO4_ValuF_HrTzLp3x3dvlFXyjydmxqig,994
95
+ massgen/configs/debug/code_execution/docker_verification.yaml,sha256=fx4CiJM1z7lptY7efOwI8ZCuiYOUgeGnZkcEm6pLJe0,1495
96
+ massgen/configs/docs/DISCORD_MCP_SETUP.md,sha256=T1RhdPV8d6-cnVts-zvz-zoxv2xOtzz8e6eJthOpC2c,7377
97
+ massgen/configs/docs/TWITTER_MCP_ENESCINAR_SETUP.md,sha256=j_BRC5b6IXj8j8lkmi040DYGdl00XHtLD6_XiW3G0Oo,2657
98
+ massgen/configs/providers/azure/azure_openai_multi.yaml,sha256=9aEPTv1dyu26fCC6MA_gzKnG_MehNE_cdT3r6t5Uccc,831
99
+ massgen/configs/providers/azure/azure_openai_single.yaml,sha256=r_E7hwtGP5goWro6VH02DMW1Q1kOO3Z2tzLK5C3L9y0,642
100
+ massgen/configs/providers/claude/claude.yaml,sha256=IOvxJ2s4_RC5zWRk3sBsiVwaL2XGhShfjJJ_mhCHzZ0,340
101
+ massgen/configs/providers/gemini/gemini_gpt5nano.yaml,sha256=bhDiEK130KnZhbgHw8dngqHLvCFpjz7jQpE8MxCR4nU,1114
102
+ massgen/configs/providers/local/lmstudio.yaml,sha256=YZ2528fhaCDWZ4VT3T1FpcklEfuOrBnKaEXy3cIkEoE,375
103
+ massgen/configs/providers/openai/gpt5.yaml,sha256=CU8voZWX9K3uVkI27RnhCRuZXq9p-qwdoBpujzRmSvI,1591
104
+ massgen/configs/providers/openai/gpt5_nano.yaml,sha256=KIgtOjoaszl_LE4myal8sM-geNG5gi0IrIJOFFSzpiw,1585
105
+ massgen/configs/providers/others/grok_single_agent.yaml,sha256=n8asAlUzbgVDLPGDjgB1Yu0DoZ-wgyyPnzl1PhZtlvw,668
106
+ massgen/configs/providers/others/zai_coding_team.yaml,sha256=IvyRE6MypknqTgRJTcVPecS__C8sTfW4Iiw72Fhtpls,4880
107
+ massgen/configs/providers/others/zai_glm45.yaml,sha256=MSpi-VQ2oczB1YbSZzP16yEcG-4gay1931XsenpPQE0,223
108
+ massgen/configs/teams/creative/creative_team.yaml,sha256=WgDjbkC-s9vwnitye-t-I21ChPSY9wBgisKY11DXhaM,1877
109
+ massgen/configs/teams/creative/travel_planning.yaml,sha256=ExKVPzujPJ0dZbln1v4jNTincjkWI5VML--4mxWaCpk,1943
110
+ massgen/configs/teams/research/news_analysis.yaml,sha256=tbs-xGyT5dkcHqQo2uBCmUcWT3p9Zn1LAh613mOYYII,1875
111
+ massgen/configs/teams/research/research_team.yaml,sha256=PDj8BBXYattmMjOygjihvdNI8ZryLlWf2JMEtM16Z-8,1876
112
+ massgen/configs/teams/research/technical_analysis.yaml,sha256=zHTK1qlvH6Aj1l-frc0mLFhEGp02CJlHWr-_J2m3zTo,1953
113
+ massgen/configs/tools/code-execution/basic_command_execution.yaml,sha256=5BltlXwqvwhV-Qh4UwNaFvDJ6rdpwbB3z0Cay-nRxhM,681
114
+ massgen/configs/tools/code-execution/code_execution_use_case_simple.yaml,sha256=0J6mPhVHNnIWruOTJzjUN1onjv-1ZyHPoyvbXoKh6C0,1250
115
+ massgen/configs/tools/code-execution/docker_claude_code.yaml,sha256=YnfyCijkJHjHlEdVBsylvKbN7Gw6l5TUEobeQJT1gG8,1049
116
+ massgen/configs/tools/code-execution/docker_multi_agent.yaml,sha256=N4Z6H-EGLcYHaK8hCd_nTa95IbInf0RLnT9KK0A4ylE,1030
117
+ massgen/configs/tools/code-execution/docker_simple.yaml,sha256=ctM5U8MU8JXOof7ZBpjctH0fDGctzRXS0ySpBKjrjcg,1088
118
+ massgen/configs/tools/code-execution/docker_with_resource_limits.yaml,sha256=B87ceocgmF_XqeGhQhOAZWiMTXMs9qlMZOVeqbug74g,1185
119
+ massgen/configs/tools/code-execution/multi_agent_playwright_automation.yaml,sha256=Y730nR5O737u85xmbkXX-Gb3yDIgrnx2HRNNijQYWG4,2124
120
+ massgen/configs/tools/filesystem/cc_gpt5_gemini_filesystem.yaml,sha256=eCnljU999bu5GG7Sl1ANdkojxnjU1vvQltmtcMjpiCM,831
121
+ massgen/configs/tools/filesystem/claude_code_context_sharing.yaml,sha256=1hdol8UXvZXTFmPL13FTXdMYh7bLfrgZNRx-FSrMehY,3064
122
+ massgen/configs/tools/filesystem/claude_code_flash2.5.yaml,sha256=zuyFzh1deUz6yGS602Z2JEuAFN43UVe9dnPSiDFVrq4,1703
123
+ massgen/configs/tools/filesystem/claude_code_flash2.5_gptoss.yaml,sha256=1RmI6ZCRYboE-2qRWXwQZ83lNSztj10mQPazEtRUmd4,1842
124
+ massgen/configs/tools/filesystem/claude_code_gpt5nano.yaml,sha256=tkQW7hn5dGOMlrXM4poM9d9Awevc4CLQlGg_QQK-zoo,600
125
+ massgen/configs/tools/filesystem/claude_code_single.yaml,sha256=Ha0EignLTfSE_86vC4iSWRE04hd1Zf-naywWZzUUnWg,1746
126
+ massgen/configs/tools/filesystem/fs_permissions_test.yaml,sha256=nKMs3YtzL-OhvH4l7sSWe-4VINiEYKfMOTWorxmBWB0,2204
127
+ massgen/configs/tools/filesystem/gemini_gemini_workspace_cleanup.yaml,sha256=KaM9CjsPrOpwXadT4NwHFcmj9ywyuFX-HvZ5wf0MX68,1838
128
+ massgen/configs/tools/filesystem/gemini_gpt5_filesystem_casestudy.yaml,sha256=IdCKC5o4ottocQxSJlrQmMymXjPZ1KYMqGfzc087cPU,1086
129
+ massgen/configs/tools/filesystem/gemini_gpt5nano_file_context_path.yaml,sha256=RXW1jh8nn8YC-e_wWPITnRBcRi9jdZzw-PHW6GWyGlc,1337
130
+ massgen/configs/tools/filesystem/gemini_gpt5nano_protected_paths.yaml,sha256=UUgV7pPXzzB7URgmjSMl0jrA3jwJ98EVWMMdBKcQDJo,1353
131
+ massgen/configs/tools/filesystem/gpt5mini_cc_fs_context_path.yaml,sha256=se0_GTZHQh9rPk11RlDTsDt0b1REG22L4qIEQn_20uQ,857
132
+ massgen/configs/tools/filesystem/grok4_gpt5_gemini_filesystem.yaml,sha256=EtkNn6-bzhH5F0_mp3lfP9jqN1J9ZUl00wwhc8HaiBE,783
133
+ massgen/configs/tools/filesystem/multiturn/grok4_gpt5_claude_code_filesystem_multiturn.yaml,sha256=R3C32dGsnymc-RmYMU0YXxbVLBVw-iqVTLjqvPlb2y0,2056
134
+ massgen/configs/tools/filesystem/multiturn/grok4_gpt5_gemini_filesystem_multiturn.yaml,sha256=wEaV8TBpQrZwF6c_w3rJqzgyQ_Ib914cKQvzBnkxifU,1914
135
+ massgen/configs/tools/filesystem/multiturn/two_claude_code_filesystem_multiturn.yaml,sha256=HXtcKUHBFAnboUanIWthsGF7xgPgFVRFhexq9pjpLPk,1786
136
+ massgen/configs/tools/filesystem/multiturn/two_gemini_flash_filesystem_multiturn.yaml,sha256=0xD51Rcf8oH-8L89r-HQnyX8IucAzpwPTrj6qmgsDD4,1766
137
+ massgen/configs/tools/mcp/claude_code_discord_mcp_example.yaml,sha256=bsfVLAzpVnvpP_59s38oaSNNaWSL8h-it8HNLfaVKyg,614
138
+ massgen/configs/tools/mcp/claude_code_simple_mcp.yaml,sha256=fjI68dUEZlOaJiBjyLz-fCUnFFY1oWtI4sRWk2M88R0,901
139
+ massgen/configs/tools/mcp/claude_code_twitter_mcp_example.yaml,sha256=lvTuOAHBX8ywuSrhFl3Nk5uh2jQoB9CyXF_h2AF4pxw,883
140
+ massgen/configs/tools/mcp/claude_mcp_example.yaml,sha256=92E48Y9cOVSh4j93w6ssLzsiRiYzry721err4GKsyNk,1029
141
+ massgen/configs/tools/mcp/claude_mcp_test.yaml,sha256=im9cl0M2WqeoQuXWyIhXqro02d66sRudCZ6wRgCpG0c,1010
142
+ massgen/configs/tools/mcp/five_agents_travel_mcp_test.yaml,sha256=5I2P0nXlOHiBPsYm1MZ2vn5_YZV_SBwhq_2KNR343p8,5904
143
+ massgen/configs/tools/mcp/five_agents_weather_mcp_test.yaml,sha256=EsxO5YssTrBjqg27xNnVqmuY7j8BEcxt0_ul3o_gGXg,3255
144
+ massgen/configs/tools/mcp/gemini_mcp_example.yaml,sha256=zgvHjdi8KEO_ZtfP4GKOpSqFPehl79yO9IohjULJ9iQ,1022
145
+ massgen/configs/tools/mcp/gemini_mcp_filesystem_test.yaml,sha256=VrXz_xusI8zeZ5HZzi1I79Ek_TMeuNtPvrNbRFLb1aU,803
146
+ massgen/configs/tools/mcp/gemini_mcp_filesystem_test_sharing.yaml,sha256=ZZjT-duM94SgcaRTGwheWdb4lW5LHskHFcVPm0efVoQ,825
147
+ massgen/configs/tools/mcp/gemini_mcp_filesystem_test_single_agent.yaml,sha256=GLeKw51iJKeVl1Joq_G8XCj1DydPCniGYf6w8FS1ZaY,658
148
+ massgen/configs/tools/mcp/gemini_mcp_filesystem_test_with_claude_code.yaml,sha256=F15Ff148iCY9-PtQUKtdWhe4YZanlnJVntQPSCRGvFs,856
149
+ massgen/configs/tools/mcp/gemini_mcp_test.yaml,sha256=bjny4DwbMRHuMdW7GUe7NzZkxlUmB8ZN4ilckTLaqyU,988
150
+ massgen/configs/tools/mcp/gemini_notion_mcp.yaml,sha256=vjYKkPRVbfh1E5yPnJm53lCT83oQU_8-d7nRzJRm8c8,2487
151
+ massgen/configs/tools/mcp/gpt5_nano_mcp_example.yaml,sha256=1J7OdutBpEjzMdAwiuenja-ylQtZTm4paC__-3Enejg,1014
152
+ massgen/configs/tools/mcp/gpt5_nano_mcp_test.yaml,sha256=Zk5NcykPxH-H03N392Scpuajz91em0zSbou6euUQZ7I,978
153
+ massgen/configs/tools/mcp/gpt5mini_claude_code_discord_mcp_example.yaml,sha256=LVK3KXMkjO-fk8TAcOWrlIuHsEWzKagnsZ7hNaT1wRg,1497
154
+ massgen/configs/tools/mcp/gpt_oss_mcp_example.yaml,sha256=300rs4UMk88xmZMfQDH3Okr_PFhmZAqnN7oO69hQiZ8,1079
155
+ massgen/configs/tools/mcp/gpt_oss_mcp_test.yaml,sha256=E6TrjS3Gvm3mSgDzcyJrZz04wOG2ehuqjEfTbpZqsmc,1039
156
+ massgen/configs/tools/mcp/grok3_mini_mcp_example.yaml,sha256=RGZhwAIee8it0TMDSCy5fWhooGsCz0HXLy1sbVbYh34,1016
157
+ massgen/configs/tools/mcp/grok3_mini_mcp_test.yaml,sha256=vmLoZYuVUEoGjLPolcBGCHNdBpOfameLCWnQ9sXmKsg,980
158
+ massgen/configs/tools/mcp/multimcp_gemini.yaml,sha256=HwV_dnMY304EUbSGq2RnVImkhcshv-uF2F8VmzkOkCY,5155
159
+ massgen/configs/tools/mcp/qwen_api_mcp_example.yaml,sha256=OL_VdY9P3215daqOzrn7LdRt0oHodkZrtrIdhxN_ZGw,1095
160
+ massgen/configs/tools/mcp/qwen_api_mcp_test.yaml,sha256=BDY94AvE5OTsJyjapDfbt5Cs6Ylrz7cY8D2nG60wM0w,1053
161
+ massgen/configs/tools/mcp/qwen_local_mcp_example.yaml,sha256=6fW3E64dL8RCWr5mak8KpHuhXPbtJGogsPOxkLUKse4,1031
162
+ massgen/configs/tools/mcp/qwen_local_mcp_test.yaml,sha256=2ilQXKCW4wY_pahwhPOdwSBVZP6K9Ng4sQDtXix5sQQ,992
163
+ massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml,sha256=eAFRShCo8azPtcFutlvWZyEFCMLMvAH9mBa8wtqUsoM,5016
164
+ massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml,sha256=VRtCsLnc_Vpcxxt6qZ7Gbqnik4RSWJIe9jemaIrK0dE,6302
165
+ massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml,sha256=S7hqdKKb1bs52uPveArmiZ7xr10RbDURW2yFcYek2Fs,5603
166
+ massgen/configs/tools/planning/five_agents_twitter_mcp_planning_mode.yaml,sha256=Cx6f3pZf5eFgK3NR2j_yOhJtaPQ2yrAWI_-FCkQB-s0,6135
167
+ massgen/configs/tools/planning/gpt5_mini_case_study_mcp_planning_mode.yaml,sha256=D231EEe_jJrz1W_sX-ywEiqTLkfPxTwzXG4qthy_0d8,3086
168
+ massgen/configs/tools/web-search/claude_streamable_http_test.yaml,sha256=B7u_-fe70wBG2cXeYIwcg-Z3DORmSNpjdMFj4bFEeJg,2232
169
+ massgen/configs/tools/web-search/gemini_streamable_http_test.yaml,sha256=1xtJwG9OEfkX_O5n299kI9W5_WhfnDSvANd3YizYFcU,2211
170
+ massgen/configs/tools/web-search/gpt5_mini_streamable_http_test.yaml,sha256=3x1McsBaKPGrBGqexu2PcLKcM13yoOTLg3yw_R7F2K4,2199
171
+ massgen/configs/tools/web-search/gpt_oss_streamable_http_test.yaml,sha256=H1p2NmdygjFQ2zvqNZXmf254dVH3Zas2fm-sdRVpxOg,2253
172
+ massgen/configs/tools/web-search/grok3_mini_streamable_http_test.yaml,sha256=uO-xlNTu6heDsIGNhGX3LKv1Vtx6vHxtuZZgXLI58Fk,2197
173
+ massgen/configs/tools/web-search/qwen_api_streamable_http_test.yaml,sha256=-7eBgZJkJJyymVwtNBJRjl2brxfJX6xB3nwTOEh4urI,2262
174
+ massgen/configs/tools/web-search/qwen_local_streamable_http_test.yaml,sha256=nvxUK_J7pDI9Hoa8t8TGdcVCosnjdIegnbgp8os0YWo,2201
175
+ massgen/docker/README.md,sha256=a1c5Ow5pH7DShmYvWaSVvtcqqJ8CPyeMEoWpRTU832Q,12596
176
+ massgen/filesystem_manager/__init__.py,sha256=4rWTzNHcx_ISTiph9iICjteyTS2R1hl1yELpsoIbUdQ,590
177
+ massgen/filesystem_manager/_base.py,sha256=4pR1rqPvqtNo9OsdaUM3j1TebOnQm27olNwbvijRAOA,151
178
+ massgen/filesystem_manager/_code_execution_server.py,sha256=LFjN4V7y3D4A2DUz8WnM5VDO3uGsx6KWigF63rX-ySg,20284
179
+ massgen/filesystem_manager/_docker_manager.py,sha256=wmrVDaTovVTC9e_CYZdRJtdJuR1avm4kN-72Lk04PZ4,18406
180
+ massgen/filesystem_manager/_file_operation_tracker.py,sha256=voYhy0xyO2qTWyz545esYdLjqTN3UYp_S-q4QVwxTn8,8668
181
+ massgen/filesystem_manager/_filesystem_manager.py,sha256=DFoPVf0mC0Pq8pmMhMQQT_g-C8BtH3dTMutuEn8eDDM,36316
182
+ massgen/filesystem_manager/_path_permission_manager.py,sha256=pmOTMPda4kTohqAXQaxtqfZPZQ79YzLYaxI89vXlBTA,56326
183
+ massgen/filesystem_manager/_workspace_tools_server.py,sha256=WAeX5uHdYTqfOI7-Af_pHZK_ZGuODBc-qNi2sAegkCc,74102
184
+ massgen/formatter/__init__.py,sha256=t3qDPvytyzIBkqYW9CCqTflikQ8ynw_AlF0PFgnH9Yc,370
185
+ massgen/formatter/_chat_completions_formatter.py,sha256=JCkudYMBIUqI4Zy2-Rp5HzIFd7LgjIvFKfQHGTt2sA8,10750
186
+ massgen/formatter/_claude_formatter.py,sha256=wDlpZaIvK8AVRHQ9mYZttAL4VNpEgGF0yOy7xqqj3v0,9413
187
+ massgen/formatter/_formatter_base.py,sha256=aoAzCQwDQC8vCOS_0lgFzTWue2nENxXbGUMw76uetqw,4790
188
+ massgen/formatter/_response_formatter.py,sha256=1FWc9WrjQeOzu_hqtXdlW69TdqwWWBpKODaLIQihGqY,9982
189
+ massgen/frontend/__init__.py,sha256=mF_-mNFccS9V1SwqKD7_FB2mvzI2Agzuk3orxtxsWDc,658
190
+ massgen/frontend/coordination_ui.py,sha256=Ni7ubJ9coFdYHVoxDZvYFfo-fWlThytC2Gcs03frdxk,54753
191
+ massgen/frontend/displays/__init__.py,sha256=QxEXAGDTBbFenYafmXLgSCulFcbaUr7ls5atXIkX3m8,536
192
+ massgen/frontend/displays/base_display.py,sha256=X2SadlXOkfWf1T5MtijKaMxBUnHR7n7TFZ3gK4_yeFI,4810
193
+ massgen/frontend/displays/create_coordination_table.py,sha256=CyRFVo58GJIw3EzXW3-eIVxe3dsmjD4BE6ouvMxOois,77862
194
+ massgen/frontend/displays/rich_terminal_display.py,sha256=9CKbxvvajisEIj-y1l1ZeT2qQgCTv4m3NbewojofY1Q,163186
195
+ massgen/frontend/displays/simple_display.py,sha256=P1Cdd5tgbn4dKnN0EfcTpYzxOWfdNl0ELsM9Nj1tdqs,3787
196
+ massgen/frontend/displays/terminal_display.py,sha256=umKrD4gH6WqEyVsRFXCrFBoJ5UfrbShjhEsy3LptQO4,15164
197
+ massgen/mcp_tools/README.md,sha256=jjDIbBseNV-ppkeeLaTD1hYA2RN8BmUhUwnuUI0wGtE,7425
198
+ massgen/mcp_tools/__init__.py,sha256=Hk1GCf4anFwRceTKHnbamF5x3Xyckq3m8A_OypPRrCU,2589
199
+ massgen/mcp_tools/backend_utils.py,sha256=8G6yzUjMrBtDVFnjdaEc89Db3FNuq4fpEAcsnO-7Tuc,38231
200
+ massgen/mcp_tools/circuit_breaker.py,sha256=7T8i-9BjPB2hO5JN41dEi_DAPKpeNhyFw65eJS7wZic,6549
201
+ massgen/mcp_tools/client.py,sha256=SgNthDTaBmIwnKMtV1YzcAdaiBd9GC-5dxbVkIpFEVo,36302
202
+ massgen/mcp_tools/config_validator.py,sha256=nw1AdZNVcMNV3k799h7_wbhfnI_hEj0vdibc0cQytOI,5341
203
+ massgen/mcp_tools/exceptions.py,sha256=p9zpuf32yH2U29DDs2DZvCGe0VTRg9WaF7o29tQdBwg,10219
204
+ massgen/mcp_tools/hooks.py,sha256=_DNcnNIiLNjAC9kHBiZp1BwHlbHu8P5qZnP9zggdLQA,7839
205
+ massgen/mcp_tools/security.py,sha256=ZbPY8oKa5yXrug354OtoIVtvCy3iTTNgF7JqVsRrwys,29387
206
+ massgen/mcp_tools/docs/circuit_breaker.md,sha256=dpYY--L8qMihThE8d0HcNhtxBLJKx6aWZBoQqmGn7P4,21302
207
+ massgen/mcp_tools/docs/client.md,sha256=5xLWgJXzXTCVf3Aa4c96HJmr5l5ik413ZIxchIBoTSQ,32367
208
+ massgen/mcp_tools/docs/config_validator.md,sha256=E22jptaS5FXWiERmq_k9AgPMCRUVVquCH3pUadg5XLo,15729
209
+ massgen/mcp_tools/docs/exceptions.md,sha256=8pNfzHHhQ6t_Ife9Hh3dsS2-E3_JlGvzvBcJnD4bqKY,34229
210
+ massgen/mcp_tools/docs/security.md,sha256=qCB3iVk-WH7Mppe0Ra9-w2_Rip0jrNiDM0OtCHXTcFQ,26184
211
+ massgen/stream_chunk/__init__.py,sha256=fc8Jn-Ow2ZKFWJR72DRA6r65_CtViM9NLvWGT-TrhU4,898
212
+ massgen/stream_chunk/base.py,sha256=RLiB00raDYwfZA5pmRQsDlMYoXip0LF-REVoXjbyA94,2738
213
+ massgen/stream_chunk/multimodal.py,sha256=ojaO-1EFnhA0H94YczxmkP6f0XV3lvTlb62Lc-JgltI,7916
214
+ massgen/stream_chunk/text.py,sha256=8jk6WkQIqQjiQZjHFcWkeIvDeEsUtK9gIun2Fbq0CaY,5954
215
+ massgen/tests/__init__.py,sha256=db7BtsWb8Rhj9KPj1YK1mUrNzz_Bv9U7x4fpQj6vMPI,187
216
+ massgen/tests/mcp_test_server.py,sha256=B2gVFYCQKuLzJGTjY6pnvZKyYbvqCdSNezwGXdyzRwc,5148
217
+ massgen/tests/multi_turn_conversation_design.md,sha256=q9vMFNZ-LOTqZdI8oOWAQjPIY773s_mOXptq582Pk6E,7501
218
+ massgen/tests/multiturn_llm_input_analysis.md,sha256=Xw8PX0oAIbF_zjlRXCA62EpX1xAOGUq9brYl3UkyAR0,6997
219
+ massgen/tests/test_azure_openai_backend.py,sha256=a9JFdCnDDkG_PKjLxN8QqBwyzP_aNNlP543iST2pyPw,6663
220
+ massgen/tests/test_backend_capabilities.py,sha256=MXIO-4ia07a-95JbyyBeIlz79B-eResn8ej2fpiX6II,10966
221
+ massgen/tests/test_backend_event_loop_all.py,sha256=vfTlD2spAYVITGgwQzntFmvN_W10sSqO0XGpgESmmNQ,5565
222
+ massgen/tests/test_case_studies.md,sha256=b24fHSGnmzqt0d9qgjm7b7WuHa3kGj1ZkRAfEyu-idU,4089
223
+ massgen/tests/test_chat_completions_refactor.py,sha256=3Dt1vW0JEMR6_YShV7XQSiv8-0xMH-Dy_E9AnEKcrMQ,4675
224
+ massgen/tests/test_claude_backend.py,sha256=fVFRu0Pf_FO3hxozINjY4NDdCkvUUyvsoCia35Mc7pc,9730
225
+ massgen/tests/test_claude_code.py,sha256=BKrJOv7r-sLWTIplt7zvEkge5O9KRd50-7uhAu6QFcY,9155
226
+ massgen/tests/test_claude_code_context_sharing.py,sha256=VhEBv2rUmT8cU2hMb9Qn6z-bEbENdH1JWh5muY0tG1o,8164
227
+ massgen/tests/test_claude_code_orchestrator.py,sha256=1bFLHQSgPqw2ecPjoZpsSg5lw8HEc8GXNrmyrrq5Xoo,5822
228
+ massgen/tests/test_cli_backends.py,sha256=6KPYnNgwGYRCGIXJTNWBCBHK1w8ylrBWFqt_HBWlelk,5918
229
+ massgen/tests/test_code_execution.py,sha256=aqR3ceOo99a4uMuqUBRkvkdDif_mf3FWWh8r70wPSYI,22759
230
+ massgen/tests/test_external_agent_backend.py,sha256=1ImeUo0tQIdaG7ASn1X-rkuHBuAUrmk3d4l8U4LaJHI,3948
231
+ massgen/tests/test_final_presentation_fallback.py,sha256=aMG9-6TjWseGPvY_zHOiKpdi5I4jHTMUEURaIu-5oNw,8985
232
+ massgen/tests/test_gemini_planning_mode.py,sha256=37Sm_2scRdmc2gNxBB81LLn6N758gJVZn1bFtwENasU,14019
233
+ massgen/tests/test_grok_backend.py,sha256=Dw7fFcyXPOL8x0N4aCRHjTAuvxmtyLp6Tj02c_6avnI,4818
234
+ massgen/tests/test_http_mcp_server.py,sha256=GjYOIUTk5skBWgFLwZz9UyRJPjjHCrcsWnlslOUQ5M4,1042
235
+ massgen/tests/test_integration_simple.py,sha256=Dps0m3Nfjqphi_1cLTultnfqxJTonL3aZxgq7kkewZ8,6147
236
+ massgen/tests/test_mcp_blocking.py,sha256=rMvkozLGbEScYj01p8gfQmX2gssGriCIVDVo1e2bplU,4606
237
+ massgen/tests/test_message_context_building.py,sha256=8AXcVDtv0R8uI-1PVLwYVFSWP-t3KeIDvy7vifrLPyU,10563
238
+ massgen/tests/test_orchestrator_final_presentation.py,sha256=Yt0-IACu0PGe4IpoGW7mpBDNdyFW_6W5Q1Hzry3gAys,1238
239
+ massgen/tests/test_path_permission_manager.py,sha256=DjOQvhUE6Tg4UGGJzl8AwnFnlvQgJf2WaUVvebkK8UA,88275
240
+ massgen/tests/test_rich_terminal_display.py,sha256=r-SfoWf8T1P-cwZTnbVp3AYuxr-98h0K7XqI8Y5tcR4,12157
241
+ massgen/tests/test_timeout.py,sha256=35Lecz6WHPZXN_B1ru-XYQQhRr-Npx_LoqemsTQk7sE,5082
242
+ massgen/tests/test_v3_3agents.py,sha256=YARcuU3bc61BJhgMlojJ-AaHyIC__C31KzPf5W9fck0,3808
243
+ massgen/tests/test_v3_simple.py,sha256=MCJkqnCldRmPhZF0IMvWyjbO9Xjz-_uv1rZqtW2kniw,6544
244
+ massgen/tests/test_v3_three_agents.py,sha256=t76yek3DRFJpgs4hiuc9BT5VKyU_RwgHcthZxjM8otM,9266
245
+ massgen/tests/test_v3_two_agents.py,sha256=G3WJuMdCjMdp0WItur48IGJ69B4HBs5RhpDjYJayzHo,5768
246
+ massgen/token_manager/__init__.py,sha256=SxFK64M3S69E51d1M37pq38O39mIZp-9TMxAspwR3wY,143
247
+ massgen/token_manager/token_manager.py,sha256=jdxjmwKqfRzyz0O9logVlrZhFcSLJP7kM8RjpU6ndWw,15729
248
+ massgen/v1/README.md,sha256=37ZEbNR0O5IcdqQXkqtvNCpmVX1Z_dO4HGcKreaP-0E,13631
249
+ massgen/v1/__init__.py,sha256=hZUuhjtGlLJ-QW4Ty2V4IMlaoUB5oP0TSl0XeuCoWqU,2733
250
+ massgen/v1/agent.py,sha256=toEN1JM1pop4ZqZj2zqCCJJtxHtMUPjTQgEI4hvnh8s,25341
251
+ massgen/v1/agents.py,sha256=lty_wS5ktO4BKd7ItmihPHcofuAMRMwfkwBM3c8asF4,11962
252
+ massgen/v1/cli.py,sha256=bDXOkfS5VsKhkeHVwkEnswwKUKg7ILrBOYykFZE2DxQ,12205
253
+ massgen/v1/config.py,sha256=VVkPNvF2CkZAodlJvfOB3xJKMpJNA02vmWivJf-TbBU,5094
254
+ massgen/v1/logging.py,sha256=BiYB8gvudMC7iofx4rj4XR0YzcnT4YMdnhuyR-Ug3CQ,33681
255
+ massgen/v1/main.py,sha256=mLgEVpatn1EjxO39Uyw3BQBeQZxEyckHrShGDtAAx6M,12828
256
+ massgen/v1/orchestrator.py,sha256=xus6Wr-yAfrcJmyHj8wLszizzNP-_5Y68ueJOI80DUk,44787
257
+ massgen/v1/streaming_display.py,sha256=ckefmuVyy-U1w-l_6MHw5FKXbU_ybycEruLM7eXScVs,46471
258
+ massgen/v1/tools.py,sha256=GPlOu3cSnJk9vqfJZZc0zoy52sLkBDyW672Ox3g05og,4841
259
+ massgen/v1/types.py,sha256=9gfS_1VpTY4GAi4HbZGLwsElTIzZvVEO_fbvDUXlif4,7584
260
+ massgen/v1/utils.py,sha256=AD7Zod7_criq96veerZmOsM9TnUTGY4r3GEMLYhNyT0,5494
261
+ massgen/v1/backends/gemini.py,sha256=6lNPNFJg8f2JmvTQXot9GJEgpEG-qbZkYIj9cuHFKAI,22646
262
+ massgen/v1/backends/grok.py,sha256=wAQM1_YQJoq2JXAhlf55EiVkBUnM-Nrz3gtk0QjtyEI,16184
263
+ massgen/v1/backends/oai.py,sha256=8v1sxIhxoRQdQBKp3Jz8x-LCvsCmer1CsmsCyxXwrQ8,25458
264
+ massgen/v1/examples/fast-4o-mini-config.yaml,sha256=t7zmN8sWQrrWivjaBB9w_WHFDnU-KsTBHFJ6i7Dzn7k,851
265
+ massgen/v1/examples/fast_config.yaml,sha256=BDBCpSYJPzTZi9vAEGsCZ3lt3JV25RN-4Nf_17JAhUU,846
266
+ massgen/v1/examples/production.yaml,sha256=hrNqzOqlQG1sL-5U8ZlA8QpCwGSoiCtqMu7Mi2gOd9s,2002
267
+ massgen/v1/examples/single_agent.yaml,sha256=h8ysGIwPjvgnpRxTcBqw5nBz5D2MTXI_Ygdn4D9RdIA,1256
268
+ massgen-0.1.0.dist-info/licenses/LICENSE,sha256=_r2TwhSv0GcpGeIKfwbz9z2qzOI62FHCfgSfnZ1z2fc,11386
269
+ massgen-0.1.0.dist-info/METADATA,sha256=GhdCtZe5a1Y8OQpwOFeFzRUvRK2PABxwhbRyu52Vfnk,58363
270
+ massgen-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
+ massgen-0.1.0.dist-info/entry_points.txt,sha256=On6OV7swWO0StsAXeOri3MzmuxhO9C-PUvKW-5pJ6gA,49
272
+ massgen-0.1.0.dist-info/top_level.txt,sha256=jm8ZxEGdkjsh8aPWXvCpnexL_S2ZRkFeT9vl6vIm_3I,8
273
+ massgen-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ massgen = massgen.cli:cli_main
@@ -1,9 +0,0 @@
1
- """
2
- MassGen Logging Components
3
-
4
- Provides real-time logging and monitoring capabilities for MassGen coordination.
5
- """
6
-
7
- from .realtime_logger import RealtimeLogger
8
-
9
- __all__ = ["RealtimeLogger"]
@@ -1,197 +0,0 @@
1
- """
2
- Real-time Logger for MassGen Coordination
3
-
4
- Provides comprehensive logging of coordination sessions with live updates.
5
- """
6
-
7
- import json
8
- from datetime import datetime
9
- from pathlib import Path
10
- from typing import Dict, List, Any, Optional
11
-
12
-
13
- class RealtimeLogger:
14
- """Real-time logger for MassGen coordination sessions."""
15
-
16
- def __init__(self, filename: Optional[str] = None, update_frequency: int = 5):
17
- """Initialize the real-time logger.
18
-
19
- Args:
20
- filename: Custom filename for log (default: auto-generated)
21
- update_frequency: Update log file every N chunks (default: 5)
22
- """
23
- self.update_frequency = update_frequency
24
- self.chunk_count = 0
25
-
26
- # Generate filename if not provided
27
- if filename is None:
28
- timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
29
- self.filename = f"mass_coordination_{timestamp}.json"
30
- else:
31
- self.filename = filename
32
-
33
- # Initialize log data structure
34
- self.log_data = {
35
- "metadata": {
36
- "start_time": datetime.now().isoformat(),
37
- "status": "in_progress",
38
- "logger_version": "1.0",
39
- },
40
- "session": {"question": "", "agent_ids": [], "final_answer": ""},
41
- "agent_outputs": {},
42
- "orchestrator_events": [],
43
- "aggregated_responses": {},
44
- "workflow_analysis": {"new_answers": 0, "votes": 0, "total_chunks": 0},
45
- }
46
-
47
- # Track aggregated content by source
48
- self._content_buffers = {}
49
-
50
- def initialize_session(self, question: str, agent_ids: List[str]):
51
- """Initialize a new coordination session.
52
-
53
- Args:
54
- question: The coordination question
55
- agent_ids: List of participating agent IDs
56
- """
57
- self.log_data["session"]["question"] = question
58
- self.log_data["session"]["agent_ids"] = agent_ids
59
- self.log_data["agent_outputs"] = {agent_id: [] for agent_id in agent_ids}
60
-
61
- # Write initial log file
62
- self._update_log_file()
63
-
64
- return self.filename
65
-
66
- def log_chunk(
67
- self, source: Optional[str], content: str, chunk_type: str = "content"
68
- ):
69
- """Log a streaming chunk by aggregating content by source.
70
-
71
- Args:
72
- source: Source of the chunk (agent ID or orchestrator)
73
- content: Content of the chunk
74
- chunk_type: Type of chunk ("content", "tool_calls", "done")
75
- """
76
- self.chunk_count += 1
77
- self.log_data["workflow_analysis"]["total_chunks"] = self.chunk_count
78
-
79
- # Initialize buffer for this source if not exists
80
- source_key = source or "orchestrator"
81
- if source_key not in self._content_buffers:
82
- self._content_buffers[source_key] = {
83
- "thinking": "",
84
- "tool": "",
85
- "presentation": "",
86
- "other": "",
87
- "first_timestamp": datetime.now().isoformat(),
88
- "last_timestamp": datetime.now().isoformat(),
89
- }
90
-
91
- # Aggregate content by type
92
- content_type = (
93
- chunk_type
94
- if chunk_type in ["thinking", "tool", "presentation"]
95
- else "other"
96
- )
97
- self._content_buffers[source_key][content_type] += content
98
- self._content_buffers[source_key]["last_timestamp"] = datetime.now().isoformat()
99
-
100
- # Track tool usage
101
- if "🔧 Using new_answer tool:" in content:
102
- self.log_data["workflow_analysis"]["new_answers"] += 1
103
- elif "🔧 Using vote tool:" in content:
104
- self.log_data["workflow_analysis"]["votes"] += 1
105
-
106
- # Update aggregated responses in log data
107
- self.log_data["aggregated_responses"] = {}
108
- for src, buffer in self._content_buffers.items():
109
- self.log_data["aggregated_responses"][src] = {
110
- "thinking": buffer["thinking"].strip(),
111
- "tool_calls": buffer["tool"].strip(),
112
- "presentation": buffer["presentation"].strip(),
113
- "other_content": buffer["other"].strip(),
114
- "first_timestamp": buffer["first_timestamp"],
115
- "last_timestamp": buffer["last_timestamp"],
116
- }
117
-
118
- # Update log file periodically
119
- if self.chunk_count % self.update_frequency == 0:
120
- self._update_log_file()
121
-
122
- def log_agent_content(
123
- self, agent_id: str, content: str, content_type: str = "thinking"
124
- ):
125
- """Log agent-specific content.
126
-
127
- Args:
128
- agent_id: The agent ID
129
- content: The content to log
130
- content_type: Type of content ("thinking", "tool", "status")
131
- """
132
- if agent_id in self.log_data["agent_outputs"]:
133
- entry = {
134
- "timestamp": datetime.now().isoformat(),
135
- "type": content_type,
136
- "content": content,
137
- }
138
- self.log_data["agent_outputs"][agent_id].append(entry)
139
-
140
- def log_orchestrator_event(self, event: str):
141
- """Log an orchestrator coordination event.
142
-
143
- Args:
144
- event: The coordination event description
145
- """
146
- event_entry = {"timestamp": datetime.now().isoformat(), "event": event}
147
- self.log_data["orchestrator_events"].append(event_entry)
148
-
149
- def finalize_session(self, final_answer: str = "", success: bool = True):
150
- """Finalize the coordination session.
151
-
152
- Args:
153
- final_answer: The final coordinated answer
154
- success: Whether coordination was successful
155
- """
156
- self.log_data["metadata"]["end_time"] = datetime.now().isoformat()
157
- self.log_data["metadata"]["status"] = "completed" if success else "failed"
158
- self.log_data["session"]["final_answer"] = final_answer
159
-
160
- # Calculate session duration
161
- start_time = datetime.fromisoformat(self.log_data["metadata"]["start_time"])
162
- end_time = datetime.fromisoformat(self.log_data["metadata"]["end_time"])
163
- duration = (end_time - start_time).total_seconds()
164
- self.log_data["metadata"]["duration_seconds"] = duration
165
-
166
- # Final log file update
167
- self._update_log_file()
168
-
169
- return {
170
- "filename": self.filename,
171
- "duration": duration,
172
- "total_chunks": self.chunk_count,
173
- "orchestrator_events": len(self.log_data["orchestrator_events"]),
174
- "success": success,
175
- }
176
-
177
- def get_log_filename(self) -> str:
178
- """Get the current log filename."""
179
- return self.filename
180
-
181
- def get_monitoring_commands(self) -> Dict[str, str]:
182
- """Get commands for monitoring the log file."""
183
- return {
184
- "tail": f"tail -f {self.filename}",
185
- "watch": f"watch -n 1 'tail -20 {self.filename}'",
186
- "code": f"code {self.filename}",
187
- "less": f"less +F {self.filename}",
188
- }
189
-
190
- def _update_log_file(self):
191
- """Update the log file with current data."""
192
- try:
193
- with open(self.filename, "w") as f:
194
- json.dump(self.log_data, f, indent=2, ensure_ascii=False)
195
- except Exception as e:
196
- # Silently fail to avoid disrupting coordination
197
- pass