Files
Control-Center/backend/ControlCenter/obj/ControlCenter.csproj.nuget.dgspec.json
cubecraft-agents[bot] 1c5d982cd9 feat(CUB-19): implement AgentStatus SignalR hub for real-time updates
- Add AgentStatusHub with typed IAgentStatusClient interface
  - Hub at /hubs/agent-status (matches design spec)
  - Fleet group + per-agent group subscription
  - AgentStatusChanged and AgentTaskProgress push events
  - Extension methods for server-side push via IHubContext

- Add GatewayEventBridgeService background service
  - Connects to OpenClaw Gateway WebSocket (v3 protocol)
  - Handles challenge → connect → hello-ok handshake
  - Bridges sessions.changed, session.message, session.tool events
  - Translates Gateway session status to AgentStatus enum
  - Maintains in-memory fleet state for snapshot queries

- Add REST API controllers
  - GET /api/agents — fleet status snapshot
  - GET /api/agents/{agentId} — single agent status
  - GET /api/logs/{agentId} — agent session logs (stub)
  - POST /api/command/stop/{agentId} — stop agent
  - POST /api/command/restart/{agentId} — restart agent
  - POST /api/command/steer/{agentId} — inject message

- Add models matching TypeScript spec interfaces
  - AgentStatusUpdate, TaskProgressUpdate, AgentCardData
  - AgentStatus enum (active/idle/thinking/error)

- Configure CORS with credentials for SignalR WebSocket
- Configure Swagger/OpenAPI with XML doc comments
- Agent role map matching frontend AGENT_ROLES constant
2026-04-25 22:10:51 +00:00

76 lines
2.2 KiB
JSON

{
"format": 1,
"restore": {
"/home/overseer/projects/control-center/backend/ControlCenter/ControlCenter.csproj": {}
},
"projects": {
"/home/overseer/projects/control-center/backend/ControlCenter/ControlCenter.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/home/overseer/projects/control-center/backend/ControlCenter/ControlCenter.csproj",
"projectName": "ControlCenter",
"projectPath": "/home/overseer/projects/control-center/backend/ControlCenter/ControlCenter.csproj",
"packagesPath": "/home/overseer/.nuget/packages/",
"outputPath": "/home/overseer/projects/control-center/backend/ControlCenter/obj/",
"projectStyle": "PackageReference",
"configFilePaths": [
"/home/overseer/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net9.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "9.0.300"
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"dependencies": {
"Swashbuckle.AspNetCore": {
"target": "Package",
"version": "[10.1.7, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.AspNetCore.App": {
"privateAssets": "none"
},
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/home/overseer/.dotnet/sdk/9.0.312/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}