devops-bot-sdk 1.4.76__tar.gz → 1.4.78__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.76 → devops_bot_sdk-1.4.78}/PKG-INFO +1 -1
  2. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/devops_bot_sdk.egg-info/PKG-INFO +1 -1
  3. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/pyproject.toml +1 -1
  4. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/__init__.py +2 -2
  5. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/client.py +1 -1
  6. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/ipc/handlers.py +12 -3
  7. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/README.md +0 -0
  8. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/devops_bot_sdk.egg-info/SOURCES.txt +0 -0
  9. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/devops_bot_sdk.egg-info/dependency_links.txt +0 -0
  10. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/devops_bot_sdk.egg-info/entry_points.txt +0 -0
  11. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/devops_bot_sdk.egg-info/requires.txt +0 -0
  12. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/devops_bot_sdk.egg-info/top_level.txt +0 -0
  13. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/collectors/__init__.py +0 -0
  14. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/collectors/files.py +0 -0
  15. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/collectors/process.py +0 -0
  16. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/collectors/screenshot.py +0 -0
  17. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/config.py +0 -0
  18. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/crucial.py +0 -0
  19. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/exceptions.py +0 -0
  20. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/git_ops.py +0 -0
  21. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/graphify.py +0 -0
  22. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/hooks/__init__.py +0 -0
  23. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/hooks/crucial_guard.py +0 -0
  24. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/ipc/__init__.py +0 -0
  25. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/ipc/electron_bridge.py +0 -0
  26. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/local_exec.py +0 -0
  27. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/models/__init__.py +0 -0
  28. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/models/envelope.py +0 -0
  29. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/models/requests.py +0 -0
  30. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/models/responses.py +0 -0
  31. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/models/snapshots.py +0 -0
  32. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/py.typed +0 -0
  33. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/run_auto.py +0 -0
  34. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/sse.py +0 -0
  35. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/test.py +0 -0
  36. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/test_pipeline.py +0 -0
  37. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/sdk/updater.py +0 -0
  38. {devops_bot_sdk-1.4.76 → devops_bot_sdk-1.4.78}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devops-bot-sdk
3
- Version: 1.4.76
3
+ Version: 1.4.78
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.76
3
+ Version: 1.4.78
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.76"
7
+ version = "1.4.78"
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.76
3
+ Version: 1.4.78
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.76"
33
+ __version__ = "1.4.78"
34
34
  __author__ = "AgentOS"
35
35
 
36
36
  from sdk.client import BackendClient
@@ -58,7 +58,7 @@ def _notify_status(task_id: str, status: str) -> None:
58
58
  pass
59
59
 
60
60
 
61
- SDK_VERSION = "1.4.76"
61
+ SDK_VERSION = "1.4.78"
62
62
  _POLL_INTERVAL = 3.0
63
63
  _POLL_TIMEOUT = 600.0
64
64
  _ORCHESTRATE_TIMEOUT = 2700.0 # 45 min — covers approval wait + VPS execution time
@@ -2490,15 +2490,19 @@ _PATH_ROOTS = (
2490
2490
  # end-of-line. The root is anchored to a known top-level dir to limit false
2491
2491
  # positives in prose; for an inline path followed by other words on the SAME
2492
2492
  # line, quote it (see _QUOTED_PATH_RE) to avoid grabbing the trailing text.
2493
- _ABS_PATH_RE = re.compile(rf"(?<![\w.])/(?:{_PATH_ROOTS})(?:/[A-Za-z0-9._\- ]+)+")
2493
+ _ABS_PATH_RE = re.compile(rf"(?<![\w.:])/(?:{_PATH_ROOTS})(?:/[A-Za-z0-9._\- ]+)+")
2494
2494
  _HOME_PATH_RE = re.compile(r"(?<![\w.])~(?:/[A-Za-z0-9._\- ]+)+")
2495
2495
  # Windows path. Folder names may contain SPACES (e.g. "BA activities clone"), so a
2496
2496
  # segment is any run of valid path chars (everything except \ / : * ? " < > | and
2497
2497
  # newline) up to the next separator — it must NOT stop at the first space.
2498
2498
  _WIN_PATH_RE = re.compile(r"[A-Za-z]:\\(?:[^\\/:*?\"<>|\r\n]+\\?)+")
2499
+ # Windows path written with FORWARD slashes (e.g. C:/Users/me/new_tasks) — common on
2500
+ # Windows. Unquoted form disallows spaces (quote it if a folder has spaces) so it
2501
+ # stops cleanly at the end of the path instead of swallowing trailing prose.
2502
+ _WIN_FS_PATH_RE = re.compile(r"[A-Za-z]:/(?:[A-Za-z0-9._\-]+/?)+")
2499
2503
  # A QUOTED path (single/double/back quotes) — the reliable way to give a path that
2500
- # contains spaces, on any OS. Captures the full content between the quotes.
2501
- _QUOTED_PATH_RE = re.compile(r"""["'`]\s*((?:[A-Za-z]:\\|~/|/)[^"'`\r\n]+?)\s*["'`]""")
2504
+ # contains spaces, on any OS. Accepts a drive letter with EITHER separator (C:\ or C:/).
2505
+ _QUOTED_PATH_RE = re.compile(r"""["'`]\s*((?:[A-Za-z]:[\\/]|~/|/)[^"'`\r\n]+?)\s*["'`]""")
2502
2506
  _FILE_SEG_RE = re.compile(r"\.[A-Za-z0-9]{1,6}$")
2503
2507
 
2504
2508
 
@@ -2550,6 +2554,9 @@ def _extract_path_from_text(text: str | None) -> str | None:
2550
2554
  p = _clean_path(m.group(0))
2551
2555
  return _dir_of(str(Path.home() / p[2:])) or None
2552
2556
  m = _WIN_PATH_RE.search(text)
2557
+ if m:
2558
+ return _dir_of(_clean_path(m.group(0))) or None
2559
+ m = _WIN_FS_PATH_RE.search(text)
2553
2560
  if m:
2554
2561
  return _dir_of(_clean_path(m.group(0))) or None
2555
2562
  return None
@@ -2579,6 +2586,8 @@ def _extract_all_paths(text: str | None) -> list[str]:
2579
2586
  found.append((m.start(), _dir_of(str(Path.home() / p[2:]))))
2580
2587
  for m in _WIN_PATH_RE.finditer(text):
2581
2588
  found.append((m.start(), _dir_of(_clean_path(m.group(0)))))
2589
+ for m in _WIN_FS_PATH_RE.finditer(text):
2590
+ found.append((m.start(), _dir_of(_clean_path(m.group(0)))))
2582
2591
  found.sort(key=lambda x: x[0])
2583
2592
  out: list[str] = []
2584
2593
  for _, p in found: