|
8 | 8 | [eca.messenger :as messenger] |
9 | 9 | [eca.nrepl :as nrepl] |
10 | 10 | [eca.shared :as shared :refer [assoc-some]] |
11 | | - [lsp4clj.io-server :as io-server] |
12 | | - [lsp4clj.liveness-probe :as liveness-probe] |
13 | | - [lsp4clj.server :as lsp.server])) |
| 11 | + [jsonrpc4clj.io-server :as io-server] |
| 12 | + [jsonrpc4clj.liveness-probe :as liveness-probe] |
| 13 | + [jsonrpc4clj.server :as jsonrpc.server])) |
14 | 14 |
|
15 | 15 | (set! *warn-on-reflection* true) |
16 | 16 |
|
|
21 | 21 | (defn ^:private exit [server] |
22 | 22 | (logger/logging-task |
23 | 23 | :eca/exit |
24 | | - (lsp.server/shutdown server) ;; blocks, waiting up to 10s for previously received messages to be processed |
| 24 | + (jsonrpc.server/shutdown server) ;; blocks, waiting up to 10s for previously received messages to be processed |
25 | 25 | (shutdown-agents) |
26 | 26 | (System/exit 0))) |
27 | 27 |
|
28 | 28 | (defn ^:private with-config [components] |
29 | 29 | (assoc components :config (config/all @(:db* components)))) |
30 | 30 |
|
31 | | -(defmethod lsp.server/receive-request "initialize" [_ {:keys [server] :as components} params] |
| 31 | +(defmethod jsonrpc.server/receive-request "initialize" [_ {:keys [server] :as components} params] |
32 | 32 | (when-let [parent-process-id (:process-id params)] |
33 | 33 | (liveness-probe/start! parent-process-id log-wrapper-fn #(exit server))) |
34 | 34 | (handlers/initialize components params)) |
35 | 35 |
|
36 | | -(defmethod lsp.server/receive-notification "initialized" [_ components _params] |
| 36 | +(defmethod jsonrpc.server/receive-notification "initialized" [_ components _params] |
37 | 37 | (handlers/initialized (with-config components))) |
38 | 38 |
|
39 | | -(defmethod lsp.server/receive-request "shutdown" [_ components _params] |
| 39 | +(defmethod jsonrpc.server/receive-request "shutdown" [_ components _params] |
40 | 40 | (handlers/shutdown (with-config components))) |
41 | 41 |
|
42 | | -(defmethod lsp.server/receive-notification "exit" [_ {:keys [server]} _params] |
| 42 | +(defmethod jsonrpc.server/receive-notification "exit" [_ {:keys [server]} _params] |
43 | 43 | (exit server)) |
44 | 44 |
|
45 | | -(defmethod lsp.server/receive-request "chat/prompt" [_ components params] |
| 45 | +(defmethod jsonrpc.server/receive-request "chat/prompt" [_ components params] |
46 | 46 | (handlers/chat-prompt (with-config components) params)) |
47 | 47 |
|
48 | | -(defmethod lsp.server/receive-request "chat/queryContext" [_ components params] |
| 48 | +(defmethod jsonrpc.server/receive-request "chat/queryContext" [_ components params] |
49 | 49 | (handlers/chat-query-context (with-config components) params)) |
50 | 50 |
|
51 | | -(defmethod lsp.server/receive-request "chat/queryCommands" [_ components params] |
| 51 | +(defmethod jsonrpc.server/receive-request "chat/queryCommands" [_ components params] |
52 | 52 | (handlers/chat-query-commands (with-config components) params)) |
53 | 53 |
|
54 | | -(defmethod lsp.server/receive-notification "chat/toolCallApprove" [_ components params] |
| 54 | +(defmethod jsonrpc.server/receive-notification "chat/toolCallApprove" [_ components params] |
55 | 55 | (handlers/chat-tool-call-approve (with-config components) params)) |
56 | 56 |
|
57 | | -(defmethod lsp.server/receive-notification "chat/toolCallReject" [_ components params] |
| 57 | +(defmethod jsonrpc.server/receive-notification "chat/toolCallReject" [_ components params] |
58 | 58 | (handlers/chat-tool-call-reject (with-config components) params)) |
59 | 59 |
|
60 | | -(defmethod lsp.server/receive-notification "chat/promptStop" [_ components params] |
| 60 | +(defmethod jsonrpc.server/receive-notification "chat/promptStop" [_ components params] |
61 | 61 | (handlers/chat-prompt-stop (with-config components) params)) |
62 | 62 |
|
63 | | -(defmethod lsp.server/receive-request "chat/delete" [_ components params] |
| 63 | +(defmethod jsonrpc.server/receive-request "chat/delete" [_ components params] |
64 | 64 | (handlers/chat-delete (with-config components) params)) |
65 | 65 |
|
66 | | -(defmethod lsp.server/receive-notification "mcp/stopServer" [_ components params] |
| 66 | +(defmethod jsonrpc.server/receive-notification "mcp/stopServer" [_ components params] |
67 | 67 | (handlers/mcp-stop-server (with-config components) params)) |
68 | 68 |
|
69 | | -(defmethod lsp.server/receive-notification "mcp/startServer" [_ components params] |
| 69 | +(defmethod jsonrpc.server/receive-notification "mcp/startServer" [_ components params] |
70 | 70 | (handlers/mcp-start-server (with-config components) params)) |
71 | 71 |
|
72 | | -(defmethod lsp.server/receive-notification "chat/selectedBehaviorChanged" [_ components params] |
| 72 | +(defmethod jsonrpc.server/receive-notification "chat/selectedBehaviorChanged" [_ components params] |
73 | 73 | (handlers/chat-selected-behavior-changed (with-config components) params)) |
74 | 74 |
|
75 | 75 | (defn ^:private monitor-server-logs [log-ch] |
|
99 | 99 | messenger/IMessenger |
100 | 100 |
|
101 | 101 | (chat-content-received [_this content] |
102 | | - (lsp.server/discarding-stdout |
103 | | - (lsp.server/send-notification server "chat/contentReceived" content))) |
| 102 | + (jsonrpc.server/discarding-stdout |
| 103 | + (jsonrpc.server/send-notification server "chat/contentReceived" content))) |
104 | 104 | (config-updated [_this params] |
105 | | - (lsp.server/discarding-stdout |
106 | | - (lsp.server/send-notification server "config/updated" params))) |
| 105 | + (jsonrpc.server/discarding-stdout |
| 106 | + (jsonrpc.server/send-notification server "config/updated" params))) |
107 | 107 | (tool-server-updated [_this params] |
108 | | - (lsp.server/discarding-stdout |
109 | | - (lsp.server/send-notification server "tool/serverUpdated" params))) |
| 108 | + (jsonrpc.server/discarding-stdout |
| 109 | + (jsonrpc.server/send-notification server "tool/serverUpdated" params))) |
110 | 110 | (showMessage [_this msg] |
111 | | - (lsp.server/discarding-stdout |
112 | | - (lsp.server/send-notification server "$/showMessage" msg))) |
| 111 | + (jsonrpc.server/discarding-stdout |
| 112 | + (jsonrpc.server/send-notification server "$/showMessage" msg))) |
113 | 113 | (editor-diagnostics [_this uri] |
114 | | - (lsp.server/discarding-stdout |
115 | | - (lsp.server/send-request server "editor/getDiagnostics" (assoc-some {} :uri uri))))) |
| 114 | + (jsonrpc.server/discarding-stdout |
| 115 | + (jsonrpc.server/send-request server "editor/getDiagnostics" (assoc-some {} :uri uri))))) |
116 | 116 |
|
117 | 117 | (defn start-server! [server] |
118 | 118 | (let [db* (atom db/initial-db) |
|
122 | 122 | (logger/info "[server]" "Starting server...") |
123 | 123 | (monitor-server-logs (:log-ch server)) |
124 | 124 | (setup-dev-environment db* components) |
125 | | - (lsp.server/start server components))) |
| 125 | + (jsonrpc.server/start server components))) |
126 | 126 |
|
127 | 127 | (defn run-io-server! [verbose?] |
128 | | - (lsp.server/discarding-stdout |
| 128 | + (jsonrpc.server/discarding-stdout |
129 | 129 | (let [log-ch (async/chan (async/sliding-buffer 20)) |
130 | 130 | server (io-server/stdio-server {:log-ch log-ch |
131 | 131 | :trace-ch log-ch |
|
0 commit comments