Skip to content

Commit b330e73

Browse files
committed
chore: remove Dependabot and sync OpenAPI snapshot
- Delete .github/dependabot.yml (manual version management) - Sync api/openapi.yaml from hawk main to fix contract snapshot
1 parent 986e635 commit b330e73

2 files changed

Lines changed: 118 additions & 0 deletions

File tree

api/openapi.yaml

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,59 @@ paths:
435435
schema:
436436
$ref: "#/components/schemas/Error"
437437

438+
/v1/status:
439+
get:
440+
operationId: statusSnapshot
441+
tags: [system]
442+
summary: Get a redacted daemon status snapshot
443+
responses:
444+
"200":
445+
description: Current daemon status
446+
content:
447+
application/json:
448+
schema:
449+
type: object
450+
451+
/v1/agent/status:
452+
get:
453+
operationId: agentLiveStatus
454+
tags: [system]
455+
summary: Live per-agent status for external mission-control dashboards
456+
description: |
457+
Returns machine-readable live state (working/idle/stale) for every
458+
active agent session, derived from daemon ground truth: an in-flight
459+
generation means working; recency of last use distinguishes idle from
460+
stale. Designed for supervisors such as terminal mission-control
461+
dashboards to poll.
462+
responses:
463+
"200":
464+
description: Live agent statuses
465+
content:
466+
application/json:
467+
schema:
468+
type: object
469+
properties:
470+
generated_at:
471+
type: string
472+
agents:
473+
type: array
474+
items:
475+
type: object
476+
properties:
477+
session_id:
478+
type: string
479+
agent:
480+
type: string
481+
state:
482+
type: string
483+
enum: [working, idle, stale]
484+
turns:
485+
type: integer
486+
cwd:
487+
type: string
488+
last_used:
489+
type: string
490+
438491
/v1/ready:
439492
get:
440493
operationId: readinessProbe
@@ -681,6 +734,68 @@ paths:
681734
schema:
682735
$ref: "#/components/schemas/Error"
683736

737+
/v1/sessions/{id}/lease:
738+
post:
739+
operationId: acquireSessionLease
740+
tags: [sessions]
741+
summary: Acquire a single-owner lease on a session
742+
parameters:
743+
- name: id
744+
in: path
745+
required: true
746+
schema:
747+
type: string
748+
responses:
749+
"200":
750+
description: Lease acquired
751+
content:
752+
application/json:
753+
schema:
754+
type: object
755+
properties:
756+
session_id:
757+
type: string
758+
fence:
759+
type: string
760+
"400":
761+
description: Invalid session id
762+
content:
763+
application/json:
764+
schema:
765+
$ref: "#/components/schemas/Error"
766+
delete:
767+
operationId: releaseSessionLease
768+
tags: [sessions]
769+
summary: Release a session lease (requires the current fence)
770+
parameters:
771+
- name: id
772+
in: path
773+
required: true
774+
schema:
775+
type: string
776+
- name: fence
777+
in: query
778+
schema:
779+
type: string
780+
responses:
781+
"200":
782+
description: Lease released
783+
content:
784+
application/json:
785+
schema:
786+
type: object
787+
properties:
788+
session_id:
789+
type: string
790+
released:
791+
type: string
792+
"409":
793+
description: Lease owned by another fence
794+
content:
795+
application/json:
796+
schema:
797+
$ref: "#/components/schemas/Error"
798+
684799
/v1/sessions/{id}/graph:
685800
get:
686801
operationId: getSessionGraph

tests/test_openapi_coverage.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ def test_every_daemon_path_has_an_sdk_support_decision() -> None:
1717
"/v1/sessions/{id}": "supported",
1818
"/v1/sessions/{id}/graph": "supported",
1919
"/v1/sessions/{id}/messages": "supported",
20+
"/v1/sessions/{id}/lease": "unsupported: session lease endpoint",
2021
"/v1/stats": "supported",
22+
"/v1/status": "unsupported: daemon status endpoint",
23+
"/v1/agent/status": "unsupported: agent status endpoint",
2124
"/v1/review": "unsupported: asynchronous review orchestration",
2225
"/v1/review/status": "unsupported: review worker status",
2326
"/v1/cancel": "unsupported: in-flight request cancellation",

0 commit comments

Comments
 (0)