# NOTE: This file is auto generated by OpenAPI Generator 7.22.0 (https://openapi-generator.tech).
# Do not edit this file manually.
defmodule Spatio.Api.Agents do
@moduledoc """
API calls for all endpoints tagged `Agents`.
"""
alias Spatio.Connection
import Spatio.RequestBuilder
@doc """
Create a new agent configuration.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `create_agent_request` (CreateAgentRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.Agent.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec create_agent(Tesla.Env.client, Spatio.Model.CreateAgentRequest.t, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.Agent.t} | {:error, Tesla.Env.t}
def create_agent(connection, create_agent_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/agents")
|> add_param(:body, :body, create_agent_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{201, Spatio.Model.Agent},
{401, Spatio.Model.ApiError}
])
end
@doc """
Create a new agent-platform conversation.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
- `:body` (CreateAgentConversationRequest):
### Returns
- `{:ok, Spatio.Model.AgentConversation.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec create_agent_conversation(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.AgentConversation.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def create_agent_conversation(connection, opts \\ []) do
optional_params = %{
:body => :body
}
request =
%{}
|> method(:post)
|> url("/v1/agent/conversations")
|> add_optional_params(optional_params, opts)
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{201, Spatio.Model.AgentConversation},
{401, Spatio.Model.ApiError}
])
end
@doc """
Append a message to an agent conversation.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `create_agent_message_request` (CreateAgentMessageRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AgentMessage.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec create_agent_message(Tesla.Env.client, String.t, Spatio.Model.CreateAgentMessageRequest.t, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.AgentMessage.t} | {:error, Tesla.Env.t}
def create_agent_message(connection, id, create_agent_message_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/agent/conversations/#{id}/messages")
|> add_param(:body, :body, create_agent_message_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{201, Spatio.Model.AgentMessage},
{401, Spatio.Model.ApiError}
])
end
@doc """
Delete an agent configuration.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec delete_agent(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def delete_agent(connection, id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/v1/agents/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Execute an action through the agent platform.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `execute_action_request` (ExecuteActionRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.ExecuteActionResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec execute_agent_action(Tesla.Env.client, Spatio.Model.ExecuteActionRequest.t, keyword()) :: {:ok, Spatio.Model.ExecuteActionResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def execute_agent_action(connection, execute_action_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/agent/actions/execute")
|> add_param(:body, :body, execute_action_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.ExecuteActionResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
Fetch one agent configuration.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.Agent.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_agent(Tesla.Env.client, String.t, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.Agent.t} | {:error, Tesla.Env.t}
def get_agent(connection, id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/agents/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.Agent},
{401, Spatio.Model.ApiError},
{404, Spatio.Model.ApiError}
])
end
@doc """
Fetch one agent conversation.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AgentConversation.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_agent_conversation(Tesla.Env.client, String.t, keyword()) :: {:ok, Spatio.Model.AgentConversation.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def get_agent_conversation(connection, id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/agent/conversations/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AgentConversation},
{401, Spatio.Model.ApiError},
{404, Spatio.Model.ApiError}
])
end
@doc """
Identity bundle for the SessionStart hook (user + org + workspace + connected accounts) so the agent doesn't fish on its first turn.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AgentSessionContext.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_agent_session_context(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.AgentSessionContext.t} | {:error, Tesla.Env.t}
def get_agent_session_context(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/agent/session-context")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AgentSessionContext},
{401, Spatio.Model.ApiError}
])
end
@doc """
List messages on an agent conversation.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AgentMessageListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_agent_conversation_messages(Tesla.Env.client, String.t, keyword()) :: {:ok, Spatio.Model.AgentMessageListResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_agent_conversation_messages(connection, id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/agent/conversations/#{id}/messages")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AgentMessageListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
List the caller's agent-platform conversations. Distinct from `/v1/conversations` (renderer-driven sidebar persistence).
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AgentConversationListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_agent_conversations(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.AgentConversationListResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_agent_conversations(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/agent/conversations")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AgentConversationListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
List the caller's agent configurations.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AgentListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_agents(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.AgentListResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_agents(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/agents")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AgentListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
Curated featured agents (e.g. \"Claude Code\", \"Research Assistant\"). Read-only — these are surfaced by the renderer's preconfigured-picker UI.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, [%PreconfiguredAgent{}, ...]}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_preconfigured_agents(Tesla.Env.client, keyword()) :: {:ok, [Spatio.Model.PreconfiguredAgent.t]} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_preconfigured_agents(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/agents/preconfigured")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.PreconfiguredAgent},
{401, Spatio.Model.ApiError}
])
end
@doc """
Update an agent configuration.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `update_agent_request` (UpdateAgentRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.Agent.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec update_agent(Tesla.Env.client, String.t, Spatio.Model.UpdateAgentRequest.t, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.Agent.t} | {:error, Tesla.Env.t}
def update_agent(connection, id, update_agent_request, _opts \\ []) do
request =
%{}
|> method(:patch)
|> url("/v1/agents/#{id}")
|> add_param(:body, :body, update_agent_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.Agent},
{401, Spatio.Model.ApiError}
])
end
end