Current section

Files

Jump to
opencode_sdk lib opencode generated session.ex
Raw

lib/opencode/generated/session.ex

defmodule OpenCode.Generated.Session do
@moduledoc """
Provides API endpoints related to session
"""
@default_client OpenCode.Client
@doc """
Get session children
Retrieve all child sessions that were forked from the specified parent session.
## Options
* `directory`
* `workspace`
"""
@spec session_children(sessionID :: String.t(), opts :: keyword) ::
{:ok, [OpenCode.Generated.Session.t()]}
| {:error,
OpenCode.Generated.BadRequestError.t() | OpenCode.Generated.NotFoundError.t()}
def session_children(sessionID, opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:directory, :workspace])
client.request(%{
args: [sessionID: sessionID],
call: {OpenCode.Generated.Session, :session_children},
url: "/session/#{sessionID}/children",
method: :get,
query: query,
response: [
{200, [{OpenCode.Generated.Session, :t}]},
{400, {OpenCode.Generated.BadRequestError, :t}},
{404, {OpenCode.Generated.NotFoundError, :t}}
],
opts: opts
})
end
@doc """
Get session
Retrieve detailed information about a specific OpenCode session.
## Options
* `directory`
* `workspace`
"""
@spec session_get(sessionID :: String.t(), opts :: keyword) ::
{:ok, OpenCode.Generated.Session.t()}
| {:error,
OpenCode.Generated.BadRequestError.t() | OpenCode.Generated.NotFoundError.t()}
def session_get(sessionID, opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:directory, :workspace])
client.request(%{
args: [sessionID: sessionID],
call: {OpenCode.Generated.Session, :session_get},
url: "/session/#{sessionID}",
method: :get,
query: query,
response: [
{200, {OpenCode.Generated.Session, :t}},
{400, {OpenCode.Generated.BadRequestError, :t}},
{404, {OpenCode.Generated.NotFoundError, :t}}
],
opts: opts
})
end
@type t :: %__MODULE__{
agent: String.t() | nil,
directory: String.t(),
id: String.t(),
model: OpenCode.Generated.SessionModel.t() | nil,
parent_id: String.t() | nil,
path: String.t() | nil,
permission: [OpenCode.Generated.PermissionRule.t()] | nil,
project_id: String.t(),
revert: OpenCode.Generated.SessionRevert.t() | nil,
share: OpenCode.Generated.SessionShare.t() | nil,
slug: String.t(),
summary: OpenCode.Generated.SessionSummary.t() | nil,
time: OpenCode.Generated.SessionTime.t(),
title: String.t(),
version: String.t(),
workspace_id: String.t() | nil
}
defstruct [
:agent,
:directory,
:id,
:model,
:parent_id,
:path,
:permission,
:project_id,
:revert,
:share,
:slug,
:summary,
:time,
:title,
:version,
:workspace_id
]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:t) do
[
agent: :string,
directory: :string,
id: :string,
model: {OpenCode.Generated.SessionModel, :t},
parent_id: :string,
path: :string,
permission: [{OpenCode.Generated.PermissionRule, :t}],
project_id: :string,
revert: {OpenCode.Generated.SessionRevert, :t},
share: {OpenCode.Generated.SessionShare, :t},
slug: :string,
summary: {OpenCode.Generated.SessionSummary, :t},
time: {OpenCode.Generated.SessionTime, :t},
title: :string,
version: :string,
workspace_id: :string
]
end
end