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 Summary
Modifier and TypeMethodDescriptiondefault void任一事件到达时优先触发(最早)。default voidonFileDiff(String path, SseEvent event) 文件 diff 事件。default voidMessage 创建事件(user / assistant)。default voidonPermissionRequested(String sessionId, String permissionId, SseEvent event) 处理 permission requested 事件;默认实现不执行操作。default voidonQuestionRequested(String sessionId, String requestId, SseEvent event) 处理 question requested 事件;默认实现不执行操作。default voidonSessionError(String sessionId, String error, SseEvent event) session 发生错误时触发。default voidonSessionIdle(String sessionId, SseEvent event) session 进入 idle 状态(agent loop 完成)时触发。default voidonSessionStatus(String sessionId, String status, SseEvent event) Session 状态变更(idle / running / retry / compacting)。default voidonTextDelta(String delta, SseEvent event) 文本增量(message.part.updated/text.delta等)。default void工具调用(tool_usepart)。default voidonToolResult(String toolUseId, Object output, SseEvent event) 工具调用结果(tool_resultpart)。
-
Method Details
-
onEvent
任一事件到达时优先触发(最早)。可作为兜底钩子。- Parameters:
event- 触发当前回调的完整 SSE 事件
-
onSessionIdle
session 进入 idle 状态(agent loop 完成)时触发。- Parameters:
sessionId- OpenCode 会话 ID;不得为空event- 触发当前回调的完整 SSE 事件
-
onSessionError
session 发生错误时触发。- Parameters:
sessionId- OpenCode 会话 ID;不得为空error- 导致流式响应失败的异常event- 触发当前回调的完整 SSE 事件
-
onTextDelta
文本增量(message.part.updated/text.delta等)。- Parameters:
delta- 本次到达的文本增量;为空时忽略event- 触发当前回调的完整 SSE 事件
-
onToolCall
工具调用(tool_usepart)。- Parameters:
toolName- 被调用的工具名称input- 工具调用输入参数映射event- 触发当前回调的完整 SSE 事件
-
onToolResult
工具调用结果(tool_resultpart)。- Parameters:
toolUseId- 关联工具调用与结果的唯一 IDoutput- 工具调用返回的原始结果对象event- 触发当前回调的完整 SSE 事件
-
onMessage
Message 创建事件(user / assistant)。- Parameters:
messageId- 会话消息 IDrole- 消息角色,例如 user、assistant 或 systemevent- 触发当前回调的完整 SSE 事件
-
onSessionStatus
Session 状态变更(idle / running / retry / compacting)。- Parameters:
sessionId- OpenCode 会话 ID;不得为空status- 会话、工具或子系统的当前状态event- 触发当前回调的完整 SSE 事件
-
onFileDiff
文件 diff 事件。- Parameters:
path- 文件或工作目录路径event- 触发当前回调的完整 SSE 事件
-
onPermissionRequested
处理 permission requested 事件;默认实现不执行操作。- Parameters:
sessionId- OpenCode 会话 ID;不得为空permissionId- 待处理的权限请求 IDevent- 触发当前回调的完整 SSE 事件
-
onQuestionRequested
处理 question requested 事件;默认实现不执行操作。- Parameters:
sessionId- OpenCode 会话 ID;不得为空requestId- 待回复的问题或权限请求 IDevent- 触发当前回调的完整 SSE 事件
-