Add event-driven reporting and durable failure recovery hooks

This commit is contained in:
aiagent
2026-10-19 03:13:33 -07:00
parent 579dece104
commit a4cf70d82b
18 changed files with 711 additions and 8 deletions
+4 -1
View File
@@ -186,6 +186,8 @@ class Handler(BaseHTTPRequestHandler):
state['primary_session_id'] = self.server.primary_session_id
state['metrics'] = self.server.metrics.snapshot()
self.output(200, state)
elif parts.path == '/api/hook-notifications' and not parts.query:
self.output(200, self.server.store.hook_notifications())
elif parts.path == '/api/messages':
query = parse_qs(parts.query, strict_parsing=True)
if set(query) != {'session_id'} or len(query['session_id']) != 1:
@@ -243,7 +245,8 @@ class Handler(BaseHTTPRequestHandler):
if not isinstance(data, dict):
raise Invalid('object required')
store = self.server.store
routes = {'/api/sessions':store.session, '/api/session-requests':store.request,
routes = {'/api/hooks':store.hook, '/api/hooks/ack':store.hook_ack,
'/api/sessions':store.session, '/api/session-requests':store.request,
'/api/tasks':store.task, '/api/messages':store.send,
'/api/worker/claim':store.claim, '/api/worker/renew':store.renew, '/api/worker/complete':store.complete,
'/api/events':store.event, '/api/mirror':store.mirror, '/api/worker/start':store.start,