@@ -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
0 commit comments