mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 15:48:38 +00:00
fix: land contributor PR #39516 from @Imhermes1
macOS app/chat/browser/cron/permissions fixes. Co-authored-by: ImHermes1 <lukeforn@gmail.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import OpenClawKit
|
||||
actor MacNodeRuntime {
|
||||
private let cameraCapture = CameraCaptureService()
|
||||
private let makeMainActorServices: () async -> any MacNodeRuntimeMainActorServices
|
||||
private let browserProxyRequest: @Sendable (String?) async throws -> String
|
||||
private var cachedMainActorServices: (any MacNodeRuntimeMainActorServices)?
|
||||
private var mainSessionKey: String = "main"
|
||||
private var eventSender: (@Sendable (String, String?) async -> Void)?
|
||||
@@ -13,9 +14,13 @@ actor MacNodeRuntime {
|
||||
init(
|
||||
makeMainActorServices: @escaping () async -> any MacNodeRuntimeMainActorServices = {
|
||||
await MainActor.run { LiveMacNodeRuntimeMainActorServices() }
|
||||
},
|
||||
browserProxyRequest: @escaping @Sendable (String?) async throws -> String = { paramsJSON in
|
||||
try await MacNodeBrowserProxy.shared.request(paramsJSON: paramsJSON)
|
||||
})
|
||||
{
|
||||
self.makeMainActorServices = makeMainActorServices
|
||||
self.browserProxyRequest = browserProxyRequest
|
||||
}
|
||||
|
||||
func updateMainSessionKey(_ sessionKey: String) {
|
||||
@@ -50,6 +55,8 @@ actor MacNodeRuntime {
|
||||
OpenClawCanvasA2UICommand.push.rawValue,
|
||||
OpenClawCanvasA2UICommand.pushJSONL.rawValue:
|
||||
return try await self.handleA2UIInvoke(req)
|
||||
case OpenClawBrowserCommand.proxy.rawValue:
|
||||
return try await self.handleBrowserProxyInvoke(req)
|
||||
case OpenClawCameraCommand.snap.rawValue,
|
||||
OpenClawCameraCommand.clip.rawValue,
|
||||
OpenClawCameraCommand.list.rawValue:
|
||||
@@ -165,6 +172,19 @@ actor MacNodeRuntime {
|
||||
}
|
||||
}
|
||||
|
||||
private func handleBrowserProxyInvoke(_ req: BridgeInvokeRequest) async throws -> BridgeInvokeResponse {
|
||||
guard OpenClawConfigFile.browserControlEnabled() else {
|
||||
return BridgeInvokeResponse(
|
||||
id: req.id,
|
||||
ok: false,
|
||||
error: OpenClawNodeError(
|
||||
code: .unavailable,
|
||||
message: "BROWSER_DISABLED: enable Browser in Settings"))
|
||||
}
|
||||
let payloadJSON = try await self.browserProxyRequest(req.paramsJSON)
|
||||
return BridgeInvokeResponse(id: req.id, ok: true, payloadJSON: payloadJSON)
|
||||
}
|
||||
|
||||
private func handleCameraInvoke(_ req: BridgeInvokeRequest) async throws -> BridgeInvokeResponse {
|
||||
guard Self.cameraEnabled() else {
|
||||
return BridgeInvokeResponse(
|
||||
|
||||
Reference in New Issue
Block a user