feat(agent): use persistent rpc worker for agent sends

This commit is contained in:
Peter Steinberger
2025-12-07 05:14:45 +01:00
parent 0a9b98ed67
commit 69cb71ad7e
2 changed files with 139 additions and 2 deletions

View File

@@ -71,14 +71,24 @@ final class ClawdisXPCService: NSObject, ClawdisXPCProtocol {
case let .agent(message, thinking, session):
let trimmed = message.trimmingCharacters(in: .whitespacesAndNewlines)
guard !trimmed.isEmpty else { return Response(ok: false, message: "message empty") }
let sessionKey = session ?? "main"
// Try RPC first for lower latency; fall back to one-shot CLI.
let rpcResult = await AgentRPC.shared.send(
text: trimmed,
thinking: thinking,
session: sessionKey)
if rpcResult.ok {
return Response(ok: true, message: rpcResult.text ?? "sent")
}
let result = await self.runAgentCLI(
message: trimmed,
thinking: thinking,
session: session ?? "main")
session: sessionKey)
return result.ok
? Response(ok: true, message: result.text ?? "sent")
: Response(ok: false, message: result.error ?? "failed to send")
: Response(ok: false, message: result.error ?? rpcResult.error ?? "failed to send")
}
}