Skip to content

Latest commit

 

History

History
524 lines (409 loc) · 19.1 KB

File metadata and controls

524 lines (409 loc) · 19.1 KB

ConversationsApi

All URIs are relative to https://api.reveng.ai

Method HTTP request Description
cancelRun POST /v2/conversations/{id}/cancel Cancel an active run
confirmTool POST /v2/conversations/{id}/confirm Approve or reject a pending tool confirmation
createConversation POST /v2/conversations Create a new conversation
getConversation GET /v2/conversations/{id} Get a conversation with its events
listConversations GET /v2/conversations List conversations for the authenticated user
sendMessage POST /v2/conversations/{id}/messages Send a message and start an agentic run
streamEvents GET /v2/conversations/{id}/events Stream conversation events (SSE)

cancelRun

StatusResponse cancelRun(id)

Cancel an active run

Cancels the currently active agentic run for the given conversation. Returns 404 if no run is in progress. Error codes: - `400` `INVALID_CONVERSATION_ID` — Invalid Conversation ID - `404` `CONVERSATION_NOT_FOUND` — Conversation Not Found - `404` `NO_ACTIVE_RUN` — No Active Run

Example

// Import classes:
import ai.reveng.invoker.ApiClient;
import ai.reveng.invoker.ApiException;
import ai.reveng.invoker.Configuration;
import ai.reveng.invoker.auth.*;
import ai.reveng.invoker.models.*;
import ai.reveng.api.ConversationsApi;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    defaultClient.setBasePath("https://api.reveng.ai");
    
    // Configure API key authorization: APIKey
    ApiKeyAuth APIKey = (ApiKeyAuth) defaultClient.getAuthentication("APIKey");
    APIKey.setApiKey("YOUR API KEY");
    // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    //APIKey.setApiKeyPrefix("Token");

    ConversationsApi apiInstance = new ConversationsApi(defaultClient);
    UUID id = UUID.randomUUID(); // UUID | Conversation UUID
    try {
      StatusResponse result = apiInstance.cancelRun(id);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling ConversationsApi#cancelRun");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Parameters

Name Type Description Notes
id UUID Conversation UUID

Return type

StatusResponse

Authorization

APIKey

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 OK -
400 Bad Request -
404 Not Found -
422 Unprocessable Entity -
500 Internal Server Error -

confirmTool

StatusResponse confirmTool(id, confirmToolInputBody)

Approve or reject a pending tool confirmation

Responds to a pending tool confirmation request. The agent pauses before executing certain tools and emits a `TOOL_CONFIRMATION_REQUIRED` event. Use this endpoint to approve or reject the tool call. Returns 404 if no confirmation is pending. Error codes: - `400` `INVALID_CONVERSATION_ID` — Invalid Conversation ID - `404` `CONVERSATION_NOT_FOUND` — Conversation Not Found - `404` `NO_PENDING_CONFIRMATION` — No Pending Confirmation

Example

// Import classes:
import ai.reveng.invoker.ApiClient;
import ai.reveng.invoker.ApiException;
import ai.reveng.invoker.Configuration;
import ai.reveng.invoker.auth.*;
import ai.reveng.invoker.models.*;
import ai.reveng.api.ConversationsApi;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    defaultClient.setBasePath("https://api.reveng.ai");
    
    // Configure API key authorization: APIKey
    ApiKeyAuth APIKey = (ApiKeyAuth) defaultClient.getAuthentication("APIKey");
    APIKey.setApiKey("YOUR API KEY");
    // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    //APIKey.setApiKeyPrefix("Token");

    ConversationsApi apiInstance = new ConversationsApi(defaultClient);
    UUID id = UUID.randomUUID(); // UUID | Conversation UUID
    ConfirmToolInputBody confirmToolInputBody = new ConfirmToolInputBody(); // ConfirmToolInputBody | 
    try {
      StatusResponse result = apiInstance.confirmTool(id, confirmToolInputBody);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling ConversationsApi#confirmTool");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Parameters

Name Type Description Notes
id UUID Conversation UUID
confirmToolInputBody ConfirmToolInputBody

Return type

StatusResponse

Authorization

APIKey

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 OK -
400 Bad Request -
404 Not Found -
422 Unprocessable Entity -
500 Internal Server Error -

createConversation

Conversation createConversation(createConversationRequest)

Create a new conversation

Creates a new conversation for the authenticated user. Optionally include a binary analysis context to scope the assistant to a specific analysis. Error codes: - `400` `BAD_REQUEST` — Bad Request

Example

// Import classes:
import ai.reveng.invoker.ApiClient;
import ai.reveng.invoker.ApiException;
import ai.reveng.invoker.Configuration;
import ai.reveng.invoker.auth.*;
import ai.reveng.invoker.models.*;
import ai.reveng.api.ConversationsApi;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    defaultClient.setBasePath("https://api.reveng.ai");
    
    // Configure API key authorization: APIKey
    ApiKeyAuth APIKey = (ApiKeyAuth) defaultClient.getAuthentication("APIKey");
    APIKey.setApiKey("YOUR API KEY");
    // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    //APIKey.setApiKeyPrefix("Token");

    ConversationsApi apiInstance = new ConversationsApi(defaultClient);
    CreateConversationRequest createConversationRequest = new CreateConversationRequest(); // CreateConversationRequest | 
    try {
      Conversation result = apiInstance.createConversation(createConversationRequest);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling ConversationsApi#createConversation");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Parameters

Name Type Description Notes
createConversationRequest CreateConversationRequest

Return type

Conversation

Authorization

APIKey

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

HTTP response details

Status code Description Response headers
201 Created -
400 Bad Request -
422 Unprocessable Entity -
500 Internal Server Error -

getConversation

ConversationWithEvents getConversation(id)

Get a conversation with its events

Returns the conversation metadata along with all persisted events. Useful for reconstructing the full conversation history on page load. Error codes: - `400` `INVALID_CONVERSATION_ID` — Invalid Conversation ID - `404` `CONVERSATION_NOT_FOUND` — Conversation Not Found

Example

// Import classes:
import ai.reveng.invoker.ApiClient;
import ai.reveng.invoker.ApiException;
import ai.reveng.invoker.Configuration;
import ai.reveng.invoker.auth.*;
import ai.reveng.invoker.models.*;
import ai.reveng.api.ConversationsApi;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    defaultClient.setBasePath("https://api.reveng.ai");
    
    // Configure API key authorization: APIKey
    ApiKeyAuth APIKey = (ApiKeyAuth) defaultClient.getAuthentication("APIKey");
    APIKey.setApiKey("YOUR API KEY");
    // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    //APIKey.setApiKeyPrefix("Token");

    ConversationsApi apiInstance = new ConversationsApi(defaultClient);
    UUID id = UUID.randomUUID(); // UUID | Conversation UUID
    try {
      ConversationWithEvents result = apiInstance.getConversation(id);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling ConversationsApi#getConversation");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Parameters

Name Type Description Notes
id UUID Conversation UUID

Return type

ConversationWithEvents

Authorization

APIKey

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 OK -
400 Bad Request -
404 Not Found -
422 Unprocessable Entity -
500 Internal Server Error -

listConversations

List<Conversation> listConversations()

List conversations for the authenticated user

Returns all conversations owned by the authenticated user, ordered by most recently updated.

Example

// Import classes:
import ai.reveng.invoker.ApiClient;
import ai.reveng.invoker.ApiException;
import ai.reveng.invoker.Configuration;
import ai.reveng.invoker.auth.*;
import ai.reveng.invoker.models.*;
import ai.reveng.api.ConversationsApi;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    defaultClient.setBasePath("https://api.reveng.ai");
    
    // Configure API key authorization: APIKey
    ApiKeyAuth APIKey = (ApiKeyAuth) defaultClient.getAuthentication("APIKey");
    APIKey.setApiKey("YOUR API KEY");
    // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    //APIKey.setApiKeyPrefix("Token");

    ConversationsApi apiInstance = new ConversationsApi(defaultClient);
    try {
      List<Conversation> result = apiInstance.listConversations();
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling ConversationsApi#listConversations");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Parameters

This endpoint does not need any parameter.

Return type

List<Conversation>

Authorization

APIKey

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 OK -
0 Error -

sendMessage

StatusResponse sendMessage(id, sendMessageRequest)

Send a message and start an agentic run

Sends a user message to the conversation and kicks off an agentic processing loop in the background. Returns immediately with 202 Accepted. Subscribe to `/v2/conversations/{id}/events` via SSE to receive real-time updates including text deltas, tool calls, and run lifecycle events. Error codes: - `400` `BAD_REQUEST` — Bad Request - `400` `INVALID_CONVERSATION_ID` — Invalid Conversation ID - `404` `CONVERSATION_NOT_FOUND` — Conversation Not Found - `403` `ACCESS_DENIED` — Access Denied - `402` `INSUFFICIENT_CREDITS` — Insufficient Credits - `409` `RUN_ALREADY_ACTIVE` — Run Already Active

Example

// Import classes:
import ai.reveng.invoker.ApiClient;
import ai.reveng.invoker.ApiException;
import ai.reveng.invoker.Configuration;
import ai.reveng.invoker.auth.*;
import ai.reveng.invoker.models.*;
import ai.reveng.api.ConversationsApi;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    defaultClient.setBasePath("https://api.reveng.ai");
    
    // Configure API key authorization: APIKey
    ApiKeyAuth APIKey = (ApiKeyAuth) defaultClient.getAuthentication("APIKey");
    APIKey.setApiKey("YOUR API KEY");
    // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    //APIKey.setApiKeyPrefix("Token");

    ConversationsApi apiInstance = new ConversationsApi(defaultClient);
    UUID id = UUID.randomUUID(); // UUID | Conversation UUID
    SendMessageRequest sendMessageRequest = new SendMessageRequest(); // SendMessageRequest | 
    try {
      StatusResponse result = apiInstance.sendMessage(id, sendMessageRequest);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling ConversationsApi#sendMessage");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Parameters

Name Type Description Notes
id UUID Conversation UUID
sendMessageRequest SendMessageRequest

Return type

StatusResponse

Authorization

APIKey

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

HTTP response details

Status code Description Response headers
202 Accepted -
400 Bad Request -
402 Payment Required -
403 Forbidden -
404 Not Found -
409 Conflict -
422 Unprocessable Entity -
500 Internal Server Error -

streamEvents

List<StreamEvents200ResponseInner> streamEvents(id, lastEventId)

Stream conversation events (SSE)

Opens a Server-Sent Events stream for the given conversation. Events include run lifecycle updates, streaming text deltas, tool call progress, and more. Use the `last_event_id` query parameter to replay missed events after a reconnection.

Example

// Import classes:
import ai.reveng.invoker.ApiClient;
import ai.reveng.invoker.ApiException;
import ai.reveng.invoker.Configuration;
import ai.reveng.invoker.auth.*;
import ai.reveng.invoker.models.*;
import ai.reveng.api.ConversationsApi;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    defaultClient.setBasePath("https://api.reveng.ai");
    
    // Configure API key authorization: APIKey
    ApiKeyAuth APIKey = (ApiKeyAuth) defaultClient.getAuthentication("APIKey");
    APIKey.setApiKey("YOUR API KEY");
    // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    //APIKey.setApiKeyPrefix("Token");

    ConversationsApi apiInstance = new ConversationsApi(defaultClient);
    UUID id = UUID.randomUUID(); // UUID | Conversation UUID
    Long lastEventId = 56L; // Long | Replay events after this ID
    try {
      List<StreamEvents200ResponseInner> result = apiInstance.streamEvents(id, lastEventId);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling ConversationsApi#streamEvents");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Parameters

Name Type Description Notes
id UUID Conversation UUID
lastEventId Long Replay events after this ID [optional]

Return type

List<StreamEvents200ResponseInner>

Authorization

APIKey

HTTP request headers

  • Content-Type: Not defined
  • Accept: text/event-stream, application/json

HTTP response details

Status code Description Response headers
200 OK -
0 Error -