use-computer 0.0.28__tar.gz → 0.0.30__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.
- {use_computer-0.0.28 → use_computer-0.0.30}/PKG-INFO +15 -4
- {use_computer-0.0.28 → use_computer-0.0.30}/README.md +12 -2
- {use_computer-0.0.28 → use_computer-0.0.30}/pyproject.toml +3 -2
- use_computer-0.0.30/scripts/smoke_wheel.py +132 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/uv.lock +2 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/.env.example +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/.gitignore +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/.pre-commit-config.yaml +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/accessibility.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/actions.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/agent.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/artifacts.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/desktop.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/final_state.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/prompts.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/recordings.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/sandbox.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/screenshots.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/base/trajectory.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/core.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/debug/README.md +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/debug/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/debug/actions.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/debug/agent.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/debug/models.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/ios/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/ios/agent.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/ios/tools.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/prompts/anthropic.txt +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/prompts/gemini.txt +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/prompts/ios.txt +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/prompts/openai.txt +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/prompts/pyautogui.txt +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/providers/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/providers/anthropic.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/providers/gemini.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/providers/generic.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/providers/openai.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/agents/types.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/ax_transpile.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/client.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/display.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/errors.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/agents.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/gateway.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/ios.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/macos.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/ubuntu.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/windows.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/setup_files.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/use_computer.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/utils/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/utils/verifier.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/ios/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/ios/apps.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/ios/environment.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/ios/input.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/macos/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/macos/keyboard.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/macos/mouse.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/models.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/parsers.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/py.typed +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/recording.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/resources/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/resources/accessibility.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/resources/display.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/resources/recording.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/resources/screenshot.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/retry.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/sandbox.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/screenshot.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/simulators.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/pre_command.ps1 +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/pre_command.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/task.toml +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_ios.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_ios_nograder.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_macos.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_macos_check.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_macos_nograder.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_ubuntu.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_ubuntu_check.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_ubuntu_nograder.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_windows.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_windows_check.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_windows_nograder.sh +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/windows/__init__.py +0 -0
- {use_computer-0.0.28 → use_computer-0.0.30}/use_computer/windows/shell.py +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: use-computer
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.30
|
|
4
4
|
Summary: Python SDK for use.computer sandboxes across macOS, iOS simulators, Windows, and Ubuntu
|
|
5
5
|
Project-URL: Homepage, https://use.computer
|
|
6
6
|
Project-URL: Documentation, https://api.use.computer/docs
|
|
7
|
-
Project-URL: Repository, https://github.com/josancamon19/use-computer-
|
|
7
|
+
Project-URL: Repository, https://github.com/josancamon19/use-computer-sdk
|
|
8
8
|
Author: use.computer
|
|
9
9
|
Keywords: automation,computer-use,ios,macos,sandbox,ubuntu,vnc,windows
|
|
10
10
|
Classifier: Development Status :: 3 - Alpha
|
|
@@ -39,6 +39,7 @@ Provides-Extra: agents-openai
|
|
|
39
39
|
Requires-Dist: openai>=1; extra == 'agents-openai'
|
|
40
40
|
Requires-Dist: pillow>=10; extra == 'agents-openai'
|
|
41
41
|
Provides-Extra: harbor
|
|
42
|
+
Requires-Dist: harbor>=0.4.0; (python_version >= '3.12') and extra == 'harbor'
|
|
42
43
|
Requires-Dist: pyyaml>=6; extra == 'harbor'
|
|
43
44
|
Requires-Dist: tomli>=2; extra == 'harbor'
|
|
44
45
|
Description-Content-Type: text/markdown
|
|
@@ -55,11 +56,21 @@ export USE_COMPUTER_API_KEY=mk_live_...
|
|
|
55
56
|
Optional agent and Harbor integrations are installed explicitly:
|
|
56
57
|
|
|
57
58
|
```bash
|
|
59
|
+
pip install "use-computer[agents]" # shared agent helpers + debug agent
|
|
58
60
|
pip install "use-computer[agents-openai]" # or agents-anthropic / agents-gemini / agents-litellm / agents-all
|
|
59
|
-
pip install "use-computer[harbor]" #
|
|
61
|
+
pip install "use-computer[harbor]" # Harbor environment adapter (Python 3.12+)
|
|
60
62
|
pip install "use-computer[harbor,agents-all]" # Harbor adapter plus all provider deps
|
|
61
63
|
```
|
|
62
64
|
|
|
65
|
+
Base installs only the SDK client and `httpx`. The `agents-*` extras install
|
|
66
|
+
model-provider dependencies; `harbor` installs Harbor plus the environment
|
|
67
|
+
adapter dependencies, but no provider SDKs.
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
from use_computer.agents import AnthropicComputerAgent
|
|
71
|
+
from use_computer.harbor.environment import UseComputerEnvironment
|
|
72
|
+
```
|
|
73
|
+
|
|
63
74
|
```python
|
|
64
75
|
from use_computer import Computer, SandboxType, SimulatorFamily
|
|
65
76
|
|
|
@@ -185,7 +196,7 @@ visionOS yet. Use it for read-only flows for now.
|
|
|
185
196
|
| [`examples/_9_seeding.py`](examples/_9_seeding.py) | typed setup: files, hosts, open URLs/apps |
|
|
186
197
|
| [`examples/_10_snapshots.py`](examples/_10_snapshots.py) | snapshot seeded Ubuntu/Windows desktop state |
|
|
187
198
|
|
|
188
|
-
For agent loops and evals: [use-computer-cookbook](https://github.com/josancamon19/use-computer-cookbook).
|
|
199
|
+
For agent loops and evals: [use-computer-cookbook](https://github.com/josancamon19/use-computer-cookbook). Its Harbor job YAMLs use `use_computer.harbor.environment` and `use_computer.harbor.agents` as the canonical import paths.
|
|
189
200
|
|
|
190
201
|
## Skill for AI coding assistants
|
|
191
202
|
|
|
@@ -10,11 +10,21 @@ export USE_COMPUTER_API_KEY=mk_live_...
|
|
|
10
10
|
Optional agent and Harbor integrations are installed explicitly:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
+
pip install "use-computer[agents]" # shared agent helpers + debug agent
|
|
13
14
|
pip install "use-computer[agents-openai]" # or agents-anthropic / agents-gemini / agents-litellm / agents-all
|
|
14
|
-
pip install "use-computer[harbor]" #
|
|
15
|
+
pip install "use-computer[harbor]" # Harbor environment adapter (Python 3.12+)
|
|
15
16
|
pip install "use-computer[harbor,agents-all]" # Harbor adapter plus all provider deps
|
|
16
17
|
```
|
|
17
18
|
|
|
19
|
+
Base installs only the SDK client and `httpx`. The `agents-*` extras install
|
|
20
|
+
model-provider dependencies; `harbor` installs Harbor plus the environment
|
|
21
|
+
adapter dependencies, but no provider SDKs.
|
|
22
|
+
|
|
23
|
+
```python
|
|
24
|
+
from use_computer.agents import AnthropicComputerAgent
|
|
25
|
+
from use_computer.harbor.environment import UseComputerEnvironment
|
|
26
|
+
```
|
|
27
|
+
|
|
18
28
|
```python
|
|
19
29
|
from use_computer import Computer, SandboxType, SimulatorFamily
|
|
20
30
|
|
|
@@ -140,7 +150,7 @@ visionOS yet. Use it for read-only flows for now.
|
|
|
140
150
|
| [`examples/_9_seeding.py`](examples/_9_seeding.py) | typed setup: files, hosts, open URLs/apps |
|
|
141
151
|
| [`examples/_10_snapshots.py`](examples/_10_snapshots.py) | snapshot seeded Ubuntu/Windows desktop state |
|
|
142
152
|
|
|
143
|
-
For agent loops and evals: [use-computer-cookbook](https://github.com/josancamon19/use-computer-cookbook).
|
|
153
|
+
For agent loops and evals: [use-computer-cookbook](https://github.com/josancamon19/use-computer-cookbook). Its Harbor job YAMLs use `use_computer.harbor.environment` and `use_computer.harbor.agents` as the canonical import paths.
|
|
144
154
|
|
|
145
155
|
## Skill for AI coding assistants
|
|
146
156
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "use-computer"
|
|
7
|
-
version = "0.0.
|
|
7
|
+
version = "0.0.30"
|
|
8
8
|
description = "Python SDK for use.computer sandboxes across macOS, iOS simulators, Windows, and Ubuntu"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -37,6 +37,7 @@ agents-all = [
|
|
|
37
37
|
"google-genai>=1",
|
|
38
38
|
]
|
|
39
39
|
harbor = [
|
|
40
|
+
"harbor>=0.4.0; python_version >= '3.12'",
|
|
40
41
|
"PyYAML>=6",
|
|
41
42
|
"tomli>=2",
|
|
42
43
|
]
|
|
@@ -61,7 +62,7 @@ dev = [
|
|
|
61
62
|
[project.urls]
|
|
62
63
|
Homepage = "https://use.computer"
|
|
63
64
|
Documentation = "https://api.use.computer/docs"
|
|
64
|
-
Repository = "https://github.com/josancamon19/use-computer-
|
|
65
|
+
Repository = "https://github.com/josancamon19/use-computer-sdk"
|
|
65
66
|
|
|
66
67
|
[tool.hatch.build.targets.wheel]
|
|
67
68
|
packages = ["use_computer"]
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"""Smoke-test the built wheel in clean environments."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import argparse
|
|
6
|
+
import subprocess
|
|
7
|
+
import sys
|
|
8
|
+
import tempfile
|
|
9
|
+
import zipfile
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
|
|
12
|
+
BASE_SMOKE = r"""
|
|
13
|
+
import importlib.util
|
|
14
|
+
import use_computer
|
|
15
|
+
|
|
16
|
+
def has(name):
|
|
17
|
+
try:
|
|
18
|
+
return importlib.util.find_spec(name) is not None
|
|
19
|
+
except ModuleNotFoundError:
|
|
20
|
+
return False
|
|
21
|
+
|
|
22
|
+
assert "site-packages" in (use_computer.__file__ or ""), use_computer.__file__
|
|
23
|
+
for name in ["PIL", "openai", "anthropic", "google.genai", "litellm", "harbor", "yaml", "tomli"]:
|
|
24
|
+
assert not has(name), name
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
AGENTS_SMOKE = r"""
|
|
28
|
+
import importlib
|
|
29
|
+
import importlib.util
|
|
30
|
+
|
|
31
|
+
assert importlib.util.find_spec("PIL") is not None
|
|
32
|
+
for path in ["use_computer.agents", "use_computer.agents.debug"]:
|
|
33
|
+
importlib.import_module(path)
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
HARBOR_SMOKE = r"""
|
|
37
|
+
import importlib
|
|
38
|
+
import importlib.util
|
|
39
|
+
|
|
40
|
+
for name in ["harbor", "yaml", "tomli"]:
|
|
41
|
+
assert importlib.util.find_spec(name) is not None, name
|
|
42
|
+
for path in ["use_computer.harbor.environment", "use_computer.harbor.agents"]:
|
|
43
|
+
importlib.import_module(path)
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def main() -> None:
|
|
48
|
+
parser = argparse.ArgumentParser()
|
|
49
|
+
parser.add_argument("wheel", type=Path)
|
|
50
|
+
args = parser.parse_args()
|
|
51
|
+
|
|
52
|
+
wheel = args.wheel.resolve()
|
|
53
|
+
if not wheel.name.endswith(".whl"):
|
|
54
|
+
raise SystemExit(f"expected a wheel path, got {wheel}")
|
|
55
|
+
|
|
56
|
+
_check_wheel_contents(wheel)
|
|
57
|
+
_check_metadata(wheel)
|
|
58
|
+
_smoke_install(wheel, None, BASE_SMOKE)
|
|
59
|
+
_smoke_install(wheel, "agents", AGENTS_SMOKE)
|
|
60
|
+
_smoke_install(wheel, "harbor", HARBOR_SMOKE)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _check_wheel_contents(wheel: Path) -> None:
|
|
64
|
+
with zipfile.ZipFile(wheel) as archive:
|
|
65
|
+
names = set(archive.namelist())
|
|
66
|
+
|
|
67
|
+
required = {
|
|
68
|
+
"use_computer/py.typed",
|
|
69
|
+
"use_computer/agents/prompts/anthropic.txt",
|
|
70
|
+
"use_computer/agents/prompts/gemini.txt",
|
|
71
|
+
"use_computer/agents/prompts/ios.txt",
|
|
72
|
+
"use_computer/agents/prompts/openai.txt",
|
|
73
|
+
"use_computer/agents/prompts/pyautogui.txt",
|
|
74
|
+
"use_computer/harbor/environment/use_computer.py",
|
|
75
|
+
"use_computer/harbor/agents.py",
|
|
76
|
+
}
|
|
77
|
+
missing = sorted(required - names)
|
|
78
|
+
if missing:
|
|
79
|
+
raise SystemExit(f"wheel is missing files: {missing}")
|
|
80
|
+
|
|
81
|
+
forbidden = [name for name in names if "__pycache__" in name or name.startswith("tests/")]
|
|
82
|
+
if forbidden:
|
|
83
|
+
raise SystemExit(f"wheel contains generated/test files: {sorted(forbidden)[:10]}")
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def _check_metadata(wheel: Path) -> None:
|
|
87
|
+
with zipfile.ZipFile(wheel) as archive:
|
|
88
|
+
metadata_name = next(
|
|
89
|
+
name for name in archive.namelist() if name.endswith(".dist-info/METADATA")
|
|
90
|
+
)
|
|
91
|
+
metadata = archive.read(metadata_name).decode()
|
|
92
|
+
|
|
93
|
+
required = [
|
|
94
|
+
"Provides-Extra: agents",
|
|
95
|
+
"Provides-Extra: agents-openai",
|
|
96
|
+
"Provides-Extra: agents-anthropic",
|
|
97
|
+
"Provides-Extra: agents-litellm",
|
|
98
|
+
"Provides-Extra: agents-gemini",
|
|
99
|
+
"Provides-Extra: agents-all",
|
|
100
|
+
"Provides-Extra: harbor",
|
|
101
|
+
"Requires-Dist: pillow>=10; extra == 'agents'",
|
|
102
|
+
]
|
|
103
|
+
missing = [line for line in required if line not in metadata]
|
|
104
|
+
if missing:
|
|
105
|
+
raise SystemExit(f"wheel metadata is missing: {missing}")
|
|
106
|
+
|
|
107
|
+
harbor_lines = [
|
|
108
|
+
line for line in metadata.splitlines() if line.startswith("Requires-Dist: harbor>=0.4.0;")
|
|
109
|
+
]
|
|
110
|
+
if not any(
|
|
111
|
+
"python_version >= '3.12'" in line and "extra == 'harbor'" in line for line in harbor_lines
|
|
112
|
+
):
|
|
113
|
+
raise SystemExit("wheel metadata is missing the Python 3.12+ Harbor extra")
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def _smoke_install(wheel: Path, extra: str | None, code: str) -> None:
|
|
117
|
+
with tempfile.TemporaryDirectory(prefix="use-computer-wheel-") as tmp:
|
|
118
|
+
tmp_path = Path(tmp)
|
|
119
|
+
venv = tmp_path / "venv"
|
|
120
|
+
_run(["uv", "venv", "--python", sys.executable, str(venv)], cwd=tmp_path)
|
|
121
|
+
python = venv / ("Scripts/python.exe" if sys.platform == "win32" else "bin/python")
|
|
122
|
+
requirement = f"{wheel}[{extra}]" if extra else str(wheel)
|
|
123
|
+
_run(["uv", "pip", "install", "--python", str(python), requirement], cwd=tmp_path)
|
|
124
|
+
_run([str(python), "-c", code], cwd=tmp_path)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
def _run(cmd: list[str], *, cwd: Path) -> None:
|
|
128
|
+
subprocess.run(cmd, cwd=cwd, check=True)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
if __name__ == "__main__":
|
|
132
|
+
main()
|
|
@@ -4795,6 +4795,7 @@ agents-openai = [
|
|
|
4795
4795
|
{ name = "pillow" },
|
|
4796
4796
|
]
|
|
4797
4797
|
harbor = [
|
|
4798
|
+
{ name = "harbor", marker = "python_full_version >= '3.12'" },
|
|
4798
4799
|
{ name = "pyyaml" },
|
|
4799
4800
|
{ name = "tomli" },
|
|
4800
4801
|
]
|
|
@@ -4822,6 +4823,7 @@ requires-dist = [
|
|
|
4822
4823
|
{ name = "anthropic", marker = "extra == 'agents-anthropic'", specifier = ">=0.86" },
|
|
4823
4824
|
{ name = "google-genai", marker = "extra == 'agents-all'", specifier = ">=1" },
|
|
4824
4825
|
{ name = "google-genai", marker = "extra == 'agents-gemini'", specifier = ">=1" },
|
|
4826
|
+
{ name = "harbor", marker = "python_full_version >= '3.12' and extra == 'harbor'", specifier = ">=0.4.0" },
|
|
4825
4827
|
{ name = "httpx", specifier = ">=0.27" },
|
|
4826
4828
|
{ name = "litellm", marker = "extra == 'agents-all'", specifier = ">=1" },
|
|
4827
4829
|
{ name = "litellm", marker = "extra == 'agents-litellm'", specifier = ">=1" },
|
|
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
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/__init__.py
RENAMED
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/ios.py
RENAMED
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/macos.py
RENAMED
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/ubuntu.py
RENAMED
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/platforms/windows.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/utils/__init__.py
RENAMED
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/harbor/environment/utils/verifier.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
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_ios_nograder.sh
RENAMED
|
File without changes
|
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_macos_check.sh
RENAMED
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_macos_nograder.sh
RENAMED
|
File without changes
|
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_ubuntu_check.sh
RENAMED
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_ubuntu_nograder.sh
RENAMED
|
File without changes
|
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_windows_check.sh
RENAMED
|
File without changes
|
{use_computer-0.0.28 → use_computer-0.0.30}/use_computer/tasks/templates/test_windows_nograder.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|