massgen 0.1.3__py3-none-any.whl → 0.1.5__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 +1 -1
- massgen/api_params_handler/_chat_completions_api_params_handler.py +4 -0
- massgen/api_params_handler/_claude_api_params_handler.py +4 -0
- massgen/api_params_handler/_gemini_api_params_handler.py +4 -0
- massgen/api_params_handler/_response_api_params_handler.py +4 -0
- massgen/backend/base_with_custom_tool_and_mcp.py +25 -5
- massgen/backend/docs/permissions_and_context_files.md +2 -2
- massgen/backend/response.py +2 -0
- massgen/chat_agent.py +340 -20
- massgen/cli.py +326 -19
- massgen/configs/README.md +92 -41
- massgen/configs/memory/gpt5mini_gemini_baseline_research_to_implementation.yaml +94 -0
- massgen/configs/memory/gpt5mini_gemini_context_window_management.yaml +187 -0
- massgen/configs/memory/gpt5mini_gemini_research_to_implementation.yaml +127 -0
- massgen/configs/memory/gpt5mini_high_reasoning_gemini.yaml +107 -0
- massgen/configs/memory/single_agent_compression_test.yaml +64 -0
- massgen/configs/tools/custom_tools/crawl4ai_example.yaml +55 -0
- massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_multi.yaml +61 -0
- massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_single.yaml +29 -0
- massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_multi.yaml +51 -0
- massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_single.yaml +33 -0
- massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_multi.yaml +55 -0
- massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_single.yaml +33 -0
- massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_multi.yaml +47 -0
- massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_single.yaml +29 -0
- massgen/configs/tools/custom_tools/multimodal_tools/understand_audio.yaml +1 -1
- massgen/configs/tools/custom_tools/multimodal_tools/understand_file.yaml +1 -1
- massgen/configs/tools/custom_tools/multimodal_tools/understand_image.yaml +1 -1
- massgen/configs/tools/custom_tools/multimodal_tools/understand_video.yaml +1 -1
- massgen/configs/tools/custom_tools/multimodal_tools/youtube_video_analysis.yaml +1 -1
- massgen/filesystem_manager/_filesystem_manager.py +1 -0
- massgen/filesystem_manager/_path_permission_manager.py +148 -0
- massgen/memory/README.md +277 -0
- massgen/memory/__init__.py +26 -0
- massgen/memory/_base.py +193 -0
- massgen/memory/_compression.py +237 -0
- massgen/memory/_context_monitor.py +211 -0
- massgen/memory/_conversation.py +255 -0
- massgen/memory/_fact_extraction_prompts.py +333 -0
- massgen/memory/_mem0_adapters.py +257 -0
- massgen/memory/_persistent.py +687 -0
- massgen/memory/docker-compose.qdrant.yml +36 -0
- massgen/memory/docs/DESIGN.md +388 -0
- massgen/memory/docs/QUICKSTART.md +409 -0
- massgen/memory/docs/SUMMARY.md +319 -0
- massgen/memory/docs/agent_use_memory.md +408 -0
- massgen/memory/docs/orchestrator_use_memory.md +586 -0
- massgen/memory/examples.py +237 -0
- massgen/message_templates.py +160 -12
- massgen/orchestrator.py +223 -7
- massgen/tests/memory/test_agent_compression.py +174 -0
- massgen/{configs/tools → tests}/memory/test_context_window_management.py +30 -30
- massgen/tests/memory/test_force_compression.py +154 -0
- massgen/tests/memory/test_simple_compression.py +147 -0
- massgen/tests/test_agent_memory.py +534 -0
- massgen/tests/test_binary_file_blocking.py +274 -0
- massgen/tests/test_case_studies.md +12 -12
- massgen/tests/test_conversation_memory.py +382 -0
- massgen/tests/test_multimodal_size_limits.py +407 -0
- massgen/tests/test_orchestrator_memory.py +620 -0
- massgen/tests/test_persistent_memory.py +435 -0
- massgen/token_manager/token_manager.py +6 -0
- massgen/tool/_manager.py +7 -2
- massgen/tool/_multimodal_tools/image_to_image_generation.py +293 -0
- massgen/tool/_multimodal_tools/text_to_file_generation.py +455 -0
- massgen/tool/_multimodal_tools/text_to_image_generation.py +222 -0
- massgen/tool/_multimodal_tools/text_to_speech_continue_generation.py +226 -0
- massgen/tool/_multimodal_tools/text_to_speech_transcription_generation.py +217 -0
- massgen/tool/_multimodal_tools/text_to_video_generation.py +223 -0
- massgen/tool/_multimodal_tools/understand_audio.py +19 -1
- massgen/tool/_multimodal_tools/understand_file.py +6 -1
- massgen/tool/_multimodal_tools/understand_image.py +112 -8
- massgen/tool/_multimodal_tools/understand_video.py +32 -5
- massgen/tool/_web_tools/crawl4ai_tool.py +718 -0
- massgen/tool/docs/multimodal_tools.md +589 -0
- massgen/tools/__init__.py +8 -0
- massgen/tools/_planning_mcp_server.py +520 -0
- massgen/tools/planning_dataclasses.py +434 -0
- {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/METADATA +142 -82
- {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/RECORD +84 -41
- massgen/configs/tools/custom_tools/crawl4ai_mcp_example.yaml +0 -67
- massgen/configs/tools/custom_tools/crawl4ai_multi_agent_example.yaml +0 -68
- massgen/configs/tools/memory/README.md +0 -199
- massgen/configs/tools/memory/gpt5mini_gemini_context_window_management.yaml +0 -131
- massgen/configs/tools/memory/gpt5mini_gemini_no_persistent_memory.yaml +0 -133
- massgen/configs/tools/multimodal/gpt5mini_gpt5nano_documentation_evolution.yaml +0 -97
- {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/WHEEL +0 -0
- {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/entry_points.txt +0 -0
- {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/licenses/LICENSE +0 -0
- {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/top_level.txt +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
massgen/__init__.py,sha256=
|
|
1
|
+
massgen/__init__.py,sha256=FVfyqtltRkkz28-ckPTLKvNAPCLV6tPss8DqaZ_moA8,7974
|
|
2
2
|
massgen/agent_config.py,sha256=wC4_V858My4yDvajLDqo0A84hSNqzj9kEU7v_9fl6RQ,33136
|
|
3
|
-
massgen/chat_agent.py,sha256=
|
|
4
|
-
massgen/cli.py,sha256=
|
|
3
|
+
massgen/chat_agent.py,sha256=YYvU60wwjY3upOePVS27-3MPlkME7HzrYCx8B772OSo,37698
|
|
4
|
+
massgen/cli.py,sha256=dLvvijXB-WdquJTK2NqGkA7BVBJ2wkn-peFsYHEVVZ8,130307
|
|
5
5
|
massgen/config_builder.py,sha256=J881XcXqUwX_fGNAahGK0RG-zJbkWHYS-O-C8y6rWxA,142182
|
|
6
6
|
massgen/coordination_tracker.py,sha256=_r8Man3uomovpXKHrlc4YBI030tkuavYQ-6fEk2JsfM,28201
|
|
7
7
|
massgen/logger_config.py,sha256=BalZOpvGyeejyI5Q8e8aa9OG3dvYf7VaR-k7u9MLZBg,25457
|
|
8
|
-
massgen/message_templates.py,sha256=
|
|
9
|
-
massgen/orchestrator.py,sha256=
|
|
8
|
+
massgen/message_templates.py,sha256=yVtynIjwn4bG6bUJ5uAW174LO6-w7jYbG07KCJTDpcY,55900
|
|
9
|
+
massgen/orchestrator.py,sha256=6QNicDee7A5BY5BcaLKI0RWFtStzDEfgvkwOa4yJ_lU,175696
|
|
10
10
|
massgen/utils.py,sha256=dWsLMoRRCwBtzDe8vJQ8mfKDTpyLqstC1aH8L4j2clE,3077
|
|
11
11
|
massgen/adapters/__init__.py,sha256=lYDbplvbiRfXup5e_Q3GzvGujP3V0vqElEJqVfQog2Q,726
|
|
12
12
|
massgen/adapters/ag2_adapter.py,sha256=71I1acslxIrTPDWTkiTICsp2lyRrrc_F4SwQqa2K_vY,18465
|
|
@@ -20,14 +20,14 @@ massgen/adapters/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
20
20
|
massgen/adapters/utils/tests/test_ag2_utils.py,sha256=AUI2xjOUBbi71h0DBHF3zBjAB3P01Ie-L1PeiLlG3VE,4030
|
|
21
21
|
massgen/api_params_handler/__init__.py,sha256=Qki1IO0xdBP8dBN1DUjR2bK0GyVkQIJgzUc01TWiQnI,439
|
|
22
22
|
massgen/api_params_handler/_api_params_handler_base.py,sha256=qs8fEWzJyj_rEBhfsbSpWG7uXrjx24Z97Px3fS7klSM,3660
|
|
23
|
-
massgen/api_params_handler/_chat_completions_api_params_handler.py,sha256=
|
|
24
|
-
massgen/api_params_handler/_claude_api_params_handler.py,sha256=
|
|
25
|
-
massgen/api_params_handler/_gemini_api_params_handler.py,sha256=
|
|
26
|
-
massgen/api_params_handler/_response_api_params_handler.py,sha256=
|
|
23
|
+
massgen/api_params_handler/_chat_completions_api_params_handler.py,sha256=FHzCNYdFQlIUK2phWPjCjNNerDqM08OparvpghZ5orU,8159
|
|
24
|
+
massgen/api_params_handler/_claude_api_params_handler.py,sha256=NN5AgFACJJy1_RdMZbaaI0ISbyzNIz61zdWTJ1Olw8Q,4392
|
|
25
|
+
massgen/api_params_handler/_gemini_api_params_handler.py,sha256=0UDpGr4rufjP-jDVbC1_O6Z4d6q1uHqiwRKhkPWveXc,2924
|
|
26
|
+
massgen/api_params_handler/_response_api_params_handler.py,sha256=3ZtMnMqwMtGteVxiHYSndpjhTdL5nXNanA3Zl_4cGFs,5408
|
|
27
27
|
massgen/backend/__init__.py,sha256=hIxCbgDqHgO6zzFXnulR8dx2gm1Yi4IDdutDsja1fSg,1749
|
|
28
28
|
massgen/backend/azure_openai.py,sha256=hyefku806OPzy_eozz0RU8gcLmYosj-5IwaDXZHIZ2A,18512
|
|
29
29
|
massgen/backend/base.py,sha256=UQWk6nSGnarHmOIzBN2xNNJNeh06WOW0M_6s8E-aexA,21419
|
|
30
|
-
massgen/backend/base_with_custom_tool_and_mcp.py,sha256=
|
|
30
|
+
massgen/backend/base_with_custom_tool_and_mcp.py,sha256=Rs-c7AFBehj6vj0UFrg-LKwlY-YUbtO3lnSoXIhx4bg,58728
|
|
31
31
|
massgen/backend/capabilities.py,sha256=kPM_yjnzI34XuZnYw9hlkcUNRvqlZUKdbKVjH_A4iQg,13229
|
|
32
32
|
massgen/backend/chat_completions.py,sha256=V2xSIGEsxCfewEbeN7LXI3yQdoPecUOCY_pbKPvs4N4,36646
|
|
33
33
|
massgen/backend/claude.py,sha256=ttYzZoUlJEOET_WE0-qvseUHBs7YaTix2mBSCLoXH1I,59426
|
|
@@ -41,7 +41,7 @@ massgen/backend/gemini_utils.py,sha256=fv5KoiEqabmoe2BRHQ0Ztz2aTJgm05txrfKICDWhY
|
|
|
41
41
|
massgen/backend/grok.py,sha256=H1AjXBTZWGi0qVoQ305gb8WzvChqnB_HQQxncPGeHvU,4147
|
|
42
42
|
massgen/backend/inference.py,sha256=PT_e9fDEHlME0TtJT7_dse2aPtaHliYul9D52n_nXns,5971
|
|
43
43
|
massgen/backend/lmstudio.py,sha256=UEd3Wkdy9r5ceJ3oM7_LR3MYEQv4ghcn2je5F1d-dyU,7267
|
|
44
|
-
massgen/backend/response.py,sha256=
|
|
44
|
+
massgen/backend/response.py,sha256=IlInve8toViBPK_2zYro7HpCI2NocuvztHb1wJQw75o,57063
|
|
45
45
|
massgen/backend/docs/BACKEND_ARCHITECTURE.md,sha256=so30oNBwmJBeQz3rHuFCECJjC2Sufwc40--2Rb01jeU,4483
|
|
46
46
|
massgen/backend/docs/CLAUDE_API_RESEARCH.md,sha256=maYwOERkRotnkS2_YJoDTbe6ZDdI-DccKgR1oXHtPxA,9842
|
|
47
47
|
massgen/backend/docs/Function calling openai responses.md,sha256=ffrh5nEkO0tQGO8vJeamcWsgIEB_37XShrSYKLZldTg,37480
|
|
@@ -53,9 +53,9 @@ massgen/backend/docs/OPENAI_GPT5_MODELS.md,sha256=8RMYc3mkTDrpbstNqmMjR07NeWmZlI
|
|
|
53
53
|
massgen/backend/docs/OPENAI_RESPONSE_API_TOOL_CALLS.md,sha256=lqvb2k20OmCPImJPN8EQt0mOuXCPrp8u5V_slxQOnP0,1897
|
|
54
54
|
massgen/backend/docs/OPENAI_response_streaming.md,sha256=ees0GpokNKgg_aAuAODJifDaxY2c8gwUmfgrQ35r0JM,500324
|
|
55
55
|
massgen/backend/docs/inference_backend.md,sha256=NNxvh6JWc2BPWLQrAJKXsXAyvggT-_KRHmboulYNw7Y,6372
|
|
56
|
-
massgen/backend/docs/permissions_and_context_files.md,sha256=
|
|
56
|
+
massgen/backend/docs/permissions_and_context_files.md,sha256=PWWbSHlLN51Icqz5FMRA68Xm0dkl65r84pi3AKcL1lQ,40516
|
|
57
57
|
massgen/configs/BACKEND_CONFIGURATION.md,sha256=eJL8dBpGnb3o705R0Uk5QbWanKG9C30jFd8U3gqlbeE,13051
|
|
58
|
-
massgen/configs/README.md,sha256=
|
|
58
|
+
massgen/configs/README.md,sha256=sciV_NIhxs89MITjrBfSWXoIZ1Bb5ixe0fI-mNE56DY,35369
|
|
59
59
|
massgen/configs/ag2/ag2_case_study.yaml,sha256=kiQanWKY3VyZD6Sl-0ZBMOcWoOWU2AF26IJKKhKak4k,767
|
|
60
60
|
massgen/configs/ag2/ag2_coder.yaml,sha256=jtIBULpg55BthnQ-YRXrJ1xG7Q_IqK-1N5qCitC_A_4,1131
|
|
61
61
|
massgen/configs/ag2/ag2_coder_case_study.yaml,sha256=3mE5mq9zU7V6RZ_XsgiA_-4S04zCNCAYPH7FmTE1suE,1273
|
|
@@ -101,6 +101,11 @@ massgen/configs/debug/code_execution/command_filtering_whitelist.yaml,sha256=Eix
|
|
|
101
101
|
massgen/configs/debug/code_execution/docker_verification.yaml,sha256=fx4CiJM1z7lptY7efOwI8ZCuiYOUgeGnZkcEm6pLJe0,1495
|
|
102
102
|
massgen/configs/docs/DISCORD_MCP_SETUP.md,sha256=T1RhdPV8d6-cnVts-zvz-zoxv2xOtzz8e6eJthOpC2c,7377
|
|
103
103
|
massgen/configs/docs/TWITTER_MCP_ENESCINAR_SETUP.md,sha256=j_BRC5b6IXj8j8lkmi040DYGdl00XHtLD6_XiW3G0Oo,2657
|
|
104
|
+
massgen/configs/memory/gpt5mini_gemini_baseline_research_to_implementation.yaml,sha256=uYE7sqTu4ae-FLztw6ZZG4X-wwrcQnd1e51Q9DXUw5E,3665
|
|
105
|
+
massgen/configs/memory/gpt5mini_gemini_context_window_management.yaml,sha256=8onQ_070HOT1iBzJL0EI6AAXxlMdPTe3aanTV9WmUtM,8134
|
|
106
|
+
massgen/configs/memory/gpt5mini_gemini_research_to_implementation.yaml,sha256=KkdxtyfrKmqi9A_uL3ghANsxjht7RWLk3hubW7bqZZc,4337
|
|
107
|
+
massgen/configs/memory/gpt5mini_high_reasoning_gemini.yaml,sha256=xC0nYXEhxQbgPtOOpMw5evcmifGYLaHvOlv3i8kM-7k,3919
|
|
108
|
+
massgen/configs/memory/single_agent_compression_test.yaml,sha256=pL9LOLa3PL3PlNs6dYEcYE3uOVW6081vq6B8z8PvRGw,1976
|
|
104
109
|
massgen/configs/providers/azure/azure_openai_multi.yaml,sha256=9aEPTv1dyu26fCC6MA_gzKnG_MehNE_cdT3r6t5Uccc,831
|
|
105
110
|
massgen/configs/providers/azure/azure_openai_single.yaml,sha256=r_E7hwtGP5goWro6VH02DMW1Q1kOO3Z2tzLK5C3L9y0,642
|
|
106
111
|
massgen/configs/providers/claude/claude.yaml,sha256=IOvxJ2s4_RC5zWRk3sBsiVwaL2XGhShfjJJ_mhCHzZ0,340
|
|
@@ -137,8 +142,7 @@ massgen/configs/tools/custom_tools/claude_wrong_custom_tool_with_mcp_example.yam
|
|
|
137
142
|
massgen/configs/tools/custom_tools/computer_use_browser_example.yaml,sha256=cAqo5_8kOSOAB0x2HT26j0tJZ463qT9eVeCZL7VBJ0w,1935
|
|
138
143
|
massgen/configs/tools/custom_tools/computer_use_docker_example.yaml,sha256=dsdADJgrVhTh5ogzSJkaw-KIy9RyLi-7YTByISuZ2MU,2146
|
|
139
144
|
massgen/configs/tools/custom_tools/computer_use_example.yaml,sha256=lXeVCFsCsKhqmlCNpBoieRe_WblzRgJcmf3Tt8Uvmi4,1902
|
|
140
|
-
massgen/configs/tools/custom_tools/
|
|
141
|
-
massgen/configs/tools/custom_tools/crawl4ai_multi_agent_example.yaml,sha256=UBWAXqsJgk3SrDdnqOqJ-TmQVPPx4JJEYDYlJM2Rxfs,2184
|
|
145
|
+
massgen/configs/tools/custom_tools/crawl4ai_example.yaml,sha256=Ug-wfOyStvs5Ubcn1epmxGSYbpfyVNr5ialPrJ8wtlk,2281
|
|
142
146
|
massgen/configs/tools/custom_tools/gemini_custom_tool_example.yaml,sha256=5-XCjo2O7SqyTILWD8x3qPD7AWafLWkhBW5giN4JyMM,981
|
|
143
147
|
massgen/configs/tools/custom_tools/gemini_custom_tool_example_no_path.yaml,sha256=Hd6zC7Mms1PxrNQ9KpmVFgSDeQCzejpIRzzJgVqVkQY,900
|
|
144
148
|
massgen/configs/tools/custom_tools/gemini_custom_tool_with_mcp_example.yaml,sha256=YBNSQugHOWsaz3VGPf_RIj59bPPNssftVqHEkvYN8yE,1614
|
|
@@ -171,12 +175,20 @@ massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_mcp_example.yaml,
|
|
|
171
175
|
massgen/configs/tools/custom_tools/qwen_local_custom_tool_with_wrong_mcp_example.yaml,sha256=73JeuKxgCHz6nkquj5mANDcTBkW8Cg1zjCVtUGqYdJM,1587
|
|
172
176
|
massgen/configs/tools/custom_tools/qwen_local_wrong_custom_tool_with_mcp_example.yaml,sha256=ruGn-4X-ObShSY3ZqtTSxee6_TmBniJRKF7I_3to4CM,1561
|
|
173
177
|
massgen/configs/tools/custom_tools/multimodal_tools/playwright_with_img_understanding.yaml,sha256=V4K3I7sv1AVWH_8skm_ZntCAny21MSu5nvIbWALjg3w,3594
|
|
174
|
-
massgen/configs/tools/custom_tools/multimodal_tools/
|
|
175
|
-
massgen/configs/tools/custom_tools/multimodal_tools/
|
|
176
|
-
massgen/configs/tools/custom_tools/multimodal_tools/
|
|
177
|
-
massgen/configs/tools/custom_tools/multimodal_tools/
|
|
178
|
+
massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_multi.yaml,sha256=RcZ2oJHPdsCxH2gFZOyXTZRFuuxCPtVJRnpPxjXPmKM,3334
|
|
179
|
+
massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_single.yaml,sha256=Jl9ixbRi9LvdnSia6zOIJ5SJJr_B57WYfI5nlUum1Ko,1608
|
|
180
|
+
massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_multi.yaml,sha256=1LYKeh5EXFgECbGe2QsQFRN4OsZAiAC-Z02iio3gheo,1946
|
|
181
|
+
massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_single.yaml,sha256=3eFxagKAmH6NFbOrL0ZTdJaABSj1Sl6MjmzvGMSkLYQ,1271
|
|
182
|
+
massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_multi.yaml,sha256=OhEhoAJp2pQ2ngwb3gJRekCkOKJ5EpUypGDZC1JixW0,2429
|
|
183
|
+
massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_single.yaml,sha256=_gYd99Q3Uw9qQGhTyw9GDqCcTT133vvoY1HgZIiQ1wE,1464
|
|
184
|
+
massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_multi.yaml,sha256=qq55O2hC8dqNG3m58XaMa8Er_i5ApKI2f-YSXlR_ThQ,1788
|
|
185
|
+
massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_single.yaml,sha256=MEQhDOMMQ4sdCV5nei-GTVy6dpLExbXpaA3oZck7qQM,1113
|
|
186
|
+
massgen/configs/tools/custom_tools/multimodal_tools/understand_audio.yaml,sha256=SMugPv-Jh1Tnp5MKC7AVYOtL1aCWI3fOF-Aw9HzqxHU,1299
|
|
187
|
+
massgen/configs/tools/custom_tools/multimodal_tools/understand_file.yaml,sha256=WHXS0vdUTYBojBOP-ZenwJIv85Z5LVEadCK08CMvnnc,1366
|
|
188
|
+
massgen/configs/tools/custom_tools/multimodal_tools/understand_image.yaml,sha256=i67DM3NoOPmWKGrW_lIno8vEFZwD3HEBFfZA9kOE4hQ,1316
|
|
189
|
+
massgen/configs/tools/custom_tools/multimodal_tools/understand_video.yaml,sha256=5-KLpYnVsJLOinv0-z1wUh1zTB9NltxfaNqw-aNOx9k,1350
|
|
178
190
|
massgen/configs/tools/custom_tools/multimodal_tools/understand_video_example.yaml,sha256=LfdJxppclGnz764y-9BR_d0ksmUA89Y5DAeqs6ch1og,1664
|
|
179
|
-
massgen/configs/tools/custom_tools/multimodal_tools/youtube_video_analysis.yaml,sha256=
|
|
191
|
+
massgen/configs/tools/custom_tools/multimodal_tools/youtube_video_analysis.yaml,sha256=ih8hHLjETAOreye6HEbxc6AntCeUSQ2-uf01lyjOeg4,2102
|
|
180
192
|
massgen/configs/tools/filesystem/cc_gpt5_gemini_filesystem.yaml,sha256=eCnljU999bu5GG7Sl1ANdkojxnjU1vvQltmtcMjpiCM,831
|
|
181
193
|
massgen/configs/tools/filesystem/claude_code_context_sharing.yaml,sha256=MvNtesvnJC2nvq5cXkCzwt7oR2ApeO3xtmrZzy8Jjks,3060
|
|
182
194
|
massgen/configs/tools/filesystem/claude_code_flash2.5.yaml,sha256=zuyFzh1deUz6yGS602Z2JEuAFN43UVe9dnPSiDFVrq4,1703
|
|
@@ -220,11 +232,6 @@ massgen/configs/tools/mcp/qwen_api_mcp_example.yaml,sha256=OL_VdY9P3215daqOzrn7L
|
|
|
220
232
|
massgen/configs/tools/mcp/qwen_api_mcp_test.yaml,sha256=BDY94AvE5OTsJyjapDfbt5Cs6Ylrz7cY8D2nG60wM0w,1053
|
|
221
233
|
massgen/configs/tools/mcp/qwen_local_mcp_example.yaml,sha256=6fW3E64dL8RCWr5mak8KpHuhXPbtJGogsPOxkLUKse4,1031
|
|
222
234
|
massgen/configs/tools/mcp/qwen_local_mcp_test.yaml,sha256=2ilQXKCW4wY_pahwhPOdwSBVZP6K9Ng4sQDtXix5sQQ,992
|
|
223
|
-
massgen/configs/tools/memory/README.md,sha256=04Y3grz4h0IwGVeYFovZmliRD7dnFiRWLG6_JzKjc7Y,6787
|
|
224
|
-
massgen/configs/tools/memory/gpt5mini_gemini_context_window_management.yaml,sha256=50EosHS19e9VvVxqjPlMTBZS-TAfBX0fMa-Zw3vVUhY,5052
|
|
225
|
-
massgen/configs/tools/memory/gpt5mini_gemini_no_persistent_memory.yaml,sha256=hNuKlyWmQDWv7pyyfmrvStObAAGeBiWpki7QEssyYCI,4530
|
|
226
|
-
massgen/configs/tools/memory/test_context_window_management.py,sha256=Um_W2Jd1ONWnlRW_6nixKQeyEDlwtII5QwyF5bUb1do,10906
|
|
227
|
-
massgen/configs/tools/multimodal/gpt5mini_gpt5nano_documentation_evolution.yaml,sha256=L2fgw9-Ew0QwxfM7UwhcGJUyJ2yGbWyaAJHM-QLounk,3976
|
|
228
235
|
massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml,sha256=lctHFq_ZqdrssBHNQh5HPcpmJnmh9ti1O7yLViNH0K8,4181
|
|
229
236
|
massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml,sha256=ylXOcRZTvqUFQ5Q2RzpRMBo1vlybfzBAYp3S7H0rjn4,6204
|
|
230
237
|
massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml,sha256=XYRoZeu_VGOeOA1OosOf2IWm9SwilHzySh7cxKLkLyU,5657
|
|
@@ -244,8 +251,8 @@ massgen/filesystem_manager/_base.py,sha256=4pR1rqPvqtNo9OsdaUM3j1TebOnQm27olNwbv
|
|
|
244
251
|
massgen/filesystem_manager/_code_execution_server.py,sha256=PCKnS0gUayqsn62GRtdkXphCs7A84EQBQkH9KPiijVQ,20884
|
|
245
252
|
massgen/filesystem_manager/_docker_manager.py,sha256=eu2qECtv1205rg7Gg5qCLu3I5VgFXyaC6KSQAi_Ydto,19512
|
|
246
253
|
massgen/filesystem_manager/_file_operation_tracker.py,sha256=voYhy0xyO2qTWyz545esYdLjqTN3UYp_S-q4QVwxTn8,8668
|
|
247
|
-
massgen/filesystem_manager/_filesystem_manager.py,sha256=
|
|
248
|
-
massgen/filesystem_manager/_path_permission_manager.py,sha256=
|
|
254
|
+
massgen/filesystem_manager/_filesystem_manager.py,sha256=mE_BYdoJJqdY2h1zMdFHBhwB79hQ-S6QGSPjslWy0o8,36860
|
|
255
|
+
massgen/filesystem_manager/_path_permission_manager.py,sha256=m3FLbl0muHo3fkoc9TZGPtAsacGVZDlreolquljTDlg,61866
|
|
249
256
|
massgen/filesystem_manager/_workspace_tools_server.py,sha256=cq73WgZavnk9wXHd0Xxgvkra0BkZ9XOm3yAQDso7qV4,32983
|
|
250
257
|
massgen/formatter/__init__.py,sha256=t3qDPvytyzIBkqYW9CCqTflikQ8ynw_AlF0PFgnH9Yc,370
|
|
251
258
|
massgen/formatter/_chat_completions_formatter.py,sha256=3ezx30SDf4XHQac0qRWfgobCs7iS7vlsKpSrgymmq-c,16034
|
|
@@ -275,6 +282,22 @@ massgen/mcp_tools/docs/client.md,sha256=5xLWgJXzXTCVf3Aa4c96HJmr5l5ik413ZIxchIBo
|
|
|
275
282
|
massgen/mcp_tools/docs/config_validator.md,sha256=E22jptaS5FXWiERmq_k9AgPMCRUVVquCH3pUadg5XLo,15729
|
|
276
283
|
massgen/mcp_tools/docs/exceptions.md,sha256=8pNfzHHhQ6t_Ife9Hh3dsS2-E3_JlGvzvBcJnD4bqKY,34229
|
|
277
284
|
massgen/mcp_tools/docs/security.md,sha256=qCB3iVk-WH7Mppe0Ra9-w2_Rip0jrNiDM0OtCHXTcFQ,26184
|
|
285
|
+
massgen/memory/README.md,sha256=nI168IWvg_totfPnXw8CiPtOGcMwZwz13wLlSoDoJPY,7538
|
|
286
|
+
massgen/memory/__init__.py,sha256=MmtPbiQe0jwbqyBLptQGmq78FppWa3ptpef2Et4JK1w,789
|
|
287
|
+
massgen/memory/_base.py,sha256=l1TXptDMl960HXcNDfiyD2aENB4IoW_pM4-zNhG7PPs,5783
|
|
288
|
+
massgen/memory/_compression.py,sha256=Qdd1ED6Lazx3-o1Dt3iUfAGDdmeIbn-odcwaz9I_Shk,8300
|
|
289
|
+
massgen/memory/_context_monitor.py,sha256=EIBibihvYtg3gKdMexzqCJsLbHoA6qApa_zy4tQ1LZU,7611
|
|
290
|
+
massgen/memory/_conversation.py,sha256=arLvoRfL5bylIwOFKDuZnXVi3p0nCvCqAPlc5nAH-GQ,8189
|
|
291
|
+
massgen/memory/_fact_extraction_prompts.py,sha256=e2Jmh8uDXAFNblIsYIRhcoh1ORzOb399sr3k8PTuM4s,14924
|
|
292
|
+
massgen/memory/_mem0_adapters.py,sha256=JLbC6dD2NA98Ci7VuHzc6hcuMjOYQLLIsuG8r2oGrpg,8871
|
|
293
|
+
massgen/memory/_persistent.py,sha256=P2kciQTa5sZRlZ1edcxsVuKgo5u8lBFDiKWGefucUOg,27884
|
|
294
|
+
massgen/memory/docker-compose.qdrant.yml,sha256=eE8voIsOrgSJ_jWuvJ492Crz17sKgIoD13XKZpqr7Io,935
|
|
295
|
+
massgen/memory/examples.py,sha256=Z089ZtRRHv01kX1v35-PG9IenbEQAGA4dVAZaHD81Rc,7552
|
|
296
|
+
massgen/memory/docs/DESIGN.md,sha256=vM9GuWqhxkLRICZ7UyPpcxXL1N-pdvr-r1H9j5ANb34,12885
|
|
297
|
+
massgen/memory/docs/QUICKSTART.md,sha256=ItQ10tHiC9EsgtKo3vIw4LlXSuVGzfvjmgGgPALJkMY,10438
|
|
298
|
+
massgen/memory/docs/SUMMARY.md,sha256=LdMkesNPJTC2zeJiktkeinyK9iTwOXX8GMGniAQLHtM,9485
|
|
299
|
+
massgen/memory/docs/agent_use_memory.md,sha256=pDyd_EHD9AY3D4SjhEYXUrTNSQBTJsiBGLGmgqlX78M,13547
|
|
300
|
+
massgen/memory/docs/orchestrator_use_memory.md,sha256=eKrDZUmqLrd8EjGObdYOuML-wtJhkpRPSqL9d7QilUs,22853
|
|
278
301
|
massgen/stream_chunk/__init__.py,sha256=fc8Jn-Ow2ZKFWJR72DRA6r65_CtViM9NLvWGT-TrhU4,898
|
|
279
302
|
massgen/stream_chunk/base.py,sha256=NubSk62R_ngr13IBTqz6HACnfh-LAsmkgzZ93nkj-fM,2810
|
|
280
303
|
massgen/stream_chunk/multimodal.py,sha256=ojaO-1EFnhA0H94YczxmkP6f0XV3lvTlb62Lc-JgltI,7916
|
|
@@ -284,10 +307,12 @@ massgen/tests/custom_tools_example.py,sha256=-f6_iGfEipznkKVKdzZwgGyQXw9JzOm9Lwc
|
|
|
284
307
|
massgen/tests/mcp_test_server.py,sha256=hx1dKMxFufzynG6sCd2117ma0ywPy9hiVjkUsAxtsP8,5660
|
|
285
308
|
massgen/tests/multi_turn_conversation_design.md,sha256=q9vMFNZ-LOTqZdI8oOWAQjPIY773s_mOXptq582Pk6E,7501
|
|
286
309
|
massgen/tests/multiturn_llm_input_analysis.md,sha256=Xw8PX0oAIbF_zjlRXCA62EpX1xAOGUq9brYl3UkyAR0,6997
|
|
310
|
+
massgen/tests/test_agent_memory.py,sha256=bTTPIkyecYRm7yu9f5080xxQcdDIKW45EFCj-RrP4Us,18541
|
|
287
311
|
massgen/tests/test_azure_openai_backend.py,sha256=a9JFdCnDDkG_PKjLxN8QqBwyzP_aNNlP543iST2pyPw,6663
|
|
288
312
|
massgen/tests/test_backend_capabilities.py,sha256=MXIO-4ia07a-95JbyyBeIlz79B-eResn8ej2fpiX6II,10966
|
|
289
313
|
massgen/tests/test_backend_event_loop_all.py,sha256=vfTlD2spAYVITGgwQzntFmvN_W10sSqO0XGpgESmmNQ,5565
|
|
290
|
-
massgen/tests/
|
|
314
|
+
massgen/tests/test_binary_file_blocking.py,sha256=mQ1QIPlvfG5RbiD5zu_7Se2r9zrIOkOYA1OnoaYG1ZM,11425
|
|
315
|
+
massgen/tests/test_case_studies.md,sha256=6cmSptqWytZnmtCP1ET2zKn490LfA7riuW5BGizXEzM,4083
|
|
291
316
|
massgen/tests/test_chat_completions_refactor.py,sha256=3Dt1vW0JEMR6_YShV7XQSiv8-0xMH-Dy_E9AnEKcrMQ,4675
|
|
292
317
|
massgen/tests/test_claude_backend.py,sha256=fVFRu0Pf_FO3hxozINjY4NDdCkvUUyvsoCia35Mc7pc,9730
|
|
293
318
|
massgen/tests/test_claude_code.py,sha256=BKrJOv7r-sLWTIplt7zvEkge5O9KRd50-7uhAu6QFcY,9155
|
|
@@ -296,6 +321,7 @@ massgen/tests/test_claude_code_orchestrator.py,sha256=1bFLHQSgPqw2ecPjoZpsSg5lw8
|
|
|
296
321
|
massgen/tests/test_cli_backends.py,sha256=6KPYnNgwGYRCGIXJTNWBCBHK1w8ylrBWFqt_HBWlelk,5918
|
|
297
322
|
massgen/tests/test_code_execution.py,sha256=fbXNg7NeUpuodpixeR7WhNAAtk9Je1VLwQQfw6N3CYU,30099
|
|
298
323
|
massgen/tests/test_config_builder.py,sha256=OcDfeVcKp_7zUruujNwKkpf0pwQ5f5ZzrgnHQYiEA2g,17781
|
|
324
|
+
massgen/tests/test_conversation_memory.py,sha256=o_wrjvVYB113Y24JF0s6n1Re51ly1GKDG-1LhDxlyqk,11398
|
|
299
325
|
massgen/tests/test_custom_tools.py,sha256=zUOjlZdT1eC7jgx28Z3TfzUTqFvAmRumK2Uv-lq1f3E,12905
|
|
300
326
|
massgen/tests/test_external_agent_backend.py,sha256=1ImeUo0tQIdaG7ASn1X-rkuHBuAUrmk3d4l8U4LaJHI,3948
|
|
301
327
|
massgen/tests/test_final_presentation_fallback.py,sha256=aMG9-6TjWseGPvY_zHOiKpdi5I4jHTMUEURaIu-5oNw,8985
|
|
@@ -306,9 +332,12 @@ massgen/tests/test_integration_simple.py,sha256=Dps0m3Nfjqphi_1cLTultnfqxJTonL3a
|
|
|
306
332
|
massgen/tests/test_intelligent_planning_mode.py,sha256=T2KjezqA6_1Ixj8uIEpXb9yuN0kG8tINfkl2C7KyWu8,24685
|
|
307
333
|
massgen/tests/test_mcp_blocking.py,sha256=rMvkozLGbEScYj01p8gfQmX2gssGriCIVDVo1e2bplU,4606
|
|
308
334
|
massgen/tests/test_message_context_building.py,sha256=8AXcVDtv0R8uI-1PVLwYVFSWP-t3KeIDvy7vifrLPyU,10563
|
|
335
|
+
massgen/tests/test_multimodal_size_limits.py,sha256=y5UAb48PqgSnsB467GRU50A0Rmi8f-hr6FpEGU40BCk,14968
|
|
309
336
|
massgen/tests/test_orchestration_restart.py,sha256=YqYXokEdQuzC9u8xFAkSMSbDKtRUk2Vu2eoKxt66iOk,7239
|
|
310
337
|
massgen/tests/test_orchestrator_final_presentation.py,sha256=Yt0-IACu0PGe4IpoGW7mpBDNdyFW_6W5Q1Hzry3gAys,1238
|
|
338
|
+
massgen/tests/test_orchestrator_memory.py,sha256=SjzvrvYLnpaU9U5mmOy8ZD5FZ67gbUBZg1qglXqG9kI,22162
|
|
311
339
|
massgen/tests/test_path_permission_manager.py,sha256=DjOQvhUE6Tg4UGGJzl8AwnFnlvQgJf2WaUVvebkK8UA,88275
|
|
340
|
+
massgen/tests/test_persistent_memory.py,sha256=W9qiKEapoTLYExGZ2xALMQtfHDjVeuacCA4mwbMVpTo,15037
|
|
312
341
|
massgen/tests/test_rich_terminal_display.py,sha256=r-SfoWf8T1P-cwZTnbVp3AYuxr-98h0K7XqI8Y5tcR4,12157
|
|
313
342
|
massgen/tests/test_timeout.py,sha256=35Lecz6WHPZXN_B1ru-XYQQhRr-Npx_LoqemsTQk7sE,5082
|
|
314
343
|
massgen/tests/test_tools.py,sha256=GnJNNB-cZj142txDwJKzN0zUKd0wb_p7lRWNJnB0qkc,3594
|
|
@@ -316,13 +345,17 @@ massgen/tests/test_v3_3agents.py,sha256=YARcuU3bc61BJhgMlojJ-AaHyIC__C31KzPf5W9f
|
|
|
316
345
|
massgen/tests/test_v3_simple.py,sha256=MCJkqnCldRmPhZF0IMvWyjbO9Xjz-_uv1rZqtW2kniw,6544
|
|
317
346
|
massgen/tests/test_v3_three_agents.py,sha256=t76yek3DRFJpgs4hiuc9BT5VKyU_RwgHcthZxjM8otM,9266
|
|
318
347
|
massgen/tests/test_v3_two_agents.py,sha256=G3WJuMdCjMdp0WItur48IGJ69B4HBs5RhpDjYJayzHo,5768
|
|
348
|
+
massgen/tests/memory/test_agent_compression.py,sha256=1OD2sXrfEGm7NIzIYAo4lMOnSleAEacaAlN7Qn3Kac8,5707
|
|
349
|
+
massgen/tests/memory/test_context_window_management.py,sha256=VnuEykGYZnS_OMVX4LJbHOxvq6wqGKGSY9WrLfqzTWw,10948
|
|
350
|
+
massgen/tests/memory/test_force_compression.py,sha256=NBo52hWJOdBLvQsPAh812QMAOeTgC52zIA3mmHS_mY0,5749
|
|
351
|
+
massgen/tests/memory/test_simple_compression.py,sha256=8WFSucWaHkHRA8lMJ5jm1Ki6ypHoVI4UXIaxFYLah1g,4889
|
|
319
352
|
massgen/token_manager/__init__.py,sha256=SxFK64M3S69E51d1M37pq38O39mIZp-9TMxAspwR3wY,143
|
|
320
|
-
massgen/token_manager/token_manager.py,sha256=
|
|
353
|
+
massgen/token_manager/token_manager.py,sha256=5S5uzLw2Zec9P3bYA1lPNluxgFg_wi6W151pGuHfb-Y,16903
|
|
321
354
|
massgen/tool/README.md,sha256=wauBHnWMUIQiGendrYUeUFW7LesRznGpJx9TR5qJpEU,24365
|
|
322
355
|
massgen/tool/__init__.py,sha256=YrLYvYDtVcTKs6WtwF4rtR90uoLGMmXXTedTq9GiIY4,1114
|
|
323
356
|
massgen/tool/_async_helpers.py,sha256=SyfWZ_fLLq2knwM5j4TaYVV1cTWElxWRSzH1FkapcL8,2411
|
|
324
357
|
massgen/tool/_exceptions.py,sha256=HGFXB1-cpj1bLCRtiVAP8BeiyBdzVWWsNGekQCvergA,1188
|
|
325
|
-
massgen/tool/_manager.py,sha256=
|
|
358
|
+
massgen/tool/_manager.py,sha256=xMK_rLWfqyvVcolDI6ZH5X6pUDMbFt_ppgg511t7HtI,23549
|
|
326
359
|
massgen/tool/_registered_tool.py,sha256=3hxyrfWzxNYGfhXOCcOZWr9vbIPmAc1RLC9bSocG2W0,3013
|
|
327
360
|
massgen/tool/_result.py,sha256=sDzLu38X0TCWsHq8rfZZhYB8TH3tcyPUv-sFvbDu3jc,1619
|
|
328
361
|
massgen/tool/_basic/__init__.py,sha256=oTNQVOeoSE-7ZQ2IslWOy0_ou0IbUAvjPga8HrHTgqg,119
|
|
@@ -332,22 +365,32 @@ massgen/tool/_code_executors/_python_executor.py,sha256=G7n9qknm5A3mxlVq5NwGuNeq
|
|
|
332
365
|
massgen/tool/_code_executors/_shell_executor.py,sha256=SIV8-GyrlKNOqDB4SHYlK46ff82_eAV1CgxvChnG4FA,1872
|
|
333
366
|
massgen/tool/_file_handlers/__init__.py,sha256=GoQ5hNFkU6UyGux_NfMhvYqJIwMWV0FIYDT0hO6FV-Q,232
|
|
334
367
|
massgen/tool/_file_handlers/_file_operations.py,sha256=r-ykRNVSTUv6HSWr86EsjGkW5r_LTJGcYo0VchByA0A,6915
|
|
335
|
-
massgen/tool/_multimodal_tools/
|
|
336
|
-
massgen/tool/_multimodal_tools/
|
|
337
|
-
massgen/tool/_multimodal_tools/
|
|
338
|
-
massgen/tool/_multimodal_tools/
|
|
368
|
+
massgen/tool/_multimodal_tools/image_to_image_generation.py,sha256=VcSsyX4h8eLY0YDYwxaO-9wFixRaAaMfZ1y5LzA-pg0,11391
|
|
369
|
+
massgen/tool/_multimodal_tools/text_to_file_generation.py,sha256=wMEBP5nTaOCkLiGAypZ5qs6JsqzvozRpdf-AqVbuFQ4,17029
|
|
370
|
+
massgen/tool/_multimodal_tools/text_to_image_generation.py,sha256=6NcGcCaGbyKfGtvAC3ndub_R-Js65CE4BXWwC2o04R4,8531
|
|
371
|
+
massgen/tool/_multimodal_tools/text_to_speech_continue_generation.py,sha256=qlbZtsWKp8IYA6r0M8c4luQtO1JA5ah_OZrb7vHvCTg,8697
|
|
372
|
+
massgen/tool/_multimodal_tools/text_to_speech_transcription_generation.py,sha256=Jx31tY8u-Yc787mj03mL78fULn2nr0kXG57uLaEj9KA,8294
|
|
373
|
+
massgen/tool/_multimodal_tools/text_to_video_generation.py,sha256=BGm0NCgsgcJq1sKTFmGe4iXiX16KPVo6JZ-tt7I-lWk,8060
|
|
374
|
+
massgen/tool/_multimodal_tools/understand_audio.py,sha256=iAssP2qZF0rdz8WT-Tvx3eqYW4tSM3xRO-A6XG0HGlE,7747
|
|
375
|
+
massgen/tool/_multimodal_tools/understand_file.py,sha256=XmVeiWF-y5KFANu2gjAmLoItInwZvWYx0V4EjzW8IYc,19246
|
|
376
|
+
massgen/tool/_multimodal_tools/understand_image.py,sha256=GBBRp-BFczW91eY0HM5QzfFDPFFXatktRRESN18NaYA,12769
|
|
377
|
+
massgen/tool/_multimodal_tools/understand_video.py,sha256=WR5vkPN5N0Z44ekCN4LrQvNxHL9ZoeNZGaUm0xlvp7c,12435
|
|
339
378
|
massgen/tool/_self_evolution/_github_issue_analyzer.py,sha256=jN3LmeXsgGD2qQD6xASUi-erdyU6cot-C496095l5IQ,12470
|
|
379
|
+
massgen/tool/_web_tools/crawl4ai_tool.py,sha256=CrneI9CarlNc5t0QHfI65o9K4Fjy_XOBIs2vuKO5vWo,23599
|
|
340
380
|
massgen/tool/docs/builtin_tools.md,sha256=pZHL0e6gGqwb91M5nghhlhbAWnV2S7w4lrdbEdACCF4,16818
|
|
341
381
|
massgen/tool/docs/exceptions.md,sha256=t1DLJTf6ZJW864OgvZLWAYf4Ws0Ms84l5AZVTjDw4DI,23468
|
|
342
382
|
massgen/tool/docs/execution_results.md,sha256=scpwavPHJiY6SR0s6jf0U4MMMKkkJr0yVExgRBJ4pog,18929
|
|
343
383
|
massgen/tool/docs/manager.md,sha256=dbBkiqnkPIrbrUZjnH78MnCDX-UJIyH6OI1szLWOupM,27928
|
|
344
|
-
massgen/tool/docs/multimodal_tools.md,sha256=
|
|
384
|
+
massgen/tool/docs/multimodal_tools.md,sha256=qSAy6jmx2FXhbmRLRY3J_EZiZxTQb00MdicXC15WqSo,41125
|
|
345
385
|
massgen/tool/docs/workflow_toolkits.md,sha256=VV4NslGYj0b2bPvCpu6CsaO2PY2EIA2l-tl0wg4MPAQ,13296
|
|
346
386
|
massgen/tool/workflow_toolkits/__init__.py,sha256=xMd559Ci0mv5-T9ezWAnF2Y9TrhVorljILq_WnDZRIU,2213
|
|
347
387
|
massgen/tool/workflow_toolkits/base.py,sha256=VcT6JOhtusYTwpc6FOdgG2Z-99ImsMNKudM-AMPsOVM,1301
|
|
348
388
|
massgen/tool/workflow_toolkits/new_answer.py,sha256=x2KfMs0rM9_sJmIVYQf8Acq_NNXMIIFrmZBRFpP6y9I,4482
|
|
349
389
|
massgen/tool/workflow_toolkits/post_evaluation.py,sha256=Zrp0sSdiiMm4IfiublcUAM-vMg-Duqp5WwJmVH9Rvng,9040
|
|
350
390
|
massgen/tool/workflow_toolkits/vote.py,sha256=u-Tqr45OjkoaNajriLUYeQZnM69Am0M8HR-_yrDpasA,6106
|
|
391
|
+
massgen/tools/__init__.py,sha256=e3V3j0F68KDQDdpkn6KUsbHds_asbfC0nVWVgmhnwjI,204
|
|
392
|
+
massgen/tools/_planning_mcp_server.py,sha256=iWKGTl9XUwjlv3s44V945LwBpMDzvxVAfU7Z3Mt09Qg,16343
|
|
393
|
+
massgen/tools/planning_dataclasses.py,sha256=srCMAi3-LGPjVSJ2rHUQvI-IAp32PEXE7evlG7MAGPw,14021
|
|
351
394
|
massgen/v1/README.md,sha256=37ZEbNR0O5IcdqQXkqtvNCpmVX1Z_dO4HGcKreaP-0E,13631
|
|
352
395
|
massgen/v1/__init__.py,sha256=hZUuhjtGlLJ-QW4Ty2V4IMlaoUB5oP0TSl0XeuCoWqU,2733
|
|
353
396
|
massgen/v1/agent.py,sha256=toEN1JM1pop4ZqZj2zqCCJJtxHtMUPjTQgEI4hvnh8s,25341
|
|
@@ -368,9 +411,9 @@ massgen/v1/examples/fast-4o-mini-config.yaml,sha256=t7zmN8sWQrrWivjaBB9w_WHFDnU-
|
|
|
368
411
|
massgen/v1/examples/fast_config.yaml,sha256=BDBCpSYJPzTZi9vAEGsCZ3lt3JV25RN-4Nf_17JAhUU,846
|
|
369
412
|
massgen/v1/examples/production.yaml,sha256=hrNqzOqlQG1sL-5U8ZlA8QpCwGSoiCtqMu7Mi2gOd9s,2002
|
|
370
413
|
massgen/v1/examples/single_agent.yaml,sha256=h8ysGIwPjvgnpRxTcBqw5nBz5D2MTXI_Ygdn4D9RdIA,1256
|
|
371
|
-
massgen-0.1.
|
|
372
|
-
massgen-0.1.
|
|
373
|
-
massgen-0.1.
|
|
374
|
-
massgen-0.1.
|
|
375
|
-
massgen-0.1.
|
|
376
|
-
massgen-0.1.
|
|
414
|
+
massgen-0.1.5.dist-info/licenses/LICENSE,sha256=_r2TwhSv0GcpGeIKfwbz9z2qzOI62FHCfgSfnZ1z2fc,11386
|
|
415
|
+
massgen-0.1.5.dist-info/METADATA,sha256=SRbvef4OIuyrgINJNRR7FW2UB7XK1aBpGWkkMekxYb4,65974
|
|
416
|
+
massgen-0.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
417
|
+
massgen-0.1.5.dist-info/entry_points.txt,sha256=On6OV7swWO0StsAXeOri3MzmuxhO9C-PUvKW-5pJ6gA,49
|
|
418
|
+
massgen-0.1.5.dist-info/top_level.txt,sha256=jm8ZxEGdkjsh8aPWXvCpnexL_S2ZRkFeT9vl6vIm_3I,8
|
|
419
|
+
massgen-0.1.5.dist-info/RECORD,,
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# MassGen Configuration: Crawl4AI Web Scraping via MCP
|
|
2
|
-
#
|
|
3
|
-
# Prerequisites:
|
|
4
|
-
# 1. Start crawl4ai Docker container (one-time setup):
|
|
5
|
-
# docker pull unclecode/crawl4ai:latest
|
|
6
|
-
# docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:latest
|
|
7
|
-
#
|
|
8
|
-
# 2. Verify container is running:
|
|
9
|
-
# docker ps | grep crawl4ai
|
|
10
|
-
#
|
|
11
|
-
# 3. Test MCP endpoint (optional):
|
|
12
|
-
# curl http://localhost:11235/mcp/schema
|
|
13
|
-
#
|
|
14
|
-
# Usage:
|
|
15
|
-
# massgen --config massgen/configs/tools/custom_tools/crawl4ai_mcp_example.yaml "Scrape https://example.com and summarize the content"
|
|
16
|
-
#
|
|
17
|
-
# Available Tools (via MCP):
|
|
18
|
-
# - md: Generate markdown from web content
|
|
19
|
-
# - html: Extract preprocessed HTML
|
|
20
|
-
# - screenshot: Capture webpage screenshots
|
|
21
|
-
# - pdf: Generate PDF documents
|
|
22
|
-
# - execute_js: Run JavaScript on web pages
|
|
23
|
-
# - crawl: Perform multi-URL crawling
|
|
24
|
-
# - ask: Query the Crawl4AI library context
|
|
25
|
-
#
|
|
26
|
-
# Note: Multiple agents can connect to the same crawl4ai container.
|
|
27
|
-
# The server handles up to 5 concurrent crawls by default.
|
|
28
|
-
|
|
29
|
-
orchestrator:
|
|
30
|
-
snapshot_storage: "snapshots"
|
|
31
|
-
agent_temporary_workspace: "temp_workspaces"
|
|
32
|
-
|
|
33
|
-
agents:
|
|
34
|
-
- id: "web_scraper_agent"
|
|
35
|
-
backend:
|
|
36
|
-
type: "claude_code"
|
|
37
|
-
model: "claude-sonnet-4-20250514"
|
|
38
|
-
cwd: "workspace1"
|
|
39
|
-
|
|
40
|
-
# Connect to crawl4ai MCP server
|
|
41
|
-
mcp_servers:
|
|
42
|
-
- name: "crawl4ai"
|
|
43
|
-
type: "sse" # Server-Sent Events transport
|
|
44
|
-
url: "http://localhost:11235/mcp/sse"
|
|
45
|
-
|
|
46
|
-
append_system_prompt: |
|
|
47
|
-
You are a web scraping specialist with access to the Crawl4AI toolset via MCP.
|
|
48
|
-
|
|
49
|
-
Available tools:
|
|
50
|
-
- md: Convert webpages to clean markdown (best for LLM consumption)
|
|
51
|
-
- html: Extract preprocessed HTML
|
|
52
|
-
- screenshot: Capture webpage as image
|
|
53
|
-
- pdf: Generate PDF from webpage
|
|
54
|
-
- execute_js: Run JavaScript on pages (for dynamic content)
|
|
55
|
-
- crawl: Scrape multiple URLs in parallel
|
|
56
|
-
|
|
57
|
-
When users ask to scrape, analyze, or extract web content:
|
|
58
|
-
1. Use 'md' tool for text-based content (articles, docs, etc.)
|
|
59
|
-
2. Use 'screenshot' for visual content or layout analysis
|
|
60
|
-
3. Use 'execute_js' for JavaScript-heavy sites
|
|
61
|
-
4. Use 'crawl' for multiple pages
|
|
62
|
-
|
|
63
|
-
Always provide clear summaries of scraped content.
|
|
64
|
-
|
|
65
|
-
ui:
|
|
66
|
-
display_type: "rich_terminal"
|
|
67
|
-
logging_enabled: true
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# MassGen Configuration: Multi-Agent Web Research with Crawl4AI
|
|
2
|
-
#
|
|
3
|
-
# This example demonstrates multiple agents sharing a single crawl4ai MCP server
|
|
4
|
-
# for collaborative web research and analysis.
|
|
5
|
-
#
|
|
6
|
-
# Prerequisites:
|
|
7
|
-
# 1. Start crawl4ai Docker container:
|
|
8
|
-
# docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:latest
|
|
9
|
-
#
|
|
10
|
-
# Usage:
|
|
11
|
-
# massgen --config massgen/configs/tools/custom_tools/crawl4ai_multi_agent_example.yaml "Research AI safety best practices by scraping relevant documentation sites and academic papers"
|
|
12
|
-
#
|
|
13
|
-
# What happens:
|
|
14
|
-
# - Multiple agents can scrape different URLs concurrently
|
|
15
|
-
# - The crawl4ai server handles up to 5 parallel crawls
|
|
16
|
-
# - Agents collaborate and vote on the synthesized research
|
|
17
|
-
|
|
18
|
-
orchestrator:
|
|
19
|
-
snapshot_storage: "snapshots"
|
|
20
|
-
agent_temporary_workspace: "temp_workspaces"
|
|
21
|
-
voting_sensitivity: "balanced"
|
|
22
|
-
answer_novelty_requirement: "balanced"
|
|
23
|
-
max_new_answers_per_agent: 3
|
|
24
|
-
|
|
25
|
-
agents:
|
|
26
|
-
- id: "research_agent_1"
|
|
27
|
-
backend:
|
|
28
|
-
type: "openai"
|
|
29
|
-
model: "gpt-5-nano"
|
|
30
|
-
cwd: "workspace1"
|
|
31
|
-
|
|
32
|
-
# All agents connect to the same crawl4ai container
|
|
33
|
-
mcp_servers:
|
|
34
|
-
- name: "crawl4ai"
|
|
35
|
-
type: "sse"
|
|
36
|
-
url: "http://localhost:11235/mcp/sse"
|
|
37
|
-
|
|
38
|
-
enable_web_search: true
|
|
39
|
-
|
|
40
|
-
system_message: |
|
|
41
|
-
You are a research specialist focused on finding authoritative sources and extracting key insights.
|
|
42
|
-
|
|
43
|
-
Use the crawl4ai tools to scrape documentation, articles, and research papers.
|
|
44
|
-
Prioritize official documentation and academic sources.
|
|
45
|
-
|
|
46
|
-
- id: "research_agent_2"
|
|
47
|
-
backend:
|
|
48
|
-
type: "gemini"
|
|
49
|
-
model: "gemini-2.5-pro"
|
|
50
|
-
cwd: "workspace2"
|
|
51
|
-
|
|
52
|
-
# Connects to the SAME crawl4ai container as agent_1
|
|
53
|
-
mcp_servers:
|
|
54
|
-
- name: "crawl4ai"
|
|
55
|
-
type: "sse"
|
|
56
|
-
url: "http://localhost:11235/mcp/sse"
|
|
57
|
-
|
|
58
|
-
enable_web_search: true
|
|
59
|
-
|
|
60
|
-
system_message: |
|
|
61
|
-
You are a synthesis specialist who combines information from multiple sources.
|
|
62
|
-
|
|
63
|
-
Use crawl4ai to gather diverse perspectives and cross-reference information.
|
|
64
|
-
Focus on finding patterns and connections across sources.
|
|
65
|
-
|
|
66
|
-
ui:
|
|
67
|
-
display_type: "rich_terminal"
|
|
68
|
-
logging_enabled: true
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
# Memory and Context Window Management Examples
|
|
2
|
-
|
|
3
|
-
This directory contains example configurations and tests for MassGen's memory system and automatic context window management.
|
|
4
|
-
|
|
5
|
-
## Features Demonstrated
|
|
6
|
-
|
|
7
|
-
- **Automatic Context Compression**: When conversation history approaches 75% of the model's context window, older messages are automatically compressed
|
|
8
|
-
- **Token-Aware Management**: System keeps most recent messages within 40% token budget
|
|
9
|
-
- **Persistent Memory Integration**: Compressed messages stored in long-term memory using mem0
|
|
10
|
-
- **Graceful Degradation**: Works with or without persistent memory (with appropriate warnings)
|
|
11
|
-
|
|
12
|
-
## Files
|
|
13
|
-
|
|
14
|
-
### Configuration Files
|
|
15
|
-
|
|
16
|
-
#### `gpt5mini_gemini_context_window_management.yaml`
|
|
17
|
-
Example configuration showing how to configure memory directly in YAML.
|
|
18
|
-
|
|
19
|
-
Features two agents:
|
|
20
|
-
- **agent_a**: GPT-5-mini with medium reasoning
|
|
21
|
-
- **agent_b**: Gemini 2.5 Flash
|
|
22
|
-
|
|
23
|
-
**Memory Control** - Configure directly in YAML:
|
|
24
|
-
```yaml
|
|
25
|
-
memory:
|
|
26
|
-
enabled: true # Master switch
|
|
27
|
-
|
|
28
|
-
conversation_memory:
|
|
29
|
-
enabled: true # Short-term tracking
|
|
30
|
-
|
|
31
|
-
persistent_memory:
|
|
32
|
-
enabled: true # Long-term storage (set to false to disable)
|
|
33
|
-
on_disk: true
|
|
34
|
-
agent_name: "storyteller_agent"
|
|
35
|
-
# session_name: "test_session" # Optional - auto-generated if not specified
|
|
36
|
-
|
|
37
|
-
compression:
|
|
38
|
-
trigger_threshold: 0.75 # Compress at 75%
|
|
39
|
-
target_ratio: 0.40 # Target 40% after
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**Session Management:**
|
|
43
|
-
- If `session_name` is not specified, a unique ID is auto-generated (e.g., `agent_storyteller_20251023_143022_a1b2c3`)
|
|
44
|
-
- Each new run gets a fresh session by default
|
|
45
|
-
- To continue a previous session, specify the `session_name` explicitly
|
|
46
|
-
|
|
47
|
-
To disable persistent memory, set `memory.persistent_memory.enabled: false`
|
|
48
|
-
|
|
49
|
-
#### `gpt5mini_gemini_no_persistent_memory.yaml`
|
|
50
|
-
Example showing what happens when persistent memory is disabled.
|
|
51
|
-
|
|
52
|
-
**Key difference**: Sets `memory.persistent_memory.enabled: false` to demonstrate warning messages when context fills up without long-term storage.
|
|
53
|
-
|
|
54
|
-
### Test Script
|
|
55
|
-
|
|
56
|
-
#### `test_context_window_management.py`
|
|
57
|
-
Complete test script demonstrating:
|
|
58
|
-
- Setup of ConversationMemory and PersistentMemory
|
|
59
|
-
- Integration with SingleAgent
|
|
60
|
-
- Both scenarios (with/without persistent memory)
|
|
61
|
-
- Logging of compression events
|
|
62
|
-
|
|
63
|
-
## Quick Start
|
|
64
|
-
|
|
65
|
-
### Prerequisites
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
# Install dependencies
|
|
69
|
-
pip install massgen mem0ai
|
|
70
|
-
|
|
71
|
-
# Set up API keys - Create a .env file in project root:
|
|
72
|
-
cat > .env << EOF
|
|
73
|
-
OPENAI_API_KEY='your-key-here'
|
|
74
|
-
GOOGLE_API_KEY='your-key-here' # Optional, for Gemini
|
|
75
|
-
EOF
|
|
76
|
-
|
|
77
|
-
# Or export directly:
|
|
78
|
-
export OPENAI_API_KEY='your-key-here'
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
The test script automatically loads `.env` files from:
|
|
82
|
-
- Project root
|
|
83
|
-
- Current directory
|
|
84
|
-
- Script directory
|
|
85
|
-
|
|
86
|
-
### Run the Test
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
# Run with default config (memory enabled)
|
|
90
|
-
python massgen/configs/tools/memory/test_context_window_management.py
|
|
91
|
-
|
|
92
|
-
# Run with custom config
|
|
93
|
-
python massgen/configs/tools/memory/test_context_window_management.py --config path/to/config.yaml
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
The test script reads the `memory` section from YAML and:
|
|
97
|
-
- If `persistent_memory.enabled: true` → Runs Test 1 (with persistent memory)
|
|
98
|
-
- If `persistent_memory.enabled: false` → Runs Test 2 (without persistent memory)
|
|
99
|
-
|
|
100
|
-
### Expected Output
|
|
101
|
-
|
|
102
|
-
**With Persistent Memory:**
|
|
103
|
-
```
|
|
104
|
-
📊 Context usage: 96,000 / 128,000 tokens (75.0%) - compressing old context
|
|
105
|
-
📦 Compressed 15 messages (60,000 tokens) into long-term memory
|
|
106
|
-
Kept 8 messages (36,000 tokens) in context
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
**Without Persistent Memory:**
|
|
110
|
-
```
|
|
111
|
-
📊 Context usage: 96,000 / 128,000 tokens (75.0%) - compressing old context
|
|
112
|
-
⚠️ Warning: Dropping 15 messages (60,000 tokens)
|
|
113
|
-
No persistent memory configured to retain this information
|
|
114
|
-
Consider adding persistent_memory to avoid losing context
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## How It Works
|
|
118
|
-
|
|
119
|
-
### Token Budget Allocation
|
|
120
|
-
|
|
121
|
-
After compression, the context window is allocated as follows:
|
|
122
|
-
|
|
123
|
-
| Component | Allocation | Purpose |
|
|
124
|
-
|-----------|------------|---------|
|
|
125
|
-
| Conversation History | 40% | Most recent messages kept in active context |
|
|
126
|
-
| New User Messages | 20% | Room for incoming requests |
|
|
127
|
-
| Retrieved Memories | 10% | Injected relevant facts from persistent memory |
|
|
128
|
-
| System Prompt | 10% | Overhead for instructions |
|
|
129
|
-
| Response Generation | 20% | Space for model output |
|
|
130
|
-
|
|
131
|
-
### Compression Strategy
|
|
132
|
-
|
|
133
|
-
1. **Threshold**: Compression triggers at **75%** of context window
|
|
134
|
-
2. **Target**: Reduces to **40%** of context window after compression
|
|
135
|
-
3. **Selection**: Keeps most recent messages that fit within budget
|
|
136
|
-
4. **Preservation**: System messages always kept (never compressed)
|
|
137
|
-
|
|
138
|
-
### Model Context Windows
|
|
139
|
-
|
|
140
|
-
The system automatically detects context limits for each model:
|
|
141
|
-
|
|
142
|
-
| Model | Context Window | Compression at | Target After |
|
|
143
|
-
|-------|----------------|----------------|--------------|
|
|
144
|
-
| GPT-4o | 128K | 96K tokens | 51K tokens |
|
|
145
|
-
| GPT-4o-mini | 128K | 96K tokens | 51K tokens |
|
|
146
|
-
| Claude Sonnet 4 | 200K | 150K tokens | 80K tokens |
|
|
147
|
-
| Gemini 2.5 Flash | 1M | 750K tokens | 400K tokens |
|
|
148
|
-
| DeepSeek R1 | 128K | 96K tokens | 51K tokens |
|
|
149
|
-
|
|
150
|
-
## Programmatic Usage
|
|
151
|
-
|
|
152
|
-
To use memory in your own code:
|
|
153
|
-
|
|
154
|
-
```python
|
|
155
|
-
from massgen.backend.chat_completions import ChatCompletionsBackend
|
|
156
|
-
from massgen.chat_agent import SingleAgent
|
|
157
|
-
from massgen.memory import ConversationMemory, PersistentMemory
|
|
158
|
-
|
|
159
|
-
# Create backends
|
|
160
|
-
llm = ChatCompletionsBackend(type="openai", model="gpt-4o-mini", api_key="...")
|
|
161
|
-
embedding = ChatCompletionsBackend(type="openai", model="text-embedding-3-small", api_key="...")
|
|
162
|
-
|
|
163
|
-
# Initialize memory
|
|
164
|
-
conversation_memory = ConversationMemory()
|
|
165
|
-
persistent_memory = PersistentMemory(
|
|
166
|
-
agent_name="my_agent",
|
|
167
|
-
session_name="session_1",
|
|
168
|
-
llm_backend=llm,
|
|
169
|
-
embedding_backend=embedding,
|
|
170
|
-
on_disk=True, # Persist across restarts
|
|
171
|
-
)
|
|
172
|
-
|
|
173
|
-
# Create agent with memory
|
|
174
|
-
agent = SingleAgent(
|
|
175
|
-
backend=llm,
|
|
176
|
-
agent_id="my_agent",
|
|
177
|
-
system_message="You are a helpful assistant",
|
|
178
|
-
conversation_memory=conversation_memory,
|
|
179
|
-
persistent_memory=persistent_memory,
|
|
180
|
-
)
|
|
181
|
-
|
|
182
|
-
# Use normally - compression happens automatically
|
|
183
|
-
async for chunk in agent.chat([{"role": "user", "content": "Hello!"}]):
|
|
184
|
-
if chunk.type == "content":
|
|
185
|
-
print(chunk.content, end="")
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## Related Documentation
|
|
189
|
-
|
|
190
|
-
- [Memory System Design](../../../massgen/memory/docs/DESIGN.md)
|
|
191
|
-
- [Memory Quickstart](../../../massgen/memory/docs/QUICKSTART.md)
|
|
192
|
-
- [Single Agent Memory Integration](../../../massgen/memory/docs/agent_use_memory.md)
|
|
193
|
-
- [Orchestrator Shared Memory](../../../massgen/memory/docs/orchestrator_use_memory.md)
|
|
194
|
-
|
|
195
|
-
## Related Issues
|
|
196
|
-
|
|
197
|
-
- [Issue #347](https://github.com/Leezekun/MassGen/issues/347): Handle context limit with summarization
|
|
198
|
-
- [Issue #348](https://github.com/Leezekun/MassGen/issues/348): Ensure memory persists across restarts ✅
|
|
199
|
-
- [Issue #349](https://github.com/Leezekun/MassGen/issues/349): File caching with memory (future work)
|