use-computer 0.0.30__tar.gz → 0.0.31__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.
Files changed (97) hide show
  1. {use_computer-0.0.30 → use_computer-0.0.31}/PKG-INFO +1 -1
  2. {use_computer-0.0.30 → use_computer-0.0.31}/pyproject.toml +1 -1
  3. {use_computer-0.0.30 → use_computer-0.0.31}/scripts/smoke_wheel.py +59 -0
  4. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/debug/README.md +1 -1
  5. use_computer-0.0.31/use_computer/agents/debug/__init__.py +5 -0
  6. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/debug/agent.py +1 -0
  7. use_computer-0.0.30/use_computer/agents/debug/__init__.py +0 -5
  8. {use_computer-0.0.30 → use_computer-0.0.31}/.env.example +0 -0
  9. {use_computer-0.0.30 → use_computer-0.0.31}/.gitignore +0 -0
  10. {use_computer-0.0.30 → use_computer-0.0.31}/.pre-commit-config.yaml +0 -0
  11. {use_computer-0.0.30 → use_computer-0.0.31}/README.md +0 -0
  12. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/__init__.py +0 -0
  13. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/accessibility.py +0 -0
  14. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/__init__.py +0 -0
  15. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/__init__.py +0 -0
  16. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/actions.py +0 -0
  17. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/agent.py +0 -0
  18. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/artifacts.py +0 -0
  19. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/desktop.py +0 -0
  20. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/final_state.py +0 -0
  21. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/prompts.py +0 -0
  22. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/recordings.py +0 -0
  23. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/sandbox.py +0 -0
  24. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/screenshots.py +0 -0
  25. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/base/trajectory.py +0 -0
  26. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/core.py +0 -0
  27. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/debug/actions.py +0 -0
  28. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/debug/models.py +0 -0
  29. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/ios/__init__.py +0 -0
  30. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/ios/agent.py +0 -0
  31. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/ios/tools.py +0 -0
  32. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/prompts/anthropic.txt +0 -0
  33. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/prompts/gemini.txt +0 -0
  34. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/prompts/ios.txt +0 -0
  35. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/prompts/openai.txt +0 -0
  36. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/prompts/pyautogui.txt +0 -0
  37. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/providers/__init__.py +0 -0
  38. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/providers/anthropic.py +0 -0
  39. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/providers/gemini.py +0 -0
  40. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/providers/generic.py +0 -0
  41. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/providers/openai.py +0 -0
  42. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/agents/types.py +0 -0
  43. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/ax_transpile.py +0 -0
  44. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/client.py +0 -0
  45. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/display.py +0 -0
  46. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/errors.py +0 -0
  47. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/__init__.py +0 -0
  48. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/agents.py +0 -0
  49. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/__init__.py +0 -0
  50. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/gateway.py +0 -0
  51. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/platforms/__init__.py +0 -0
  52. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/platforms/ios.py +0 -0
  53. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/platforms/macos.py +0 -0
  54. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/platforms/ubuntu.py +0 -0
  55. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/platforms/windows.py +0 -0
  56. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/setup_files.py +0 -0
  57. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/use_computer.py +0 -0
  58. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/utils/__init__.py +0 -0
  59. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/harbor/environment/utils/verifier.py +0 -0
  60. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/ios/__init__.py +0 -0
  61. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/ios/apps.py +0 -0
  62. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/ios/environment.py +0 -0
  63. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/ios/input.py +0 -0
  64. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/macos/__init__.py +0 -0
  65. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/macos/keyboard.py +0 -0
  66. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/macos/mouse.py +0 -0
  67. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/models.py +0 -0
  68. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/parsers.py +0 -0
  69. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/py.typed +0 -0
  70. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/recording.py +0 -0
  71. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/resources/__init__.py +0 -0
  72. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/resources/accessibility.py +0 -0
  73. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/resources/display.py +0 -0
  74. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/resources/recording.py +0 -0
  75. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/resources/screenshot.py +0 -0
  76. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/retry.py +0 -0
  77. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/sandbox.py +0 -0
  78. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/screenshot.py +0 -0
  79. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/simulators.py +0 -0
  80. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/__init__.py +0 -0
  81. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/pre_command.ps1 +0 -0
  82. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/pre_command.sh +0 -0
  83. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/task.toml +0 -0
  84. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_ios.sh +0 -0
  85. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_ios_nograder.sh +0 -0
  86. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_macos.sh +0 -0
  87. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_macos_check.sh +0 -0
  88. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_macos_nograder.sh +0 -0
  89. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_ubuntu.sh +0 -0
  90. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_ubuntu_check.sh +0 -0
  91. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_ubuntu_nograder.sh +0 -0
  92. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_windows.sh +0 -0
  93. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_windows_check.sh +0 -0
  94. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/tasks/templates/test_windows_nograder.sh +0 -0
  95. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/windows/__init__.py +0 -0
  96. {use_computer-0.0.30 → use_computer-0.0.31}/use_computer/windows/shell.py +0 -0
  97. {use_computer-0.0.30 → use_computer-0.0.31}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: use-computer
3
- Version: 0.0.30
3
+ Version: 0.0.31
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "use-computer"
7
- version = "0.0.30"
7
+ version = "0.0.31"
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"
@@ -25,12 +25,71 @@ for name in ["PIL", "openai", "anthropic", "google.genai", "litellm", "harbor",
25
25
  """
26
26
 
27
27
  AGENTS_SMOKE = r"""
28
+ import asyncio
28
29
  import importlib
29
30
  import importlib.util
31
+ import tempfile
32
+ from pathlib import Path
30
33
 
31
34
  assert importlib.util.find_spec("PIL") is not None
32
35
  for path in ["use_computer.agents", "use_computer.agents.debug"]:
33
36
  importlib.import_module(path)
37
+
38
+ from use_computer.agents.debug import DebugComputerAgent
39
+ from use_computer.models import ExecResult
40
+
41
+ PNG_BYTES = (
42
+ b"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x01\x00\x00\x00\x01"
43
+ b"\x08\x02\x00\x00\x00\x90wS\xde\x00\x00\x00\x0cIDAT\x08\xd7c\xf8\xff"
44
+ b"\xff?\x00\x05\xfe\x02\xfeA\xe2`\\\x00\x00\x00\x00IEND\xaeB`\x82"
45
+ )
46
+
47
+ class Recording:
48
+ async def start(self, name="trial"):
49
+ raise RuntimeError("recording disabled")
50
+
51
+ class Screenshot:
52
+ async def take_full_screen(self):
53
+ return PNG_BYTES
54
+
55
+ class Display:
56
+ async def get_windows(self):
57
+ return [{"role": "window", "title": "Fake"}]
58
+
59
+ class Mouse:
60
+ def __init__(self):
61
+ self.clicks = []
62
+
63
+ async def click(self, x, y, button="left", double=False):
64
+ self.clicks.append((x, y, button, double))
65
+
66
+ class Sandbox:
67
+ def __init__(self):
68
+ self.sandbox_id = "fake"
69
+ self.screenshot = Screenshot()
70
+ self.recording = Recording()
71
+ self.display = Display()
72
+ self.mouse = Mouse()
73
+ self.commands = []
74
+
75
+ async def exec_ssh(self, command, timeout=120):
76
+ self.commands.append(command)
77
+ return ExecResult(return_code=0, stdout="ok", stderr="")
78
+
79
+ with tempfile.TemporaryDirectory() as tmp:
80
+ root = Path(tmp)
81
+ sandbox = Sandbox()
82
+ result = asyncio.run(
83
+ DebugComputerAgent(max_steps=1).run(
84
+ "smoke",
85
+ sandbox=sandbox,
86
+ logs_dir=root / "agent",
87
+ task_dir=root / "task",
88
+ )
89
+ )
90
+ assert sandbox.mouse.clicks == [(960, 540, "left", False)]
91
+ assert sandbox.commands == ["echo hello world"]
92
+ assert result.final_message == "smoke"
34
93
  """
35
94
 
36
95
  HARBOR_SMOKE = r"""
@@ -6,5 +6,5 @@
6
6
  - `realistic: true` emits deterministic screenshot/action/exec traffic.
7
7
  - Default mode takes a screenshot, performs one simple action, and runs one exec.
8
8
 
9
- Direct SDK import path: `use_computer.agents.debug:DebugCUAAgent`.
9
+ Direct SDK import path: `use_computer.agents.debug:DebugComputerAgent`.
10
10
  Harbor wrapper import path: `use_computer.harbor.agents:DebugCUAAgent`.
@@ -0,0 +1,5 @@
1
+ """Debug agent package."""
2
+
3
+ from use_computer.agents.debug.agent import DebugComputerAgent, DebugCUAAgent
4
+
5
+ __all__ = ["DebugComputerAgent", "DebugCUAAgent"]
@@ -70,6 +70,7 @@ class DebugCUAAgent(BaseCUAAgent):
70
70
  context: Any,
71
71
  ) -> None:
72
72
  sandbox = await self.pre_run(environment)
73
+ self.steps[0]["message"] = instruction
73
74
 
74
75
  if self.replay:
75
76
  await self._run_replay(sandbox)
@@ -1,5 +0,0 @@
1
- """Debug agent package."""
2
-
3
- from use_computer.agents.debug.agent import DebugCUAAgent
4
-
5
- __all__ = ["DebugCUAAgent"]
File without changes
File without changes
File without changes