Packages
opencode_sdk
0.1.38
0.1.84
0.1.83
0.1.82
0.1.81
0.1.80
0.1.79
0.1.78
0.1.77
0.1.76
0.1.75
0.1.74
0.1.73
0.1.72
0.1.71
0.1.70
0.1.69
0.1.68
0.1.67
0.1.66
0.1.65
0.1.64
0.1.63
0.1.62
0.1.61
0.1.60
0.1.59
0.1.58
0.1.57
0.1.56
0.1.55
0.1.54
0.1.53
0.1.52
0.1.51
0.1.50
0.1.49
0.1.48
0.1.47
0.1.46
0.1.45
0.1.44
0.1.43
0.1.42
0.1.41
0.1.40
0.1.39
0.1.38
0.1.37
0.1.36
0.1.35
0.1.34
0.1.33
0.1.32
0.1.31
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Unofficial OpenCode SDK for Elixir. A complete Elixir SDK for OpenCode, providing server creation, session management, messaging, file operations, and more. Mirrors the functionality of the official JavaScript SDK (@opencode-ai/sdk). Not affiliated with or built by the OpenCode team.
Current section
Files
Jump to
Current section
Files
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__{
directory: String.t(),
id: String.t(),
parent_id: 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 [
:directory,
:id,
:parent_id,
: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
[
directory: :string,
id: :string,
parent_id: :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