cua-agent 0.1.23__tar.gz → 0.1.24__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 cua-agent might be problematic. Click here for more details.
- {cua_agent-0.1.23 → cua_agent-0.1.24}/PKG-INFO +23 -1
- {cua_agent-0.1.23 → cua_agent-0.1.24}/README.md +22 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/types.py +0 -17
- {cua_agent-0.1.23 → cua_agent-0.1.24}/pyproject.toml +3 -3
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/agent.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/base.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/callbacks.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/experiment.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/factory.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/messages.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/provider_config.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/telemetry.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/tools/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/tools/base.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/tools/bash.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/tools/collection.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/tools/computer.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/tools/edit.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/tools/manager.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/tools.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/core/visualization.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/api/client.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/api/logging.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/api_handler.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/callbacks/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/callbacks/manager.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/loop.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/prompts.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/response_handler.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/tools/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/tools/base.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/tools/bash.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/tools/collection.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/tools/computer.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/tools/edit.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/tools/manager.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/tools/run.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/types.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/anthropic/utils.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/api_handler.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/clients/anthropic.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/clients/base.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/clients/oaicompat.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/clients/ollama.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/clients/openai.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/clients/utils.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/image_utils.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/loop.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/parser.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/prompts.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/tools/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/tools/base.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/tools/bash.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/tools/computer.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/tools/manager.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/omni/utils.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/api_handler.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/loop.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/response_handler.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/tools/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/tools/base.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/tools/computer.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/tools/manager.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/types.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/providers/openai/utils.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/telemetry.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/ui/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/ui/gradio/__init__.py +0 -0
- {cua_agent-0.1.23 → cua_agent-0.1.24}/agent/ui/gradio/app.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cua-agent
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.24
|
|
4
4
|
Summary: CUA (Computer Use) Agent for AI-driven computer interaction
|
|
5
5
|
Author-Email: TryCua <gh@trycua.com>
|
|
6
6
|
Requires-Python: <3.13,>=3.10
|
|
@@ -151,12 +151,34 @@ pip install "cua-agent[ui]"
|
|
|
151
151
|
|
|
152
152
|
# Create a simple launcher script
|
|
153
153
|
```python
|
|
154
|
+
# launch_ui.py
|
|
154
155
|
from agent.ui.gradio.app import create_gradio_ui
|
|
155
156
|
|
|
156
157
|
app = create_gradio_ui()
|
|
157
158
|
app.launch(share=False)
|
|
158
159
|
```
|
|
159
160
|
|
|
161
|
+
# Run the launcher
|
|
162
|
+
python launch_ui.py
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Setting up API Keys
|
|
166
|
+
|
|
167
|
+
For the Gradio UI to show available models, you need to set API keys as environment variables:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# For OpenAI models
|
|
171
|
+
export OPENAI_API_KEY=your_openai_key_here
|
|
172
|
+
|
|
173
|
+
# For Anthropic models
|
|
174
|
+
export ANTHROPIC_API_KEY=your_anthropic_key_here
|
|
175
|
+
|
|
176
|
+
# Launch with both keys set
|
|
177
|
+
OPENAI_API_KEY=your_key ANTHROPIC_API_KEY=your_key python launch_ui.py
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Without these environment variables, the UI will show "No models available" for the corresponding providers, but you can still use local models with the OMNI loop provider.
|
|
181
|
+
|
|
160
182
|
The Gradio UI provides:
|
|
161
183
|
- Selection of different agent loops (OpenAI, Anthropic, OMNI)
|
|
162
184
|
- Model selection for each provider
|
|
@@ -83,12 +83,34 @@ pip install "cua-agent[ui]"
|
|
|
83
83
|
|
|
84
84
|
# Create a simple launcher script
|
|
85
85
|
```python
|
|
86
|
+
# launch_ui.py
|
|
86
87
|
from agent.ui.gradio.app import create_gradio_ui
|
|
87
88
|
|
|
88
89
|
app = create_gradio_ui()
|
|
89
90
|
app.launch(share=False)
|
|
90
91
|
```
|
|
91
92
|
|
|
93
|
+
# Run the launcher
|
|
94
|
+
python launch_ui.py
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Setting up API Keys
|
|
98
|
+
|
|
99
|
+
For the Gradio UI to show available models, you need to set API keys as environment variables:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# For OpenAI models
|
|
103
|
+
export OPENAI_API_KEY=your_openai_key_here
|
|
104
|
+
|
|
105
|
+
# For Anthropic models
|
|
106
|
+
export ANTHROPIC_API_KEY=your_anthropic_key_here
|
|
107
|
+
|
|
108
|
+
# Launch with both keys set
|
|
109
|
+
OPENAI_API_KEY=your_key ANTHROPIC_API_KEY=your_key python launch_ui.py
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Without these environment variables, the UI will show "No models available" for the corresponding providers, but you can still use local models with the OMNI loop provider.
|
|
113
|
+
|
|
92
114
|
The Gradio UI provides:
|
|
93
115
|
- Selection of different agent loops (OpenAI, Anthropic, OMNI)
|
|
94
116
|
- Model selection for each provider
|
|
@@ -54,23 +54,6 @@ LLMModel = LLM
|
|
|
54
54
|
Model = LLM
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
# Default models for each provider
|
|
58
|
-
PROVIDER_TO_DEFAULT_MODEL: Dict[LLMProvider, str] = {
|
|
59
|
-
LLMProvider.ANTHROPIC: "claude-3-7-sonnet-20250219",
|
|
60
|
-
LLMProvider.OPENAI: "gpt-4o",
|
|
61
|
-
LLMProvider.OLLAMA: "gemma3:4b-it-q4_K_M",
|
|
62
|
-
LLMProvider.OAICOMPAT: "Qwen2.5-VL-7B-Instruct",
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
# Environment variable names for each provider
|
|
66
|
-
PROVIDER_TO_ENV_VAR: Dict[LLMProvider, str] = {
|
|
67
|
-
LLMProvider.ANTHROPIC: "ANTHROPIC_API_KEY",
|
|
68
|
-
LLMProvider.OPENAI: "OPENAI_API_KEY",
|
|
69
|
-
LLMProvider.OLLAMA: "none",
|
|
70
|
-
LLMProvider.OAICOMPAT: "none",
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
57
|
class AgentResponse(TypedDict, total=False):
|
|
75
58
|
"""Agent response format."""
|
|
76
59
|
|
|
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "cua-agent"
|
|
9
|
-
version = "0.1.
|
|
9
|
+
version = "0.1.24"
|
|
10
10
|
description = "CUA (Computer Use) Agent for AI-driven computer interaction"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
authors = [
|
|
@@ -105,7 +105,7 @@ target-version = [
|
|
|
105
105
|
|
|
106
106
|
[tool.ruff]
|
|
107
107
|
line-length = 100
|
|
108
|
-
target-version = "0.1.
|
|
108
|
+
target-version = "0.1.24"
|
|
109
109
|
select = [
|
|
110
110
|
"E",
|
|
111
111
|
"F",
|
|
@@ -119,7 +119,7 @@ docstring-code-format = true
|
|
|
119
119
|
|
|
120
120
|
[tool.mypy]
|
|
121
121
|
strict = true
|
|
122
|
-
python_version = "0.1.
|
|
122
|
+
python_version = "0.1.24"
|
|
123
123
|
ignore_missing_imports = true
|
|
124
124
|
disallow_untyped_defs = true
|
|
125
125
|
check_untyped_defs = true
|
|
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
|