Skip to content

Commit c840698

Browse files
committed
refactor(permissions)!: upgrade to opencode v1.1.1 breaking API change
#112
1 parent 5707270 commit c840698

3 files changed

Lines changed: 13 additions & 31 deletions

File tree

lua/opencode/cli/client.lua

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -180,13 +180,12 @@ function M.send_message(prompt, session_id, port, provider_id, model_id, callbac
180180
end
181181

182182
---@param port number
183-
---@param session number
184183
---@param permission number
185-
---@param response "once"|"always"|"reject"
184+
---@param reply "once"|"always"|"reject"
186185
---@param callback? fun(session: table)
187-
function M.permit(port, session, permission, response, callback)
188-
M.call(port, "/session/" .. session .. "/permissions/" .. permission, "POST", {
189-
response = response,
186+
function M.permit(port, permission, reply, callback)
187+
M.call(port, "/permission/" .. permission .. "/reply", "POST", {
188+
reply = reply,
190189
}, callback)
191190
end
192191

lua/opencode/health.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function M.check()
3636
vim.health.ok("`opencode` available with version `" .. found_version .. "`.")
3737

3838
local found_version_parsed = vim.version.parse(found_version)
39-
local latest_tested_version = "1.0.60"
39+
local latest_tested_version = "1.1.11"
4040
local latest_tested_version_parsed = vim.version.parse(latest_tested_version)
4141
if found_version_parsed and latest_tested_version_parsed then
4242
if latest_tested_version_parsed[1] ~= found_version_parsed[1] then

plugin/events/permissions.lua

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ local is_permission_request_open = false
3737

3838
vim.api.nvim_create_autocmd("User", {
3939
group = vim.api.nvim_create_augroup("OpencodePermissions", { clear = true }),
40-
pattern = { "OpencodeEvent:permission.updated", "OpencodeEvent:permission.replied" },
40+
pattern = { "OpencodeEvent:permission.asked", "OpencodeEvent:permission.replied" },
4141
callback = function(args)
4242
---@type opencode.cli.client.Event
4343
local event = args.data.event
@@ -49,26 +49,7 @@ vim.api.nvim_create_autocmd("User", {
4949
return
5050
end
5151

52-
if event.type == "permission.updated" then
53-
--[[
54-
`event.properties` example: {
55-
callID = "call_UgJGOepAJ5vQ7rkfGI5LNTaQ",
56-
id = "per_9fe806323001XBhIAz9OrYTrgl",
57-
messageID = "msg_9fe805f7700166572ZsmpxllBH",
58-
metadata = {
59-
command = "ls",
60-
patterns = { "ls *" }
61-
},
62-
pattern = { "ls *" },
63-
sessionID = "ses_60196b60affeVgP0AqbqjvORtu",
64-
time = {
65-
created = 1760911450915
66-
},
67-
title = "ls",
68-
type = "bash"
69-
}
70-
--]]
71-
52+
if event.type == "permission.asked" then
7253
local idle_delay_ms = opts.idle_delay_ms
7354
vim.notify(
7455
"`opencode` requested permission — awaiting idle…",
@@ -77,17 +58,19 @@ vim.api.nvim_create_autocmd("User", {
7758
)
7859
on_user_idle(idle_delay_ms, function()
7960
is_permission_request_open = true
61+
vim.print("event.properties", event.properties)
8062
vim.ui.select({ "Once", "Always", "Reject" }, {
81-
prompt = "Permit opencode to: " .. event.properties.title .. "?: ",
63+
prompt = "Permit opencode to: " .. event.properties.permission .. " " .. table.concat(
64+
event.properties.patterns,
65+
", "
66+
) .. "?: ",
8267
format_item = function(item)
8368
return item
8469
end,
8570
}, function(choice)
8671
is_permission_request_open = false
8772
if choice then
88-
local session_id = event.properties.sessionID
89-
local permission_id = event.properties.id
90-
require("opencode.cli.client").permit(port, session_id, permission_id, choice:lower())
73+
require("opencode.cli.client").permit(port, event.properties.id, choice:lower())
9174
end
9275
end)
9376
end)

0 commit comments

Comments
 (0)