devops-bot-sdk 1.4.88__tar.gz → 1.4.90__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.88 → devops_bot_sdk-1.4.90}/PKG-INFO +1 -1
  2. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/devops_bot_sdk.egg-info/PKG-INFO +1 -1
  3. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/pyproject.toml +1 -1
  4. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/__init__.py +2 -2
  5. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/client.py +5 -2
  6. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/ipc/handlers.py +7 -5
  7. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/README.md +0 -0
  8. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/devops_bot_sdk.egg-info/SOURCES.txt +0 -0
  9. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/devops_bot_sdk.egg-info/dependency_links.txt +0 -0
  10. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/devops_bot_sdk.egg-info/entry_points.txt +0 -0
  11. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/devops_bot_sdk.egg-info/requires.txt +0 -0
  12. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/devops_bot_sdk.egg-info/top_level.txt +0 -0
  13. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/collectors/__init__.py +0 -0
  14. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/collectors/files.py +0 -0
  15. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/collectors/process.py +0 -0
  16. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/collectors/screenshot.py +0 -0
  17. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/config.py +0 -0
  18. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/crucial.py +0 -0
  19. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/exceptions.py +0 -0
  20. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/git_ops.py +0 -0
  21. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/graphify.py +0 -0
  22. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/hooks/__init__.py +0 -0
  23. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/hooks/crucial_guard.py +0 -0
  24. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/ipc/__init__.py +0 -0
  25. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/ipc/electron_bridge.py +0 -0
  26. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/local_exec.py +0 -0
  27. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/models/__init__.py +0 -0
  28. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/models/envelope.py +0 -0
  29. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/models/requests.py +0 -0
  30. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/models/responses.py +0 -0
  31. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/models/snapshots.py +0 -0
  32. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/py.typed +0 -0
  33. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/run_auto.py +0 -0
  34. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/sse.py +0 -0
  35. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/test.py +0 -0
  36. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/test_pipeline.py +0 -0
  37. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/sdk/updater.py +0 -0
  38. {devops_bot_sdk-1.4.88 → devops_bot_sdk-1.4.90}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devops-bot-sdk
3
- Version: 1.4.88
3
+ Version: 1.4.90
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.88
3
+ Version: 1.4.90
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.88"
7
+ version = "1.4.90"
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.88
3
+ Version: 1.4.90
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.88"
33
+ __version__ = "1.4.90"
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.88"
61
+ SDK_VERSION = "1.4.90"
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
@@ -848,7 +848,10 @@ class BackendClient:
848
848
  url = f"{BE_DEFAULT_URL.rstrip('/')}/tasks-ml"
849
849
  headers = {k: v for k, v in self._headers.items() if k.lower() != "content-type"}
850
850
  headers.update({"accept": "*/*", "developer-name": "null", "product": ""})
851
- files = [(k, (None, str(v))) for k, v in fields.items() if v is not None]
851
+ # POST /tasks-ml must never carry an SLA target the backend validator
852
+ # rejects any value not shaped like "8h", and SLA is not ours to set.
853
+ files = [(k, (None, str(v))) for k, v in fields.items()
854
+ if v is not None and k not in ("slaTarget", "slaTargets")]
852
855
  for m in (model_used or []):
853
856
  files.append(("modelUsed[]", (None, str(m)))) # [] → backend parses as array
854
857
  try:
@@ -648,18 +648,20 @@ def _extract_email(text: str | None) -> str | None:
648
648
  return m.group(0).strip().lower() if m else None
649
649
 
650
650
 
651
- # Time/SLA fields inherited from the parent Epic onto each generated child.
651
+ # Time fields inherited from the parent Epic onto each generated child.
652
652
  # Passed through VERBATIM (exactly as the backend returned them on GET) so the
653
653
  # POST never carries a reformatted-and-wrong date; absent/empty ones are dropped.
654
- _EPIC_TIME_FIELDS = ("startDate", "endDate", "dueDate", "slaTarget", "slaTargets")
654
+ # slaTarget[s] are deliberately excluded: POST /tasks-ml must never receive an
655
+ # SLA target (its validator rejects anything not shaped like "8h").
656
+ _EPIC_TIME_FIELDS = ("startDate", "endDate", "dueDate")
655
657
 
656
658
 
657
659
  def _epic_inherited_fields(task: dict) -> dict:
658
660
  """Parent-Epic fields a child Task should inherit (drops empties).
659
661
 
660
- Includes the Epic's time/SLA targets (startDate, endDate, dueDate,
661
- slaTarget[s]) when present, so generated stories/tasks carry the same
662
- deadlines and SL targets instead of being created without any.
662
+ Includes the Epic's time targets (startDate, endDate, dueDate) when
663
+ present, so generated stories/tasks carry the same deadlines instead of
664
+ being created without any.
663
665
  """
664
666
  fields = {
665
667
  "projectKey": task.get("projectKey"),