massgen 0.1.4__py3-none-any.whl → 0.1.6__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 (84) hide show
  1. massgen/__init__.py +1 -1
  2. massgen/backend/base_with_custom_tool_and_mcp.py +453 -23
  3. massgen/backend/capabilities.py +39 -0
  4. massgen/backend/chat_completions.py +111 -197
  5. massgen/backend/claude.py +210 -181
  6. massgen/backend/gemini.py +1015 -1559
  7. massgen/backend/grok.py +3 -2
  8. massgen/backend/response.py +160 -220
  9. massgen/chat_agent.py +340 -20
  10. massgen/cli.py +399 -25
  11. massgen/config_builder.py +20 -54
  12. massgen/config_validator.py +931 -0
  13. massgen/configs/README.md +95 -10
  14. massgen/configs/memory/gpt5mini_gemini_baseline_research_to_implementation.yaml +94 -0
  15. massgen/configs/memory/gpt5mini_gemini_context_window_management.yaml +187 -0
  16. massgen/configs/memory/gpt5mini_gemini_research_to_implementation.yaml +127 -0
  17. massgen/configs/memory/gpt5mini_high_reasoning_gemini.yaml +107 -0
  18. massgen/configs/memory/single_agent_compression_test.yaml +64 -0
  19. massgen/configs/tools/custom_tools/claude_code_custom_tool_with_mcp_example.yaml +1 -0
  20. massgen/configs/tools/custom_tools/claude_custom_tool_example_no_path.yaml +1 -1
  21. massgen/configs/tools/custom_tools/claude_custom_tool_with_mcp_example.yaml +1 -0
  22. massgen/configs/tools/custom_tools/computer_use_browser_example.yaml +1 -1
  23. massgen/configs/tools/custom_tools/computer_use_docker_example.yaml +1 -1
  24. massgen/configs/tools/custom_tools/gemini_custom_tool_with_mcp_example.yaml +1 -0
  25. massgen/configs/tools/custom_tools/gpt5_nano_custom_tool_with_mcp_example.yaml +1 -0
  26. massgen/configs/tools/custom_tools/gpt_oss_custom_tool_with_mcp_example.yaml +1 -0
  27. massgen/configs/tools/custom_tools/grok3_mini_custom_tool_with_mcp_example.yaml +1 -0
  28. massgen/configs/tools/custom_tools/interop/ag2_and_langgraph_lesson_planner.yaml +65 -0
  29. massgen/configs/tools/custom_tools/interop/ag2_and_openai_assistant_lesson_planner.yaml +65 -0
  30. massgen/configs/tools/custom_tools/interop/ag2_lesson_planner_example.yaml +48 -0
  31. massgen/configs/tools/custom_tools/interop/agentscope_lesson_planner_example.yaml +48 -0
  32. massgen/configs/tools/custom_tools/interop/langgraph_lesson_planner_example.yaml +49 -0
  33. massgen/configs/tools/custom_tools/interop/openai_assistant_lesson_planner_example.yaml +50 -0
  34. massgen/configs/tools/custom_tools/interop/smolagent_lesson_planner_example.yaml +49 -0
  35. massgen/configs/tools/custom_tools/qwen_api_custom_tool_with_mcp_example.yaml +1 -0
  36. massgen/configs/tools/custom_tools/two_models_with_tools_example.yaml +44 -0
  37. massgen/formatter/_gemini_formatter.py +61 -15
  38. massgen/memory/README.md +277 -0
  39. massgen/memory/__init__.py +26 -0
  40. massgen/memory/_base.py +193 -0
  41. massgen/memory/_compression.py +237 -0
  42. massgen/memory/_context_monitor.py +211 -0
  43. massgen/memory/_conversation.py +255 -0
  44. massgen/memory/_fact_extraction_prompts.py +333 -0
  45. massgen/memory/_mem0_adapters.py +257 -0
  46. massgen/memory/_persistent.py +687 -0
  47. massgen/memory/docker-compose.qdrant.yml +36 -0
  48. massgen/memory/docs/DESIGN.md +388 -0
  49. massgen/memory/docs/QUICKSTART.md +409 -0
  50. massgen/memory/docs/SUMMARY.md +319 -0
  51. massgen/memory/docs/agent_use_memory.md +408 -0
  52. massgen/memory/docs/orchestrator_use_memory.md +586 -0
  53. massgen/memory/examples.py +237 -0
  54. massgen/orchestrator.py +207 -7
  55. massgen/tests/memory/test_agent_compression.py +174 -0
  56. massgen/tests/memory/test_context_window_management.py +286 -0
  57. massgen/tests/memory/test_force_compression.py +154 -0
  58. massgen/tests/memory/test_simple_compression.py +147 -0
  59. massgen/tests/test_ag2_lesson_planner.py +223 -0
  60. massgen/tests/test_agent_memory.py +534 -0
  61. massgen/tests/test_config_validator.py +1156 -0
  62. massgen/tests/test_conversation_memory.py +382 -0
  63. massgen/tests/test_langgraph_lesson_planner.py +223 -0
  64. massgen/tests/test_orchestrator_memory.py +620 -0
  65. massgen/tests/test_persistent_memory.py +435 -0
  66. massgen/token_manager/token_manager.py +6 -0
  67. massgen/tool/__init__.py +2 -9
  68. massgen/tool/_decorators.py +52 -0
  69. massgen/tool/_extraframework_agents/ag2_lesson_planner_tool.py +251 -0
  70. massgen/tool/_extraframework_agents/agentscope_lesson_planner_tool.py +303 -0
  71. massgen/tool/_extraframework_agents/langgraph_lesson_planner_tool.py +275 -0
  72. massgen/tool/_extraframework_agents/openai_assistant_lesson_planner_tool.py +247 -0
  73. massgen/tool/_extraframework_agents/smolagent_lesson_planner_tool.py +180 -0
  74. massgen/tool/_manager.py +102 -16
  75. massgen/tool/_registered_tool.py +3 -0
  76. massgen/tool/_result.py +3 -0
  77. {massgen-0.1.4.dist-info → massgen-0.1.6.dist-info}/METADATA +138 -77
  78. {massgen-0.1.4.dist-info → massgen-0.1.6.dist-info}/RECORD +82 -37
  79. massgen/backend/gemini_mcp_manager.py +0 -545
  80. massgen/backend/gemini_trackers.py +0 -344
  81. {massgen-0.1.4.dist-info → massgen-0.1.6.dist-info}/WHEEL +0 -0
  82. {massgen-0.1.4.dist-info → massgen-0.1.6.dist-info}/entry_points.txt +0 -0
  83. {massgen-0.1.4.dist-info → massgen-0.1.6.dist-info}/licenses/LICENSE +0 -0
  84. {massgen-0.1.4.dist-info → massgen-0.1.6.dist-info}/top_level.txt +0 -0
massgen/config_builder.py CHANGED
@@ -1500,51 +1500,12 @@ class ConfigBuilder:
1500
1500
  if "reasoning" in multimodal_caps:
1501
1501
  console.print("[dim] • Extended reasoning (deep thinking for complex problems)[/dim]")
1502
1502
 
1503
- # Generation capabilities (optional tools that require explicit flags)
1504
- generation_caps = [s for s in supports if s in ["image_generation", "audio_generation", "video_generation"]]
1505
-
1506
- if generation_caps:
1507
- console.print()
1508
- console.print("[cyan]Optional generation capabilities (requires explicit enablement):[/cyan]")
1509
-
1510
- gen_choices = []
1511
- if "image_generation" in generation_caps:
1512
- gen_choices.append(questionary.Choice("Image Generation (DALL-E, etc.)", value="image_generation", checked=False))
1513
- if "audio_generation" in generation_caps:
1514
- gen_choices.append(questionary.Choice("Audio Generation (TTS, music, etc.)", value="audio_generation", checked=False))
1515
- if "video_generation" in generation_caps:
1516
- gen_choices.append(questionary.Choice("Video Generation (Sora, etc.)", value="video_generation", checked=False))
1517
-
1518
- if gen_choices:
1519
- selected_gen = questionary.checkbox(
1520
- "Enable generation capabilities (Space to select, Enter to confirm):",
1521
- choices=gen_choices,
1522
- style=questionary.Style(
1523
- [
1524
- ("selected", "fg:cyan"),
1525
- ("pointer", "fg:cyan bold"),
1526
- ("highlighted", "fg:cyan"),
1527
- ],
1528
- ),
1529
- use_arrow_keys=True,
1530
- ).ask()
1531
-
1532
- if selected_gen:
1533
- if "image_generation" in selected_gen:
1534
- agent["backend"]["enable_image_generation"] = True
1535
- if "audio_generation" in selected_gen:
1536
- agent["backend"]["enable_audio_generation"] = True
1537
- if "video_generation" in selected_gen:
1538
- agent["backend"]["enable_video_generation"] = True
1539
-
1540
- console.print(f"✅ Enabled {len(selected_gen)} generation capability(ies)")
1541
-
1542
- # Custom multimodal understanding tools (new in v0.1.3+)
1543
- # Available for ALL use cases - these are active tools that process workspace files
1503
+ # Custom multimodal tools (unified understanding and generation)
1504
+ # Available for ALL use cases - these are active tools using OpenAI's gpt-4.1 API
1544
1505
  console.print()
1545
- console.print("[cyan]Custom Multimodal Understanding Tools (New in v0.1.3+):[/cyan]")
1546
- console.print("[dim]These tools let agents analyze workspace files using OpenAI's gpt-4.1 API:[/dim]")
1547
- console.print("[dim] • Works with any backend (uses OpenAI for analysis)[/dim]")
1506
+ console.print("[cyan]Custom Multimodal Tools (New in v0.1.3+):[/cyan]")
1507
+ console.print("[dim]These tools let agents process multimodal content using OpenAI's gpt-4.1 API:[/dim]")
1508
+ console.print("[dim] • Works with any backend (uses OpenAI for processing)[/dim]")
1548
1509
  console.print("[dim] • Processes files agents generate or discover during execution[/dim]")
1549
1510
  console.print("[dim] • Returns structured JSON with detailed metadata[/dim]")
1550
1511
  console.print("[dim] • Requires OPENAI_API_KEY in your .env file[/dim]")
@@ -1552,38 +1513,43 @@ class ConfigBuilder:
1552
1513
  # Default to True for multimodal use case, False for others
1553
1514
  default_add_mm = use_case == "multimodal"
1554
1515
 
1555
- if questionary.confirm("Add custom multimodal understanding tools?", default=default_add_mm).ask():
1516
+ if questionary.confirm("Add custom multimodal tools?", default=default_add_mm).ask():
1556
1517
  # Determine default selections based on use case
1557
1518
  if use_case == "multimodal":
1558
1519
  # For multimodal preset, select all by default
1559
- pass
1560
- elif use_case == "data_analysis":
1561
- # For data analysis, suggest image and file tools
1562
- pass
1563
- else:
1564
- # For other use cases, none selected by default (let user choose)
1565
- pass
1566
-
1567
- if use_case == "multimodal":
1568
1520
  multimodal_tool_choices = [
1569
1521
  questionary.Choice("understand_image - Analyze images (PNG, JPEG, JPG)", value="understand_image", checked=True),
1570
1522
  questionary.Choice("understand_audio - Transcribe and analyze audio", value="understand_audio", checked=True),
1571
1523
  questionary.Choice("understand_video - Extract frames and analyze video", value="understand_video", checked=True),
1572
1524
  questionary.Choice("understand_file - Process documents (PDF, DOCX, XLSX, PPTX)", value="understand_file", checked=True),
1525
+ questionary.Choice("text_to_image_generation - Generate images from text prompts", value="text_to_image_generation", checked=True),
1526
+ questionary.Choice("image_to_image_generation - Transform existing images", value="image_to_image_generation", checked=True),
1527
+ questionary.Choice("text_to_video_generation - Generate videos from text prompts", value="text_to_video_generation", checked=True),
1528
+ questionary.Choice("text_to_file_generation - Generate documents (PDF, DOCX, etc.)", value="text_to_file_generation", checked=True),
1573
1529
  ]
1574
1530
  elif use_case == "data_analysis":
1531
+ # For data analysis, suggest image and file tools
1575
1532
  multimodal_tool_choices = [
1576
1533
  questionary.Choice("understand_image - Analyze images (PNG, JPEG, JPG)", value="understand_image", checked=True),
1577
1534
  questionary.Choice("understand_audio - Transcribe and analyze audio", value="understand_audio", checked=False),
1578
1535
  questionary.Choice("understand_video - Extract frames and analyze video", value="understand_video", checked=False),
1579
1536
  questionary.Choice("understand_file - Process documents (PDF, DOCX, XLSX, PPTX)", value="understand_file", checked=True),
1537
+ questionary.Choice("text_to_image_generation - Generate images from text prompts", value="text_to_image_generation", checked=False),
1538
+ questionary.Choice("image_to_image_generation - Transform existing images", value="image_to_image_generation", checked=False),
1539
+ questionary.Choice("text_to_video_generation - Generate videos from text prompts", value="text_to_video_generation", checked=False),
1540
+ questionary.Choice("text_to_file_generation - Generate documents (PDF, DOCX, etc.)", value="text_to_file_generation", checked=True),
1580
1541
  ]
1581
1542
  else:
1543
+ # For other use cases, none selected by default (let user choose)
1582
1544
  multimodal_tool_choices = [
1583
1545
  questionary.Choice("understand_image - Analyze images (PNG, JPEG, JPG)", value="understand_image", checked=False),
1584
1546
  questionary.Choice("understand_audio - Transcribe and analyze audio", value="understand_audio", checked=False),
1585
1547
  questionary.Choice("understand_video - Extract frames and analyze video", value="understand_video", checked=False),
1586
1548
  questionary.Choice("understand_file - Process documents (PDF, DOCX, XLSX, PPTX)", value="understand_file", checked=False),
1549
+ questionary.Choice("text_to_image_generation - Generate images from text prompts", value="text_to_image_generation", checked=False),
1550
+ questionary.Choice("image_to_image_generation - Transform existing images", value="image_to_image_generation", checked=False),
1551
+ questionary.Choice("text_to_video_generation - Generate videos from text prompts", value="text_to_video_generation", checked=False),
1552
+ questionary.Choice("text_to_file_generation - Generate documents (PDF, DOCX, etc.)", value="text_to_file_generation", checked=False),
1587
1553
  ]
1588
1554
 
1589
1555
  selected_mm_tools = questionary.checkbox(