devops-bot-sdk 1.4.11__tar.gz → 1.4.13__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 (38) hide show
  1. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/PKG-INFO +1 -1
  2. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/PKG-INFO +1 -1
  3. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/pyproject.toml +1 -1
  4. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/__init__.py +2 -2
  5. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/client.py +1 -1
  6. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/ipc/handlers.py +18 -1
  7. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/README.md +0 -0
  8. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/SOURCES.txt +0 -0
  9. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/dependency_links.txt +0 -0
  10. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/entry_points.txt +0 -0
  11. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/requires.txt +0 -0
  12. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/top_level.txt +0 -0
  13. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/collectors/__init__.py +0 -0
  14. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/collectors/files.py +0 -0
  15. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/collectors/process.py +0 -0
  16. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/collectors/screenshot.py +0 -0
  17. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/config.py +0 -0
  18. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/crucial.py +0 -0
  19. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/exceptions.py +0 -0
  20. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/git_ops.py +0 -0
  21. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/graphify.py +0 -0
  22. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/hooks/__init__.py +0 -0
  23. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/hooks/crucial_guard.py +0 -0
  24. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/ipc/__init__.py +0 -0
  25. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/ipc/electron_bridge.py +0 -0
  26. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/local_exec.py +0 -0
  27. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/__init__.py +0 -0
  28. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/envelope.py +0 -0
  29. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/requests.py +0 -0
  30. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/responses.py +0 -0
  31. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/snapshots.py +0 -0
  32. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/py.typed +0 -0
  33. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/run_auto.py +0 -0
  34. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/sse.py +0 -0
  35. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/test.py +0 -0
  36. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/test_pipeline.py +0 -0
  37. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/updater.py +0 -0
  38. {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devops-bot-sdk
3
- Version: 1.4.11
3
+ Version: 1.4.13
4
4
  Summary: DevOps Bot Desktop SDK — thin client for the AgentOS Electron desktop app
5
5
  Author: noumanaziz2128
6
6
  License-Expression: LicenseRef-Proprietary
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devops-bot-sdk
3
- Version: 1.4.11
3
+ Version: 1.4.13
4
4
  Summary: DevOps Bot Desktop SDK — thin client for the AgentOS Electron desktop app
5
5
  Author: noumanaziz2128
6
6
  License-Expression: LicenseRef-Proprietary
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "devops-bot-sdk"
7
- version = "1.4.11"
7
+ version = "1.4.13"
8
8
  description = "DevOps Bot Desktop SDK — thin client for the AgentOS Electron desktop app"
9
9
  readme = "README.md"
10
10
  license = "LicenseRef-Proprietary"
@@ -1,6 +1,6 @@
1
1
  """AgentOS Desktop SDK — thin HTTPS/SSE client for the Electron app.
2
2
 
3
- Version: 1.4.11
3
+ Version: 1.4.13
4
4
 
5
5
  Public surface:
6
6
  BackendClient.from_config() — create client from ~/.agentos/config.toml
@@ -30,7 +30,7 @@ Rules:
30
30
  - All data egress through submit_webhook only
31
31
  """
32
32
 
33
- __version__ = "1.4.11"
33
+ __version__ = "1.4.13"
34
34
  __author__ = "AgentOS"
35
35
 
36
36
  from sdk.client import BackendClient
@@ -36,7 +36,7 @@ from sdk.sse import _check_status, stream_with_reconnect
36
36
 
37
37
  logger = logging.getLogger(__name__)
38
38
 
39
- SDK_VERSION = "1.4.11"
39
+ SDK_VERSION = "1.4.13"
40
40
  _POLL_INTERVAL = 3.0
41
41
  _POLL_TIMEOUT = 600.0
42
42
  _ORCHESTRATE_TIMEOUT = 2700.0 # 45 min — covers approval wait + VPS execution time
@@ -1204,7 +1204,13 @@ _PATH_ROOTS = (
1204
1204
  )
1205
1205
  _ABS_PATH_RE = re.compile(rf"(?<![\w.])/(?:{_PATH_ROOTS})(?:/[A-Za-z0-9._\-]+)+")
1206
1206
  _HOME_PATH_RE = re.compile(r"(?<![\w.])~(?:/[A-Za-z0-9._\-]+)+")
1207
- _WIN_PATH_RE = re.compile(r"[A-Za-z]:\\(?:[^\s\\/:*?\"<>|]+\\?)+")
1207
+ # Windows path. Folder names may contain SPACES (e.g. "BA activities clone"), so a
1208
+ # segment is any run of valid path chars (everything except \ / : * ? " < > | and
1209
+ # newline) up to the next separator — it must NOT stop at the first space.
1210
+ _WIN_PATH_RE = re.compile(r"[A-Za-z]:\\(?:[^\\/:*?\"<>|\r\n]+\\?)+")
1211
+ # A QUOTED path (single/double/back quotes) — the reliable way to give a path that
1212
+ # contains spaces, on any OS. Captures the full content between the quotes.
1213
+ _QUOTED_PATH_RE = re.compile(r"""["'`]\s*((?:[A-Za-z]:\\|~/|/)[^"'`\r\n]+?)\s*["'`]""")
1208
1214
  _FILE_SEG_RE = re.compile(r"\.[A-Za-z0-9]{1,6}$")
1209
1215
 
1210
1216
 
@@ -1241,6 +1247,13 @@ def _extract_path_from_text(text: str | None) -> str | None:
1241
1247
  return None
1242
1248
  from pathlib import Path
1243
1249
 
1250
+ # Quoted path first — handles spaces deterministically (any OS).
1251
+ m = _QUOTED_PATH_RE.search(text)
1252
+ if m:
1253
+ raw = _clean_path(m.group(1))
1254
+ if raw.startswith("~/"):
1255
+ return _dir_of(str(Path.home() / raw[2:])) or None
1256
+ return _dir_of(raw) or None
1244
1257
  m = _ABS_PATH_RE.search(text)
1245
1258
  if m:
1246
1259
  return _dir_of(_clean_path(m.group(0))) or None
@@ -1267,6 +1280,10 @@ def _extract_all_paths(text: str | None) -> list[str]:
1267
1280
  from pathlib import Path
1268
1281
 
1269
1282
  found: list[tuple[int, str]] = []
1283
+ for m in _QUOTED_PATH_RE.finditer(text):
1284
+ raw = _clean_path(m.group(1))
1285
+ p = str(Path.home() / raw[2:]) if raw.startswith("~/") else raw
1286
+ found.append((m.start(), _dir_of(p)))
1270
1287
  for m in _ABS_PATH_RE.finditer(text):
1271
1288
  found.append((m.start(), _dir_of(_clean_path(m.group(0)))))
1272
1289
  for m in _HOME_PATH_RE.finditer(text):