Current section

Files

Jump to
opencode_sdk lib opencode generated question.ex
Raw

lib/opencode/generated/question.ex

defmodule OpenCode.Generated.Question do
@moduledoc """
Provides API endpoints related to question
"""
@default_client OpenCode.Client
@doc """
List pending questions
Get all pending question requests across all sessions.
## Options
* `directory`
* `workspace`
"""
@spec question_list(opts :: keyword) :: {:ok, [OpenCode.Generated.QuestionRequest.t()]} | :error
def question_list(opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:directory, :workspace])
client.request(%{
args: [],
call: {OpenCode.Generated.Question, :question_list},
url: "/question",
method: :get,
query: query,
response: [{200, [{OpenCode.Generated.QuestionRequest, :t}]}],
opts: opts
})
end
@doc """
Reject question request
Reject a question request from the AI assistant.
## Options
* `directory`
* `workspace`
"""
@spec question_reject(requestID :: String.t(), opts :: keyword) ::
{:ok, boolean}
| {:error,
OpenCode.Generated.BadRequestError.t() | OpenCode.Generated.NotFoundError.t()}
def question_reject(requestID, opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:directory, :workspace])
client.request(%{
args: [requestID: requestID],
call: {OpenCode.Generated.Question, :question_reject},
url: "/question/#{requestID}/reject",
method: :post,
query: query,
response: [
{200, :boolean},
{400, {OpenCode.Generated.BadRequestError, :t}},
{404, {OpenCode.Generated.NotFoundError, :t}}
],
opts: opts
})
end
@doc """
Reply to question request
Provide answers to a question request from the AI assistant.
## Options
* `directory`
* `workspace`
## Request Body
**Content Types**: `application/json`
"""
@spec question_reply(requestID :: String.t(), body :: map, opts :: keyword) ::
{:ok, boolean}
| {:error,
OpenCode.Generated.BadRequestError.t() | OpenCode.Generated.NotFoundError.t()}
def question_reply(requestID, body, opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:directory, :workspace])
client.request(%{
args: [requestID: requestID, body: body],
call: {OpenCode.Generated.Question, :question_reply},
url: "/question/#{requestID}/reply",
body: body,
method: :post,
query: query,
request: [{"application/json", :map}],
response: [
{200, :boolean},
{400, {OpenCode.Generated.BadRequestError, :t}},
{404, {OpenCode.Generated.NotFoundError, :t}}
],
opts: opts
})
end
end