feat(api): implement websocket gateway and event streaming for phase 1
This commit is contained in:
@@ -22,7 +22,7 @@ This file tracks all major tracks for the project. Each track has its own detail
|
||||
*Link: [./tracks/tool_bias_tuning_20260308/](./tracks/tool_bias_tuning_20260308/)*
|
||||
*Goal: Influence agent tool selection via a weighting system. Implement semantic nudges in tool descriptions and a dynamic "Tooling Strategy" section in the system prompt. Includes GUI badges and sliders for weight adjustment.*
|
||||
|
||||
4. [ ] **Track: Expanded Hook API & Headless Orchestration**
|
||||
4. [~] **Track: Expanded Hook API & Headless Orchestration**
|
||||
*Link: [./tracks/hook_api_expansion_20260308/](./tracks/hook_api_expansion_20260308/)*
|
||||
*Goal: Maximize internal state exposure and provide comprehensive control endpoints (worker spawn/kill, pipeline pause/resume, DAG mutation) via the Hook API. Implement WebSocket-based real-time event streaming.*
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
# Implementation Plan: Expanded Hook API & Headless Orchestration
|
||||
|
||||
## Phase 1: WebSocket Infrastructure & Event Streaming
|
||||
- [ ] Task: Implement the WebSocket gateway.
|
||||
- [ ] Integrate a lightweight WebSocket library (e.g., `websockets` or `simple-websocket`).
|
||||
- [ ] Create a dedicated `WebSocketServer` class in `src/api_hooks.py` that runs on a separate port (e.g., 9000).
|
||||
- [ ] Implement a basic subscription mechanism for different event channels.
|
||||
- [ ] Task: Connect the event queue to the WebSocket stream.
|
||||
- [ ] Update `AsyncEventQueue` to broadcast events to connected WebSocket clients.
|
||||
- [ ] Add high-frequency telemetry (FPS, CPU) to the event stream.
|
||||
- [ ] Task: Write unit tests for WebSocket connection and event broadcasting.
|
||||
- [x] Task: Implement the WebSocket gateway.
|
||||
- [x] Integrate a lightweight WebSocket library (e.g., `websockets` or `simple-websocket`).
|
||||
- [x] Create a dedicated `WebSocketServer` class in `src/api_hooks.py` that runs on a separate port (e.g., 9000).
|
||||
- [x] Implement a basic subscription mechanism for different event channels.
|
||||
- [x] Task: Connect the event queue to the WebSocket stream.
|
||||
- [x] Update `AsyncEventQueue` to broadcast events to connected WebSocket clients.
|
||||
- [x] Add high-frequency telemetry (FPS, CPU) to the event stream.
|
||||
- [x] Task: Write unit tests for WebSocket connection and event broadcasting.
|
||||
- [ ] Task: Conductor - User Manual Verification 'Phase 1: WebSocket Infrastructure' (Protocol in workflow.md)
|
||||
|
||||
## Phase 2: Expanded Read Endpoints (GET)
|
||||
|
||||
Reference in New Issue
Block a user