Class OpenCodeClient

java.lang.Object
io.github.easy4j.opencode.OpenCodeClient
All Implemented Interfaces:
AutoCloseable

public class OpenCodeClient extends Object implements AutoCloseable
Facade client for OpenCode: HTTP Server + SSE event stream + local CLI.

Three communication channels are independent of each other and are created based on the enabled flag in their respective sub-configurations:

  • OpenCodeHttpClientConfig.enabled = false → HTTP/SSE 子客户端不可用
  • OpenCodeCliConfig.enabled = false → CLI 子客户端不可用

Constructor Selection

Eight overloads cover three scenarios:

  • HTTP only / CLI only: pass a single sub-config; the other subsystem is disabled
  • HTTP + CLI: pass two sub-configs; each subsystem is enabled per its own enabled flag
  • Combined config: pass OpenCodeClientConfig; internally split into two sub-configs

Each scenario has a variant with auto-created ObjectMapper/OkHttpClient and a variant with forced injection (the injected version applies requireNonNull validation).

Startup Health Checks

After subsystem initialization, the primary constructor runs health probes based on startupCheckEnabled and failFastOnUnavailable (HTTP: GET /global/health; CLI: opencode --version). If the probe fails but fail-fast is not enabled, only a WARN log is emitted and construction continues.

Since:
1.0.0
Author:
Loong Wan
See Also:
  • Constructor Details

    • OpenCodeClient

      public OpenCodeClient(OpenCodeHttpClientConfig httpConfig)
      仅 HTTP 子系统(CLI 禁用)。自动创建默认 ObjectMapper 与 OkHttpClient。
      Parameters:
      httpConfig - HTTP 子系统配置;为 null 时禁用 HTTP 能力
      Throws:
      IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用
    • OpenCodeClient

      public OpenCodeClient(OpenCodeHttpClientConfig httpConfig, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient)
      仅 HTTP 子系统(CLI 禁用),强制注入共享 ObjectMapper 与 OkHttpClient。
      Parameters:
      httpConfig - HTTP 子系统配置;为 null 时禁用 HTTP 能力
      objectMapper - JSON 映射器;为 null 时使用 SDK 默认配置
      httpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建
      Throws:
      IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用
    • OpenCodeClient

      public OpenCodeClient(OpenCodeCliConfig cliConfig)
      仅 CLI 子系统(HTTP 禁用)。自动创建默认 ObjectMapper 与 OkHttpClient。
      Parameters:
      cliConfig - CLI 子系统配置;为 null 时禁用 CLI 能力
      Throws:
      IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用
    • OpenCodeClient

      public OpenCodeClient(OpenCodeCliConfig cliConfig, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient)
      仅 CLI 子系统(HTTP 禁用),强制注入共享 ObjectMapper 与 OkHttpClient。
      Parameters:
      cliConfig - CLI 子系统配置;为 null 时禁用 CLI 能力
      objectMapper - JSON 映射器;为 null 时使用 SDK 默认配置
      httpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建
      Throws:
      IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用
    • OpenCodeClient

      public OpenCodeClient(OpenCodeHttpClientConfig httpConfig, OpenCodeCliConfig cliConfig)
      HTTP + CLI 子系统。自动创建默认 ObjectMapper 与 OkHttpClient。
      Parameters:
      httpConfig - HTTP 子系统配置;为 null 时禁用 HTTP 能力
      cliConfig - CLI 子系统配置;为 null 时禁用 CLI 能力
      Throws:
      IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用
    • OpenCodeClient

      public OpenCodeClient(OpenCodeHttpClientConfig httpConfig, OpenCodeCliConfig cliConfig, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient)
      HTTP + CLI 子系统,强制注入共享 ObjectMapper 与 OkHttpClient。

      主构造器:所有参数 requireNonNull;HTTP/CLI 子客户端按各自 enabled 决定是否创建(禁用时为 null);构造完成后按 startupCheckEnabled 与 failFastOnUnavailable 执行启动自检。

      Parameters:
      httpConfig - HTTP 子系统配置;为 null 时禁用 HTTP 能力
      cliConfig - CLI 子系统配置;为 null 时禁用 CLI 能力
      objectMapper - JSON 映射器;为 null 时使用 SDK 默认配置
      httpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建
      Throws:
      IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用
    • OpenCodeClient

      public OpenCodeClient(OpenCodeClientConfig config)
      组合配置,自动创建默认 ObjectMapper 与 OkHttpClient。
      Parameters:
      config - 客户端配置;不得为 null
      Throws:
      IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用
    • OpenCodeClient

      public OpenCodeClient(OpenCodeClientConfig config, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient)
      组合配置,强制注入共享 ObjectMapper 与 OkHttpClient。
      Parameters:
      config - 客户端配置;不得为 null
      objectMapper - JSON 映射器;为 null 时使用 SDK 默认配置
      httpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建
      Throws:
      IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用
    • OpenCodeClient

      public OpenCodeClient(OpenCodeClientConfig config, OpenCodeHttpClient httpClient, OpenCodeSseClient sseClient, OpenCodeCli cli)
      全量依赖注入(用于测试或自定义组件)。

      使用此构造方法不会执行任何启动自检。

      Parameters:
      config - 客户端配置;不得为 null
      httpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建
      sseClient - SSE 客户端;为 null 时按配置创建
      cli - CLI 门面;为 null 时按配置创建
      Throws:
      IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用
  • Method Details

    • isHttpEnabled

      public boolean isHttpEnabled()
      HTTP 子系统是否启用。
      Returns:
      满足条件返回 true,否则返回 false
    • isCliEnabled

      public boolean isCliEnabled()
      CLI 子系统是否启用。
      Returns:
      满足条件返回 true,否则返回 false
    • createSession

      public Session createSession(String title)
      通过 OpenCode Server HTTP API 创建会话。
      Parameters:
      title - 会话标题;用于展示和稳定会话查找
      Returns:
      OpenCode SDK 返回的会话对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getSession

      public Session getSession(String sessionId)
      通过 OpenCode Server HTTP API 获取会话。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      Returns:
      OpenCode SDK 返回的会话对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listSessions

      public List<Session> listSessions()
      通过 OpenCode Server HTTP API 查询会话;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的会话列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listSessions

      public List<Session> listSessions(String search, Integer limit, Integer start)
      通过 OpenCode Server HTTP API 查询会话;无数据时返回空集合。
      Parameters:
      search - 标题搜索条件;为空时不限制
      limit - 最大返回数量;为 null 时使用服务端默认值
      start - 分页起始偏移;为 null 时从首项开始
      Returns:
      OpenCode Server 返回的会话列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • findSessionByTitle

      public Optional<Session> findSessionByTitle(String title)
      调用 OpenCode Server 搜索接口查找标题匹配的会话;未命中时返回空结果。
      Parameters:
      title - 会话标题;用于展示和稳定会话查找
      Returns:
      匹配的 OpenCode 会话;未找到时为 Optional.empty()
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • deleteSession

      public boolean deleteSession(String sessionId)
      请求 OpenCode Server 删除会话。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletion

      public PromptResult chatCompletion(String sessionId, PromptRequest request)
      同步提交聊天请求并返回完整响应。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      request - 请求对象;不得为 null
      Returns:
      OpenCode SDK 返回的Prompt 结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletion

      public PromptResult chatCompletion(String sessionId, String text)
      同步提交聊天请求并返回完整响应。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      text - 发送给模型的文本内容
      Returns:
      OpenCode SDK 返回的Prompt 结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletion

      public PromptResult chatCompletion(String sessionId, String text, String providerID, String modelID)
      同步提交聊天请求并返回完整响应。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      text - 发送给模型的文本内容
      providerID - 模型提供方 ID
      modelID - 模型 ID
      Returns:
      OpenCode SDK 返回的Prompt 结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletionWithSession

      public PromptResult chatCompletionWithSession(PromptRequest request, String sessionKey)
      复用或创建稳定会话后提交聊天请求并返回结果。
      Parameters:
      request - 请求对象;不得为 null
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      Returns:
      OpenCode SDK 返回的Prompt 结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletionWithSession

      public PromptResult chatCompletionWithSession(PromptRequest request, String sessionKey, HttpCallCancellation cancellation)
      复用或创建稳定会话后提交聊天请求并返回结果。
      Parameters:
      request - 请求对象;不得为 null
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      cancellation - 取消信号;为 null 时不可由外部取消
      Returns:
      OpenCode SDK 返回的Prompt 结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletionWithSession

      public PromptResult chatCompletionWithSession(String text, String sessionKey)
      复用或创建稳定会话后提交聊天请求并返回结果。
      Parameters:
      text - 发送给模型的文本内容
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      Returns:
      OpenCode SDK 返回的Prompt 结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletionWithSession

      public PromptResult chatCompletionWithSession(String text, String providerID, String modelID, String sessionKey)
      复用或创建稳定会话后提交聊天请求并返回结果。
      Parameters:
      text - 发送给模型的文本内容
      providerID - 模型提供方 ID
      modelID - 模型 ID
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      Returns:
      OpenCode SDK 返回的Prompt 结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletionWithSessionAsync

      public CompletableFuture<Boolean> chatCompletionWithSessionAsync(PromptRequest request, String sessionKey)
      异步复用或创建稳定会话后提交聊天请求,不阻塞调用线程。
      Parameters:
      request - 请求对象;不得为 null
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      Returns:
      异步结果;失败时以异常方式完成
    • chatCompletion

      public ChatResponse chatCompletion(String sessionId, ChatRequest request)
      同步提交聊天请求并返回完整响应。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      request - 请求对象;不得为 null
      Returns:
      OpenCode SDK 返回的聊天响应对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletionAsync

      public CompletableFuture<ChatResponse> chatCompletionAsync(String sessionId, ChatRequest request)
      异步完成指定会话的聊天请求。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      request - 请求对象;不得为 null
      Returns:
      异步结果;失败时以异常方式完成
    • chatCompletionWithSession

      public ChatResponse chatCompletionWithSession(ChatRequest request, String sessionKey)
      复用或创建稳定会话后提交聊天请求并返回结果。
      Parameters:
      request - 请求对象;不得为 null
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      Returns:
      OpenCode SDK 返回的聊天响应对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletionWithSession

      public ChatResponse chatCompletionWithSession(ChatRequest request, String sessionKey, HttpCallCancellation cancellation)
      复用或创建稳定会话后提交聊天请求并返回结果。
      Parameters:
      request - 请求对象;不得为 null
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      cancellation - 取消信号;为 null 时不可由外部取消
      Returns:
      OpenCode SDK 返回的聊天响应对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletionWithSessionAsync

      public CompletableFuture<ChatResponse> chatCompletionWithSessionAsync(ChatRequest request, String sessionKey, HttpCallCancellation cancellation)
      异步查找会话并完成聊天请求。
      Parameters:
      request - 请求对象;不得为 null
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      cancellation - 取消信号;为 null 时不可由外部取消
      Returns:
      异步结果;失败时以异常方式完成
    • chatCompletionStream

      public StreamingChatResponse chatCompletionStream(ChatRequest request, String sessionKey)
      创建流式聊天响应,异步订阅会话事件并持续交付文本增量。
      Parameters:
      request - 请求对象;不得为 null
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      Returns:
      可观察文本增量、等待完成或主动取消的流式响应
    • chatCompletionStream

      public StreamingChatResponse chatCompletionStream(ChatRequest request, String sessionKey, OpenCodeRequestContext context)
      创建流式聊天响应,异步订阅会话事件并持续交付文本增量。
      Parameters:
      request - 请求对象;不得为 null
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      context - 请求上下文;为 null 时不附加目录头
      Returns:
      可观察文本增量、等待完成或主动取消的流式响应
    • chatCompletionStream

      public StreamingChatResponse chatCompletionStream(ChatRequest request, String sessionKey, OpenCodeRequestContext context, Consumer<String> deltaConsumer)
      流式对话,并在订阅启动前绑定增量回调,避免丢失首批分片。
      Parameters:
      request - 请求对象;不得为 null
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      context - 请求上下文;为 null 时不附加目录头
      deltaConsumer - 文本增量消费者;不得为 null
      Returns:
      可观察文本增量、等待完成或主动取消的流式响应
    • ensureSession

      public String ensureSession(String sessionKey)
      查找稳定会话键对应的会话;不存在时创建新会话。
      Parameters:
      sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题
      Returns:
      已复用或新建的 OpenCode 会话 ID
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • chatCompletionAsync

      public CompletableFuture<Boolean> chatCompletionAsync(String sessionId, PromptRequest request)
      异步提交聊天请求;网络或解析失败通过返回的 Future 传播。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      request - 请求对象;不得为 null
      Returns:
      异步结果;失败时以异常方式完成
    • chatCompletionAsync

      public CompletableFuture<Boolean> chatCompletionAsync(String sessionId, String text)
      异步提交聊天请求;网络或解析失败通过返回的 Future 传播。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      text - 发送给模型的文本内容
      Returns:
      异步结果;失败时以异常方式完成
    • getMessages

      public List<PromptResult> getMessages(String sessionId)
      通过 OpenCode Server HTTP API 获取会话消息。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      Returns:
      OpenCode Server 返回的Prompt 结果列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • abort

      public boolean abort(String sessionId)
      请求 OpenCode Server 中止指定会话中正在运行的生成任务。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listAgents

      public List<Agent> listAgents()
      通过 OpenCode Server HTTP API 查询智能体;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的智能体列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • health

      public HealthStatus health()
      同步查询 OpenCode Server 的健康状态和版本信息。
      Returns:
      OpenCode SDK 返回的健康状态对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • healthAsync

      public CompletableFuture<HealthStatus> healthAsync()
      异步检查 OpenCode Server 健康状态。
      Returns:
      异步结果;失败时以异常方式完成
    • chat

      public OpenCodeChatClient chat()
      获取统一的 OpenCode 聊天场景客户端。
      Returns:
      OpenCode SDK 返回的聊天客户端对象
    • sse

      public OpenCodeSseClient sse()
      获取统一的 OpenCode SSE 场景客户端。
      Returns:
      OpenCode SDK 返回的SSE 客户端对象
    • cli

      public OpenCodeCli cli()
      委托本地 OpenCode CLI 门面执行OpenCode 协议数据,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 门面对象
    • getConfig

      public OpenCodeClientConfig getConfig()
      通过 OpenCode Server HTTP API 获取实例配置。
      Returns:
      OpenCode SDK 返回的聚合客户端配置对象
    • getOpenCodeConfig

      public OpenCodeConfig getOpenCodeConfig()
      通过 OpenCode Server HTTP API 获取配置。
      Returns:
      OpenCode SDK 返回的配置对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getGlobalOpenCodeConfig

      public OpenCodeConfig getGlobalOpenCodeConfig()
      通过 OpenCode Server HTTP API 获取全局配置。
      Returns:
      OpenCode SDK 返回的配置对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • updateOpenCodeConfig

      public OpenCodeConfig updateOpenCodeConfig(Object body)
      向 OpenCode Server 提交配置更新,并返回更新后的服务端表示。
      Parameters:
      body - 提交给服务端的请求体
      Returns:
      OpenCode SDK 返回的配置对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • updateGlobalOpenCodeConfig

      public OpenCodeConfig updateGlobalOpenCodeConfig(Object body)
      向 OpenCode Server 提交全局配置更新,并返回更新后的服务端表示。
      Parameters:
      body - 提交给服务端的请求体
      Returns:
      OpenCode SDK 返回的配置对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getConfigProviders

      public ProviderList getConfigProviders()
      通过 OpenCode Server HTTP API 获取配置中的模型提供方。
      Returns:
      OpenCode SDK 返回的模型提供方清单对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listProjects

      public List<Project> listProjects()
      通过 OpenCode Server HTTP API 查询项目;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的项目列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getCurrentProject

      public Project getCurrentProject()
      通过 OpenCode Server HTTP API 获取当前项目。
      Returns:
      OpenCode SDK 返回的项目对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • updateProject

      public Project updateProject(String projectId, Object body)
      向 OpenCode Server 提交项目更新,并返回更新后的服务端表示。
      Parameters:
      projectId - OpenCode 项目 ID;不得为空
      body - 提交给服务端的请求体
      Returns:
      OpenCode SDK 返回的项目对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • initProjectGit

      public boolean initProjectGit()
      请求 OpenCode Server 在当前项目目录初始化 Git 仓库。
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listProviders

      public ProviderList listProviders()
      通过 OpenCode Server HTTP API 查询模型提供方;无数据时返回空集合。
      Returns:
      OpenCode SDK 返回的模型提供方清单对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listProviderAuthMethods

      public Map<String,List<ProviderAuthMethod>> listProviderAuthMethods()
      通过 OpenCode Server HTTP API 查询模型提供方认证方式;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的键值映射;无数据时为空映射
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • providerOAuthAuthorize

      public ProviderAuthAuthorization providerOAuthAuthorize(String providerId, String method)
      启动指定模型提供方的 OAuth 授权流程,并返回访问地址及校验状态。
      Parameters:
      providerId - 模型提供方 ID
      method - 认证或升级方式
      Returns:
      OpenCode SDK 返回的模型提供方授权信息对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • providerOAuthCallback

      public boolean providerOAuthCallback(String providerId, String code)
      向 OpenCode Server 提交模型提供方 OAuth 回调授权码。
      Parameters:
      providerId - 模型提供方 ID
      code - OAuth 回调授权码
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listFiles

      public List<FileNode> listFiles(String path)
      通过 OpenCode Server HTTP API 查询文件节点;无数据时返回空集合。
      Parameters:
      path - 文件或工作目录路径
      Returns:
      OpenCode Server 返回的文件节点列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getFileContent

      public FileContent getFileContent(String path)
      通过 OpenCode Server HTTP API 获取文件内容。
      Parameters:
      path - 文件或工作目录路径
      Returns:
      OpenCode SDK 返回的文件内容对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getFileStatus

      public List<FileNode> getFileStatus()
      通过 OpenCode Server HTTP API 获取文件状态。
      Returns:
      OpenCode Server 返回的文件节点列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • find

      public List<FileSearchResult> find(String pattern)
      调用 OpenCode Server 搜索接口查找OpenCode 协议数据;未命中时返回空结果。
      Parameters:
      pattern - 文本搜索模式
      Returns:
      OpenCode Server 返回的文件搜索匹配项列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • findFiles

      public List<String> findFiles(String query)
      调用 OpenCode Server 搜索接口查找文件节点;未命中时返回空结果。
      Parameters:
      query - 搜索或数据库查询表达式
      Returns:
      OpenCode Server 返回的文本列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • findSymbols

      public List<Symbol> findSymbols(String query)
      调用 OpenCode Server 搜索接口查找代码符号;未命中时返回空结果。
      Parameters:
      query - 搜索或数据库查询表达式
      Returns:
      OpenCode Server 返回的代码符号列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listCommands

      public List<Command> listCommands()
      通过 OpenCode Server HTTP API 查询斜杠命令;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的斜杠命令列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listSkills

      public List<Skill> listSkills()
      通过 OpenCode Server HTTP API 查询技能;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的技能描述列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listFormatters

      public List<FormatterStatus> listFormatters()
      通过 OpenCode Server HTTP API 查询格式化器状态;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的格式化器状态列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listLsps

      public List<LspStatus> listLsps()
      通过 OpenCode Server HTTP API 查询语言服务器状态;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的语言服务器状态列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listMcpServers

      public Map<String,McpStatus> listMcpServers()
      通过 OpenCode Server HTTP API 查询MCP 服务;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的键值映射;无数据时为空映射
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • addMcpServer

      public McpStatus addMcpServer(String name, Object config)
      向当前 OpenCode 实例注册 MCP 服务配置,并返回服务状态。
      Parameters:
      name - 资源名称
      config - 客户端配置;不得为 null
      Returns:
      OpenCode SDK 返回的MCP 服务状态对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getPath

      public OpenCodePath getPath()
      通过 OpenCode Server HTTP API 获取运行路径信息。
      Returns:
      OpenCode SDK 返回的运行路径对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getVcs

      public VcsInfo getVcs()
      通过 OpenCode Server HTTP API 获取版本控制状态。
      Returns:
      OpenCode SDK 返回的版本控制信息对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getSessionStatusMap

      public Map<String,SessionStatus> getSessionStatusMap()
      通过 OpenCode Server HTTP API 获取会话状态。
      Returns:
      OpenCode Server 返回的键值映射;无数据时为空映射
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getSessionChildren

      public List<Session> getSessionChildren(String sessionId)
      通过 OpenCode Server HTTP API 获取子会话。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      Returns:
      OpenCode Server 返回的会话列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getSessionTodo

      public List<SessionTodo> getSessionTodo(String sessionId)
      通过 OpenCode Server HTTP API 获取会话待办项。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      Returns:
      OpenCode Server 返回的会话待办项列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getSessionDiff

      public List<FileDiff> getSessionDiff(String sessionId, String messageId)
      通过 OpenCode Server HTTP API 获取会话文件差异。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      messageId - 会话消息 ID
      Returns:
      OpenCode Server 返回的文件差异列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • shareSession

      public Session shareSession(String sessionId)
      为指定会话启用共享,并返回更新后的会话信息。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      Returns:
      OpenCode SDK 返回的会话对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • unshareSession

      public Session unshareSession(String sessionId)
      取消指定会话的共享状态,并返回更新后的会话信息。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      Returns:
      OpenCode SDK 返回的会话对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • forkSession

      public Session forkSession(String sessionId, String messageId)
      从指定消息位置派生新会话,并返回服务端创建的子会话。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      messageId - 会话消息 ID
      Returns:
      OpenCode SDK 返回的会话对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • initSession

      public boolean initSession(String sessionId, String messageId, String providerId, String modelId)
      使用指定消息和模型初始化会话上下文及 AGENTS.md。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      messageId - 会话消息 ID
      providerId - 模型提供方 ID
      modelId - 模型 ID
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • summarizeSession

      public boolean summarizeSession(String sessionId, String providerId, String modelId)
      使用指定模型压缩会话上下文,以降低后续请求的上下文长度。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      providerId - 模型提供方 ID
      modelId - 模型 ID
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • revertSession

      public boolean revertSession(String sessionId, String messageId, String partId)
      将会话回退到指定消息或消息片段。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      messageId - 会话消息 ID
      partId - 消息片段 ID
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • unrevertSession

      public boolean unrevertSession(String sessionId)
      撤销会话最近一次回退操作。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • getMessage

      public MessageInfo getMessage(String sessionId, String messageId)
      通过 OpenCode Server HTTP API 获取会话消息。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      messageId - 会话消息 ID
      Returns:
      OpenCode SDK 返回的消息详情对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • runSessionCommand

      public PromptResult runSessionCommand(String sessionId, String command, String arguments, String agent, String model)
      在指定会话中执行斜杠命令,并返回生成结果。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      command - OpenCode 斜杠命令或 CLI 子命令
      arguments - 传递给斜杠命令的参数文本;为空时不附加参数
      agent - 执行请求的智能体名称;为空时使用服务端默认智能体
      model - 模型标识,通常采用 provider/model 格式;为空时使用默认模型
      Returns:
      OpenCode SDK 返回的Prompt 结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listQuestions

      public List<QuestionRequest> listQuestions()
      通过 OpenCode Server HTTP API 查询待回答问题;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的问题请求列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • replyQuestion

      public boolean replyQuestion(String requestId, List<String> answers)
      回复question请求。
      Parameters:
      requestId - 待回复的问题或权限请求 ID
      answers - 按问题顺序提交的答案列表
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • rejectQuestion

      public boolean rejectQuestion(String requestId)
      拒绝question请求。
      Parameters:
      requestId - 待回复的问题或权限请求 ID
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • listPermissions

      public List<PermissionRequest> listPermissions()
      通过 OpenCode Server HTTP API 查询待处理权限;无数据时返回空集合。
      Returns:
      OpenCode Server 返回的权限请求列表;无数据时为空列表
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • replyPermission

      public boolean replyPermission(String requestId, String response, boolean remember)
      回复permission请求。
      Parameters:
      requestId - 待回复的问题或权限请求 ID
      response - 权限请求响应值,例如 allow 或 deny
      remember - 是否记住本次权限决定并应用于后续同类请求
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • setAuth

      public boolean setAuth(String providerId, Object body)
      保存指定模型提供方的认证配置。
      Parameters:
      providerId - 模型提供方 ID
      body - 提交给服务端的请求体
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • removeAuth

      public boolean removeAuth(String providerId)
      请求 OpenCode Server 删除认证信息。
      Parameters:
      providerId - 模型提供方 ID
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • disposeInstance

      public boolean disposeInstance()
      释放当前 OpenCode Server 实例持有的运行资源。
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • globalDispose

      public boolean globalDispose()
      请求 OpenCode Server 释放全部全局实例资源。
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • globalUpgrade

      public boolean globalUpgrade(String target)
      请求 OpenCode Server 将全局安装升级到指定目标版本。
      Parameters:
      target - 升级目标版本;为空时由 CLI 选择最新版本
      Returns:
      操作成功返回 true,否则返回 false
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliServe

      public OpenCodeCliResult cliServe()
      委托本地 OpenCode CLI 门面执行serve 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliServe

      public OpenCodeCliResult cliServe(Integer port, String hostname)
      委托本地 OpenCode CLI 门面执行serve 子命令,同步返回退出状态及输出。
      Parameters:
      port - 监听端口;为 null 时使用 CLI 默认值
      hostname - 监听地址;为空时使用 CLI 默认值
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliWeb

      public OpenCodeCliResult cliWeb()
      委托本地 OpenCode CLI 门面执行web 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliWeb

      public OpenCodeCliResult cliWeb(Integer port, String hostname)
      委托本地 OpenCode CLI 门面执行web 子命令,同步返回退出状态及输出。
      Parameters:
      port - 监听端口;为 null 时使用 CLI 默认值
      hostname - 监听地址;为空时使用 CLI 默认值
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliAcp

      public OpenCodeCliResult cliAcp(String cwd)
      委托本地 OpenCode CLI 门面执行acp 子命令,同步返回退出状态及输出。
      Parameters:
      cwd - CLI 进程使用的当前工作目录;为空时继承配置
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliGenerate

      public OpenCodeCliResult cliGenerate()
      委托本地 OpenCode CLI 门面执行generate 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliAttach

      public OpenCodeCliResult cliAttach(String url, String dir, String sessionId, String username, String password)
      委托本地 OpenCode CLI 门面执行attach 子命令,同步返回退出状态及输出。
      Parameters:
      url - 远程服务或控制台 URL
      dir - CLI 命令作用目录;为空时使用配置工作目录
      sessionId - OpenCode 会话 ID;不得为空
      username - OpenCode Server Basic Auth 用户名
      password - OpenCode Server Basic Auth 密码;日志中不得明文输出
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliUpgrade

      public OpenCodeCliResult cliUpgrade()
      委托本地 OpenCode CLI 门面执行upgrade 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliUpgrade

      public OpenCodeCliResult cliUpgrade(String target, String method)
      委托本地 OpenCode CLI 门面执行upgrade 子命令,同步返回退出状态及输出。
      Parameters:
      target - 升级目标版本;为空时由 CLI 选择最新版本
      method - 认证或升级方式
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliUninstall

      public OpenCodeCliResult cliUninstall(boolean keepConfig, boolean keepData, boolean dryRun, boolean force)
      委托本地 OpenCode CLI 门面执行uninstall 子命令,同步返回退出状态及输出。
      Parameters:
      keepConfig - 卸载时是否保留本地配置
      keepData - 卸载时是否保留会话和缓存数据
      dryRun - 是否仅预览操作而不实际修改本地安装
      force - 是否强制执行操作
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliStats

      public OpenCodeCliResult cliStats()
      委托本地 OpenCode CLI 门面执行stats 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliStats

      public OpenCodeCliResult cliStats(Integer days, Integer tools, Integer models, String project)
      委托本地 OpenCode CLI 门面执行stats 子命令,同步返回退出状态及输出。
      Parameters:
      days - 统计覆盖的最近天数;为 null 时使用 CLI 默认范围
      tools - 统计结果中最多展示的工具数量;为 null 时使用 CLI 默认值
      models - 统计结果中最多展示的模型数量;为 null 时使用 CLI 默认值
      project - 统计限定的项目名称;为空时统计全部项目
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliExport

      public OpenCodeCliResult cliExport(String sessionId, boolean sanitize)
      委托本地 OpenCode CLI 门面执行export 子命令,同步返回退出状态及输出。
      Parameters:
      sessionId - OpenCode 会话 ID;不得为空
      sanitize - 是否在导出结果中移除敏感信息
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliImport

      public OpenCodeCliResult cliImport(String fileOrUrl)
      委托本地 OpenCode CLI 门面执行import 子命令,同步返回退出状态及输出。
      Parameters:
      fileOrUrl - 待导入的本地文件路径或远程 URL
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliSessionList

      public OpenCodeCliResult cliSessionList()
      委托本地 OpenCode CLI 门面执行session list 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliSessionList

      public OpenCodeCliResult cliSessionList(int maxCount)
      委托本地 OpenCode CLI 门面执行session list 子命令,同步返回退出状态及输出。
      Parameters:
      maxCount - 最大返回会话数量
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliAgentList

      public OpenCodeCliResult cliAgentList()
      委托本地 OpenCode CLI 门面执行agent list 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliAgentCreate

      public OpenCodeCliResult cliAgentCreate(String path, String description, String mode, String permissions, String model)
      委托本地 OpenCode CLI 门面执行agent create 子命令,同步返回退出状态及输出。
      Parameters:
      path - 文件或工作目录路径
      description - 资源的可读说明;为空时由 OpenCode 使用默认描述
      mode - 智能体运行模式或 CLI 行为模式
      permissions - 智能体创建时使用的权限配置文本
      model - 模型标识,通常采用 provider/model 格式;为空时使用默认模型
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliModels

      public OpenCodeCliResult cliModels()
      委托本地 OpenCode CLI 门面执行models 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliModels

      public OpenCodeCliResult cliModels(String provider, boolean verbose, boolean refresh)
      委托本地 OpenCode CLI 门面执行models 子命令,同步返回退出状态及输出。
      Parameters:
      provider - 模型提供方 ID;为空时不限制提供方
      verbose - 是否输出模型的详细元数据
      refresh - 是否在列出模型前强制刷新提供方元数据
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliProvidersList

      public OpenCodeCliResult cliProvidersList()
      委托本地 OpenCode CLI 门面执行providers list 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliProvidersLogin

      public OpenCodeCliResult cliProvidersLogin(String provider, String method)
      委托本地 OpenCode CLI 门面执行providers login 子命令,同步返回退出状态及输出。
      Parameters:
      provider - 模型提供方 ID;为空时不限制提供方
      method - 认证或升级方式
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliProvidersLogout

      public OpenCodeCliResult cliProvidersLogout(String provider)
      委托本地 OpenCode CLI 门面执行providers logout 子命令,同步返回退出状态及输出。
      Parameters:
      provider - 模型提供方 ID;为空时不限制提供方
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliAuthList

      public OpenCodeCliResult cliAuthList()
      委托本地 OpenCode CLI 门面执行auth list 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliAuthLogin

      public OpenCodeCliResult cliAuthLogin(String provider, String method)
      委托本地 OpenCode CLI 门面执行auth login 子命令,同步返回退出状态及输出。
      Parameters:
      provider - 模型提供方 ID;为空时不限制提供方
      method - 认证或升级方式
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliAuthLogout

      public OpenCodeCliResult cliAuthLogout(String provider)
      委托本地 OpenCode CLI 门面执行auth logout 子命令,同步返回退出状态及输出。
      Parameters:
      provider - 模型提供方 ID;为空时不限制提供方
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliMcpList

      public OpenCodeCliResult cliMcpList()
      委托本地 OpenCode CLI 门面执行mcp list 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliMcpAdd

      public OpenCodeCliResult cliMcpAdd(String name, String url)
      委托本地 OpenCode CLI 门面执行mcp add 子命令,同步返回退出状态及输出。
      Parameters:
      name - 资源名称
      url - 远程服务或控制台 URL
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliMcpLogout

      public OpenCodeCliResult cliMcpLogout(String name)
      委托本地 OpenCode CLI 门面执行mcp logout 子命令,同步返回退出状态及输出。
      Parameters:
      name - 资源名称
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliMcpAuth

      public OpenCodeCliResult cliMcpAuth(String name)
      委托本地 OpenCode CLI 门面执行mcp auth 子命令,同步返回退出状态及输出。
      Parameters:
      name - 资源名称
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliDb

      public OpenCodeCliResult cliDb(String query, String format)
      委托本地 OpenCode CLI 门面执行db 子命令,同步返回退出状态及输出。
      Parameters:
      query - 搜索或数据库查询表达式
      format - 输出格式名称;为空时使用 CLI 默认格式
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliDbPath

      public OpenCodeCliResult cliDbPath()
      委托本地 OpenCode CLI 门面执行db path 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliDebugConfig

      public OpenCodeCliResult cliDebugConfig()
      委托本地 OpenCode CLI 门面执行debug config 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliDebugPaths

      public OpenCodeCliResult cliDebugPaths()
      委托本地 OpenCode CLI 门面执行debug paths 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliDebugInfo

      public OpenCodeCliResult cliDebugInfo()
      委托本地 OpenCode CLI 门面执行debug info 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliGithubInstall

      public OpenCodeCliResult cliGithubInstall()
      委托本地 OpenCode CLI 门面执行github install 子命令,同步返回退出状态及输出。
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliGithubRun

      public OpenCodeCliResult cliGithubRun(String event, String token)
      委托本地 OpenCode CLI 门面执行github run 子命令,同步返回退出状态及输出。
      Parameters:
      event - 触发当前回调的完整 SSE 事件
      token - GitHub 访问令牌;为空时由 CLI 自行解析
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • cliPr

      public OpenCodeCliResult cliPr(int number)
      委托本地 OpenCode CLI 门面执行pr 子命令,同步返回退出状态及输出。
      Parameters:
      number - GitHub Pull Request 编号
      Returns:
      OpenCode SDK 返回的CLI 执行结果对象
      Throws:
      OpenCodeHttpException - HTTP 请求失败或响应无法解析
    • close

      public void close()
      释放当前对象持有的连接、订阅或执行资源;重复调用是安全的。
      Specified by:
      close in interface AutoCloseable