Packages
opencode_sdk
0.1.67
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/permission.ex
defmodule OpenCode.Generated.Permission do
@moduledoc """
Provides API endpoints related to permission
"""
@default_client OpenCode.Client
@doc """
List pending permissions
Get all pending permission requests across all sessions.
## Options
* `directory`
* `workspace`
"""
@spec permission_list(opts :: keyword) ::
{:ok, [OpenCode.Generated.PermissionRequest.t()]} | :error
def permission_list(opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:directory, :workspace])
client.request(%{
args: [],
call: {OpenCode.Generated.Permission, :permission_list},
url: "/permission",
method: :get,
query: query,
response: [{200, [{OpenCode.Generated.PermissionRequest, :t}]}],
opts: opts
})
end
@doc """
Respond to permission request
Approve or deny a permission request from the AI assistant.
## Options
* `directory`
* `workspace`
## Request Body
**Content Types**: `application/json`
"""
@spec permission_reply(requestID :: String.t(), body :: map, opts :: keyword) ::
{:ok, boolean}
| {:error,
OpenCode.Generated.BadRequestError.t() | OpenCode.Generated.NotFoundError.t()}
def permission_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.Permission, :permission_reply},
url: "/permission/#{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