- 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
76 lines
2.2 KiB
JSON
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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |