first commit

This commit is contained in:
npc0-hue
2026-07-11 14:56:10 +08:00
commit 7e05d0a4e7
660 changed files with 78119 additions and 0 deletions
+98
View File
@@ -0,0 +1,98 @@
package dto
import (
"time"
"browser.local/platform/domain"
)
type RunCapabilityReport struct {
Capabilities []string `json:"capabilities"`
Fingerprint string `json:"fingerprint"`
}
type RunControlHelloRequest struct {
RegistrationToken string `json:"registrationToken"`
RunEndpointID string `json:"runEndpointId"`
DisplayName string `json:"displayName"`
Version string `json:"version"`
Status domain.RunEndpointStatus `json:"status"`
Platform string `json:"platform,omitempty"`
CapabilityReport RunCapabilityReport `json:"capabilityReport"`
Capacity RunCapacityResponse `json:"capacity"`
}
type RunControlHelloResponse struct {
Accepted bool `json:"accepted"`
RunEndpointID string `json:"runEndpointId"`
SessionToken string `json:"sessionToken"`
ServerTime time.Time `json:"serverTime"`
HeartbeatIntervalSeconds int `json:"heartbeatIntervalSeconds"`
FeatureFlags []string `json:"featureFlags,omitempty"`
}
type RunControlHeartbeatRequest struct {
RunEndpointID string `json:"runEndpointId"`
SessionToken string `json:"sessionToken"`
Version string `json:"version"`
Status domain.RunEndpointStatus `json:"status"`
CapabilityFingerprint string `json:"capabilityFingerprint"`
Capacity RunCapacityResponse `json:"capacity"`
}
type RunControlHeartbeatResponse struct {
Accepted bool `json:"accepted"`
RunEndpointID string `json:"runEndpointId"`
NextHeartbeatSeconds int `json:"nextHeartbeatSeconds"`
RefreshCapabilities bool `json:"refreshCapabilities"`
ServerTime time.Time `json:"serverTime"`
}
func (request RunControlHelloRequest) ToDomain() domain.RunControlHello {
return domain.RunControlHello{
RegistrationToken: request.RegistrationToken,
RunEndpointID: request.RunEndpointID,
DisplayName: request.DisplayName,
Version: request.Version,
Status: request.Status,
Platform: request.Platform,
CapabilityReport: domain.RunCapabilityReport{
Capabilities: domain.CopyStringSlice(request.CapabilityReport.Capabilities),
Fingerprint: request.CapabilityReport.Fingerprint,
},
Capacity: capacityToDomain(request.Capacity),
}
}
func (request RunControlHeartbeatRequest) ToDomain() domain.RunControlHeartbeat {
return domain.RunControlHeartbeat{
RunEndpointID: request.RunEndpointID,
SessionToken: request.SessionToken,
Version: request.Version,
Status: request.Status,
CapabilityFingerprint: request.CapabilityFingerprint,
Capacity: capacityToDomain(request.Capacity),
}
}
func RunControlHelloFromDomain(result domain.RunControlHelloResult) RunControlHelloResponse {
result = domain.CopyRunControlHelloResult(result)
return RunControlHelloResponse{
Accepted: result.Accepted,
RunEndpointID: result.RunEndpointID,
SessionToken: result.SessionToken,
ServerTime: result.ServerTime,
HeartbeatIntervalSeconds: result.HeartbeatIntervalSeconds,
FeatureFlags: result.FeatureFlags,
}
}
func RunControlHeartbeatFromDomain(result domain.RunControlHeartbeatResult) RunControlHeartbeatResponse {
return RunControlHeartbeatResponse{
Accepted: result.Accepted,
RunEndpointID: result.RunEndpointID,
NextHeartbeatSeconds: result.NextHeartbeatSeconds,
RefreshCapabilities: result.RefreshCapabilities,
ServerTime: result.ServerTime,
}
}