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.
- massgen/__init__.py +142 -8
- massgen/adapters/__init__.py +29 -0
- massgen/adapters/ag2_adapter.py +483 -0
- massgen/adapters/base.py +183 -0
- massgen/adapters/tests/__init__.py +0 -0
- massgen/adapters/tests/test_ag2_adapter.py +439 -0
- massgen/adapters/tests/test_agent_adapter.py +128 -0
- massgen/adapters/utils/__init__.py +2 -0
- massgen/adapters/utils/ag2_utils.py +236 -0
- massgen/adapters/utils/tests/__init__.py +0 -0
- massgen/adapters/utils/tests/test_ag2_utils.py +138 -0
- massgen/agent_config.py +329 -55
- massgen/api_params_handler/__init__.py +10 -0
- massgen/api_params_handler/_api_params_handler_base.py +99 -0
- massgen/api_params_handler/_chat_completions_api_params_handler.py +176 -0
- massgen/api_params_handler/_claude_api_params_handler.py +113 -0
- massgen/api_params_handler/_response_api_params_handler.py +130 -0
- massgen/backend/__init__.py +39 -4
- massgen/backend/azure_openai.py +385 -0
- massgen/backend/base.py +341 -69
- massgen/backend/base_with_mcp.py +1102 -0
- massgen/backend/capabilities.py +386 -0
- massgen/backend/chat_completions.py +577 -130
- massgen/backend/claude.py +1033 -537
- massgen/backend/claude_code.py +1203 -0
- massgen/backend/cli_base.py +209 -0
- massgen/backend/docs/BACKEND_ARCHITECTURE.md +126 -0
- massgen/backend/{CLAUDE_API_RESEARCH.md → docs/CLAUDE_API_RESEARCH.md} +18 -18
- massgen/backend/{GEMINI_API_DOCUMENTATION.md → docs/GEMINI_API_DOCUMENTATION.md} +9 -9
- massgen/backend/docs/Gemini MCP Integration Analysis.md +1050 -0
- massgen/backend/docs/MCP_IMPLEMENTATION_CLAUDE_BACKEND.md +177 -0
- massgen/backend/docs/MCP_INTEGRATION_RESPONSE_BACKEND.md +352 -0
- massgen/backend/docs/OPENAI_GPT5_MODELS.md +211 -0
- massgen/backend/{OPENAI_RESPONSES_API_FORMAT.md → docs/OPENAI_RESPONSE_API_TOOL_CALLS.md} +3 -3
- massgen/backend/docs/OPENAI_response_streaming.md +20654 -0
- massgen/backend/docs/inference_backend.md +257 -0
- massgen/backend/docs/permissions_and_context_files.md +1085 -0
- massgen/backend/external.py +126 -0
- massgen/backend/gemini.py +1850 -241
- massgen/backend/grok.py +40 -156
- massgen/backend/inference.py +156 -0
- massgen/backend/lmstudio.py +171 -0
- massgen/backend/response.py +1095 -322
- massgen/chat_agent.py +131 -113
- massgen/cli.py +1560 -275
- massgen/config_builder.py +2396 -0
- massgen/configs/BACKEND_CONFIGURATION.md +458 -0
- massgen/configs/README.md +559 -216
- massgen/configs/ag2/ag2_case_study.yaml +27 -0
- massgen/configs/ag2/ag2_coder.yaml +34 -0
- massgen/configs/ag2/ag2_coder_case_study.yaml +36 -0
- massgen/configs/ag2/ag2_gemini.yaml +27 -0
- massgen/configs/ag2/ag2_groupchat.yaml +108 -0
- massgen/configs/ag2/ag2_groupchat_gpt.yaml +118 -0
- massgen/configs/ag2/ag2_single_agent.yaml +21 -0
- massgen/configs/basic/multi/fast_timeout_example.yaml +37 -0
- massgen/configs/basic/multi/gemini_4o_claude.yaml +31 -0
- massgen/configs/basic/multi/gemini_gpt5nano_claude.yaml +36 -0
- massgen/configs/{gemini_4o_claude.yaml → basic/multi/geminicode_4o_claude.yaml} +3 -3
- massgen/configs/basic/multi/geminicode_gpt5nano_claude.yaml +36 -0
- massgen/configs/basic/multi/glm_gemini_claude.yaml +25 -0
- massgen/configs/basic/multi/gpt4o_audio_generation.yaml +30 -0
- massgen/configs/basic/multi/gpt4o_image_generation.yaml +31 -0
- massgen/configs/basic/multi/gpt5nano_glm_qwen.yaml +26 -0
- massgen/configs/basic/multi/gpt5nano_image_understanding.yaml +26 -0
- massgen/configs/{three_agents_default.yaml → basic/multi/three_agents_default.yaml} +8 -4
- massgen/configs/basic/multi/three_agents_opensource.yaml +27 -0
- massgen/configs/basic/multi/three_agents_vllm.yaml +20 -0
- massgen/configs/basic/multi/two_agents_gemini.yaml +19 -0
- massgen/configs/{two_agents.yaml → basic/multi/two_agents_gpt5.yaml} +14 -6
- massgen/configs/basic/multi/two_agents_opensource_lmstudio.yaml +31 -0
- massgen/configs/basic/multi/two_qwen_vllm_sglang.yaml +28 -0
- massgen/configs/{single_agent.yaml → basic/single/single_agent.yaml} +1 -1
- massgen/configs/{single_flash2.5.yaml → basic/single/single_flash2.5.yaml} +1 -2
- massgen/configs/basic/single/single_gemini2.5pro.yaml +16 -0
- massgen/configs/basic/single/single_gpt4o_audio_generation.yaml +22 -0
- massgen/configs/basic/single/single_gpt4o_image_generation.yaml +22 -0
- massgen/configs/basic/single/single_gpt4o_video_generation.yaml +24 -0
- massgen/configs/basic/single/single_gpt5nano.yaml +20 -0
- massgen/configs/basic/single/single_gpt5nano_file_search.yaml +18 -0
- massgen/configs/basic/single/single_gpt5nano_image_understanding.yaml +17 -0
- massgen/configs/basic/single/single_gptoss120b.yaml +15 -0
- massgen/configs/basic/single/single_openrouter_audio_understanding.yaml +15 -0
- massgen/configs/basic/single/single_qwen_video_understanding.yaml +15 -0
- massgen/configs/debug/code_execution/command_filtering_blacklist.yaml +29 -0
- massgen/configs/debug/code_execution/command_filtering_whitelist.yaml +28 -0
- massgen/configs/debug/code_execution/docker_verification.yaml +29 -0
- massgen/configs/debug/skip_coordination_test.yaml +27 -0
- massgen/configs/debug/test_sdk_migration.yaml +17 -0
- massgen/configs/docs/DISCORD_MCP_SETUP.md +208 -0
- massgen/configs/docs/TWITTER_MCP_ENESCINAR_SETUP.md +82 -0
- massgen/configs/providers/azure/azure_openai_multi.yaml +21 -0
- massgen/configs/providers/azure/azure_openai_single.yaml +19 -0
- massgen/configs/providers/claude/claude.yaml +14 -0
- massgen/configs/providers/gemini/gemini_gpt5nano.yaml +28 -0
- massgen/configs/providers/local/lmstudio.yaml +11 -0
- massgen/configs/providers/openai/gpt5.yaml +46 -0
- massgen/configs/providers/openai/gpt5_nano.yaml +46 -0
- massgen/configs/providers/others/grok_single_agent.yaml +19 -0
- massgen/configs/providers/others/zai_coding_team.yaml +108 -0
- massgen/configs/providers/others/zai_glm45.yaml +12 -0
- massgen/configs/{creative_team.yaml → teams/creative/creative_team.yaml} +16 -6
- massgen/configs/{travel_planning.yaml → teams/creative/travel_planning.yaml} +16 -6
- massgen/configs/{news_analysis.yaml → teams/research/news_analysis.yaml} +16 -6
- massgen/configs/{research_team.yaml → teams/research/research_team.yaml} +15 -7
- massgen/configs/{technical_analysis.yaml → teams/research/technical_analysis.yaml} +16 -6
- massgen/configs/tools/code-execution/basic_command_execution.yaml +25 -0
- massgen/configs/tools/code-execution/code_execution_use_case_simple.yaml +41 -0
- massgen/configs/tools/code-execution/docker_claude_code.yaml +32 -0
- massgen/configs/tools/code-execution/docker_multi_agent.yaml +32 -0
- massgen/configs/tools/code-execution/docker_simple.yaml +29 -0
- massgen/configs/tools/code-execution/docker_with_resource_limits.yaml +32 -0
- massgen/configs/tools/code-execution/multi_agent_playwright_automation.yaml +57 -0
- massgen/configs/tools/filesystem/cc_gpt5_gemini_filesystem.yaml +34 -0
- massgen/configs/tools/filesystem/claude_code_context_sharing.yaml +68 -0
- massgen/configs/tools/filesystem/claude_code_flash2.5.yaml +43 -0
- massgen/configs/tools/filesystem/claude_code_flash2.5_gptoss.yaml +49 -0
- massgen/configs/tools/filesystem/claude_code_gpt5nano.yaml +31 -0
- massgen/configs/tools/filesystem/claude_code_single.yaml +40 -0
- massgen/configs/tools/filesystem/fs_permissions_test.yaml +87 -0
- massgen/configs/tools/filesystem/gemini_gemini_workspace_cleanup.yaml +54 -0
- massgen/configs/tools/filesystem/gemini_gpt5_filesystem_casestudy.yaml +30 -0
- massgen/configs/tools/filesystem/gemini_gpt5nano_file_context_path.yaml +43 -0
- massgen/configs/tools/filesystem/gemini_gpt5nano_protected_paths.yaml +45 -0
- massgen/configs/tools/filesystem/gpt5mini_cc_fs_context_path.yaml +31 -0
- massgen/configs/tools/filesystem/grok4_gpt5_gemini_filesystem.yaml +32 -0
- massgen/configs/tools/filesystem/multiturn/grok4_gpt5_claude_code_filesystem_multiturn.yaml +58 -0
- massgen/configs/tools/filesystem/multiturn/grok4_gpt5_gemini_filesystem_multiturn.yaml +58 -0
- massgen/configs/tools/filesystem/multiturn/two_claude_code_filesystem_multiturn.yaml +47 -0
- massgen/configs/tools/filesystem/multiturn/two_gemini_flash_filesystem_multiturn.yaml +48 -0
- massgen/configs/tools/mcp/claude_code_discord_mcp_example.yaml +27 -0
- massgen/configs/tools/mcp/claude_code_simple_mcp.yaml +35 -0
- massgen/configs/tools/mcp/claude_code_twitter_mcp_example.yaml +32 -0
- massgen/configs/tools/mcp/claude_mcp_example.yaml +24 -0
- massgen/configs/tools/mcp/claude_mcp_test.yaml +27 -0
- massgen/configs/tools/mcp/five_agents_travel_mcp_test.yaml +157 -0
- massgen/configs/tools/mcp/five_agents_weather_mcp_test.yaml +103 -0
- massgen/configs/tools/mcp/gemini_mcp_example.yaml +24 -0
- massgen/configs/tools/mcp/gemini_mcp_filesystem_test.yaml +23 -0
- massgen/configs/tools/mcp/gemini_mcp_filesystem_test_sharing.yaml +23 -0
- massgen/configs/tools/mcp/gemini_mcp_filesystem_test_single_agent.yaml +17 -0
- massgen/configs/tools/mcp/gemini_mcp_filesystem_test_with_claude_code.yaml +24 -0
- massgen/configs/tools/mcp/gemini_mcp_test.yaml +27 -0
- massgen/configs/tools/mcp/gemini_notion_mcp.yaml +52 -0
- massgen/configs/tools/mcp/gpt5_nano_mcp_example.yaml +24 -0
- massgen/configs/tools/mcp/gpt5_nano_mcp_test.yaml +27 -0
- massgen/configs/tools/mcp/gpt5mini_claude_code_discord_mcp_example.yaml +38 -0
- massgen/configs/tools/mcp/gpt_oss_mcp_example.yaml +25 -0
- massgen/configs/tools/mcp/gpt_oss_mcp_test.yaml +28 -0
- massgen/configs/tools/mcp/grok3_mini_mcp_example.yaml +24 -0
- massgen/configs/tools/mcp/grok3_mini_mcp_test.yaml +27 -0
- massgen/configs/tools/mcp/multimcp_gemini.yaml +111 -0
- massgen/configs/tools/mcp/qwen_api_mcp_example.yaml +25 -0
- massgen/configs/tools/mcp/qwen_api_mcp_test.yaml +28 -0
- massgen/configs/tools/mcp/qwen_local_mcp_example.yaml +24 -0
- massgen/configs/tools/mcp/qwen_local_mcp_test.yaml +27 -0
- massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml +140 -0
- massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml +151 -0
- massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml +151 -0
- massgen/configs/tools/planning/five_agents_twitter_mcp_planning_mode.yaml +155 -0
- massgen/configs/tools/planning/gpt5_mini_case_study_mcp_planning_mode.yaml +73 -0
- massgen/configs/tools/web-search/claude_streamable_http_test.yaml +43 -0
- massgen/configs/tools/web-search/gemini_streamable_http_test.yaml +43 -0
- massgen/configs/tools/web-search/gpt5_mini_streamable_http_test.yaml +43 -0
- massgen/configs/tools/web-search/gpt_oss_streamable_http_test.yaml +44 -0
- massgen/configs/tools/web-search/grok3_mini_streamable_http_test.yaml +43 -0
- massgen/configs/tools/web-search/qwen_api_streamable_http_test.yaml +44 -0
- massgen/configs/tools/web-search/qwen_local_streamable_http_test.yaml +43 -0
- massgen/coordination_tracker.py +708 -0
- massgen/docker/README.md +462 -0
- massgen/filesystem_manager/__init__.py +21 -0
- massgen/filesystem_manager/_base.py +9 -0
- massgen/filesystem_manager/_code_execution_server.py +545 -0
- massgen/filesystem_manager/_docker_manager.py +477 -0
- massgen/filesystem_manager/_file_operation_tracker.py +248 -0
- massgen/filesystem_manager/_filesystem_manager.py +813 -0
- massgen/filesystem_manager/_path_permission_manager.py +1261 -0
- massgen/filesystem_manager/_workspace_tools_server.py +1815 -0
- massgen/formatter/__init__.py +10 -0
- massgen/formatter/_chat_completions_formatter.py +284 -0
- massgen/formatter/_claude_formatter.py +235 -0
- massgen/formatter/_formatter_base.py +156 -0
- massgen/formatter/_response_formatter.py +263 -0
- massgen/frontend/__init__.py +1 -2
- massgen/frontend/coordination_ui.py +471 -286
- massgen/frontend/displays/base_display.py +56 -11
- massgen/frontend/displays/create_coordination_table.py +1956 -0
- massgen/frontend/displays/rich_terminal_display.py +1259 -619
- massgen/frontend/displays/simple_display.py +9 -4
- massgen/frontend/displays/terminal_display.py +27 -68
- massgen/logger_config.py +681 -0
- massgen/mcp_tools/README.md +232 -0
- massgen/mcp_tools/__init__.py +105 -0
- massgen/mcp_tools/backend_utils.py +1035 -0
- massgen/mcp_tools/circuit_breaker.py +195 -0
- massgen/mcp_tools/client.py +894 -0
- massgen/mcp_tools/config_validator.py +138 -0
- massgen/mcp_tools/docs/circuit_breaker.md +646 -0
- massgen/mcp_tools/docs/client.md +950 -0
- massgen/mcp_tools/docs/config_validator.md +478 -0
- massgen/mcp_tools/docs/exceptions.md +1165 -0
- massgen/mcp_tools/docs/security.md +854 -0
- massgen/mcp_tools/exceptions.py +338 -0
- massgen/mcp_tools/hooks.py +212 -0
- massgen/mcp_tools/security.py +780 -0
- massgen/message_templates.py +342 -64
- massgen/orchestrator.py +1515 -241
- massgen/stream_chunk/__init__.py +35 -0
- massgen/stream_chunk/base.py +92 -0
- massgen/stream_chunk/multimodal.py +237 -0
- massgen/stream_chunk/text.py +162 -0
- massgen/tests/mcp_test_server.py +150 -0
- massgen/tests/multi_turn_conversation_design.md +0 -8
- massgen/tests/test_azure_openai_backend.py +156 -0
- massgen/tests/test_backend_capabilities.py +262 -0
- massgen/tests/test_backend_event_loop_all.py +179 -0
- massgen/tests/test_chat_completions_refactor.py +142 -0
- massgen/tests/test_claude_backend.py +15 -28
- massgen/tests/test_claude_code.py +268 -0
- massgen/tests/test_claude_code_context_sharing.py +233 -0
- massgen/tests/test_claude_code_orchestrator.py +175 -0
- massgen/tests/test_cli_backends.py +180 -0
- massgen/tests/test_code_execution.py +679 -0
- massgen/tests/test_external_agent_backend.py +134 -0
- massgen/tests/test_final_presentation_fallback.py +237 -0
- massgen/tests/test_gemini_planning_mode.py +351 -0
- massgen/tests/test_grok_backend.py +7 -10
- massgen/tests/test_http_mcp_server.py +42 -0
- massgen/tests/test_integration_simple.py +198 -0
- massgen/tests/test_mcp_blocking.py +125 -0
- massgen/tests/test_message_context_building.py +29 -47
- massgen/tests/test_orchestrator_final_presentation.py +48 -0
- massgen/tests/test_path_permission_manager.py +2087 -0
- massgen/tests/test_rich_terminal_display.py +14 -13
- massgen/tests/test_timeout.py +133 -0
- massgen/tests/test_v3_3agents.py +11 -12
- massgen/tests/test_v3_simple.py +8 -13
- massgen/tests/test_v3_three_agents.py +11 -18
- massgen/tests/test_v3_two_agents.py +8 -13
- massgen/token_manager/__init__.py +7 -0
- massgen/token_manager/token_manager.py +400 -0
- massgen/utils.py +52 -16
- massgen/v1/agent.py +45 -91
- massgen/v1/agents.py +18 -53
- massgen/v1/backends/gemini.py +50 -153
- massgen/v1/backends/grok.py +21 -54
- massgen/v1/backends/oai.py +39 -111
- massgen/v1/cli.py +36 -93
- massgen/v1/config.py +8 -12
- massgen/v1/logging.py +43 -127
- massgen/v1/main.py +18 -32
- massgen/v1/orchestrator.py +68 -209
- massgen/v1/streaming_display.py +62 -163
- massgen/v1/tools.py +8 -12
- massgen/v1/types.py +9 -23
- massgen/v1/utils.py +5 -23
- massgen-0.1.0.dist-info/METADATA +1245 -0
- massgen-0.1.0.dist-info/RECORD +273 -0
- massgen-0.1.0.dist-info/entry_points.txt +2 -0
- massgen/frontend/logging/__init__.py +0 -9
- massgen/frontend/logging/realtime_logger.py +0 -197
- massgen-0.0.3.dist-info/METADATA +0 -568
- massgen-0.0.3.dist-info/RECORD +0 -76
- massgen-0.0.3.dist-info/entry_points.txt +0 -2
- /massgen/backend/{Function calling openai responses.md → docs/Function calling openai responses.md} +0 -0
- {massgen-0.0.3.dist-info → massgen-0.1.0.dist-info}/WHEEL +0 -0
- {massgen-0.0.3.dist-info → massgen-0.1.0.dist-info}/licenses/LICENSE +0 -0
- {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,,
|
|
@@ -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
|