summaryrefslogtreecommitdiff
path: root/lua/99/request/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/99/request/init.lua')
-rw-r--r--lua/99/request/init.lua15
1 files changed, 5 insertions, 10 deletions
diff --git a/lua/99/request/init.lua b/lua/99/request/init.lua
index 408cc87..d154e93 100644
--- a/lua/99/request/init.lua
+++ b/lua/99/request/init.lua
@@ -1,19 +1,11 @@
local Logger = require("99.logger.logger")
-local _id = 1
---- no, i am not going to use a uuid, in case of collision, call the police
---- @return string
-local function get_id()
- local id = _id
- _id = _id + 1
- return tostring(id)
-end
-
--- @param opts _99.Request.Opts
local function validate_opts(opts)
assert(opts.model, "you must provide a model for hange requests to work")
assert(opts.tmp_file, "you must provide context")
assert(opts.provider, "you must provide a model provider")
+ assert(opts.xid, "you must provide a request id")
end
--- @alias _99.Request.State "ready" | "calling-model" | "parsing-result" | "updating-file" | "cancelled"
@@ -60,7 +52,7 @@ function OpenCodeProvider:make_request(query, request, observer)
observer.on_complete(status, text)
end)
- local id = get_id()
+ local id = request.config.xid
Logger:debug("make_request", "tmp_file", request.config.tmp_file, "id", id)
vim.system(
{ "opencode", "run", "-m", request.config.model, query },
@@ -155,11 +147,13 @@ end
--- @field model string
--- @field tmp_file string
--- @field provider _99.Provider?
+--- @field xid number
--- @class _99.Request.Config
--- @field model string
--- @field tmp_file string
--- @field provider _99.Provider
+--- @field xid number
--- @class _99.Request
--- @field config _99.Request.Config
@@ -184,6 +178,7 @@ function Request.new(opts)
end
function Request:cancel()
+ Logger:debug("Request#cancel", "id", self.config.xid)
self.state = "cancelled"
end