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.

Files changed (90) hide show
  1. massgen/__init__.py +1 -1
  2. massgen/api_params_handler/_chat_completions_api_params_handler.py +4 -0
  3. massgen/api_params_handler/_claude_api_params_handler.py +4 -0
  4. massgen/api_params_handler/_gemini_api_params_handler.py +4 -0
  5. massgen/api_params_handler/_response_api_params_handler.py +4 -0
  6. massgen/backend/base_with_custom_tool_and_mcp.py +25 -5
  7. massgen/backend/docs/permissions_and_context_files.md +2 -2
  8. massgen/backend/response.py +2 -0
  9. massgen/chat_agent.py +340 -20
  10. massgen/cli.py +326 -19
  11. massgen/configs/README.md +92 -41
  12. massgen/configs/memory/gpt5mini_gemini_baseline_research_to_implementation.yaml +94 -0
  13. massgen/configs/memory/gpt5mini_gemini_context_window_management.yaml +187 -0
  14. massgen/configs/memory/gpt5mini_gemini_research_to_implementation.yaml +127 -0
  15. massgen/configs/memory/gpt5mini_high_reasoning_gemini.yaml +107 -0
  16. massgen/configs/memory/single_agent_compression_test.yaml +64 -0
  17. massgen/configs/tools/custom_tools/crawl4ai_example.yaml +55 -0
  18. massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_multi.yaml +61 -0
  19. massgen/configs/tools/custom_tools/multimodal_tools/text_to_file_generation_single.yaml +29 -0
  20. massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_multi.yaml +51 -0
  21. massgen/configs/tools/custom_tools/multimodal_tools/text_to_image_generation_single.yaml +33 -0
  22. massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_multi.yaml +55 -0
  23. massgen/configs/tools/custom_tools/multimodal_tools/text_to_speech_generation_single.yaml +33 -0
  24. massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_multi.yaml +47 -0
  25. massgen/configs/tools/custom_tools/multimodal_tools/text_to_video_generation_single.yaml +29 -0
  26. massgen/configs/tools/custom_tools/multimodal_tools/understand_audio.yaml +1 -1
  27. massgen/configs/tools/custom_tools/multimodal_tools/understand_file.yaml +1 -1
  28. massgen/configs/tools/custom_tools/multimodal_tools/understand_image.yaml +1 -1
  29. massgen/configs/tools/custom_tools/multimodal_tools/understand_video.yaml +1 -1
  30. massgen/configs/tools/custom_tools/multimodal_tools/youtube_video_analysis.yaml +1 -1
  31. massgen/filesystem_manager/_filesystem_manager.py +1 -0
  32. massgen/filesystem_manager/_path_permission_manager.py +148 -0
  33. massgen/memory/README.md +277 -0
  34. massgen/memory/__init__.py +26 -0
  35. massgen/memory/_base.py +193 -0
  36. massgen/memory/_compression.py +237 -0
  37. massgen/memory/_context_monitor.py +211 -0
  38. massgen/memory/_conversation.py +255 -0
  39. massgen/memory/_fact_extraction_prompts.py +333 -0
  40. massgen/memory/_mem0_adapters.py +257 -0
  41. massgen/memory/_persistent.py +687 -0
  42. massgen/memory/docker-compose.qdrant.yml +36 -0
  43. massgen/memory/docs/DESIGN.md +388 -0
  44. massgen/memory/docs/QUICKSTART.md +409 -0
  45. massgen/memory/docs/SUMMARY.md +319 -0
  46. massgen/memory/docs/agent_use_memory.md +408 -0
  47. massgen/memory/docs/orchestrator_use_memory.md +586 -0
  48. massgen/memory/examples.py +237 -0
  49. massgen/message_templates.py +160 -12
  50. massgen/orchestrator.py +223 -7
  51. massgen/tests/memory/test_agent_compression.py +174 -0
  52. massgen/{configs/tools → tests}/memory/test_context_window_management.py +30 -30
  53. massgen/tests/memory/test_force_compression.py +154 -0
  54. massgen/tests/memory/test_simple_compression.py +147 -0
  55. massgen/tests/test_agent_memory.py +534 -0
  56. massgen/tests/test_binary_file_blocking.py +274 -0
  57. massgen/tests/test_case_studies.md +12 -12
  58. massgen/tests/test_conversation_memory.py +382 -0
  59. massgen/tests/test_multimodal_size_limits.py +407 -0
  60. massgen/tests/test_orchestrator_memory.py +620 -0
  61. massgen/tests/test_persistent_memory.py +435 -0
  62. massgen/token_manager/token_manager.py +6 -0
  63. massgen/tool/_manager.py +7 -2
  64. massgen/tool/_multimodal_tools/image_to_image_generation.py +293 -0
  65. massgen/tool/_multimodal_tools/text_to_file_generation.py +455 -0
  66. massgen/tool/_multimodal_tools/text_to_image_generation.py +222 -0
  67. massgen/tool/_multimodal_tools/text_to_speech_continue_generation.py +226 -0
  68. massgen/tool/_multimodal_tools/text_to_speech_transcription_generation.py +217 -0
  69. massgen/tool/_multimodal_tools/text_to_video_generation.py +223 -0
  70. massgen/tool/_multimodal_tools/understand_audio.py +19 -1
  71. massgen/tool/_multimodal_tools/understand_file.py +6 -1
  72. massgen/tool/_multimodal_tools/understand_image.py +112 -8
  73. massgen/tool/_multimodal_tools/understand_video.py +32 -5
  74. massgen/tool/_web_tools/crawl4ai_tool.py +718 -0
  75. massgen/tool/docs/multimodal_tools.md +589 -0
  76. massgen/tools/__init__.py +8 -0
  77. massgen/tools/_planning_mcp_server.py +520 -0
  78. massgen/tools/planning_dataclasses.py +434 -0
  79. {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/METADATA +142 -82
  80. {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/RECORD +84 -41
  81. massgen/configs/tools/custom_tools/crawl4ai_mcp_example.yaml +0 -67
  82. massgen/configs/tools/custom_tools/crawl4ai_multi_agent_example.yaml +0 -68
  83. massgen/configs/tools/memory/README.md +0 -199
  84. massgen/configs/tools/memory/gpt5mini_gemini_context_window_management.yaml +0 -131
  85. massgen/configs/tools/memory/gpt5mini_gemini_no_persistent_memory.yaml +0 -133
  86. massgen/configs/tools/multimodal/gpt5mini_gpt5nano_documentation_evolution.yaml +0 -97
  87. {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/WHEEL +0 -0
  88. {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/entry_points.txt +0 -0
  89. {massgen-0.1.3.dist-info → massgen-0.1.5.dist-info}/licenses/LICENSE +0 -0
  90. {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=mM120i5cRrhv4-7QnwUYWIASIA_vW9VVq0adNucOf7Q,7974
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=Oa1yv_yzfe2twbeqCM9LGzVOXA93p13RTE35Ks-XCpk,18903
4
- massgen/cli.py,sha256=3VNtpflBKfTSrr1Dj07iFMMH-YhnoCDcJWWlmJ2vNW0,114861
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=38TtFZdPDiHFoq9x6RCpcINf03YD9vrNN3SUQyT1njY,46143
9
- massgen/orchestrator.py,sha256=8y3-Sp0UQYlrFacJEGu46Hagkuno9jZyAB2HKxR-co0,166095
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=LO-ZADOl0CifhnBFku19ilcABXAR6dlJFOKGuAmMSu4,7713
24
- massgen/api_params_handler/_claude_api_params_handler.py,sha256=9rlmPI0smid7DezGWb2vkx7rEVqtFffOaAQi_rtE_4k,3946
25
- massgen/api_params_handler/_gemini_api_params_handler.py,sha256=AsWzdOOCjXT-TQFsupZyKsdhNxmmD852VB6hk8siH-s,2494
26
- massgen/api_params_handler/_response_api_params_handler.py,sha256=rk8EGVF2FgCBoQlM3_qIy3M5ihFwwcbEub44mB7aPFg,4962
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=kqpl3uAWysdplAHjc1O5Z2InkjVw8CQTXo17LtNmCbE,57511
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=QFhMSUFsTFqMuVmJsKX8lQyCXT9I2XHE9dQjGk12RxA,57061
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=1afQsz-s6rQdNmOgs2GhPHrYOd1t4cM-2EqkOArR42Q,40484
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=G52pBkX59ioG0lnDbMRq6pBF6oYeS1WPb5ekI2RXY1I,32108
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/crawl4ai_mcp_example.yaml,sha256=CqA8jKpm6AdqQ8-QpT-slmM_CeP1o_lnV4nk620oNiM,2316
141
- massgen/configs/tools/custom_tools/crawl4ai_multi_agent_example.yaml,sha256=UBWAXqsJgk3SrDdnqOqJ-TmQVPPx4JJEYDYlJM2Rxfs,2184
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/understand_audio.yaml,sha256=ZHLywTxOLVlXoBE4AmXiJ390viX8ERUmUVYvn6uWil0,1278
175
- massgen/configs/tools/custom_tools/multimodal_tools/understand_file.yaml,sha256=PfGU0Ps8C5sD96yWviSEmsD5hJhWo1McfqF1DGXJnW8,1345
176
- massgen/configs/tools/custom_tools/multimodal_tools/understand_image.yaml,sha256=olNe4LHWffzvKgRRkXzvdmYzETxjbxRV-QooIMdbVQY,1295
177
- massgen/configs/tools/custom_tools/multimodal_tools/understand_video.yaml,sha256=7kBiodIJESBvB_P9pyQNDyGfUBIVYeYeQ4jgHegoKII,1329
178
+ massgen/configs/tools/custom_tools/multimodal_tools/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=DUhUWYZUyla1y0pHnhxKtfpODXuhmHbtpeuRnJZ0va4,2086
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=kz01wFdrmtxCzsf8RYWMGfzfxYdjxnKlJemAkoFxT3k,36814
248
- massgen/filesystem_manager/_path_permission_manager.py,sha256=pmOTMPda4kTohqAXQaxtqfZPZQ79YzLYaxI89vXlBTA,56326
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/test_case_studies.md,sha256=b24fHSGnmzqt0d9qgjm7b7WuHa3kGj1ZkRAfEyu-idU,4089
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=rp1DY6KYLK9QSaAZh6IBlAwpTgwSr7PRWxd-9Ifh4bs,16586
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=7TzzTf9DCqX3y4QsIN6o8Z4HR8EfoVb93T70QGO8aok,23266
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/understand_audio.py,sha256=eie4fMjN0PDISjMERxitOdJprCexv_e4hmasdnxBtWU,6846
336
- massgen/tool/_multimodal_tools/understand_file.py,sha256=kiLZmks0hFO--7HkIIF7g1e0iWSS7idT8sLWYyYIfSo,18986
337
- massgen/tool/_multimodal_tools/understand_image.py,sha256=_IzVMi6P6BTrtldDEoLz8oJ0tQBzFFuTFDIR2vRlV6c,7311
338
- massgen/tool/_multimodal_tools/understand_video.py,sha256=zYVnAsldUd7BQqodrwaUMMEBX-la-55h99J5rimoFlY,10864
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=0YSowzw8WZnXQqfLsOhA-UIBZ-0mMhOn_FeG_pTcgWE,22284
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.3.dist-info/licenses/LICENSE,sha256=_r2TwhSv0GcpGeIKfwbz9z2qzOI62FHCfgSfnZ1z2fc,11386
372
- massgen-0.1.3.dist-info/METADATA,sha256=YFxdq0Xrwco4CjtkAXQ6oh_IR4G7G51Ej2bcmzXxjCY,59951
373
- massgen-0.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
374
- massgen-0.1.3.dist-info/entry_points.txt,sha256=On6OV7swWO0StsAXeOri3MzmuxhO9C-PUvKW-5pJ6gA,49
375
- massgen-0.1.3.dist-info/top_level.txt,sha256=jm8ZxEGdkjsh8aPWXvCpnexL_S2ZRkFeT9vl6vIm_3I,8
376
- massgen-0.1.3.dist-info/RECORD,,
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)