summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authortheprimeagain <the.primeagen@gmail.com>2026-02-14 09:28:11 -0700
committertheprimeagain <the.primeagen@gmail.com>2026-02-14 09:28:11 -0700
commit8db9030ddcfcd227cd265397a3fa4aa521b0f2de (patch)
tree04eb2c9e1dce22fbfb9ddcaa58de2d910e72e16e /lua
parent081a1b31e0e87fcc9b248fc0cf66f66e08698c77 (diff)
downloada4-8db9030ddcfcd227cd265397a3fa4aa521b0f2de.tar.xz
a4-8db9030ddcfcd227cd265397a3fa4aa521b0f2de.zip
fixing how reading content works so make-prompt can be done easier
Diffstat (limited to 'lua')
-rw-r--r--lua/99/extensions/agents/init.lua26
-rw-r--r--lua/99/ops/make-prompt.lua12
2 files changed, 22 insertions, 16 deletions
diff --git a/lua/99/extensions/agents/init.lua b/lua/99/extensions/agents/init.lua
index 559f34b..4002c75 100644
--- a/lua/99/extensions/agents/init.lua
+++ b/lua/99/extensions/agents/init.lua
@@ -110,6 +110,23 @@ function M.by_name(rules, prompt)
}
end
+--- @param rule _99.Agents.Rule
+--- @return string | nil
+function M.get_rule_content(rule)
+ local file_path = rule.absolute_path or rule.path
+ local ok, file = pcall(io.open, file_path, "r")
+ if not ok or not file then
+ return nil
+ end
+ local ok_read, content = pcall(file.read, file, "*a")
+ if not ok_read then
+ return nil
+ end
+
+ pcall(file.close, file)
+ return string.format("<%s>\n%s\n</%s>", rule.name, content, rule.name)
+end
+
--- @param _99 _99.State
--- @return _99.CompletionProvider
function M.completion_provider(_99)
@@ -140,14 +157,7 @@ function M.completion_provider(_99)
if not rule then
return nil
end
- local file_path = rule.absolute_path or rule.path
- local ok, file = pcall(io.open, file_path, "r")
- if not ok or not file then
- return nil
- end
- local content = file:read("*a")
- file:close()
- return string.format("<%s>\n%s\n</%s>", rule.name, content, rule.name)
+ return M.get_rule_content(rule)
end,
}
end
diff --git a/lua/99/ops/make-prompt.lua b/lua/99/ops/make-prompt.lua
index 5a5dc10..8b77256 100644
--- a/lua/99/ops/make-prompt.lua
+++ b/lua/99/ops/make-prompt.lua
@@ -1,10 +1,9 @@
-local Agents = require("99.extensions.agents")
local Completions = require("99.extensions.completions")
--- @param context _99.RequestContext
--- @param prompt string
--- @param opts _99.ops.Opts
---- @return string, _99.Agents.Rule[], _99.Completion
+--- @return string, _99.Completion
return function(context, prompt, opts)
local user_prompt = opts.additional_prompt
assert(
@@ -15,16 +14,13 @@ return function(context, prompt, opts)
local full_prompt = prompt
full_prompt = context._99.prompts.prompts.prompt(user_prompt, full_prompt)
- local rules = Agents.find_rules(context._99.rules, user_prompt)
-
+ local refs = Completions.parse(user_prompt)
local additional_rules = opts.additional_rules
if additional_rules then
for _, r in ipairs(additional_rules) do
- table.insert(rules, r)
+ table.insert(refs, r)
end
end
- local refs = Completions.parse(user_prompt)
-
- return full_prompt, rules, refs
+ return full_prompt, refs
end