@@ -2,7 +2,6 @@ local M = {}
2
2
local utils = require ' minuet.utils'
3
3
local Job = require ' plenary.job'
4
4
local uv = vim .uv or vim .loop
5
- local api = vim .api
6
5
7
6
-- currently running completion jobs, basically forked curl processes
8
7
M .current_jobs = {}
@@ -11,7 +10,6 @@ M.current_jobs = {}
11
10
function M .register_job (job )
12
11
table.insert (M .current_jobs , job )
13
12
utils .notify (' Registered completion job' , ' debug' )
14
- api .nvim_exec_autocmds (' User' , { pattern = ' MinuetRequestStarted' })
15
13
end
16
14
17
15
--- @param job Job
@@ -20,7 +18,6 @@ function M.remove_job(job)
20
18
if j .pid == job .pid then
21
19
table.remove (M .current_jobs , i )
22
20
utils .notify (' Completion job ' .. job .pid .. ' finished and removed from current_jobs' , ' debug' )
23
- api .nvim_exec_autocmds (' User' , { pattern = ' MinuetRequestFinished' })
24
21
break
25
22
end
26
23
end
@@ -127,12 +124,26 @@ function M.complete_openai_base(options, context, callback)
127
124
table.insert (args , config .proxy )
128
125
end
129
126
127
+ local provider_name = ' openai_compatible'
128
+ utils .fire_event (' RequestInit' , {
129
+ provider = provider_name ,
130
+ name = options .name ,
131
+ n_requests = 1 ,
132
+ })
133
+
130
134
local new_job = Job :new {
131
135
command = ' curl' ,
132
136
args = args ,
133
137
on_exit = vim .schedule_wrap (function (job , exit_code )
134
138
M .remove_job (job )
135
139
140
+ utils .fire_event (' RequestFinished' , {
141
+ provider = provider_name ,
142
+ name = options .name ,
143
+ n_requests = 1 ,
144
+ request_idx = 1 ,
145
+ })
146
+
136
147
local items_raw
137
148
138
149
if options .stream then
@@ -158,6 +169,14 @@ function M.complete_openai_base(options, context, callback)
158
169
}
159
170
160
171
M .register_job (new_job )
172
+
173
+ utils .fire_event (' RequestStarted' , {
174
+ provider = provider_name ,
175
+ name = options .name ,
176
+ n_requests = 1 ,
177
+ request_idx = 1 ,
178
+ })
179
+
161
180
new_job :start ()
162
181
end
163
182
@@ -188,7 +207,13 @@ function M.complete_openai_fim_base(options, get_text_fn, context, callback)
188
207
local items = {}
189
208
local n_completions = config .n_completions
190
209
191
- for _ = 1 , n_completions do
210
+ local provider_name = ' openai_fim_compatible'
211
+ utils .fire_event (' RequestInit' , {
212
+ provider = provider_name ,
213
+ name = options .name ,
214
+ n_requests = n_completions ,
215
+ })
216
+ for request_idx = 1 , n_completions do
192
217
local args = {
193
218
' -L' ,
194
219
options .end_point ,
@@ -215,6 +240,13 @@ function M.complete_openai_fim_base(options, get_text_fn, context, callback)
215
240
on_exit = vim .schedule_wrap (function (job , exit_code )
216
241
M .remove_job (job )
217
242
243
+ utils .fire_event (' RequestFinished' , {
244
+ provider = provider_name ,
245
+ name = options .name ,
246
+ n_requests = n_completions ,
247
+ request_idx = request_idx ,
248
+ })
249
+
218
250
local result
219
251
220
252
if options .stream then
@@ -234,6 +266,14 @@ function M.complete_openai_fim_base(options, get_text_fn, context, callback)
234
266
}
235
267
236
268
M .register_job (new_job )
269
+
270
+ utils .fire_event (' RequestStarted' , {
271
+ provider = provider_name ,
272
+ name = options .name ,
273
+ n_requests = n_completions ,
274
+ request_idx = request_idx ,
275
+ })
276
+
237
277
new_job :start ()
238
278
end
239
279
end
0 commit comments