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.
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/PKG-INFO +1 -1
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/PKG-INFO +1 -1
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/pyproject.toml +1 -1
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/__init__.py +2 -2
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/client.py +1 -1
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/ipc/handlers.py +18 -1
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/README.md +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/SOURCES.txt +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/dependency_links.txt +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/entry_points.txt +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/requires.txt +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/top_level.txt +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/collectors/__init__.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/collectors/files.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/collectors/process.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/collectors/screenshot.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/config.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/crucial.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/exceptions.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/git_ops.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/graphify.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/hooks/__init__.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/hooks/crucial_guard.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/ipc/__init__.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/ipc/electron_bridge.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/local_exec.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/__init__.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/envelope.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/requests.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/responses.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/models/snapshots.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/py.typed +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/run_auto.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/sse.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/test.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/test_pipeline.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/sdk/updater.py +0 -0
- {devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/setup.cfg +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "devops-bot-sdk"
|
|
7
|
-
version = "1.4.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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):
|
|
File without changes
|
|
File without changes
|
{devops_bot_sdk-1.4.11 → devops_bot_sdk-1.4.13}/devops_bot_sdk.egg-info/dependency_links.txt
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|