@@ -352,14 +352,14 @@ end
352352
353353--- Event handler for message.updated events
354354--- Creates new message or updates existing message info
355- --- @param event EventMessageUpdated Event object
356- function M .on_message_updated (event )
357- if not event or not event . properties or not event . properties .info then
355+ --- @param properties { info : MessageInfo } Event properties
356+ function M .on_message_updated (properties )
357+ if not properties or not properties .info then
358358 return
359359 end
360360
361361 --- @type OpencodeMessage
362- local message = event . properties
362+ local message = properties
363363 if not message .info .id or not message .info .sessionID then
364364 return
365365 end
@@ -373,31 +373,32 @@ function M.on_message_updated(event)
373373
374374 if found_idx then
375375 state .messages [found_idx ].info = message .info
376+ M ._update_stats_from_message (message )
376377 else
377378 table.insert (state .messages , message )
378379 found_idx = # state .messages
379380 M ._message_map :add_message (message .info .id , found_idx )
380381
381- M ._write_message_header (message , found_idx )
382+ M ._update_stats_from_message (message )
382383
384+ M ._write_message_header (message , found_idx )
383385 if message .info .role == ' user' then
384386 state .last_user_message = message
385387 end
386388 end
387- M ._update_stats_from_message (message )
388389
389390 M ._scroll_to_bottom ()
390391end
391392
392393--- Event handler for message.part.updated events
393394--- Inserts new parts or replaces existing parts in buffer
394- --- @param event EventMessagePartUpdated Event object
395- function M .on_part_updated (event )
396- if not event or not event . properties or not event . properties .part then
395+ --- @param properties { part : MessagePart } Event properties
396+ function M .on_part_updated (properties )
397+ if not properties or not properties .part then
397398 return
398399 end
399400
400- local part = event . properties .part
401+ local part = properties .part
401402 if not part .id or not part .messageID or not part .sessionID then
402403 return
403404 end
@@ -470,13 +471,13 @@ function M.on_part_updated(event)
470471end
471472
472473--- Event handler for message.part.removed events
473- --- @param event EventMessagePartRemoved Event object
474- function M .on_part_removed (event )
475- if not event or not event . properties then
474+ --- @param properties { sessionID : string , messageID : string , partID : string } Event properties
475+ function M .on_part_removed (properties )
476+ if not properties then
476477 return
477478 end
478479
479- local part_id = event . properties .partID
480+ local part_id = properties .partID
480481 if not part_id then
481482 return
482483 end
@@ -493,13 +494,13 @@ end
493494
494495--- Event handler for message.removed events
495496--- Removes message and all its parts from buffer
496- --- @param event EventMessageRemoved Event object
497- function M .on_message_removed (event )
498- if not event or not event . properties then
497+ --- @param properties { sessionID : string , messageID : string } Event properties
498+ function M .on_message_removed (properties )
499+ if not properties then
499500 return
500501 end
501502
502- local message_id = event . properties .messageID
503+ local message_id = properties .messageID
503504 if not message_id then
504505 return
505506 end
@@ -520,22 +521,22 @@ function M.on_message_removed(event)
520521end
521522
522523--- Event handler for session.compacted events
523- --- @param event EventSessionCompacted Event object
524- function M .on_session_compacted (event )
524+ --- @param properties { sessionID : string } Event properties
525+ function M .on_session_compacted (properties )
525526 vim .notify (' on_session_compacted' )
526527 -- TODO: render a note that the session was compacted
527528 -- FIXME: did we need unset state.last_sent_context because the
528529 -- session was compacted?
529530end
530531
531532--- Event handler for session.error events
532- --- @param event EventSessionError Event object
533- function M .on_session_error (event )
534- if not event or not event . properties or not event . properties .error then
533+ --- @param properties { sessionID : string , error : table } Event properties
534+ function M .on_session_error (properties )
535+ if not properties or not properties .error then
535536 return
536537 end
537538
538- local error_data = event . properties .error
539+ local error_data = properties .error
539540 local error_message = error_data .data and error_data .data .message or vim .inspect (error_data )
540541
541542 local formatted = formatter .format_error_callout (error_message )
@@ -546,13 +547,13 @@ end
546547
547548--- Event handler for permission.updated events
548549--- Re-renders part that requires permission
549- --- @param event EventPermissionUpdated Event object
550- function M .on_permission_updated (event )
551- if not event or not event . properties then
550+ --- @param properties OpencodePermission Event properties
551+ function M .on_permission_updated (properties )
552+ if not properties then
552553 return
553554 end
554555
555- local permission = event . properties
556+ local permission = properties
556557 if not permission .messageID or not permission .callID then
557558 return
558559 end
568569
569570--- Event handler for permission.replied events
570571--- Re-renders part after permission is resolved
571- --- @param event EventPermissionReplied Event object
572- function M .on_permission_replied (event )
573- if not event or not event . properties then
572+ --- @param properties { sessionID : string , permissionID : string , response : string } Event properties
573+ function M .on_permission_replied (properties )
574+ if not properties then
574575 return
575576 end
576577
@@ -586,7 +587,7 @@ function M.on_permission_replied(event)
586587 end
587588end
588589
589- function M .on_file_edited (event )
590+ function M .on_file_edited (properties )
590591 vim .cmd (' checktime' )
591592end
592593
0 commit comments