Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

61 lines
1.7 KiB
Go

package host
func CanTransitionInstallation(from, to InstallationState) bool {
allowed := map[InstallationState]map[InstallationState]bool{
InstallationStateNotInstalled: {
InstallationStateInstalling: true,
},
InstallationStateInstalling: {
InstallationStateInstalled: true,
InstallationStateFailed: true,
},
InstallationStateInstalled: {
InstallationStateUpdating: true,
InstallationStateUninstalling: true,
},
InstallationStateUpdating: {
InstallationStateInstalled: true,
InstallationStateFailed: true,
},
InstallationStateUninstalling: {
InstallationStateNotInstalled: true,
InstallationStateFailed: true,
},
InstallationStateFailed: {
InstallationStateInstalling: true,
InstallationStateUpdating: true,
InstallationStateUninstalling: true,
},
}
return allowed[from][to]
}
func CanTransitionAuthorization(from, to AuthorizationState) bool {
allowed := map[AuthorizationState]map[AuthorizationState]bool{
AuthorizationStateNotRequired: {},
AuthorizationStateDisconnected: {
AuthorizationStatePending: true,
},
AuthorizationStatePending: {
AuthorizationStatePending: true,
AuthorizationStateConnected: true,
AuthorizationStateDisconnected: true,
AuthorizationStateFailed: true,
},
AuthorizationStateConnected: {
AuthorizationStateDisconnected: true,
AuthorizationStateExpired: true,
AuthorizationStateFailed: true,
},
AuthorizationStateExpired: {
AuthorizationStatePending: true,
AuthorizationStateDisconnected: true,
},
AuthorizationStateFailed: {
AuthorizationStatePending: true,
AuthorizationStateDisconnected: true,
},
}
return allowed[from][to]
}