cua-computer 0.4.7__tar.gz → 0.4.8__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 (37) hide show
  1. {cua_computer-0.4.7 → cua_computer-0.4.8}/PKG-INFO +1 -1
  2. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/docker/provider.py +28 -8
  3. {cua_computer-0.4.7 → cua_computer-0.4.8}/pyproject.toml +3 -3
  4. {cua_computer-0.4.7 → cua_computer-0.4.8}/README.md +0 -0
  5. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/__init__.py +0 -0
  6. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/computer.py +0 -0
  7. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/diorama_computer.py +0 -0
  8. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/helpers.py +0 -0
  9. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/interface/__init__.py +0 -0
  10. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/interface/base.py +0 -0
  11. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/interface/factory.py +0 -0
  12. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/interface/generic.py +0 -0
  13. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/interface/linux.py +0 -0
  14. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/interface/macos.py +0 -0
  15. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/interface/models.py +0 -0
  16. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/interface/windows.py +0 -0
  17. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/logger.py +0 -0
  18. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/models.py +0 -0
  19. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/__init__.py +0 -0
  20. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/base.py +0 -0
  21. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/cloud/__init__.py +0 -0
  22. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/cloud/provider.py +0 -0
  23. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/docker/__init__.py +0 -0
  24. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/factory.py +0 -0
  25. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/lume/__init__.py +0 -0
  26. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/lume/provider.py +0 -0
  27. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/lume_api.py +0 -0
  28. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/lumier/__init__.py +0 -0
  29. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/lumier/provider.py +0 -0
  30. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/winsandbox/__init__.py +0 -0
  31. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/winsandbox/provider.py +0 -0
  32. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/providers/winsandbox/setup_script.ps1 +0 -0
  33. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/ui/__init__.py +0 -0
  34. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/ui/__main__.py +0 -0
  35. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/ui/gradio/__init__.py +0 -0
  36. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/ui/gradio/app.py +0 -0
  37. {cua_computer-0.4.7 → cua_computer-0.4.8}/computer/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cua-computer
3
- Version: 0.4.7
3
+ Version: 0.4.8
4
4
  Summary: Computer-Use Interface (CUI) framework powering Cua
5
5
  Author-Email: TryCua <gh@trycua.com>
6
6
  Requires-Python: >=3.11
@@ -36,7 +36,7 @@ class DockerProvider(BaseVMProvider):
36
36
  """
37
37
 
38
38
  def __init__(
39
- self,
39
+ self,
40
40
  port: Optional[int] = 8000,
41
41
  host: str = "localhost",
42
42
  storage: Optional[str] = None,
@@ -47,13 +47,16 @@ class DockerProvider(BaseVMProvider):
47
47
  vnc_port: Optional[int] = 6901,
48
48
  ):
49
49
  """Initialize the Docker VM Provider.
50
-
50
+
51
51
  Args:
52
52
  port: Currently unused (VM provider port)
53
53
  host: Hostname for the API server (default: localhost)
54
54
  storage: Path for persistent VM storage
55
55
  shared_path: Path for shared folder between host and container
56
56
  image: Docker image to use (default: "trycua/cua-ubuntu:latest")
57
+ Supported images:
58
+ - "trycua/cua-ubuntu:latest" (Kasm-based)
59
+ - "trycua/cua-docker-xfce:latest" (vanilla XFCE)
57
60
  verbose: Enable verbose logging
58
61
  ephemeral: Use ephemeral (temporary) storage
59
62
  vnc_port: Port for VNC interface (default: 6901)
@@ -62,19 +65,35 @@ class DockerProvider(BaseVMProvider):
62
65
  self.api_port = 8000
63
66
  self.vnc_port = vnc_port
64
67
  self.ephemeral = ephemeral
65
-
68
+
66
69
  # Handle ephemeral storage (temporary directory)
67
70
  if ephemeral:
68
71
  self.storage = "ephemeral"
69
72
  else:
70
73
  self.storage = storage
71
-
74
+
72
75
  self.shared_path = shared_path
73
76
  self.image = image
74
77
  self.verbose = verbose
75
78
  self._container_id = None
76
79
  self._running_containers = {} # Track running containers by name
80
+
81
+ # Detect image type and configure user directory accordingly
82
+ self._detect_image_config()
77
83
 
84
+ def _detect_image_config(self):
85
+ """Detect image type and configure paths accordingly."""
86
+ # Detect if this is a docker-xfce image or Kasm image
87
+ if "docker-xfce" in self.image.lower() or "xfce" in self.image.lower():
88
+ self._home_dir = "/home/cua"
89
+ self._image_type = "docker-xfce"
90
+ logger.info(f"Detected docker-xfce image: using {self._home_dir}")
91
+ else:
92
+ # Default to Kasm configuration
93
+ self._home_dir = "/home/kasm-user"
94
+ self._image_type = "kasm"
95
+ logger.info(f"Detected Kasm image: using {self._home_dir}")
96
+
78
97
  @property
79
98
  def provider_type(self) -> VMProviderType:
80
99
  """Return the provider type."""
@@ -277,12 +296,13 @@ class DockerProvider(BaseVMProvider):
277
296
  # Add volume mounts if storage is specified
278
297
  storage_path = storage or self.storage
279
298
  if storage_path and storage_path != "ephemeral":
280
- # Mount storage directory
281
- cmd.extend(["-v", f"{storage_path}:/home/kasm-user/storage"])
282
-
299
+ # Mount storage directory using detected home directory
300
+ cmd.extend(["-v", f"{storage_path}:{self._home_dir}/storage"])
301
+
283
302
  # Add shared path if specified
284
303
  if self.shared_path:
285
- cmd.extend(["-v", f"{self.shared_path}:/home/kasm-user/shared"])
304
+ # Mount shared directory using detected home directory
305
+ cmd.extend(["-v", f"{self.shared_path}:{self._home_dir}/shared"])
286
306
 
287
307
  # Add environment variables
288
308
  cmd.extend(["-e", "VNC_PW=password"]) # Set VNC password
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
6
6
 
7
7
  [project]
8
8
  name = "cua-computer"
9
- version = "0.4.7"
9
+ version = "0.4.8"
10
10
  description = "Computer-Use Interface (CUI) framework powering Cua"
11
11
  readme = "README.md"
12
12
  authors = [
@@ -57,7 +57,7 @@ target-version = [
57
57
 
58
58
  [tool.ruff]
59
59
  line-length = 100
60
- target-version = "0.4.7"
60
+ target-version = "py311"
61
61
  select = [
62
62
  "E",
63
63
  "F",
@@ -71,7 +71,7 @@ docstring-code-format = true
71
71
 
72
72
  [tool.mypy]
73
73
  strict = true
74
- python_version = "0.4.7"
74
+ python_version = "3.11"
75
75
  ignore_missing_imports = true
76
76
  disallow_untyped_defs = true
77
77
  check_untyped_defs = true
File without changes