waldiez 0.3.10__tar.gz → 0.3.12__tar.gz

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 waldiez might be problematic. Click here for more details.

Files changed (146) hide show
  1. {waldiez-0.3.10 → waldiez-0.3.12}/PKG-INFO +38 -29
  2. {waldiez-0.3.10 → waldiez-0.3.12}/pyproject.toml +40 -53
  3. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/_version.py +1 -1
  4. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporter.py +6 -69
  5. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/agent_exporter.py +22 -15
  6. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/__init__.py +2 -4
  7. waldiez-0.3.12/waldiez/exporting/agent/utils/captain_agent.py +254 -0
  8. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/chats/chats_exporter.py +3 -3
  9. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/chats/utils/sequential.py +1 -0
  10. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/chats/utils/single_chat.py +3 -0
  11. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/flow_exporter.py +11 -3
  12. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/utils/def_main.py +15 -6
  13. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/utils/flow_content.py +11 -10
  14. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/utils/importing_utils.py +1 -0
  15. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/models/models_exporter.py +7 -0
  16. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/models/utils.py +4 -0
  17. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/__init__.py +6 -0
  18. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/__init__.py +14 -0
  19. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/agent/agent.py +71 -8
  20. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/agents.py +13 -3
  21. waldiez-0.3.12/waldiez/models/agents/captain_agent/__init__.py +15 -0
  22. waldiez-0.3.12/waldiez/models/agents/captain_agent/captain_agent.py +45 -0
  23. waldiez-0.3.12/waldiez/models/agents/captain_agent/captain_agent_data.py +62 -0
  24. waldiez-0.3.12/waldiez/models/agents/captain_agent/captain_agent_lib_entry.py +38 -0
  25. waldiez-0.3.12/waldiez/models/agents/extra_requirements.py +88 -0
  26. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/common/__init__.py +2 -0
  27. waldiez-0.3.12/waldiez/models/common/ag2_version.py +30 -0
  28. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/common/base.py +4 -0
  29. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/common/date_utils.py +2 -0
  30. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/common/dict_utils.py +2 -0
  31. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/flow/__init__.py +2 -0
  32. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/flow/flow.py +88 -10
  33. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/flow/flow_data.py +15 -1
  34. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/flow/utils.py +61 -1
  35. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/model/__init__.py +2 -0
  36. waldiez-0.3.12/waldiez/models/model/extra_requirements.py +55 -0
  37. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/model/model.py +8 -2
  38. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/model/model_data.py +2 -1
  39. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/waldiez.py +26 -75
  40. waldiez-0.3.10/waldiez/exporting/agent/utils/agent_class_name.py +0 -36
  41. waldiez-0.3.10/waldiez/exporting/agent/utils/agent_imports.py +0 -55
  42. {waldiez-0.3.10 → waldiez-0.3.12}/.gitignore +0 -0
  43. {waldiez-0.3.10 → waldiez-0.3.12}/LICENSE +0 -0
  44. {waldiez-0.3.10 → waldiez-0.3.12}/NOTICE.md +0 -0
  45. {waldiez-0.3.10 → waldiez-0.3.12}/README.md +0 -0
  46. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/__init__.py +0 -0
  47. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/__main__.py +0 -0
  48. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/cli.py +0 -0
  49. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/__init__.py +0 -0
  50. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/__init__.py +0 -0
  51. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/code_execution.py +0 -0
  52. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/group_manager.py +0 -0
  53. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/rag_user/__init__.py +0 -0
  54. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/rag_user/chroma_utils.py +0 -0
  55. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/rag_user/mongo_utils.py +0 -0
  56. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/rag_user/pgvector_utils.py +0 -0
  57. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/rag_user/qdrant_utils.py +0 -0
  58. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/rag_user/rag_user.py +0 -0
  59. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/rag_user/vector_db.py +0 -0
  60. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/reasoning.py +0 -0
  61. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/swarm_agent.py +0 -0
  62. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/teachability.py +0 -0
  63. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/agent/utils/termination_message.py +0 -0
  64. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/__init__.py +0 -0
  65. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/agent_position.py +0 -0
  66. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/base_exporter.py +0 -0
  67. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/export_position.py +0 -0
  68. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/import_position.py +0 -0
  69. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/mixin.py +0 -0
  70. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/utils/__init__.py +0 -0
  71. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/utils/comments.py +0 -0
  72. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/utils/naming.py +0 -0
  73. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/utils/path_check.py +0 -0
  74. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/base/utils/to_string.py +0 -0
  75. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/chats/__init__.py +0 -0
  76. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/chats/utils/__init__.py +0 -0
  77. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/chats/utils/common.py +0 -0
  78. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/chats/utils/nested.py +0 -0
  79. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/chats/utils/swarm.py +0 -0
  80. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/__init__.py +0 -0
  81. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/utils/__init__.py +0 -0
  82. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/utils/agent_utils.py +0 -0
  83. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/utils/chat_utils.py +0 -0
  84. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/utils/flow_names.py +0 -0
  85. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/flow/utils/logging_utils.py +0 -0
  86. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/models/__init__.py +0 -0
  87. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/skills/__init__.py +0 -0
  88. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/skills/skills_exporter.py +0 -0
  89. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/exporting/skills/utils.py +0 -0
  90. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/agent/__init__.py +0 -0
  91. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/agent/agent_data.py +0 -0
  92. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/agent/code_execution.py +0 -0
  93. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/agent/linked_skill.py +0 -0
  94. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/agent/nested_chat.py +0 -0
  95. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/agent/teachability.py +0 -0
  96. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/agent/termination_message.py +0 -0
  97. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/assistant/__init__.py +0 -0
  98. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/assistant/assistant.py +0 -0
  99. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/assistant/assistant_data.py +0 -0
  100. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/group_manager/__init__.py +0 -0
  101. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/group_manager/group_manager.py +0 -0
  102. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/group_manager/group_manager_data.py +0 -0
  103. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/group_manager/speakers.py +0 -0
  104. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/rag_user/__init__.py +0 -0
  105. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/rag_user/rag_user.py +0 -0
  106. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/rag_user/rag_user_data.py +0 -0
  107. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/rag_user/retrieve_config.py +0 -0
  108. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/rag_user/vector_db_config.py +0 -0
  109. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/reasoning/__init__.py +0 -0
  110. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/reasoning/reasoning_agent.py +0 -0
  111. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/reasoning/reasoning_agent_data.py +0 -0
  112. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/reasoning/reasoning_agent_reason_config.py +0 -0
  113. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/swarm_agent/__init__.py +0 -0
  114. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/swarm_agent/after_work.py +0 -0
  115. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/swarm_agent/on_condition.py +0 -0
  116. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/swarm_agent/on_condition_available.py +0 -0
  117. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/swarm_agent/on_condition_target.py +0 -0
  118. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/swarm_agent/swarm_agent.py +0 -0
  119. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/swarm_agent/swarm_agent_data.py +0 -0
  120. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/swarm_agent/update_system_message.py +0 -0
  121. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/user_proxy/__init__.py +0 -0
  122. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/user_proxy/user_proxy.py +0 -0
  123. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/agents/user_proxy/user_proxy_data.py +0 -0
  124. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/chat/__init__.py +0 -0
  125. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/chat/chat.py +0 -0
  126. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/chat/chat_data.py +0 -0
  127. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/chat/chat_message.py +0 -0
  128. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/chat/chat_nested.py +0 -0
  129. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/chat/chat_summary.py +0 -0
  130. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/common/method_utils.py +0 -0
  131. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/skill/__init__.py +0 -0
  132. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/skill/skill.py +0 -0
  133. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/models/skill/skill_data.py +0 -0
  134. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/py.typed +0 -0
  135. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/runner.py +0 -0
  136. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/running/__init__.py +0 -0
  137. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/running/environment.py +0 -0
  138. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/running/gen_seq_diagram.py +0 -0
  139. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/running/running.py +0 -0
  140. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/utils/__init__.py +0 -0
  141. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/utils/cli_extras/__init__.py +0 -0
  142. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/utils/cli_extras/jupyter.py +0 -0
  143. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/utils/cli_extras/studio.py +0 -0
  144. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/utils/conflict_checker.py +0 -0
  145. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/utils/flaml_warnings.py +0 -0
  146. {waldiez-0.3.10 → waldiez-0.3.12}/waldiez/utils/pysqlite3_checker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: waldiez
3
- Version: 0.3.10
3
+ Version: 0.3.12
4
4
  Summary: waldiez
5
5
  Project-URL: homepage, https://waldiez.github.io/waldiez/python
6
6
  Project-URL: repository, https://github.com/waldiez/python.git
@@ -20,38 +20,47 @@ Classifier: Programming Language :: Python :: 3.12
20
20
  Requires-Python: <3.13,>=3.10
21
21
  Requires-Dist: aiocsv==1.3.2
22
22
  Requires-Dist: aiofiles==24.1.0
23
- Requires-Dist: aiosqlite==0.20.0
23
+ Requires-Dist: aiosqlite==0.21.0
24
24
  Requires-Dist: asyncer==0.0.8
25
25
  Requires-Dist: graphviz==0.20.3
26
26
  Requires-Dist: httpx<1
27
27
  Requires-Dist: jupytext
28
28
  Requires-Dist: pandas>=2
29
29
  Requires-Dist: parso==0.8.4
30
- Requires-Dist: pyautogen==0.7.2
30
+ Requires-Dist: pyautogen==0.7.3
31
31
  Requires-Dist: pydantic<3,>=2.6.1
32
32
  Requires-Dist: typer<0.16,>=0.9
33
33
  Provides-Extra: ag2-extras
34
- Requires-Dist: autogen[captainagent]==0.7.2; (platform_system == 'Linux') and extra == 'ag2-extras'
35
- Requires-Dist: chromadb; (platform_system != 'Linux') and extra == 'ag2-extras'
36
- Requires-Dist: huggingface-hub>=0.0.17; (platform_system != 'Linux') and extra == 'ag2-extras'
34
+ Requires-Dist: beautifulsoup4; extra == 'ag2-extras'
35
+ Requires-Dist: chromadb>=0.5.23; extra == 'ag2-extras'
36
+ Requires-Dist: crewai-tools==0.33.0; extra == 'ag2-extras'
37
+ Requires-Dist: crewai>0.98.0; extra == 'ag2-extras'
38
+ Requires-Dist: embedchain==0.1.126; extra == 'ag2-extras'
39
+ Requires-Dist: huggingface-hub; extra == 'ag2-extras'
40
+ Requires-Dist: ipython; extra == 'ag2-extras'
41
+ Requires-Dist: langchain-community<1,>=0.3.12; extra == 'ag2-extras'
42
+ Requires-Dist: markdownify; extra == 'ag2-extras'
37
43
  Requires-Dist: pgvector>=0.3.6; extra == 'ag2-extras'
44
+ Requires-Dist: protobuf>=4.25.3; extra == 'ag2-extras'
38
45
  Requires-Dist: psycopg[binary]>=3.2.3; extra == 'ag2-extras'
39
- Requires-Dist: pyautogen[anthropic]==0.7.2; extra == 'ag2-extras'
40
- Requires-Dist: pyautogen[bedrock]==0.7.2; extra == 'ag2-extras'
41
- Requires-Dist: pyautogen[gemini]==0.7.2; extra == 'ag2-extras'
42
- Requires-Dist: pyautogen[groq]==0.7.2; extra == 'ag2-extras'
43
- Requires-Dist: pyautogen[lmm]==0.7.2; extra == 'ag2-extras'
44
- Requires-Dist: pyautogen[mistral]==0.7.2; extra == 'ag2-extras'
45
- Requires-Dist: pyautogen[neo4j]==0.7.2; extra == 'ag2-extras'
46
- Requires-Dist: pyautogen[retrievechat-mongodb]==0.7.2; extra == 'ag2-extras'
47
- Requires-Dist: pyautogen[retrievechat-pgvector]==0.7.2; extra == 'ag2-extras'
48
- Requires-Dist: pyautogen[retrievechat-qdrant]==0.7.2; (python_version < '3.13') and extra == 'ag2-extras'
49
- Requires-Dist: pyautogen[retrievechat]==0.7.2; extra == 'ag2-extras'
50
- Requires-Dist: pyautogen[together]==0.7.2; extra == 'ag2-extras'
51
- Requires-Dist: pyautogen[websurfer]==0.7.2; extra == 'ag2-extras'
52
- Requires-Dist: pymongo>=4.10.1; extra == 'ag2-extras'
53
- Requires-Dist: qdrant-client[fastembed]; (python_version >= '3.13') and extra == 'ag2-extras'
54
- Requires-Dist: sentence-transformers>=2.0.0; (platform_system != 'Linux') and extra == 'ag2-extras'
46
+ Requires-Dist: psycopg[binary]>=3.2.4; extra == 'ag2-extras'
47
+ Requires-Dist: pyautogen[anthropic]==0.7.3; extra == 'ag2-extras'
48
+ Requires-Dist: pyautogen[bedrock]==0.7.3; extra == 'ag2-extras'
49
+ Requires-Dist: pyautogen[cohere]==0.7.3; extra == 'ag2-extras'
50
+ Requires-Dist: pyautogen[gemini]==0.7.3; extra == 'ag2-extras'
51
+ Requires-Dist: pyautogen[groq]==0.7.3; extra == 'ag2-extras'
52
+ Requires-Dist: pyautogen[lmm]==0.7.3; extra == 'ag2-extras'
53
+ Requires-Dist: pyautogen[mistral]==0.7.3; extra == 'ag2-extras'
54
+ Requires-Dist: pyautogen[neo4j]==0.7.3; extra == 'ag2-extras'
55
+ Requires-Dist: pyautogen[ollama]==0.7.3; extra == 'ag2-extras'
56
+ Requires-Dist: pyautogen[together]==0.7.3; extra == 'ag2-extras'
57
+ Requires-Dist: pyautogen[websurfer]==0.7.3; extra == 'ag2-extras'
58
+ Requires-Dist: pydantic-ai==0.0.21; extra == 'ag2-extras'
59
+ Requires-Dist: pymongo>=4.11; extra == 'ag2-extras'
60
+ Requires-Dist: pypdf; extra == 'ag2-extras'
61
+ Requires-Dist: qdrant-client[fastembed]; extra == 'ag2-extras'
62
+ Requires-Dist: sentence-transformers; extra == 'ag2-extras'
63
+ Requires-Dist: weaviate-client==4.10.2; extra == 'ag2-extras'
55
64
  Provides-Extra: dev
56
65
  Requires-Dist: autoflake==2.3.1; extra == 'dev'
57
66
  Requires-Dist: bandit==1.8.2; extra == 'dev'
@@ -64,7 +73,7 @@ Requires-Dist: pre-commit==4.1.0; extra == 'dev'
64
73
  Requires-Dist: pydocstyle==6.3.0; extra == 'dev'
65
74
  Requires-Dist: pylint==3.3.4; extra == 'dev'
66
75
  Requires-Dist: python-dotenv==1.0.1; extra == 'dev'
67
- Requires-Dist: ruff==0.9.3; extra == 'dev'
76
+ Requires-Dist: ruff==0.9.4; extra == 'dev'
68
77
  Requires-Dist: toml; (python_version <= '3.10') and extra == 'dev'
69
78
  Requires-Dist: types-pyyaml==6.0.12.20241230; extra == 'dev'
70
79
  Requires-Dist: types-toml==0.10.8.20240310; extra == 'dev'
@@ -74,16 +83,16 @@ Requires-Dist: mdx-include==1.4.2; extra == 'docs'
74
83
  Requires-Dist: mdx-truly-sane-lists==1.3; extra == 'docs'
75
84
  Requires-Dist: mkdocs-jupyter==0.25.1; extra == 'docs'
76
85
  Requires-Dist: mkdocs-macros-plugin==1.3.7; extra == 'docs'
77
- Requires-Dist: mkdocs-material==9.5.50; extra == 'docs'
78
- Requires-Dist: mkdocs-minify-html-plugin==0.2.3; extra == 'docs'
86
+ Requires-Dist: mkdocs-material==9.6.2; extra == 'docs'
87
+ Requires-Dist: mkdocs-minify-html-plugin==0.2.4; extra == 'docs'
79
88
  Requires-Dist: mkdocs==1.6.1; extra == 'docs'
80
- Requires-Dist: mkdocstrings-python==1.13.0; extra == 'docs'
81
- Requires-Dist: mkdocstrings[crystal,python]==0.27.0; extra == 'docs'
89
+ Requires-Dist: mkdocstrings-python==1.14.1; extra == 'docs'
90
+ Requires-Dist: mkdocstrings[crystal,python]==0.28.0; extra == 'docs'
82
91
  Provides-Extra: jupyter
83
92
  Requires-Dist: jupyterlab>=4.3.0; extra == 'jupyter'
84
- Requires-Dist: waldiez-jupyter==0.3.10; extra == 'jupyter'
93
+ Requires-Dist: waldiez-jupyter==0.3.12; extra == 'jupyter'
85
94
  Provides-Extra: studio
86
- Requires-Dist: waldiez-studio==0.3.10; extra == 'studio'
95
+ Requires-Dist: waldiez-studio==0.3.12; extra == 'studio'
87
96
  Provides-Extra: test
88
97
  Requires-Dist: pytest-asyncio==0.25.3; extra == 'test'
89
98
  Requires-Dist: pytest-cov==6.0.0; extra == 'test'
@@ -24,15 +24,14 @@ classifiers = [
24
24
  dependencies =[
25
25
  "aiocsv==1.3.2",
26
26
  "aiofiles==24.1.0",
27
- "aiosqlite==0.20.0",
27
+ "aiosqlite==0.21.0",
28
28
  "asyncer==0.0.8",
29
29
  "graphviz==0.20.3",
30
30
  "pandas>=2",
31
- "pyautogen==0.7.2",
31
+ "pyautogen==0.7.3",
32
32
  "jupytext",
33
33
  "parso==0.8.4",
34
34
  "pydantic>=2.6.1,<3",
35
- # together(ag2 extra) 1.2.0 depends on typer<0.13 and >=0.9
36
35
  "typer>=0.9,<0.16",
37
36
  "httpx<1",
38
37
  ]
@@ -51,10 +50,10 @@ exclude = [ "**/example.py" ]
51
50
 
52
51
  [project.optional-dependencies]
53
52
  studio = [
54
- "waldiez_studio==0.3.10",
53
+ "waldiez_studio==0.3.12",
55
54
  ]
56
55
  jupyter = [
57
- "waldiez_jupyter==0.3.10",
56
+ "waldiez_jupyter==0.3.12",
58
57
  "jupyterlab>=4.3.0",
59
58
  ]
60
59
  dev = [
@@ -69,58 +68,46 @@ dev = [
69
68
  'pydocstyle==6.3.0',
70
69
  'pylint==3.3.4',
71
70
  'python-dotenv==1.0.1',
72
- 'ruff==0.9.3',
71
+ 'ruff==0.9.4',
73
72
  'types-PyYAML==6.0.12.20241230',
74
73
  'yamllint==1.35.1',
75
74
  'toml; python_version <= "3.10"',
76
75
  'types-toml== 0.10.8.20240310',
77
76
  ]
78
- # let's stay with <3.13 for now
79
- ####
80
- # fastembed and fastembed-gpu are not available, yet for python 3.13
81
- # ref: https://github.com/qdrant/qdrant-client/blob/master/pyproject.toml
82
- # fastembed = [
83
- # { version = "0.3.6", optional = true, python = "<3.13" }
84
- # ]
85
- # fastembed-gpu = [
86
- # { version = "0.3.6", optional = true, python = "<3.13" }
87
- # ]
88
- ####
89
- # the pinned chromadb version (pyautogen[retrievechat]) (0.5.3)
90
- # needs numpy <2.0.0
91
- # but pyautogen wants numpy >=1.21.0 for python 3.13
92
- #
93
- # refs:
94
- # https://github.com/chroma-core/chroma/blob/0.5.3/pyproject.toml#L24C3-L24C30
95
- #
96
- # https://github.com/ag2ai/ag2/blob/main/setup.py#L33
97
- #
98
- # captainagent(ag2 extra) depends on pysqlite3-binary,
99
- # but the wheels are only for linux (not checked every py version)
100
- # on windows with py 3.12, it seems to not work.
101
77
  ag2_extras =[
78
+ # models
79
+ 'pyautogen[anthropic]==0.7.3',
80
+ 'pyautogen[bedrock]==0.7.3',
81
+ 'pyautogen[cohere]==0.7.3',
82
+ 'pyautogen[gemini]==0.7.3',
83
+ 'pyautogen[groq]==0.7.3',
84
+ 'pyautogen[lmm]==0.7.3',
85
+ 'pyautogen[mistral]==0.7.3',
86
+ 'pyautogen[ollama]==0.7.3',
87
+ 'pyautogen[together]==0.7.3',
88
+ # utils
89
+ 'pyautogen[neo4j]==0.7.3',
90
+ 'pyautogen[websurfer]==0.7.3',
91
+ 'chromadb>=0.5.23',
102
92
  'pgvector>=0.3.6',
103
93
  'psycopg[binary]>=3.2.3',
104
- 'pyautogen[anthropic]==0.7.2',
105
- 'pyautogen[bedrock]==0.7.2',
106
- 'autogen[captainagent]==0.7.2; platform_system == "Linux"',
107
- 'chromadb; platform_system != "Linux"',
108
- 'sentence-transformers>=2.0.0; platform_system != "Linux"',
109
- 'huggingface-hub>=0.0.17; platform_system != "Linux"',
110
- 'pyautogen[gemini]==0.7.2',
111
- 'pyautogen[groq]==0.7.2',
112
- 'pyautogen[lmm]==0.7.2',
113
- 'pyautogen[mistral]==0.7.2',
114
- 'pyautogen[neo4j]==0.7.2',
115
- 'pyautogen[retrievechat-mongodb]==0.7.2',
116
- 'pyautogen[retrievechat-pgvector]==0.7.2',
117
- 'pyautogen[retrievechat-qdrant]==0.7.2; python_version < "3.13"',
118
- 'qdrant-client[fastembed]; python_version >= "3.13"',
119
- 'pyautogen[retrievechat]==0.7.2',
120
- 'pyautogen[together]==0.7.2',
121
- 'pyautogen[together]==0.7.2',
122
- 'pyautogen[websurfer]==0.7.2',
123
- 'pymongo>=4.10.1',
94
+ 'protobuf>=4.25.3',
95
+ 'pypdf',
96
+ 'ipython',
97
+ 'markdownify',
98
+ 'beautifulsoup4',
99
+ 'sentence-transformers',
100
+ 'huggingface-hub',
101
+ 'qdrant-client[fastembed]',
102
+ 'pgvector>=0.3.6',
103
+ 'psycopg[binary]>=3.2.4',
104
+ 'crewai-tools==0.33.0',
105
+ 'embedchain==0.1.126',
106
+ 'crewai>0.98.0',
107
+ 'weaviate-client==4.10.2',
108
+ 'langchain-community>=0.3.12,<1',
109
+ 'pydantic-ai==0.0.21',
110
+ 'pymongo>=4.11',
124
111
  ]
125
112
  test = [
126
113
  'pytest==8.3.4',
@@ -137,10 +124,10 @@ docs = [
137
124
  'mkdocs==1.6.1',
138
125
  'mkdocs-jupyter==0.25.1',
139
126
  'mkdocs-macros-plugin==1.3.7',
140
- 'mkdocs-material==9.5.50',
141
- 'mkdocs-minify-html-plugin==0.2.3',
142
- 'mkdocstrings[crystal,python]==0.27.0',
143
- 'mkdocstrings-python==1.13.0'
127
+ 'mkdocs-material==9.6.2',
128
+ 'mkdocs-minify-html-plugin==0.2.4',
129
+ 'mkdocstrings[crystal,python]==0.28.0',
130
+ 'mkdocstrings-python==1.14.1'
144
131
  ]
145
132
 
146
133
  [project.scripts]
@@ -2,4 +2,4 @@
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
3
  """Version information for Waldiez."""
4
4
 
5
- __version__ = "0.3.10"
5
+ __version__ = "0.3.12"
@@ -6,21 +6,12 @@ to an autogen's flow with one or more chats.
6
6
 
7
7
  The resulting file(s): a `flow.py` file with one `main()` function
8
8
  to trigger the chat(s).
9
- If additional tools/skills are used,
10
- they are exported as their `skill_name` in the same directory with
11
- the `flow.py` file. So the `flow.py` could have entries like:
12
- `form {flow_name}_{skill1_name} import {skill1_name}`
13
- `form {flow_name}_{skill2_name} import {skill2_name}`
14
9
  """
15
10
 
16
- # pylint: disable=inconsistent-quotes
17
-
18
- import os
19
- import shutil
20
- import subprocess
21
- import sys
22
11
  from pathlib import Path
23
- from typing import List, Optional, Union
12
+ from typing import Union
13
+
14
+ import jupytext # type: ignore[import-untyped]
24
15
 
25
16
  from .exporting import FlowExporter
26
17
  from .models import Waldiez
@@ -125,25 +116,10 @@ class WaldiezExporter:
125
116
  py_path = path.with_suffix(".tmp.py")
126
117
  with open(py_path, "w", encoding="utf-8", newline="\n") as f:
127
118
  f.write(content)
128
- if not shutil.which("jupytext"): # pragma: no cover
129
- run_command(
130
- [sys.executable, "-m", "pip", "install", "jupytext"],
131
- allow_error=False,
132
- )
133
- run_command(
134
- [
135
- sys.executable,
136
- "-m",
137
- "jupytext",
138
- "--to",
139
- "notebook",
140
- str(py_path),
141
- ],
142
- allow_error=False,
143
- )
119
+ with open(py_path, "r", encoding="utf-8") as py_out:
120
+ content = jupytext.read(py_out, fmt="py:light")
144
121
  ipynb_path = str(py_path).replace(".tmp.py", ".tmp.ipynb")
145
- if not os.path.exists(ipynb_path): # pragma: no cover
146
- raise RuntimeError("Could not generate notebook")
122
+ jupytext.write(content, ipynb_path, fmt="ipynb")
147
123
  Path(ipynb_path).rename(ipynb_path.replace(".tmp.ipynb", ".ipynb"))
148
124
  py_path.unlink(missing_ok=True)
149
125
 
@@ -182,42 +158,3 @@ class WaldiezExporter:
182
158
  """
183
159
  with open(file_path, "w", encoding="utf-8", newline="\n") as file:
184
160
  file.write(self.waldiez.model_dump_json())
185
-
186
-
187
- def run_command(
188
- cmd: List[str],
189
- cwd: Optional[Path] = None,
190
- allow_error: bool = True,
191
- ) -> None:
192
- """Run a command.
193
-
194
- Parameters
195
- ----------
196
- cmd : List[str]
197
- The command to run.
198
- cwd : Path, optional
199
- The working directory, by default None (current working directory).
200
- allow_error : bool, optional
201
- Whether to allow errors, by default True.
202
-
203
- Raises
204
- ------
205
- RuntimeError
206
- If the command fails and allow_error is False.
207
- """
208
- if not cwd:
209
- cwd = Path.cwd()
210
- # pylint: disable=broad-except
211
- try:
212
- subprocess.run(
213
- cmd,
214
- check=True,
215
- cwd=cwd,
216
- env=os.environ,
217
- stdout=subprocess.PIPE,
218
- stderr=subprocess.PIPE,
219
- ) # nosemgrep # nosec
220
- except BaseException as error: # pragma: no cover
221
- if allow_error:
222
- return
223
- raise RuntimeError(f"Error running command: {error}") from error
@@ -6,7 +6,7 @@
6
6
  from pathlib import Path
7
7
  from typing import Callable, Dict, List, Optional, Tuple, Union
8
8
 
9
- from waldiez.models import WaldiezAgent, WaldiezChat
9
+ from waldiez.models import WaldiezAgent, WaldiezChat, WaldiezModel
10
10
 
11
11
  from ..base import (
12
12
  AgentPosition,
@@ -18,9 +18,8 @@ from ..base import (
18
18
  ImportPosition,
19
19
  )
20
20
  from .utils import (
21
- get_agent_class_name,
22
21
  get_agent_code_execution_config,
23
- get_agent_imports,
22
+ get_captain_agent_extras,
24
23
  get_group_manager_extras,
25
24
  get_is_termination_message,
26
25
  get_rag_user_extras,
@@ -36,9 +35,9 @@ class AgentExporter(BaseExporter, ExporterMixin):
36
35
  self,
37
36
  agent: WaldiezAgent,
38
37
  agent_names: Dict[str, str],
39
- model_names: Dict[str, str],
40
- skill_names: Dict[str, str],
38
+ models: Tuple[List[WaldiezModel], Dict[str, str]],
41
39
  chats: Tuple[List[WaldiezChat], Dict[str, str]],
40
+ skill_names: Dict[str, str],
42
41
  is_async: bool,
43
42
  group_chat_members: List[WaldiezAgent],
44
43
  for_notebook: bool,
@@ -53,12 +52,12 @@ class AgentExporter(BaseExporter, ExporterMixin):
53
52
  The agent to export.
54
53
  agent_names : Dict[str, str]
55
54
  The agent ids to names mapping.
56
- model_names : Dict[str, str]
57
- The model ids to names mapping.
58
- skill_names : Dict[str, str]
59
- The skill ids to names mapping.
55
+ models : Tuple[List[WaldiezModel], Dict[str, str]]
56
+ All the models and the model ids to names mapping.
60
57
  chats : Tuple[List[WaldiezChat], Dict[str, str]]
61
58
  All the chats and the chat ids to names mapping.
59
+ skill_names : Dict[str, str]
60
+ The skill ids to names mapping.
62
61
  is_async : bool
63
62
  Whether the whole flow is async.
64
63
  for_notebook : bool
@@ -72,14 +71,14 @@ class AgentExporter(BaseExporter, ExporterMixin):
72
71
  if output_dir is not None and not isinstance(output_dir, Path):
73
72
  output_dir = Path(output_dir)
74
73
  self.output_dir = output_dir
75
- self.model_names = model_names
74
+ self.models = models[0]
75
+ self.model_names = models[1]
76
76
  self.skill_names = skill_names
77
77
  self.arguments_resolver = arguments_resolver
78
78
  self.group_chat_members = group_chat_members
79
79
  self.chats = chats
80
80
  self.is_async = is_async
81
81
  self._agent_name = agent_names[agent.id]
82
- self._agent_class = get_agent_class_name(self.agent)
83
82
  # content, argument, import
84
83
  self._code_execution = get_agent_code_execution_config(
85
84
  agent=self.agent,
@@ -119,6 +118,13 @@ class AgentExporter(BaseExporter, ExporterMixin):
119
118
  agent=self.agent,
120
119
  serializer=self.serializer,
121
120
  )
121
+ self._captain = get_captain_agent_extras(
122
+ agent=self.agent,
123
+ agent_names=self.agent_names,
124
+ all_models=self.models,
125
+ serializer=self.serializer,
126
+ output_dir=self.output_dir,
127
+ )
122
128
 
123
129
  def get_imports(self) -> Optional[List[Tuple[str, ImportPosition]]]:
124
130
  """Get the imports.
@@ -130,7 +136,7 @@ class AgentExporter(BaseExporter, ExporterMixin):
130
136
  """
131
137
  position = ImportPosition.THIRD_PARTY
132
138
  # default imports based on the agent class.
133
- agent_imports = get_agent_imports(self._agent_class)
139
+ agent_imports = self.agent.ag2_imports
134
140
  # if code execution is enabled, update the imports.
135
141
  if self._code_execution[2]:
136
142
  agent_imports.add(self._code_execution[2])
@@ -220,7 +226,6 @@ class AgentExporter(BaseExporter, ExporterMixin):
220
226
  """
221
227
  agent = self.agent
222
228
  agent_name = self._agent_name
223
- agent_class = self._agent_class
224
229
  retrieve_arg = self._rag[1]
225
230
  group_chat_arg = self._group_chat[1]
226
231
  is_termination = self._termination[0]
@@ -231,8 +236,10 @@ class AgentExporter(BaseExporter, ExporterMixin):
231
236
  default_auto_reply = (
232
237
  f'"{self.string_escape(agent.data.agent_default_auto_reply)}"'
233
238
  )
234
- extras = f"{group_chat_arg}{retrieve_arg}{self._reasoning}"
235
- agent_str = f"""{agent_name} = {agent_class}(
239
+ extras = (
240
+ f"{group_chat_arg}{retrieve_arg}{self._reasoning}{self._captain}"
241
+ )
242
+ agent_str = f"""{agent_name} = {self.agent.ag2_class}(
236
243
  name="{agent_name}",
237
244
  description="{agent.description}"{system_message_arg},
238
245
  human_input_mode="{agent.data.human_input_mode}",
@@ -2,8 +2,7 @@
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
3
  """Utility functions for generating agent related strings."""
4
4
 
5
- from .agent_class_name import get_agent_class_name
6
- from .agent_imports import get_agent_imports
5
+ from .captain_agent import get_captain_agent_extras
7
6
  from .code_execution import get_agent_code_execution_config
8
7
  from .group_manager import get_group_manager_extras
9
8
  from .rag_user import get_rag_user_extras
@@ -13,10 +12,9 @@ from .teachability import get_agent_teachability_string
13
12
  from .termination_message import get_is_termination_message
14
13
 
15
14
  __all__ = [
16
- "get_agent_class_name",
17
- "get_agent_imports",
18
15
  "get_agent_code_execution_config",
19
16
  "get_agent_teachability_string",
17
+ "get_captain_agent_extras",
20
18
  "get_group_manager_extras",
21
19
  "get_is_termination_message",
22
20
  "get_rag_user_extras",