Skip to content

Commit d87f04e

Browse files
feat(server_job): Add user_message_count variable to state
This is meant to track the number of user initiated messages, the job_count available currently only counts the total job counts
1 parent 19ccb9a commit d87f04e

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

lua/opencode/server_job.lua

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,15 @@ end
2626
--- @return Promise<T> promise A promise that resolves with the result or rejects with an error
2727
function M.call_api(url, method, body)
2828
local call_promise = Promise.new()
29+
30+
local function is_user_message()
31+
return method == 'POST' and url:match("/message$") ~= nil
32+
end
33+
2934
state.job_count = state.job_count + 1
35+
if is_user_message() then
36+
state.user_message_count = state.user_message_count + 1
37+
end
3038

3139
local request_entry = { nil, call_promise }
3240
table.insert(M.requests, request_entry)
@@ -35,6 +43,9 @@ function M.call_api(url, method, body)
3543
local function remove_from_requests()
3644
for i, entry in ipairs(M.requests) do
3745
if entry == request_entry then
46+
if is_user_message() then
47+
state.user_message_count = state.user_message_count - 1
48+
end
3849
table.remove(M.requests, i)
3950
break
4051
end

lua/opencode/state.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
---@field cost number
3333
---@field tokens_count number
3434
---@field job_count number
35+
---@field user_message_count number
3536
---@field opencode_server OpencodeServer|nil
3637
---@field api_client OpencodeApiClient
3738
---@field event_manager EventManager|nil
@@ -80,6 +81,7 @@ local _state = {
8081
tokens_count = 0,
8182
-- job
8283
job_count = 0,
84+
user_message_count = 0,
8385
opencode_server = nil,
8486
api_client = nil,
8587
event_manager = nil,

0 commit comments

Comments
 (0)