| import Foundation | |
| import OpenClawKit | |
| final class NodeCapabilityRouter { | |
| enum RouterError: Error { | |
| case unknownCommand | |
| case handlerUnavailable | |
| } | |
| typealias Handler = (BridgeInvokeRequest) async throws -> BridgeInvokeResponse | |
| private let handlers: [String: Handler] | |
| init(handlers: [String: Handler]) { | |
| self.handlers = handlers | |
| } | |
| func handle(_ request: BridgeInvokeRequest) async throws -> BridgeInvokeResponse { | |
| guard let handler = handlers[request.command] else { | |
| throw RouterError.unknownCommand | |
| } | |
| return try await handler(request) | |
| } | |
| } | |