























@@ -116,27 +116,40 @@ final class MacNodeModeCoordinator {
116116}
117117}
118118119-private func currentCaps() -> [String] {
119+nonisolated static func resolvedCaps(
120+ browserControlEnabled: Bool,
121+ cameraEnabled: Bool,
122+ locationMode: OpenClawLocationMode,
123+ connectionMode: AppState.ConnectionMode) -> [String]
124+{
120125var caps: [String] = [OpenClawCapability.canvas.rawValue, OpenClawCapability.screen.rawValue]
121-if OpenClawConfigFile.browserControlEnabled() {
126+if browserControlEnabled, connectionMode == .local {
122127 caps.append(OpenClawCapability.browser.rawValue)
123128}
124-if UserDefaults.standard.object(forKey: cameraEnabledKey) as? Bool ?? false {
129+if cameraEnabled {
125130 caps.append(OpenClawCapability.camera.rawValue)
126131}
127-let rawLocationMode = UserDefaults.standard.string(forKey: locationModeKey) ?? "off"
128-if OpenClawLocationMode(rawValue: rawLocationMode) != .off {
132+if locationMode != .off {
129133 caps.append(OpenClawCapability.location.rawValue)
130134}
131135return caps
132136}
133137138+private func currentCaps() -> [String] {
139+let rawLocationMode = UserDefaults.standard.string(forKey: locationModeKey) ?? "off"
140+return Self.resolvedCaps(
141+ browserControlEnabled: OpenClawConfigFile.browserControlEnabled(),
142+ cameraEnabled: UserDefaults.standard.object(forKey: cameraEnabledKey) as? Bool ?? false,
143+ locationMode: OpenClawLocationMode(rawValue: rawLocationMode) ?? .off,
144+ connectionMode: AppStateStore.shared.connectionMode)
145+}
146+134147private func currentPermissions() async -> [String: Bool] {
135148let statuses = await PermissionManager.status()
136149return Dictionary(uniqueKeysWithValues: statuses.map { ($0.key.rawValue, $0.value) })
137150}
138151139-private func currentCommands(caps: [String]) -> [String] {
152+nonisolated static func resolvedCommands(caps: [String]) -> [String] {
140153var commands: [String] = [
141154OpenClawCanvasCommand.present.rawValue,
142155OpenClawCanvasCommand.hide.rawValue,
@@ -171,6 +184,10 @@ final class MacNodeModeCoordinator {
171184return commands
172185}
173186187+private func currentCommands(caps: [String]) -> [String] {
188+Self.resolvedCommands(caps: caps)
189+}
190+174191private func buildSessionBox(url: URL) -> WebSocketSessionBox? {
175192guard url.scheme?.lowercased() == "wss" else { return nil }
176193let host = url.host ?? "gateway"
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。