Interface EventHandler


public interface EventHandler
Typed callback handler for OpenCode SSE events.

All methods have no-op defaults; callers override only the callbacks they care about.

Usage example:


 client.onSessionEvent(sessionId, new EventHandler() {
     public void onTextDelta(String delta, SseEvent event) {
         System.out.print(delta);
     }
 });
 
Since:
1.0.0
Author:
Loong Wan
See Also:
  • Method Details

    • onEvent

      default void onEvent(SseEvent event)
      任一事件到达时优先触发(最早)。可作为兜底钩子。
      Parameters:
      event - 触发当前回调的完整 SSE 事件
    • onSessionIdle

      default void onSessionIdle(String sessionId, SseEvent event)
      session 进入 idle 状态(agent loop 完成)时触发。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      event - 触发当前回调的完整 SSE 事件
    • onSessionError

      default void onSessionError(String sessionId, String error, SseEvent event)
      session 发生错误时触发。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      error - 导致流式响应失败的异常
      event - 触发当前回调的完整 SSE 事件
    • onTextDelta

      default void onTextDelta(String delta, SseEvent event)
      文本增量(message.part.updated / text.delta 等)。
      Parameters:
      delta - 本次到达的文本增量;为空时忽略
      event - 触发当前回调的完整 SSE 事件
    • onToolCall

      default void onToolCall(String toolName, Map<String,Object> input, SseEvent event)
      工具调用(tool_use part)。
      Parameters:
      toolName - 被调用的工具名称
      input - 工具调用输入参数映射
      event - 触发当前回调的完整 SSE 事件
    • onToolResult

      default void onToolResult(String toolUseId, Object output, SseEvent event)
      工具调用结果(tool_result part)。
      Parameters:
      toolUseId - 关联工具调用与结果的唯一 ID
      output - 工具调用返回的原始结果对象
      event - 触发当前回调的完整 SSE 事件
    • onMessage

      default void onMessage(String messageId, String role, SseEvent event)
      Message 创建事件(user / assistant)。
      Parameters:
      messageId - 会话消息 ID
      role - 消息角色,例如 user、assistant 或 system
      event - 触发当前回调的完整 SSE 事件
    • onSessionStatus

      default void onSessionStatus(String sessionId, String status, SseEvent event)
      Session 状态变更(idle / running / retry / compacting)。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      status - 会话、工具或子系统的当前状态
      event - 触发当前回调的完整 SSE 事件
    • onFileDiff

      default void onFileDiff(String path, SseEvent event)
      文件 diff 事件。
      Parameters:
      path - 文件或工作目录路径
      event - 触发当前回调的完整 SSE 事件
    • onPermissionRequested

      default void onPermissionRequested(String sessionId, String permissionId, SseEvent event)
      处理 permission requested 事件;默认实现不执行操作。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      permissionId - 待处理的权限请求 ID
      event - 触发当前回调的完整 SSE 事件
    • onQuestionRequested

      default void onQuestionRequested(String sessionId, String requestId, SseEvent event)
      处理 question requested 事件;默认实现不执行操作。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      requestId - 待回复的问题或权限请求 ID
      event - 触发当前回调的完整 SSE 事件