File tree Expand file tree Collapse file tree 6 files changed +51
-8
lines changed
Expand file tree Collapse file tree 6 files changed +51
-8
lines changed Original file line number Diff line number Diff line change @@ -211,7 +211,7 @@ A notification sent from the client to the server to terminate the connection. T
211211_ Notification:_
212212
213213* method: ` exit `
214- * params: none
214+ * params: none
215215
216216## Code Assistant Features
217217
@@ -594,3 +594,30 @@ Soon
594594### Add MCP (↩️)
595595
596596Soon
597+
598+ ## General features
599+
600+ ### showMessage (⬅️)
601+
602+ A notification from server telling client to present a message to user.
603+
604+ _ Request:_
605+
606+ * method: ` $/showMessage `
607+ * params: ` ShowMessageParams ` defined as follows:
608+
609+ ``` typescript
610+ interface ShowMessageParams {
611+ /**
612+ * The message type. See {@link MessageType } .
613+ */
614+ type: MessageType ;
615+
616+ /**
617+ * The actual message.
618+ */
619+ message: string ;
620+ }
621+
622+ export type MessageType = ' error' | ' warning' | ' info' ;
623+ ```
Original file line number Diff line number Diff line change 1+ org.slf4j.simpleLogger.showThreadName =false
2+ org.slf4j.simpleLogger.showDateTime =false
3+ org.slf4j.simpleLogger.showLogName =false
Original file line number Diff line number Diff line change 3636 (.build )))
3737 (.build )))
3838
39- (defn initialize! [db* config]
39+ (defn initialize! [{ :keys [on-error]} db* config]
4040 (doseq [[name server-config] (:mcpServers config)]
4141 (try
4242 (when-not (get-in @db* [:mcp-clients name])
4747 (.addRoot client (McpSchema$Root. uri name)))
4848 (.initialize client)))
4949 (catch Exception e
50- (logger/warn logger-tag (format " Could not initialize MCP server %s. Error: %s" name (.getMessage e)))))))
50+ (logger/warn logger-tag (format " Could not initialize MCP server %s. Error: %s" name (.getMessage e)))
51+ (on-error name e)))))
5152
5253(defn tools-cached? [db]
5354 (boolean (:mcp-tools db)))
Original file line number Diff line number Diff line change 55 [eca.features.chat :as f.chat]
66 [eca.features.mcp :as f.mcp]
77 [eca.llm-api :as llm-api]
8- [eca.logger :as logger]))
8+ [eca.logger :as logger]
9+ [eca.messenger :as messenger]))
910
1011(set! *warn-on-reflection* true )
1112
2122 {}
2223 ollama-models)))))
2324
24- (defn initialize [{:keys [db*]} params]
25+ (defn initialize [{:keys [db* messenger ]} params]
2526 (logger/logging-task
2627 :eca/initialize
2728 (swap! db* assoc
3233 (let [config (config/all @db*)]
3334 (initialize-extra-models! db*)
3435 ; ; TODO initialize async with progress support
35- (f.mcp/initialize! db* config)
36+ (f.mcp/initialize!
37+ {:on-error (fn [mcp-server-name error]
38+ (messenger/showMessage
39+ messenger
40+ {:type :error
41+ :message (format " MCP server %s not initialized. Error %s" mcp-server-name (.getMessage error))}))}
42+ db*
43+ config)
3644 {:models (keys (:models @db*))
3745 :chat-default-model (f.chat/default-model @db* )
3846 :chat-behaviors (:chat-behaviors @db*)
Original file line number Diff line number Diff line change 55(set! *warn-on-reflection* true )
66
77(defprotocol IMessenger
8- (chat-content-received [this data]))
8+ (chat-content-received [this data])
9+ (showMessage [this msg]))
Original file line number Diff line number Diff line change 7373
7474 (chat-content-received [_this content]
7575 (lsp.server/discarding-stdout
76- (lsp.server/send-notification server " chat/contentReceived" content))))
76+ (lsp.server/send-notification server " chat/contentReceived" content)))
77+ (showMessage [_this msg]
78+ (lsp.server/discarding-stdout
79+ (lsp.server/send-notification server " $/showMessage" msg))))
7780
7881(defn start-server! [server]
7982 (let [db* (atom db/initial-db)
You can’t perform that action at this time.
0 commit comments