devops-bot-sdk 1.2.0__tar.gz → 1.2.1__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.2.0 → devops_bot_sdk-1.2.1}/PKG-INFO +1 -1
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/devops_bot_sdk.egg-info/PKG-INFO +1 -1
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/pyproject.toml +1 -1
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/ipc/handlers.py +23 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/README.md +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/devops_bot_sdk.egg-info/SOURCES.txt +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/devops_bot_sdk.egg-info/dependency_links.txt +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/devops_bot_sdk.egg-info/entry_points.txt +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/devops_bot_sdk.egg-info/requires.txt +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/devops_bot_sdk.egg-info/top_level.txt +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/__init__.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/client.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/collectors/__init__.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/collectors/files.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/collectors/process.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/collectors/screenshot.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/config.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/exceptions.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/ipc/__init__.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/ipc/electron_bridge.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/models/__init__.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/models/envelope.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/models/requests.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/models/responses.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/models/snapshots.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/py.typed +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/sse.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/sdk/test.py +0 -0
- {devops_bot_sdk-1.2.0 → devops_bot_sdk-1.2.1}/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.2.
|
|
7
|
+
version = "1.2.1"
|
|
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"
|
|
@@ -11,6 +11,7 @@ Channel contract:
|
|
|
11
11
|
pipeline:run payload: {user_input, project_path?, dev_engine?, model?,
|
|
12
12
|
apply_diffs?, jira_task_id?, role_slug?, user_id?, thread_id?}
|
|
13
13
|
pipeline:stream payload: same as pipeline:run
|
|
14
|
+
orchestrator:approve payload: {task_id, decision: approved|rejected, note?, thread_id?}
|
|
14
15
|
collectors:upload payload: {type, token, paths?: [...], project}
|
|
15
16
|
onboarding:step payload: {step, input}
|
|
16
17
|
auth:oauth_start payload: {service}
|
|
@@ -129,6 +130,27 @@ async def handle_pipeline_run(
|
|
|
129
130
|
await send(_error_envelope(thread_id, exc).model_dump())
|
|
130
131
|
|
|
131
132
|
|
|
133
|
+
async def handle_orchestrator_approve(
|
|
134
|
+
client: BackendClient, payload: dict, send: Callable
|
|
135
|
+
) -> None:
|
|
136
|
+
"""orchestrator:approve — record an approval/rejection on a pending gate.
|
|
137
|
+
|
|
138
|
+
POST /orchestrator/tasks/{task_id}/approve. Emits an `orchestrator.approved`
|
|
139
|
+
envelope with the backend result (or `error`).
|
|
140
|
+
"""
|
|
141
|
+
thread_id = str(payload.get("thread_id", payload.get("task_id", "")) or "")
|
|
142
|
+
task_id = str(payload.get("task_id", ""))
|
|
143
|
+
decision = str(payload.get("decision", "approved"))
|
|
144
|
+
note = str(payload.get("note", ""))
|
|
145
|
+
try:
|
|
146
|
+
result = await client.approve_task(task_id, decision, note)
|
|
147
|
+
await send(Envelope(
|
|
148
|
+
type="orchestrator.approved", thread_id=thread_id, data=result,
|
|
149
|
+
).model_dump())
|
|
150
|
+
except Exception as exc:
|
|
151
|
+
await send(_error_envelope(thread_id, exc).model_dump())
|
|
152
|
+
|
|
153
|
+
|
|
132
154
|
async def handle_collectors_upload(
|
|
133
155
|
client: BackendClient, payload: dict, send: Callable
|
|
134
156
|
) -> None:
|
|
@@ -214,6 +236,7 @@ CHANNELS: dict[str, Callable] = {
|
|
|
214
236
|
"orchestrator:stream": handle_orchestrator_run,
|
|
215
237
|
"pipeline:run": handle_pipeline_run,
|
|
216
238
|
"pipeline:stream": handle_pipeline_run,
|
|
239
|
+
"orchestrator:approve": handle_orchestrator_approve,
|
|
217
240
|
"collectors:upload": handle_collectors_upload,
|
|
218
241
|
"onboarding:step": handle_onboarding_step,
|
|
219
242
|
"auth:oauth_start": handle_oauth_start,
|
|
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
|