Spatio.Api.Conversations (spatio_sdk v0.0.2)

API calls for all endpoints tagged Conversations.

Summary

Functions

Persist a new LLM conversation.

Fetch the most recently active conversation for a given context tag.

List the caller's persisted LLM conversations.

Update conversation metadata (title, context, cwd, session_id, pinned).

Patch metadata on an existing message. Body must include the message id (path is the conversation id, not the message).

Functions

create_conversation(connection, opts \\ [])

@spec create_conversation(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, Spatio.Model.Conversation.t()}
  | {:ok, Spatio.Model.ApiError.t()}
  | {:error, Tesla.Env.t()}

Persist a new LLM conversation.

Parameters

  • connection (Spatio.Connection): Connection to server
  • opts (keyword): Optional parameters
    • :body (CreateConversationRequest):

Returns

  • {:ok, Spatio.Model.Conversation.t} on success
  • {:error, Tesla.Env.t} on failure

delete_conversation(connection, id, opts \\ [])

@spec delete_conversation(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, nil} | {:ok, Spatio.Model.ApiError.t()} | {:error, Tesla.Env.t()}

Soft-delete a conversation.

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

get_conversation(connection, id, opts \\ [])

@spec get_conversation(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, Spatio.Model.Conversation.t()}
  | {:ok, Spatio.Model.ApiError.t()}
  | {:error, Tesla.Env.t()}

Fetch one conversation.

Parameters

  • connection (Spatio.Connection): Connection to server
  • id (String.t):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Spatio.Model.Conversation.t} on success
  • {:error, Tesla.Env.t} on failure

get_latest_conversation_for_context(connection, context, opts \\ [])

@spec get_latest_conversation_for_context(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, Spatio.Model.Conversation.t()}
  | {:ok, Spatio.Model.ApiError.t()}
  | {:error, Tesla.Env.t()}

Fetch the most recently active conversation for a given context tag.

Parameters

  • connection (Spatio.Connection): Connection to server
  • context (String.t):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Spatio.Model.Conversation.t} on success
  • {:error, Tesla.Env.t} on failure

list_conversation_messages(connection, id, opts \\ [])

@spec list_conversation_messages(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, [Spatio.Model.ConversationMessage.t()]}
  | {:ok, Spatio.Model.ApiError.t()}
  | {:error, Tesla.Env.t()}

List messages in a conversation.

Parameters

  • connection (Spatio.Connection): Connection to server
  • id (String.t):
  • opts (keyword): Optional parameters
    • :limit (integer()):
    • :before (String.t):

Returns

  • {:ok, [%ConversationMessage{}, ...]} on success
  • {:error, Tesla.Env.t} on failure

list_conversations(connection, opts \\ [])

@spec list_conversations(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, [Spatio.Model.Conversation.t()]}
  | {:ok, Spatio.Model.ApiError.t()}
  | {:error, Tesla.Env.t()}

List the caller's persisted LLM conversations.

Parameters

  • connection (Spatio.Connection): Connection to server
  • opts (keyword): Optional parameters
    • :context (String.t):
    • :limit (integer()):

Returns

  • {:ok, [%Conversation{}, ...]} on success
  • {:error, Tesla.Env.t} on failure

save_conversation_message(connection, id, save_message_request, opts \\ [])

@spec save_conversation_message(
  Tesla.Env.client(),
  String.t(),
  Spatio.Model.SaveMessageRequest.t(),
  keyword()
) ::
  {:ok, Spatio.Model.ConversationMessage.t()}
  | {:ok, Spatio.Model.ApiError.t()}
  | {:error, Tesla.Env.t()}

Append a message to a conversation.

Parameters

  • connection (Spatio.Connection): Connection to server
  • id (String.t):
  • save_message_request (SaveMessageRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Spatio.Model.ConversationMessage.t} on success
  • {:error, Tesla.Env.t} on failure

update_conversation(connection, id, update_conversation_request, opts \\ [])

Update conversation metadata (title, context, cwd, session_id, pinned).

Parameters

  • connection (Spatio.Connection): Connection to server
  • id (String.t):
  • update_conversation_request (UpdateConversationRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Spatio.Model.Conversation.t} on success
  • {:error, Tesla.Env.t} on failure

update_conversation_message_metadata(connection, id, update_message_metadata_request, opts \\ [])

@spec update_conversation_message_metadata(
  Tesla.Env.client(),
  String.t(),
  Spatio.Model.UpdateMessageMetadataRequest.t(),
  keyword()
) ::
  {:ok, Spatio.Model.ConversationMessage.t()}
  | {:ok, Spatio.Model.ApiError.t()}
  | {:error, Tesla.Env.t()}

Patch metadata on an existing message. Body must include the message id (path is the conversation id, not the message).

Parameters

  • connection (Spatio.Connection): Connection to server
  • id (String.t):
  • update_message_metadata_request (UpdateMessageMetadataRequest):
  • opts (keyword): Optional parameters

Returns

  • {:ok, Spatio.Model.ConversationMessage.t} on success
  • {:error, Tesla.Env.t} on failure