fix: claude extended thinking (#1419)
This commit is contained in:
@@ -201,8 +201,28 @@ function M._stream(opts)
|
||||
if stop_opts.reason == "rate_limit" then
|
||||
local msg = "Rate limit reached. Retrying in " .. stop_opts.retry_after .. " seconds ..."
|
||||
opts.on_chunk("\n*[" .. msg .. "]*\n")
|
||||
local timer = vim.loop.new_timer()
|
||||
if timer then
|
||||
local retry_after = stop_opts.retry_after
|
||||
local function countdown()
|
||||
timer:start(
|
||||
1000,
|
||||
0,
|
||||
vim.schedule_wrap(function()
|
||||
if retry_after > 0 then retry_after = retry_after - 1 end
|
||||
local msg_ = "Rate limit reached. Retrying in " .. retry_after .. " seconds ..."
|
||||
opts.on_chunk([[\033[1A\033[K]] .. "\n*[" .. msg_ .. "]*\n")
|
||||
countdown()
|
||||
end)
|
||||
)
|
||||
end
|
||||
countdown()
|
||||
end
|
||||
Utils.info("Rate limit reached. Retrying in " .. stop_opts.retry_after .. " seconds", { title = "Avante" })
|
||||
vim.defer_fn(function() M._stream(opts) end, stop_opts.retry_after * 1000)
|
||||
vim.defer_fn(function()
|
||||
if timer then timer:stop() end
|
||||
M._stream(opts)
|
||||
end, stop_opts.retry_after * 1000)
|
||||
return
|
||||
end
|
||||
return opts.on_stop(stop_opts)
|
||||
|
||||
Reference in New Issue
Block a user