Files
Control-Center/backend/ControlCenter/bin/Debug/net9.0/ControlCenter.deps.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

126 lines
4.4 KiB
JSON

{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v9.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v9.0": {
"ControlCenter/1.0.0": {
"dependencies": {
"Swashbuckle.AspNetCore": "10.1.7"
},
"runtime": {
"ControlCenter.dll": {}
}
},
"Microsoft.Extensions.ApiDescription.Server/9.0.0": {},
"Microsoft.OpenApi/2.4.1": {
"dependencies": {
"System.Text.Json": "8.0.5"
},
"runtime": {
"lib/net8.0/Microsoft.OpenApi.dll": {
"assemblyVersion": "2.4.1.0",
"fileVersion": "2.4.1.0"
}
}
},
"Swashbuckle.AspNetCore/10.1.7": {
"dependencies": {
"Microsoft.Extensions.ApiDescription.Server": "9.0.0",
"Swashbuckle.AspNetCore.Swagger": "10.1.7",
"Swashbuckle.AspNetCore.SwaggerGen": "10.1.7",
"Swashbuckle.AspNetCore.SwaggerUI": "10.1.7"
}
},
"Swashbuckle.AspNetCore.Swagger/10.1.7": {
"dependencies": {
"Microsoft.OpenApi": "2.4.1"
},
"runtime": {
"lib/net9.0/Swashbuckle.AspNetCore.Swagger.dll": {
"assemblyVersion": "10.1.7.0",
"fileVersion": "10.1.7.2427"
}
}
},
"Swashbuckle.AspNetCore.SwaggerGen/10.1.7": {
"dependencies": {
"Swashbuckle.AspNetCore.Swagger": "10.1.7"
},
"runtime": {
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
"assemblyVersion": "10.1.7.0",
"fileVersion": "10.1.7.2427"
}
}
},
"Swashbuckle.AspNetCore.SwaggerUI/10.1.7": {
"runtime": {
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
"assemblyVersion": "10.1.7.0",
"fileVersion": "10.1.7.2427"
}
}
},
"System.Text.Json/8.0.5": {}
}
},
"libraries": {
"ControlCenter/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.Extensions.ApiDescription.Server/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1Kzzf7pRey40VaUkHN9/uWxrKVkLu2AQjt+GVeeKLLpiEHAJ1xZRsLSh4ZZYEnyS7Kt2OBOPmsXNdU+wbcOl5w==",
"path": "microsoft.extensions.apidescription.server/9.0.0",
"hashPath": "microsoft.extensions.apidescription.server.9.0.0.nupkg.sha512"
},
"Microsoft.OpenApi/2.4.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw==",
"path": "microsoft.openapi/2.4.1",
"hashPath": "microsoft.openapi.2.4.1.nupkg.sha512"
},
"Swashbuckle.AspNetCore/10.1.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==",
"path": "swashbuckle.aspnetcore/10.1.7",
"hashPath": "swashbuckle.aspnetcore.10.1.7.nupkg.sha512"
},
"Swashbuckle.AspNetCore.Swagger/10.1.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==",
"path": "swashbuckle.aspnetcore.swagger/10.1.7",
"hashPath": "swashbuckle.aspnetcore.swagger.10.1.7.nupkg.sha512"
},
"Swashbuckle.AspNetCore.SwaggerGen/10.1.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==",
"path": "swashbuckle.aspnetcore.swaggergen/10.1.7",
"hashPath": "swashbuckle.aspnetcore.swaggergen.10.1.7.nupkg.sha512"
},
"Swashbuckle.AspNetCore.SwaggerUI/10.1.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw==",
"path": "swashbuckle.aspnetcore.swaggerui/10.1.7",
"hashPath": "swashbuckle.aspnetcore.swaggerui.10.1.7.nupkg.sha512"
},
"System.Text.Json/8.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==",
"path": "system.text.json/8.0.5",
"hashPath": "system.text.json.8.0.5.nupkg.sha512"
}
}
}