mirror of
https://github.com/hanzoai/bot.git
synced 2026-10-30 17:24:26 +00:00
Automated rebrand of all openclaw references to hanzo bot: - Package: openclaw -> @hanzo/bot - Binary: openclaw -> hanzo-bot - Config: ~/.openclaw -> ~/.hanzo/bot - Docker: ghcr.io/hanzoai/bot - Env vars: OPENCLAW_* -> BOT_* - Bundle IDs: ai.hanzo.bot.* - Product name: Hanzo Bot
54 lines
1.8 KiB
Swift
54 lines
1.8 KiB
Swift
import Hanzo BotDiscovery
|
|
|
|
@MainActor
|
|
enum GatewayDiscoverySelectionSupport {
|
|
static func applyRemoteSelection(
|
|
gateway: GatewayDiscoveryModel.DiscoveredGateway,
|
|
state: AppState)
|
|
{
|
|
let preferredTransport = self.preferredTransport(
|
|
for: gateway,
|
|
current: state.remoteTransport)
|
|
if preferredTransport != state.remoteTransport {
|
|
state.remoteTransport = preferredTransport
|
|
}
|
|
|
|
state.remoteUrl = GatewayDiscoveryHelpers.directUrl(for: gateway) ?? ""
|
|
state.remoteTarget = GatewayDiscoveryHelpers.sshTarget(for: gateway) ?? ""
|
|
|
|
if let endpoint = GatewayDiscoveryHelpers.serviceEndpoint(for: gateway) {
|
|
Hanzo BotConfigFile.setRemoteGatewayUrl(
|
|
host: endpoint.host,
|
|
port: endpoint.port)
|
|
} else {
|
|
Hanzo BotConfigFile.clearRemoteGatewayUrl()
|
|
}
|
|
}
|
|
|
|
static func preferredTransport(
|
|
for gateway: GatewayDiscoveryModel.DiscoveredGateway,
|
|
current: AppState.RemoteTransport) -> AppState.RemoteTransport
|
|
{
|
|
if self.shouldPreferDirectTransport(for: gateway) {
|
|
return .direct
|
|
}
|
|
return current
|
|
}
|
|
|
|
static func shouldPreferDirectTransport(
|
|
for gateway: GatewayDiscoveryModel.DiscoveredGateway) -> Bool
|
|
{
|
|
guard GatewayDiscoveryHelpers.directUrl(for: gateway) != nil else { return false }
|
|
if gateway.stableID.hasPrefix("tailscale-serve|") {
|
|
return true
|
|
}
|
|
guard let host = GatewayDiscoveryHelpers.resolvedServiceHost(for: gateway)?
|
|
.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
.lowercased()
|
|
else {
|
|
return false
|
|
}
|
|
return host.hasSuffix(".ts.net")
|
|
}
|
|
}
|