@@ -8,6 +8,7 @@ local Split = require("nui.split")
88--- @class eca.Sidebar
99--- @field public id integer The tab ID
1010--- @field public containers table<string , NuiSplit> The nui containers
11+ --- @field mediator eca.Mediator mediator to send server requests to
1112--- @field private _initialized boolean Whether the sidebar has been initialized
1213--- @field private _current_response_buffer string Buffer for accumulating streaming response
1314--- @field private _is_streaming boolean Whether we ' re currently receiving a streaming response
@@ -34,10 +35,12 @@ local UI_ELEMENTS_HEIGHT = 2 -- Reserve space for statusline and tabline
3435local SAFETY_MARGIN = 2 -- Extra margin to prevent "Not enough room" errors
3536
3637--- @param id integer Tab ID
38+ --- @param mediator eca.Mediator
3739--- @return eca.Sidebar
38- function M .new (id )
40+ function M .new (id , mediator )
3941 local instance = setmetatable ({}, M )
4042 instance .id = id
43+ instance .mediator = mediator
4144 instance .containers = {}
4245 instance ._initialized = false
4346 instance ._current_response_buffer = " "
@@ -1163,7 +1166,7 @@ function M:_send_message(message)
11631166 if eca .server and eca .server :is_running () then
11641167 -- Include active contexts in the message
11651168 local contexts = self :get_contexts ()
1166- eca . server : send_request (" chat/prompt" , {
1169+ self . mediator : send (" chat/prompt" , {
11671170 chatId = self .id ,
11681171 requestId = tostring (os.time ()),
11691172 message = message ,
0 commit comments