Skip to content

Commit ce7f28e

Browse files
committed
chore(types): merge MessagePart into OpencodeMessagePart
1 parent 9823892 commit ce7f28e

File tree

6 files changed

+24
-29
lines changed

6 files changed

+24
-29
lines changed

lua/opencode/api_client.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ end
202202
--- @param id string Session ID (required)
203203
--- @param message_data {messageID?: string, model?: {providerID: string, modelID: string}, agent?: string, system?: string, tools?: table<string, boolean>, parts: Part[]} Message creation data
204204
--- @param directory string|nil Directory path
205-
--- @return Promise<{info: MessageInfo, parts: MessagePart[]}>
205+
--- @return Promise<{info: MessageInfo, parts: OpencodeMessagePart[]}>
206206
function OpencodeApiClient:create_message(id, message_data, directory)
207207
return self:_call('/session/' .. id .. '/message', 'POST', message_data, { directory = directory })
208208
end

lua/opencode/event_manager.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ local state = require('opencode.state')
1818

1919
--- @class EventMessagePartUpdated
2020
--- @field type "message.part.updated"
21-
--- @field properties {part: MessagePart}
21+
--- @field properties {part: OpencodeMessagePart}
2222

2323
--- @class EventMessagePartRemoved
2424
--- @field type "message.part.removed"

lua/opencode/types.lua

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@
142142
---@field message string|nil Optional status or error message
143143

144144
---@class TaskToolMetadata: ToolMetadataBase
145-
---@field summary MessagePart[]
145+
---@field summary OpencodeMessagePart[]
146146

147147
---@class WebFetchToolMetadata: ToolMetadataBase
148148
---@field http_status number|nil HTTP response status code
@@ -203,20 +203,6 @@
203203
---@field prompt string The subtask prompt
204204
---@field description string Description of the subtask
205205

206-
---@class MessagePart
207-
---@field type 'text'|'tool'|'step-start'|'patch' Type of the message part
208-
---@field text string|nil Text content for text parts
209-
---@field id string|nil Unique identifier for tool use parts
210-
---@field tool string|nil Name of the tool being used
211-
---@field state MessagePartState|nil State information for tool use parts
212-
---@field snapshot string|nil Snapshot commit hash
213-
---@field sessionID string|nil Session identifier
214-
---@field messageID string|nil Message identifier
215-
---@field callID string|nil Call identifier (used for tools)
216-
---@field hash string|nil Hash identifier for patch parts
217-
---@field files string[]|nil List of file paths for patch parts
218-
---@field synthetic boolean|nil Whether the message was generated synthetically
219-
220206
---@class MessageTokenCount
221207
---@field reasoning number
222208
---@field input number
@@ -243,7 +229,7 @@
243229

244230
---@class OpencodeMessage
245231
---@field info MessageInfo Metadata about the message
246-
---@field parts MessagePart[] Parts that make up the message
232+
---@field parts OpencodeMessagePart[] Parts that make up the message
247233

248234
---@class MessageInfo
249235
---@field id string Unique message identifier
@@ -337,14 +323,23 @@
337323
---@field value string|nil
338324

339325
---@class OpencodeMessagePart
340-
---@field type 'text'|'file'|'agent'|string
326+
---@field type 'text'|'file'|'agent'|'tool'|'step-start'|'patch'|string
327+
---@field id string|nil Unique identifier for tool use parts
341328
---@field text string|nil
329+
---@field tool string|nil Name of the tool being used
330+
---@field state MessagePartState|nil State information for tool use parts
342331
---@field filename string|nil
343332
---@field mime string|nil
344333
---@field url string|nil
345334
---@field source OpencodeMessagePartSource|nil
346335
---@field name string|nil
347336
---@field synthetic boolean|nil
337+
---@field snapshot string|nil Snapshot commit hash
338+
---@field sessionID string|nil Session identifier
339+
---@field messageID string|nil Message identifier
340+
---@field callID string|nil Call identifier (used for tools)
341+
---@field hash string|nil Hash identifier for patch parts
342+
---@field files string[]|nil List of file paths for patch parts
348343

349344
---@class OpencodeModelModalities
350345
---@field input ('text'|'image'|'audio'|'video')[] Supported input modalities

lua/opencode/ui/formatter.lua

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ function M._format_permission_request(output)
5252
end
5353

5454
---Calculate statistics for reverted messages and tool calls
55-
---@param messages {info: MessageInfo, parts: MessagePart[]}[] All messages in the session
55+
---@param messages {info: MessageInfo, parts: OpencodeMessagePart[]}[] All messages in the session
5656
---@param revert_index number Index of the message where revert occurred
5757
---@param revert_info SessionRevertInfo Revert information
5858
---@return {messages: number, tool_calls: number, files: table<string, {additions: number, deletions: number}>}
@@ -155,7 +155,7 @@ function M._format_revert_message(session_data, start_idx)
155155
end
156156

157157
---@param output Output Output object to write to
158-
---@param part MessagePart
158+
---@param part OpencodeMessagePart
159159
function M._format_patch(output, part)
160160
local restore_points = snapshot.get_restore_points_by_parent(part.hash) or {}
161161
M._format_action(output, icons.get('snapshot') .. ' Created Snapshot', vim.trim(part.hash:sub(1, 8)))
@@ -351,7 +351,7 @@ function M._format_user_prompt(output, text, message)
351351
end
352352

353353
---@param output Output Output object to write to
354-
---@param part MessagePart
354+
---@param part OpencodeMessagePart
355355
function M._format_selection_context(output, part)
356356
local json = context_module.decode_json_context(part.text, 'selection')
357357
if not json then
@@ -517,7 +517,7 @@ function M._format_list_tool(output, input, metadata, tool_output)
517517
end
518518

519519
---@param output Output Output object to write to
520-
---@param part MessagePart
520+
---@param part OpencodeMessagePart
521521
function M._format_tool(output, part)
522522
local tool = part.tool
523523
if not tool or not part.state then
@@ -679,7 +679,7 @@ function M._add_vertical_border(output, start_line, end_line, hl_group, win_col)
679679
end
680680

681681
---Formats a single message part and returns the resulting output object
682-
---@param part MessagePart The part to format
682+
---@param part OpencodeMessagePart The part to format
683683
---@param message? OpencodeMessage Optional message object to extract role and mentions from
684684
---@return Output
685685
function M.format_part(part, message)

lua/opencode/ui/render_state.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ local state = require('opencode.state')
66
---@field line_end integer? Line where message header ends
77

88
---@class RenderedPart
9-
---@field part MessagePart Direct reference to part in state.messages
9+
---@field part OpencodeMessagePart Direct reference to part in state.messages
1010
---@field message_id string ID of parent message
1111
---@field line_start integer? Line where part starts
1212
---@field line_end integer? Line where part ends
@@ -75,7 +75,7 @@ end
7575

7676
---Get part ID by snapshot_id and message ID
7777
---@param snapshot_id string Call ID
78-
---@return MessagePart? part Part if found
78+
---@return OpencodeMessagePart? part Part if found
7979
function RenderState:get_part_by_snapshot_id(snapshot_id)
8080
for _, rendered_message in pairs(self._messages) do
8181
for _, part in ipairs(rendered_message.message.parts) do
@@ -175,7 +175,7 @@ function RenderState:set_message(message, line_start, line_end)
175175
end
176176

177177
---Set or update part render data
178-
---@param part MessagePart Direct reference to part (must include id/messageID)
178+
---@param part OpencodeMessagePart Direct reference to part (must include id/messageID)
179179
---@param line_start integer? Line where part starts
180180
---@param line_end integer? Line where part ends
181181
function RenderState:set_part(part, line_start, line_end)
@@ -242,7 +242,7 @@ function RenderState:update_part_lines(part_id, new_line_start, new_line_end)
242242
end
243243

244244
---Update part data reference
245-
---@param part_ref MessagePart New part reference (must include id)
245+
---@param part_ref OpencodeMessagePart New part reference (must include id)
246246
function RenderState:update_part_data(part_ref)
247247
if not part_ref or not part_ref.id then
248248
return

lua/opencode/ui/renderer.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ end
415415

416416
---Event handler for message.part.updated events
417417
---Inserts new parts or replaces existing parts in buffer
418-
---@param properties {part: MessagePart} Event properties
418+
---@param properties {part: OpencodeMessagePart} Event properties
419419
---@param revert_index? integer Revert index in session, if applicable
420420
function M.on_part_updated(properties, revert_index)
421421
if not properties or not properties.part then

0 commit comments

Comments
 (0)