devops-bot-sdk 1.4.58__tar.gz → 1.4.60__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.58 → devops_bot_sdk-1.4.60}/PKG-INFO +1 -1
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/devops_bot_sdk.egg-info/PKG-INFO +1 -1
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/pyproject.toml +1 -1
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/__init__.py +2 -2
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/client.py +1 -1
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/ipc/handlers.py +28 -11
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/README.md +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/devops_bot_sdk.egg-info/SOURCES.txt +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/devops_bot_sdk.egg-info/dependency_links.txt +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/devops_bot_sdk.egg-info/entry_points.txt +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/devops_bot_sdk.egg-info/requires.txt +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/devops_bot_sdk.egg-info/top_level.txt +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/collectors/__init__.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/collectors/files.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/collectors/process.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/collectors/screenshot.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/config.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/crucial.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/exceptions.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/git_ops.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/graphify.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/hooks/__init__.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/hooks/crucial_guard.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/ipc/__init__.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/ipc/electron_bridge.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/local_exec.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/models/__init__.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/models/envelope.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/models/requests.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/models/responses.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/models/snapshots.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/py.typed +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/run_auto.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/sse.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/test.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/test_pipeline.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/sdk/updater.py +0 -0
- {devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/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.60"
|
|
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.60
|
|
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.60"
|
|
34
34
|
__author__ = "AgentOS"
|
|
35
35
|
|
|
36
36
|
from sdk.client import BackendClient
|
|
@@ -573,27 +573,37 @@ def _build_validation_prompt(kind: str, jira_key: str, summary: str,
|
|
|
573
573
|
"Human Instructions:\n" + (human.strip() if human and human.strip() else "(none provided)"),
|
|
574
574
|
]
|
|
575
575
|
parts.append(
|
|
576
|
+
"Judge the ticket in the context of what it ACTUALLY asks for — it may be "
|
|
577
|
+
"software, documentation, analysis, Finance, HR or operations work. Do NOT "
|
|
578
|
+
"impose software requirements on a non-software ticket.\n\n"
|
|
576
579
|
"A VALID ticket MUST have:\n"
|
|
577
580
|
"- A clear, unambiguous goal and scope (no hand-waving).\n"
|
|
578
|
-
"-
|
|
579
|
-
"
|
|
580
|
-
"- Observable, testable acceptance criteria.\n"
|
|
581
|
+
"- A clearly-defined deliverable or outcome, and — when a location matters — "
|
|
582
|
+
"WHERE to produce it (a folder path, a repository, or a document).\n"
|
|
583
|
+
"- Observable, testable acceptance criteria (or an equally concrete definition of done).\n"
|
|
584
|
+
"- ONLY IF the work requires CODE CHANGES to a software project: the target "
|
|
585
|
+
"repository link(s) and/or file path(s), the branch/PR convention, and "
|
|
586
|
+
"build/run/test steps. Do NOT demand these for documentation, content, analysis "
|
|
587
|
+
"or other non-code deliverables.\n"
|
|
581
588
|
+ ("- Enough concrete detail to decompose into independent user stories.\n"
|
|
582
589
|
if kind == "epic" else
|
|
583
590
|
"- A clear 'As a <role>, I want <capability>, so that <benefit>' intent plus "
|
|
584
591
|
"testable acceptance criteria.\n")
|
|
585
|
-
+ "- Any THIRD-PARTY INTEGRATION or human-effort dependency
|
|
586
|
-
"credentials, external accounts, secrets, manual
|
|
587
|
-
"MUST be named
|
|
588
|
-
"
|
|
592
|
+
+ "- Any THIRD-PARTY INTEGRATION or human-effort dependency the work GENUINELY "
|
|
593
|
+
"needs (API keys, OAuth credentials, external accounts, secrets, manual "
|
|
594
|
+
"provisioning, DNS, billing) MUST be named WITH who provides it; if such a "
|
|
595
|
+
"REQUIRED dependency is undefined, REJECT.\n\n"
|
|
596
|
+
"A ticket that clearly states its deliverable and where to produce it is VALID "
|
|
597
|
+
"even without repository/branch details. Reject only for genuinely missing or "
|
|
598
|
+
"ambiguous information — not for absent software details the task does not need.\n\n"
|
|
589
599
|
"Output ONLY a fenced ```json block, nothing else:\n"
|
|
590
600
|
"{\n"
|
|
591
601
|
' "valid": true or false,\n'
|
|
592
602
|
' "comment": "When invalid: a concise, TECHNICAL rejection that lists EXACTLY '
|
|
593
|
-
"what is missing or ambiguous and must be added
|
|
594
|
-
"
|
|
595
|
-
"
|
|
596
|
-
'
|
|
603
|
+
"what is missing or ambiguous and must be added, in terms appropriate to the "
|
|
604
|
+
"ticket's domain (for software: API contract, data model/schema, auth flow, "
|
|
605
|
+
"env/config, target repository/branch; for other work: the missing deliverable, "
|
|
606
|
+
'location, criteria, or dependency). When valid: empty string."\n'
|
|
597
607
|
"}"
|
|
598
608
|
)
|
|
599
609
|
return "\n\n".join(parts)
|
|
@@ -651,6 +661,13 @@ async def _validate_ticket_or_reject(
|
|
|
651
661
|
"criteria; and the credentials/ownership for any third-party integration.")
|
|
652
662
|
body = f"{_AI_COMMENT_LABEL}\n\n{comment or fallback}"
|
|
653
663
|
await client.add_comment(tid, body)
|
|
664
|
+
# The backend only accepts a Backlog transition when a timer is running, so start
|
|
665
|
+
# one (mark In Progress) then park it — otherwise move_to_backlog 404s with
|
|
666
|
+
# "No running timer found". This In-Progress blip is the reject/park path only.
|
|
667
|
+
try:
|
|
668
|
+
await client.mark_in_progress(tid)
|
|
669
|
+
except Exception: # noqa: BLE001
|
|
670
|
+
pass
|
|
654
671
|
await client.move_to_backlog(tid)
|
|
655
672
|
await client.log_activity(f"{kind} {jira_key}: REJECTED by validation gate — commented + moved to Backlog")
|
|
656
673
|
await send(Envelope(
|
|
File without changes
|
|
File without changes
|
{devops_bot_sdk-1.4.58 → devops_bot_sdk-1.4.60}/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
|