waldiez 0.4.2__tar.gz → 0.4.4__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.
- {waldiez-0.4.2 → waldiez-0.4.4}/PKG-INFO +60 -33
- {waldiez-0.4.2 → waldiez-0.4.4}/pyproject.toml +66 -33
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/_version.py +1 -1
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/captain_agent.py +17 -8
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/models/utils.py +4 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/model/model.py +1 -1
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/runner.py +8 -4
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/running/environment.py +3 -2
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/running/running.py +48 -24
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/utils/cli_extras/__init__.py +2 -0
- waldiez-0.4.4/waldiez/utils/cli_extras/runner.py +37 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/utils/pysqlite3_checker.py +6 -2
- {waldiez-0.4.2 → waldiez-0.4.4}/.gitignore +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/LICENSE +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/NOTICE.md +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/README.md +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/__main__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/cli.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporter.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/agent_exporter.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/code_execution.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/group_manager.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/rag_user/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/rag_user/chroma_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/rag_user/mongo_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/rag_user/pgvector_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/rag_user/qdrant_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/rag_user/rag_user.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/rag_user/vector_db.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/reasoning.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/swarm_agent.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/teachability.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/agent/utils/termination_message.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/agent_position.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/base_exporter.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/export_position.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/import_position.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/mixin.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/utils/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/utils/comments.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/utils/naming.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/utils/path_check.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/base/utils/to_string.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/chats/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/chats/chats_exporter.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/chats/utils/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/chats/utils/common.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/chats/utils/nested.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/chats/utils/sequential.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/chats/utils/single_chat.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/chats/utils/swarm.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/flow_exporter.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/utils/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/utils/agent_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/utils/chat_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/utils/def_main.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/utils/flow_content.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/utils/flow_names.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/utils/importing_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/flow/utils/logging_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/models/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/models/models_exporter.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/skills/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/skills/skills_exporter.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/exporting/skills/utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agent/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agent/agent.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agent/agent_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agent/agent_type.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agent/code_execution.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agent/linked_skill.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agent/nested_chat.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agent/teachability.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agent/termination_message.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/agents.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/assistant/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/assistant/assistant.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/assistant/assistant_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/captain_agent/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/captain_agent/captain_agent.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/captain_agent/captain_agent_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/captain_agent/captain_agent_lib_entry.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/extra_requirements.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/group_manager/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/group_manager/group_manager.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/group_manager/group_manager_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/group_manager/speakers.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/rag_user/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/rag_user/rag_user.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/rag_user/rag_user_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/rag_user/retrieve_config.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/rag_user/vector_db_config.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/reasoning/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/reasoning/reasoning_agent.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/reasoning/reasoning_agent_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/reasoning/reasoning_agent_reason_config.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/swarm_agent/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/swarm_agent/after_work.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/swarm_agent/on_condition.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/swarm_agent/on_condition_available.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/swarm_agent/on_condition_target.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/swarm_agent/swarm_agent.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/swarm_agent/swarm_agent_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/swarm_agent/update_system_message.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/user_proxy/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/user_proxy/user_proxy.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/user_proxy/user_proxy_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/chat/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/chat/chat.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/chat/chat_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/chat/chat_message.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/chat/chat_nested.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/chat/chat_summary.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/common/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/common/ag2_version.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/common/base.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/common/date_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/common/dict_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/common/method_utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/flow/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/flow/flow.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/flow/flow_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/flow/utils.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/model/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/model/extra_requirements.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/model/model_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/skill/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/skill/extra_requirements.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/skill/skill.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/skill/skill_data.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/skill/skill_type.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/waldiez.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/py.typed +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/running/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/running/gen_seq_diagram.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/utils/__init__.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/utils/cli_extras/jupyter.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/utils/cli_extras/studio.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/utils/conflict_checker.py +0 -0
- {waldiez-0.4.2 → waldiez-0.4.4}/waldiez/utils/flaml_warnings.py +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: waldiez
|
|
3
|
-
Version: 0.4.
|
|
4
|
-
Summary:
|
|
5
|
-
Project-URL: homepage, https://waldiez.
|
|
3
|
+
Version: 0.4.4
|
|
4
|
+
Summary: Make AI Agents Collaborate: Drag, Drop, and Orchestrate with Waldiez.
|
|
5
|
+
Project-URL: homepage, https://waldiez.io
|
|
6
6
|
Project-URL: repository, https://github.com/waldiez/python.git
|
|
7
|
+
Project-URL: documentation, https://waldiez.github.io/python/
|
|
8
|
+
Project-URL: issues, https://github.com/waldiez/python/issues
|
|
7
9
|
Author-email: Panagiotis Kasnesis <pkasnesis@waldiez.io>, Lazaros Toumanidis <laztoum@waldiez.io>, Stella Ioannidou <stella@humancentered.gr>
|
|
8
10
|
License-File: LICENSE
|
|
9
11
|
License-File: NOTICE.md
|
|
@@ -26,56 +28,78 @@ Requires-Dist: asyncer==0.0.8
|
|
|
26
28
|
Requires-Dist: graphviz==0.20.3
|
|
27
29
|
Requires-Dist: httpx<1
|
|
28
30
|
Requires-Dist: jupytext
|
|
29
|
-
Requires-Dist:
|
|
31
|
+
Requires-Dist: nest-asyncio==1.6.0
|
|
32
|
+
Requires-Dist: numpy<=2.2.5
|
|
30
33
|
Requires-Dist: pandas>=2
|
|
31
34
|
Requires-Dist: parso==0.8.4
|
|
32
|
-
Requires-Dist: pyautogen[openai]==0.8.
|
|
35
|
+
Requires-Dist: pyautogen[openai]==0.8.7
|
|
33
36
|
Requires-Dist: pydantic<3,>=2.10.2
|
|
34
37
|
Requires-Dist: typer<0.16,>=0.9
|
|
35
38
|
Provides-Extra: ag2-extras
|
|
36
39
|
Requires-Dist: beautifulsoup4; extra == 'ag2-extras'
|
|
37
|
-
Requires-Dist: chromadb>=0.5.10; extra == 'ag2-extras'
|
|
38
|
-
Requires-Dist:
|
|
40
|
+
Requires-Dist: chromadb>=0.5.10; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
41
|
+
Requires-Dist: chromadb>=0.5.10; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
42
|
+
Requires-Dist: embedchain; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
43
|
+
Requires-Dist: embedchain; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
44
|
+
Requires-Dist: google-api-python-client<3.0,>=2.163.0; extra == 'ag2-extras'
|
|
45
|
+
Requires-Dist: google-auth-httplib2<0.3,>=0.2.0; extra == 'ag2-extras'
|
|
46
|
+
Requires-Dist: google-auth-oauthlib<2.0,>=1.2.1; extra == 'ag2-extras'
|
|
39
47
|
Requires-Dist: huggingface-hub; extra == 'ag2-extras'
|
|
40
48
|
Requires-Dist: ipython; extra == 'ag2-extras'
|
|
41
49
|
Requires-Dist: langchain-community<1,>=0.3.12; extra == 'ag2-extras'
|
|
42
50
|
Requires-Dist: markdownify; extra == 'ag2-extras'
|
|
51
|
+
Requires-Dist: mcp<1.6,>=1.4.0; extra == 'ag2-extras'
|
|
43
52
|
Requires-Dist: pgvector>=0.4.0; extra == 'ag2-extras'
|
|
44
53
|
Requires-Dist: protobuf>=4.25.3; extra == 'ag2-extras'
|
|
45
|
-
Requires-Dist: psycopg
|
|
46
|
-
Requires-Dist:
|
|
47
|
-
Requires-Dist:
|
|
48
|
-
Requires-Dist:
|
|
49
|
-
Requires-Dist:
|
|
50
|
-
Requires-Dist:
|
|
51
|
-
Requires-Dist:
|
|
52
|
-
Requires-Dist:
|
|
53
|
-
Requires-Dist: pyautogen[
|
|
54
|
-
Requires-Dist: pyautogen[
|
|
55
|
-
Requires-Dist: pyautogen[
|
|
56
|
-
Requires-Dist: pyautogen[
|
|
57
|
-
Requires-Dist: pyautogen[
|
|
58
|
-
Requires-Dist: pyautogen[
|
|
54
|
+
Requires-Dist: psycopg==3.2.6; (sys_platform == 'linux') and extra == 'ag2-extras'
|
|
55
|
+
Requires-Dist: psycopg==3.2.6; (sys_platform == 'win32' and platform_machine == 'AARCH64') and extra == 'ag2-extras'
|
|
56
|
+
Requires-Dist: psycopg==3.2.6; (sys_platform == 'win32' and platform_machine == 'ARM64') and extra == 'ag2-extras'
|
|
57
|
+
Requires-Dist: psycopg==3.2.6; (sys_platform == 'win32' and platform_machine == 'aarch64') and extra == 'ag2-extras'
|
|
58
|
+
Requires-Dist: psycopg==3.2.6; (sys_platform == 'win32' and platform_machine == 'arm64') and extra == 'ag2-extras'
|
|
59
|
+
Requires-Dist: psycopg>=3.2.6; (sys_platform == 'win32') and extra == 'ag2-extras'
|
|
60
|
+
Requires-Dist: psycopg[binary]==3.2.6; (sys_platform != 'linux' and platform_machine != 'arm64' and platform_machine != 'ARM64' and platform_machine != 'aarch64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
61
|
+
Requires-Dist: psycopg[binary]>=3.2.6; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
62
|
+
Requires-Dist: pyautogen[anthropic]==0.8.7; extra == 'ag2-extras'
|
|
63
|
+
Requires-Dist: pyautogen[bedrock]==0.8.7; extra == 'ag2-extras'
|
|
64
|
+
Requires-Dist: pyautogen[cohere]==0.8.7; extra == 'ag2-extras'
|
|
65
|
+
Requires-Dist: pyautogen[gemini]==0.8.7; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
66
|
+
Requires-Dist: pyautogen[gemini]==0.8.7; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
67
|
+
Requires-Dist: pyautogen[groq]==0.8.7; extra == 'ag2-extras'
|
|
68
|
+
Requires-Dist: pyautogen[interop-crewai]==0.8.7; extra == 'ag2-extras'
|
|
69
|
+
Requires-Dist: pyautogen[interop-langchain]==0.8.7; extra == 'ag2-extras'
|
|
70
|
+
Requires-Dist: pyautogen[lmm]==0.8.7; extra == 'ag2-extras'
|
|
71
|
+
Requires-Dist: pyautogen[mistral]==0.8.7; extra == 'ag2-extras'
|
|
72
|
+
Requires-Dist: pyautogen[neo4j]==0.8.7; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
73
|
+
Requires-Dist: pyautogen[neo4j]==0.8.7; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
74
|
+
Requires-Dist: pyautogen[ollama]==0.8.7; extra == 'ag2-extras'
|
|
75
|
+
Requires-Dist: pyautogen[together]==0.8.7; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
76
|
+
Requires-Dist: pyautogen[together]==0.8.7; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
77
|
+
Requires-Dist: pyautogen[websurfer]==0.8.7; extra == 'ag2-extras'
|
|
59
78
|
Requires-Dist: pydantic-ai>=0.0.21; extra == 'ag2-extras'
|
|
60
79
|
Requires-Dist: pymongo>=4.11; extra == 'ag2-extras'
|
|
61
80
|
Requires-Dist: pypdf; extra == 'ag2-extras'
|
|
62
|
-
Requires-Dist:
|
|
63
|
-
Requires-Dist:
|
|
81
|
+
Requires-Dist: pysqlite3-binary==0.5.4; (sys_platform == 'linux' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
82
|
+
Requires-Dist: qdrant-client[fastembed]; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
83
|
+
Requires-Dist: qdrant-client[fastembed]; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
84
|
+
Requires-Dist: sentence-transformers; (sys_platform == 'linux') and extra == 'ag2-extras'
|
|
85
|
+
Requires-Dist: wikipedia-api<1.0,>=0.8.1; extra == 'ag2-extras'
|
|
64
86
|
Provides-Extra: dev
|
|
65
87
|
Requires-Dist: autoflake==2.3.1; extra == 'dev'
|
|
66
88
|
Requires-Dist: bandit==1.8.3; extra == 'dev'
|
|
67
89
|
Requires-Dist: black[jupyter]==25.1.0; extra == 'dev'
|
|
68
90
|
Requires-Dist: flake8==7.2.0; extra == 'dev'
|
|
69
91
|
Requires-Dist: isort==6.0.1; extra == 'dev'
|
|
92
|
+
Requires-Dist: jupyter-server==2.15.0; extra == 'dev'
|
|
93
|
+
Requires-Dist: jupyterlab>=4.3.0; extra == 'dev'
|
|
70
94
|
Requires-Dist: mypy==1.15.0; extra == 'dev'
|
|
71
|
-
Requires-Dist: pandas-stubs; extra == 'dev'
|
|
95
|
+
Requires-Dist: pandas-stubs==2.2.3.250308; extra == 'dev'
|
|
72
96
|
Requires-Dist: pre-commit==4.2.0; extra == 'dev'
|
|
73
97
|
Requires-Dist: pydocstyle==6.3.0; extra == 'dev'
|
|
74
98
|
Requires-Dist: pylint==3.3.6; extra == 'dev'
|
|
75
99
|
Requires-Dist: python-dotenv==1.1.0; extra == 'dev'
|
|
76
|
-
Requires-Dist: ruff==0.11.
|
|
77
|
-
Requires-Dist: toml; (python_version <= '3.10') and extra == 'dev'
|
|
78
|
-
Requires-Dist: types-pyyaml==6.0.12.
|
|
100
|
+
Requires-Dist: ruff==0.11.7; extra == 'dev'
|
|
101
|
+
Requires-Dist: toml==0.10.2; (python_version <= '3.10') and extra == 'dev'
|
|
102
|
+
Requires-Dist: types-pyyaml==6.0.12.20250402; extra == 'dev'
|
|
79
103
|
Requires-Dist: types-toml==0.10.8.20240310; extra == 'dev'
|
|
80
104
|
Requires-Dist: yamllint==1.37.0; extra == 'dev'
|
|
81
105
|
Provides-Extra: docs
|
|
@@ -83,19 +107,22 @@ Requires-Dist: mdx-include==1.4.2; extra == 'docs'
|
|
|
83
107
|
Requires-Dist: mdx-truly-sane-lists==1.3; extra == 'docs'
|
|
84
108
|
Requires-Dist: mkdocs-jupyter==0.25.1; extra == 'docs'
|
|
85
109
|
Requires-Dist: mkdocs-macros-plugin==1.3.7; extra == 'docs'
|
|
86
|
-
Requires-Dist: mkdocs-material==9.6.
|
|
110
|
+
Requires-Dist: mkdocs-material==9.6.12; extra == 'docs'
|
|
87
111
|
Requires-Dist: mkdocs-minify-html-plugin==0.3.1; extra == 'docs'
|
|
88
112
|
Requires-Dist: mkdocs==1.6.1; extra == 'docs'
|
|
89
|
-
Requires-Dist: mkdocstrings-python==1.16.
|
|
90
|
-
Requires-Dist: mkdocstrings[crystal,python]==0.29.
|
|
113
|
+
Requires-Dist: mkdocstrings-python==1.16.10; extra == 'docs'
|
|
114
|
+
Requires-Dist: mkdocstrings[crystal,python]==0.29.1; extra == 'docs'
|
|
91
115
|
Provides-Extra: jupyter
|
|
116
|
+
Requires-Dist: jupyter-server==2.15.0; extra == 'jupyter'
|
|
92
117
|
Requires-Dist: jupyterlab>=4.3.0; extra == 'jupyter'
|
|
93
|
-
Requires-Dist: waldiez-jupyter==0.4.
|
|
118
|
+
Requires-Dist: waldiez-jupyter==0.4.4; extra == 'jupyter'
|
|
119
|
+
Provides-Extra: runner
|
|
120
|
+
Requires-Dist: waldiez-runner==0.4.4; extra == 'runner'
|
|
94
121
|
Provides-Extra: studio
|
|
95
|
-
Requires-Dist: waldiez-studio==0.4.
|
|
122
|
+
Requires-Dist: waldiez-studio==0.4.4; extra == 'studio'
|
|
96
123
|
Provides-Extra: test
|
|
97
124
|
Requires-Dist: pytest-asyncio==0.26.0; extra == 'test'
|
|
98
|
-
Requires-Dist: pytest-cov==6.
|
|
125
|
+
Requires-Dist: pytest-cov==6.1.1; extra == 'test'
|
|
99
126
|
Requires-Dist: pytest-html==4.1.1; extra == 'test'
|
|
100
127
|
Requires-Dist: pytest-sugar==1.0.0; extra == 'test'
|
|
101
128
|
Requires-Dist: pytest-timeout==2.3.1; extra == 'test'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "waldiez"
|
|
3
|
-
description = '
|
|
3
|
+
description = 'Make AI Agents Collaborate: Drag, Drop, and Orchestrate with Waldiez.'
|
|
4
4
|
authors = [
|
|
5
5
|
{ name = 'Panagiotis Kasnesis', email = 'pkasnesis@waldiez.io' },
|
|
6
6
|
{ name= 'Lazaros Toumanidis', email= 'laztoum@waldiez.io' },
|
|
@@ -27,11 +27,16 @@ dependencies =[
|
|
|
27
27
|
"aiofiles==24.1.0",
|
|
28
28
|
"aiosqlite==0.21.0",
|
|
29
29
|
"asyncer==0.0.8",
|
|
30
|
-
"numpy
|
|
30
|
+
"numpy<=2.2.5",
|
|
31
|
+
"nest_asyncio==1.6.0",
|
|
31
32
|
"graphviz==0.20.3",
|
|
32
33
|
"pandas>=2",
|
|
33
|
-
"pyautogen[openai]==0.8.
|
|
34
|
+
"pyautogen[openai]==0.8.7",
|
|
34
35
|
"jupytext",
|
|
36
|
+
# "rpds-py @ git+https://github.com/crate-py/rpds.git@v0.24.0 ;sys_platform == 'win32' and platform_machine == 'arm64'",
|
|
37
|
+
# "rpds-py @ git+https://github.com/crate-py/rpds.git@v0.24.0 ;sys_platform == 'win32' and platform_machine == 'ARM64'",
|
|
38
|
+
# "rpds-py @ git+https://github.com/crate-py/rpds.git@v0.24.0 ;sys_platform == 'win32' and platform_machine == 'aarch64'",
|
|
39
|
+
# "rpds-py @ git+https://github.com/crate-py/rpds.git@v0.24.0 ;sys_platform == 'win32' and platform_machine == 'AARCH64'",
|
|
35
40
|
"parso==0.8.4",
|
|
36
41
|
"pydantic>=2.10.2,<3",
|
|
37
42
|
"typer>=0.9,<0.16",
|
|
@@ -39,9 +44,13 @@ dependencies =[
|
|
|
39
44
|
]
|
|
40
45
|
|
|
41
46
|
[project.urls]
|
|
42
|
-
homepage = 'https://waldiez.
|
|
47
|
+
homepage = 'https://waldiez.io'
|
|
43
48
|
repository = 'https://github.com/waldiez/python.git'
|
|
49
|
+
documentation = "https://waldiez.github.io/python/"
|
|
50
|
+
issues = "https://github.com/waldiez/python/issues"
|
|
44
51
|
|
|
52
|
+
[tool.hatch.metadata]
|
|
53
|
+
allow-direct-references = true
|
|
45
54
|
|
|
46
55
|
[tool.hatch.build.targets.sdist]
|
|
47
56
|
packages = ["waldiez", "waldiez.*"]
|
|
@@ -53,68 +62,92 @@ exclude = [ "**/example.py" ]
|
|
|
53
62
|
|
|
54
63
|
[project.optional-dependencies]
|
|
55
64
|
studio = [
|
|
56
|
-
|
|
65
|
+
"waldiez_studio==0.4.4",
|
|
66
|
+
]
|
|
67
|
+
runner = [
|
|
68
|
+
"waldiez_runner==0.4.4",
|
|
57
69
|
]
|
|
58
70
|
jupyter = [
|
|
59
|
-
|
|
71
|
+
"waldiez_jupyter==0.4.4",
|
|
60
72
|
'jupyterlab>=4.3.0',
|
|
73
|
+
"jupyter_server==2.15.0",
|
|
61
74
|
]
|
|
62
75
|
dev = [
|
|
63
76
|
'autoflake==2.3.1',
|
|
64
77
|
'bandit==1.8.3',
|
|
65
78
|
'black[jupyter]==25.1.0',
|
|
66
79
|
'flake8==7.2.0',
|
|
80
|
+
'jupyterlab>=4.3.0',
|
|
81
|
+
"jupyter_server==2.15.0",
|
|
67
82
|
'isort==6.0.1',
|
|
68
83
|
'mypy==1.15.0',
|
|
69
|
-
'pandas-stubs',
|
|
84
|
+
'pandas-stubs==2.2.3.250308',
|
|
70
85
|
'pre-commit==4.2.0',
|
|
71
86
|
'pydocstyle==6.3.0',
|
|
72
87
|
'pylint==3.3.6',
|
|
73
88
|
'python-dotenv==1.1.0',
|
|
74
|
-
'ruff==0.11.
|
|
75
|
-
'types-pyyaml==6.0.12.
|
|
89
|
+
'ruff==0.11.7',
|
|
90
|
+
'types-pyyaml==6.0.12.20250402',
|
|
76
91
|
'yamllint==1.37.0',
|
|
77
|
-
'toml; python_version <= "3.10"',
|
|
92
|
+
'toml==0.10.2; python_version <= "3.10"',
|
|
78
93
|
'types-toml==0.10.8.20240310',
|
|
79
94
|
]
|
|
80
95
|
ag2_extras =[
|
|
81
96
|
# models
|
|
82
|
-
'pyautogen[anthropic]==0.8.
|
|
83
|
-
'pyautogen[bedrock]==0.8.
|
|
84
|
-
'pyautogen[cohere]==0.8.
|
|
85
|
-
'pyautogen[gemini]==0.8.
|
|
86
|
-
'pyautogen[
|
|
87
|
-
'pyautogen[
|
|
88
|
-
'pyautogen[
|
|
89
|
-
'pyautogen[
|
|
90
|
-
'pyautogen[
|
|
97
|
+
'pyautogen[anthropic]==0.8.7',
|
|
98
|
+
'pyautogen[bedrock]==0.8.7',
|
|
99
|
+
'pyautogen[cohere]==0.8.7',
|
|
100
|
+
'pyautogen[gemini]==0.8.7 ;sys_platform != "win32"',
|
|
101
|
+
'pyautogen[gemini]==0.8.7 ;sys_platform == "win32" and platform_machine != "arm64" and platform_machine != "aarch64" and platform_machine != "ARM64" and platform_machine != "AARCH64"',
|
|
102
|
+
'pyautogen[groq]==0.8.7',
|
|
103
|
+
'pyautogen[lmm]==0.8.7',
|
|
104
|
+
'pyautogen[mistral]==0.8.7',
|
|
105
|
+
'pyautogen[ollama]==0.8.7',
|
|
106
|
+
'pyautogen[together]==0.8.7 ;sys_platform != "win32"',
|
|
107
|
+
'pyautogen[together]==0.8.7 ;sys_platform == "win32" and platform_machine != "arm64" and platform_machine != "aarch64" and platform_machine != "ARM64" and platform_machine != "AARCH64"',
|
|
91
108
|
# utils
|
|
92
|
-
'pyautogen[interop-crewai]==0.8.
|
|
93
|
-
'pyautogen[interop-langchain]==0.8.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
'
|
|
109
|
+
'pyautogen[interop-crewai]==0.8.7',
|
|
110
|
+
'pyautogen[interop-langchain]==0.8.7',
|
|
111
|
+
"pyautogen[neo4j]==0.8.7 ;sys_platform != 'win32'",
|
|
112
|
+
"pyautogen[neo4j]==0.8.7 ;sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64'",
|
|
113
|
+
'pyautogen[websurfer]==0.8.7',
|
|
114
|
+
"chromadb>=0.5.10 ;sys_platform != 'win32'",
|
|
115
|
+
"chromadb>=0.5.10 ;sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64'",
|
|
97
116
|
'pgvector>=0.4.0',
|
|
98
|
-
|
|
117
|
+
"psycopg==3.2.6 ;sys_platform == 'linux'",
|
|
118
|
+
"psycopg==3.2.6 ;sys_platform == 'win32' and platform_machine == 'arm64'",
|
|
119
|
+
"psycopg==3.2.6 ;sys_platform == 'win32' and platform_machine == 'ARM64'",
|
|
120
|
+
"psycopg==3.2.6 ;sys_platform == 'win32' and platform_machine == 'aarch64'",
|
|
121
|
+
"psycopg==3.2.6 ;sys_platform == 'win32' and platform_machine == 'AARCH64'",
|
|
122
|
+
"psycopg[binary]==3.2.6 ;sys_platform != 'linux' and platform_machine != 'arm64' and platform_machine != 'ARM64' and platform_machine != 'aarch64' and platform_machine != 'AARCH64'",
|
|
99
123
|
'protobuf>=4.25.3',
|
|
100
124
|
'pypdf',
|
|
125
|
+
"pysqlite3-binary==0.5.4 ;sys_platform == 'linux' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64'",
|
|
101
126
|
'ipython',
|
|
102
127
|
'markdownify',
|
|
103
128
|
'beautifulsoup4',
|
|
104
|
-
|
|
129
|
+
"sentence-transformers ;sys_platform == 'linux'",
|
|
105
130
|
'huggingface-hub',
|
|
106
|
-
|
|
131
|
+
"qdrant-client[fastembed] ;sys_platform != 'win32'",
|
|
132
|
+
"qdrant-client[fastembed] ;sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64'",
|
|
107
133
|
'pgvector>=0.4.0',
|
|
108
|
-
|
|
109
|
-
'
|
|
134
|
+
"psycopg[binary]>=3.2.6 ;sys_platform != 'win32'",
|
|
135
|
+
"psycopg>=3.2.6 ;sys_platform == 'win32'",
|
|
136
|
+
"embedchain ;sys_platform != 'win32'",
|
|
137
|
+
"embedchain ;sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64'",
|
|
110
138
|
'langchain-community>=0.3.12,<1',
|
|
111
139
|
'pydantic-ai>=0.0.21',
|
|
112
140
|
'pymongo>=4.11',
|
|
141
|
+
'wikipedia-api>=0.8.1, <1.0',
|
|
142
|
+
'google-api-python-client>=2.163.0,<3.0',
|
|
143
|
+
'google-auth-httplib2>=0.2.0,<0.3',
|
|
144
|
+
'google-auth-oauthlib>=1.2.1,<2.0',
|
|
145
|
+
'mcp>=1.4.0,<1.6',
|
|
113
146
|
]
|
|
114
147
|
test = [
|
|
115
148
|
'pytest==8.3.5',
|
|
116
149
|
'pytest-asyncio==0.26.0',
|
|
117
|
-
'pytest-cov==6.
|
|
150
|
+
'pytest-cov==6.1.1',
|
|
118
151
|
'pytest-html==4.1.1',
|
|
119
152
|
'pytest-sugar==1.0.0',
|
|
120
153
|
'pytest-timeout==2.3.1',
|
|
@@ -126,10 +159,10 @@ docs = [
|
|
|
126
159
|
'mkdocs==1.6.1',
|
|
127
160
|
'mkdocs-jupyter==0.25.1',
|
|
128
161
|
'mkdocs-macros-plugin==1.3.7',
|
|
129
|
-
'mkdocs-material==9.6.
|
|
162
|
+
'mkdocs-material==9.6.12',
|
|
130
163
|
'mkdocs-minify-html-plugin==0.3.1',
|
|
131
|
-
'mkdocstrings[crystal,python]==0.29.
|
|
132
|
-
'mkdocstrings-python==1.16.
|
|
164
|
+
'mkdocstrings[crystal,python]==0.29.1',
|
|
165
|
+
'mkdocstrings-python==1.16.10'
|
|
133
166
|
]
|
|
134
167
|
|
|
135
168
|
[project.scripts]
|
|
@@ -102,12 +102,12 @@ def generate_nested_config(
|
|
|
102
102
|
with open(
|
|
103
103
|
config_file_or_env_path, "w", encoding="utf-8", newline="\n"
|
|
104
104
|
) as f:
|
|
105
|
-
json.dump(
|
|
105
|
+
json.dump(llm_config, f, ensure_ascii=False, indent=4)
|
|
106
106
|
nested_config = {
|
|
107
107
|
"autobuild_init_config": {
|
|
108
108
|
"config_file_or_env": config_file_or_env_name,
|
|
109
|
-
"builder_model": llm_config["model"],
|
|
110
|
-
"agent_model": llm_config["model"],
|
|
109
|
+
"builder_model": llm_config["config_list"][0]["model"],
|
|
110
|
+
"agent_model": llm_config["config_list"][0]["model"],
|
|
111
111
|
},
|
|
112
112
|
"autobuild_build_config": get_auto_build_build_config(
|
|
113
113
|
agent, llm_config
|
|
@@ -140,20 +140,29 @@ def get_llm_config(
|
|
|
140
140
|
temperature: Optional[float] = 1
|
|
141
141
|
top_p: Optional[float] = 0.95
|
|
142
142
|
max_tokens: Optional[int] = 2048
|
|
143
|
+
config_dict: Dict[str, Any] = {}
|
|
143
144
|
if agent.data.model_ids:
|
|
144
145
|
waldiez_model = get_waldiez_model(agent.data.model_ids[0], all_models)
|
|
145
146
|
llm_config = waldiez_model.get_llm_config(skip_price=True)
|
|
146
147
|
for key in ["temperature", "top_p", "max_tokens"]:
|
|
147
148
|
if key not in llm_config:
|
|
148
149
|
llm_config[key] = None
|
|
149
|
-
|
|
150
|
+
temp = llm_config.pop("temperature", None)
|
|
151
|
+
config_dict = {
|
|
152
|
+
"config_list": [llm_config],
|
|
153
|
+
}
|
|
154
|
+
if temp is not None:
|
|
155
|
+
config_dict["temperature"] = temp
|
|
156
|
+
return config_dict
|
|
150
157
|
config_dict = {
|
|
151
158
|
"model": model_name,
|
|
152
|
-
"temperature": temperature,
|
|
153
159
|
"top_p": top_p,
|
|
154
160
|
"max_tokens": max_tokens,
|
|
155
161
|
}
|
|
156
|
-
return
|
|
162
|
+
return {
|
|
163
|
+
"config_list": [config_dict],
|
|
164
|
+
"temperature": temperature,
|
|
165
|
+
}
|
|
157
166
|
|
|
158
167
|
|
|
159
168
|
def get_auto_build_build_config(
|
|
@@ -195,8 +204,8 @@ def get_auto_build_build_config(
|
|
|
195
204
|
return {
|
|
196
205
|
"default_llm_config": {
|
|
197
206
|
"temperature": llm_config["temperature"],
|
|
198
|
-
"top_p": llm_config["top_p"],
|
|
199
|
-
"max_tokens": llm_config["max_tokens"],
|
|
207
|
+
"top_p": llm_config["config_list"][0]["top_p"],
|
|
208
|
+
"max_tokens": llm_config["config_list"][0]["max_tokens"],
|
|
200
209
|
},
|
|
201
210
|
"code_execution_config": code_execution_config,
|
|
202
211
|
"coding": coding,
|
|
@@ -92,9 +92,11 @@ def get_agent_llm_config_arg(
|
|
|
92
92
|
content = f"{tab}llm_config=" + "{\n"
|
|
93
93
|
content += f'{tab} "config_list": ['
|
|
94
94
|
got_at_least_one_model = False
|
|
95
|
+
temperature: Optional[float] = None
|
|
95
96
|
for model_id in agent.data.model_ids:
|
|
96
97
|
model = next((m for m in all_models if m.id == model_id), None)
|
|
97
98
|
if model is not None:
|
|
99
|
+
temperature = model.data.temperature
|
|
98
100
|
model_name = model_names[model_id]
|
|
99
101
|
content += "\n" + f"{tab} {model_name}_llm_config,"
|
|
100
102
|
got_at_least_one_model = True
|
|
@@ -102,6 +104,8 @@ def get_agent_llm_config_arg(
|
|
|
102
104
|
return f"{tab}llm_config=False," + "\n"
|
|
103
105
|
content += "\n" + f"{tab} ]," + "\n"
|
|
104
106
|
content += f'{tab} "cache_seed": {cache_seed},' + "\n"
|
|
107
|
+
if temperature is not None:
|
|
108
|
+
content += f'{tab} "temperature": {temperature},' + "\n"
|
|
105
109
|
content += tab + "},\n"
|
|
106
110
|
return content
|
|
107
111
|
|
|
@@ -203,7 +203,9 @@ class WaldiezRunner:
|
|
|
203
203
|
"NOTE: If new packages were added and you are using Jupyter, "
|
|
204
204
|
"you might need to restart the kernel."
|
|
205
205
|
)
|
|
206
|
-
results: Union[
|
|
206
|
+
results: Union[
|
|
207
|
+
"ChatResult", List["ChatResult"], Dict[int, "ChatResult"]
|
|
208
|
+
] = []
|
|
207
209
|
with chdir(to=temp_dir):
|
|
208
210
|
self._exporter.export(Path(file_name))
|
|
209
211
|
spec = importlib.util.spec_from_file_location(
|
|
@@ -249,7 +251,9 @@ class WaldiezRunner:
|
|
|
249
251
|
"NOTE: If new packages were added and you are using Jupyter, "
|
|
250
252
|
"you might need to restart the kernel."
|
|
251
253
|
)
|
|
252
|
-
results: Union[
|
|
254
|
+
results: Union[
|
|
255
|
+
"ChatResult", List["ChatResult"], Dict[int, "ChatResult"]
|
|
256
|
+
] = []
|
|
253
257
|
async with a_chdir(to=temp_dir):
|
|
254
258
|
self._exporter.export(Path(file_name))
|
|
255
259
|
spec = importlib.util.spec_from_file_location(
|
|
@@ -279,7 +283,7 @@ class WaldiezRunner:
|
|
|
279
283
|
output_path: Optional[Union[str, Path]] = None,
|
|
280
284
|
uploads_root: Optional[Union[str, Path]] = None,
|
|
281
285
|
skip_mmd: bool = False,
|
|
282
|
-
) -> Union["ChatResult", List["ChatResult"]]:
|
|
286
|
+
) -> Union["ChatResult", List["ChatResult"], Dict[int, "ChatResult"]]:
|
|
283
287
|
"""Run the Waldiez workflow.
|
|
284
288
|
|
|
285
289
|
Parameters
|
|
@@ -293,7 +297,7 @@ class WaldiezRunner:
|
|
|
293
297
|
|
|
294
298
|
Returns
|
|
295
299
|
-------
|
|
296
|
-
Union[ChatResult, List[ChatResult]]
|
|
300
|
+
Union["ChatResult", List["ChatResult"], Dict[int, "ChatResult"]]
|
|
297
301
|
The result(s) of the chat(s).
|
|
298
302
|
|
|
299
303
|
Raises
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# pylint: disable=import-outside-toplevel,reimported
|
|
4
4
|
"""Environment related utilities."""
|
|
5
5
|
|
|
6
|
-
import importlib
|
|
6
|
+
import importlib
|
|
7
7
|
import os
|
|
8
8
|
import site
|
|
9
9
|
import sys
|
|
@@ -20,7 +20,8 @@ def in_virtualenv() -> bool:
|
|
|
20
20
|
True if inside a virtualenv, False otherwise.
|
|
21
21
|
"""
|
|
22
22
|
return hasattr(sys, "real_prefix") or (
|
|
23
|
-
hasattr(sys, "base_prefix")
|
|
23
|
+
hasattr(sys, "base_prefix")
|
|
24
|
+
and os.path.realpath(sys.base_prefix) != os.path.realpath(sys.prefix)
|
|
24
25
|
)
|
|
25
26
|
|
|
26
27
|
|
|
@@ -120,20 +120,34 @@ def install_requirements(
|
|
|
120
120
|
requirements_string = ", ".join(extra_requirements)
|
|
121
121
|
printer(f"Installing requirements: {requirements_string}")
|
|
122
122
|
pip_install = [sys.executable, "-m", "pip", "install"]
|
|
123
|
-
if not in_virtualenv():
|
|
123
|
+
if not in_virtualenv(): # it should
|
|
124
|
+
# if not, let's try to install as user
|
|
125
|
+
# not sure if --break-system-packages is safe
|
|
126
|
+
# but it might fail if we don't
|
|
127
|
+
break_system_packages = os.environ.get("PIP_BREAK_SYSTEM_PACKAGES", "")
|
|
128
|
+
os.environ["PIP_BREAK_SYSTEM_PACKAGES"] = "1"
|
|
124
129
|
pip_install.append("--user")
|
|
125
130
|
pip_install.extend(extra_requirements)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
131
|
+
# pylint: disable=too-many-try-statements
|
|
132
|
+
try:
|
|
133
|
+
with subprocess.Popen(
|
|
134
|
+
pip_install,
|
|
135
|
+
stdout=subprocess.PIPE,
|
|
136
|
+
stderr=subprocess.PIPE,
|
|
137
|
+
) as proc:
|
|
138
|
+
if proc.stdout:
|
|
139
|
+
for line in io.TextIOWrapper(proc.stdout, encoding="utf-8"):
|
|
140
|
+
printer(line.strip())
|
|
141
|
+
if proc.stderr:
|
|
142
|
+
for line in io.TextIOWrapper(proc.stderr, encoding="utf-8"):
|
|
143
|
+
printer(line.strip())
|
|
144
|
+
finally:
|
|
145
|
+
if not in_virtualenv():
|
|
146
|
+
# restore the old env var
|
|
147
|
+
if break_system_packages:
|
|
148
|
+
os.environ["PIP_BREAK_SYSTEM_PACKAGES"] = break_system_packages
|
|
149
|
+
else:
|
|
150
|
+
del os.environ["PIP_BREAK_SYSTEM_PACKAGES"]
|
|
137
151
|
|
|
138
152
|
|
|
139
153
|
async def a_install_requirements(
|
|
@@ -152,19 +166,29 @@ async def a_install_requirements(
|
|
|
152
166
|
printer(f"Installing requirements: {requirements_string}")
|
|
153
167
|
pip_install = [sys.executable, "-m", "pip", "install"]
|
|
154
168
|
if not in_virtualenv():
|
|
155
|
-
|
|
169
|
+
break_system_packages = os.environ.get("PIP_BREAK_SYSTEM_PACKAGES", "")
|
|
170
|
+
os.environ["PIP_BREAK_SYSTEM_PACKAGES"] = "1"
|
|
171
|
+
pip_install.extend(["--user"])
|
|
156
172
|
pip_install.extend(extra_requirements)
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
173
|
+
# pylint: disable=too-many-try-statements
|
|
174
|
+
try:
|
|
175
|
+
proc = await asyncio.create_subprocess_exec(
|
|
176
|
+
*pip_install,
|
|
177
|
+
stdout=asyncio.subprocess.PIPE,
|
|
178
|
+
stderr=asyncio.subprocess.PIPE,
|
|
179
|
+
)
|
|
180
|
+
if proc.stdout:
|
|
181
|
+
async for line in proc.stdout:
|
|
182
|
+
printer(line.decode().strip())
|
|
183
|
+
if proc.stderr:
|
|
184
|
+
async for line in proc.stderr:
|
|
185
|
+
printer(line.decode().strip())
|
|
186
|
+
finally:
|
|
187
|
+
if not in_virtualenv():
|
|
188
|
+
if break_system_packages:
|
|
189
|
+
os.environ["PIP_BREAK_SYSTEM_PACKAGES"] = break_system_packages
|
|
190
|
+
else:
|
|
191
|
+
del os.environ["PIP_BREAK_SYSTEM_PACKAGES"]
|
|
168
192
|
|
|
169
193
|
|
|
170
194
|
def after_run(
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import typer
|
|
8
8
|
|
|
9
9
|
from .jupyter import add_jupyter_cli
|
|
10
|
+
from .runner import add_runner_cli
|
|
10
11
|
from .studio import add_studio_cli
|
|
11
12
|
|
|
12
13
|
|
|
@@ -24,6 +25,7 @@ def add_cli_extras(app: typer.Typer) -> None:
|
|
|
24
25
|
The app with the extra commands added
|
|
25
26
|
"""
|
|
26
27
|
add_jupyter_cli(app)
|
|
28
|
+
add_runner_cli(app)
|
|
27
29
|
add_studio_cli(app)
|
|
28
30
|
|
|
29
31
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0.
|
|
2
|
+
# Copyright (c) 2024 - 2025 Waldiez and contributors.
|
|
3
|
+
# pylint: skip-file
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
# flake8: noqa: E501,E402
|
|
6
|
+
"""Waldiez-runner extra typer commands for CLI."""
|
|
7
|
+
|
|
8
|
+
from typing import Any, Callable
|
|
9
|
+
|
|
10
|
+
import typer
|
|
11
|
+
from typer.models import CommandInfo
|
|
12
|
+
|
|
13
|
+
HAVE_RUNNER = False
|
|
14
|
+
runner_app: Callable[..., Any] | None = None
|
|
15
|
+
|
|
16
|
+
try:
|
|
17
|
+
from waldiez_runner.cli import run # type: ignore[unused-ignore, import-not-found, import-untyped]
|
|
18
|
+
|
|
19
|
+
runner_app = run
|
|
20
|
+
|
|
21
|
+
HAVE_RUNNER = True
|
|
22
|
+
except BaseException:
|
|
23
|
+
pass
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def add_runner_cli(app: typer.Typer) -> None:
|
|
27
|
+
"""Add runner command to the app if available.
|
|
28
|
+
|
|
29
|
+
Parameters
|
|
30
|
+
----------
|
|
31
|
+
app : typer.Typer
|
|
32
|
+
The Typer app to add the runner command to.
|
|
33
|
+
"""
|
|
34
|
+
if HAVE_RUNNER:
|
|
35
|
+
app.registered_commands.append(
|
|
36
|
+
CommandInfo(name="serve", callback=runner_app)
|
|
37
|
+
)
|
|
@@ -9,6 +9,7 @@ Highly recommended to be run in a virtual environment.
|
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
import os
|
|
12
|
+
import platform
|
|
12
13
|
import shutil
|
|
13
14
|
import site
|
|
14
15
|
import subprocess
|
|
@@ -121,7 +122,8 @@ def download_sqlite_amalgamation() -> str:
|
|
|
121
122
|
os.remove(zip_path)
|
|
122
123
|
|
|
123
124
|
# Return the path to the extracted source code
|
|
124
|
-
|
|
125
|
+
folder_name = SQLITE_URL.rsplit("/", 1)[-1].split(".")[0]
|
|
126
|
+
return os.path.join(extract_path, folder_name)
|
|
125
127
|
|
|
126
128
|
|
|
127
129
|
def rename_package_name(pysqlite3_dir: str) -> None:
|
|
@@ -206,7 +208,9 @@ def check_pysqlite3() -> None:
|
|
|
206
208
|
import pysqlite3 # type: ignore[unused-ignore, import-untyped, import-not-found] # noqa
|
|
207
209
|
except ImportError:
|
|
208
210
|
print("pysqlite3 not found or cannot be imported.")
|
|
209
|
-
|
|
211
|
+
# and not arm64
|
|
212
|
+
is_arm = "arm" in platform.machine().lower()
|
|
213
|
+
if not is_arm and platform.system() == "Linux":
|
|
210
214
|
pip_install("pysqlite3-binary")
|
|
211
215
|
else:
|
|
212
216
|
# Uninstall pysqlite3-binary if it is already installed
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/captain_agent/captain_agent_lib_entry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{waldiez-0.4.2 → waldiez-0.4.4}/waldiez/models/agents/reasoning/reasoning_agent_reason_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|