summaryrefslogtreecommitdiff
path: root/lua/99/request/init.lua
diff options
context:
space:
mode:
authortheprimeagain <the.primeagen@gmail.com>2026-02-15 16:00:54 -0700
committertheprimeagain <the.primeagen@gmail.com>2026-02-15 16:00:54 -0700
commita5130c1ec63c4b6bbceedbc61906cd9803bfabf8 (patch)
treea5602ee1d407e40e5af0b486f1f79c04070138d5 /lua/99/request/init.lua
parent3ade8bbbbcc4fe80a09f22eb59ce8539e4fe2987 (diff)
downloada4-a5130c1ec63c4b6bbceedbc61906cd9803bfabf8.tar.xz
a4-a5130c1ec63c4b6bbceedbc61906cd9803bfabf8.zip
better entry point. success still needs work
Diffstat (limited to 'lua/99/request/init.lua')
-rw-r--r--lua/99/request/init.lua16
1 files changed, 11 insertions, 5 deletions
diff --git a/lua/99/request/init.lua b/lua/99/request/init.lua
index 3cff512..d057879 100644
--- a/lua/99/request/init.lua
+++ b/lua/99/request/init.lua
@@ -47,7 +47,7 @@ function Request:_set_process(proc)
end
function Request:cancel()
- if self.state == "success" then
+ if self.state == "success" or self.state == "failed" then
return
end
@@ -80,11 +80,19 @@ end
--- @param r _99.Request
--- @param obs _99.Providers.Observer | nil
local function observer_from_request(r, obs)
+
+ local context = r.context
return {
- on_start = obs and obs.on_start or function() end,
+ on_start = function()
+ r.state = "requesting"
+ context._99:track_request(context)
+ if obs then
+ obs.on_start()
+ end
+ end,
on_complete = function(status, res)
r.state = status
- r.context._99:finish_request(r.context, status)
+ context._99:finish_request(context, status)
if obs then
obs.on_complete(status, res)
end
@@ -108,8 +116,6 @@ function Request:start(observer)
self.state == "ready",
"request is not in state ready when attempting to start a request"
)
- self.state = "requesting"
-
self.context:finalize()
for _, content in ipairs(self.context.ai_context) do
self:add_prompt_content(content)