mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
2092 lines
56 KiB
JSON
2092 lines
56 KiB
JSON
{
|
|
"openapi": "3.0.3",
|
|
"info": {
|
|
"title": "OpenHands API",
|
|
"description": "OpenHands: Code Less, Make More",
|
|
"version": "1.0.0"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "https://app.all-hands.dev",
|
|
"description": "Production server"
|
|
},
|
|
{
|
|
"url": "http://localhost:3000",
|
|
"description": "Local development server"
|
|
}
|
|
],
|
|
"paths": {
|
|
"/health": {
|
|
"get": {
|
|
"summary": "Health check",
|
|
"description": "Check if the API is running",
|
|
"operationId": "health",
|
|
"responses": {
|
|
"200": {
|
|
"description": "API is running",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string",
|
|
"example": "OK"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/config": {
|
|
"get": {
|
|
"summary": "Get runtime configuration",
|
|
"description": "Retrieve the runtime configuration (session ID and runtime ID)",
|
|
"operationId": "getRemoteRuntimeConfig",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Runtime configuration",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"runtime_id": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"session_id": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/vscode-url": {
|
|
"get": {
|
|
"summary": "Get VSCode URL",
|
|
"description": "Get the VSCode URL for the conversation",
|
|
"operationId": "getVscodeUrl",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "VSCode URL",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vscode_url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error getting VSCode URL",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vscode_url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/web-hosts": {
|
|
"get": {
|
|
"summary": "Get runtime hosts",
|
|
"description": "Get the hosts used by the runtime",
|
|
"operationId": "getHosts",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Runtime hosts",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hosts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error getting runtime hosts",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hosts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/submit-feedback": {
|
|
"post": {
|
|
"summary": "Submit feedback",
|
|
"description": "Submit user feedback for a conversation",
|
|
"operationId": "submitFeedback",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"format": "email"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"permissions": {
|
|
"type": "string",
|
|
"default": "private"
|
|
},
|
|
"polarity": {
|
|
"type": "string"
|
|
},
|
|
"feedback": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Feedback submitted successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error submitting feedback",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/list-files": {
|
|
"get": {
|
|
"summary": "List files",
|
|
"description": "List files in the specified path",
|
|
"operationId": "listFiles",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Path to list files from"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of files",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Runtime not initialized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error listing files",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/select-file": {
|
|
"get": {
|
|
"summary": "Get file content",
|
|
"description": "Retrieve the content of a specified file",
|
|
"operationId": "selectFile",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
},
|
|
{
|
|
"name": "file",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Path of the file to be retrieved"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "File content",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"415": {
|
|
"description": "Unable to open binary file",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error opening file",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/zip-directory": {
|
|
"get": {
|
|
"summary": "Download workspace as zip",
|
|
"description": "Download the current workspace as a zip file",
|
|
"operationId": "zipCurrentWorkspace",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Workspace zip file",
|
|
"content": {
|
|
"application/zip": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error zipping workspace",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/git/changes": {
|
|
"get": {
|
|
"summary": "Get git changes",
|
|
"description": "Get git changes in the workspace",
|
|
"operationId": "gitChanges",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Git changes",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error getting git changes",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/git/diff": {
|
|
"get": {
|
|
"summary": "Get git diff",
|
|
"description": "Get git diff for a specific file",
|
|
"operationId": "gitDiff",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Path of the file to get diff for"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Git diff",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error getting git diff",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/trajectory": {
|
|
"get": {
|
|
"summary": "Get trajectory",
|
|
"description": "Get the conversation trajectory",
|
|
"operationId": "getTrajectory",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Conversation trajectory",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"trajectory": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error getting trajectory",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"trajectory": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}/security/{path}": {
|
|
"get": {
|
|
"summary": "Security analyzer API (GET)",
|
|
"description": "Catch-all route for security analyzer API GET requests",
|
|
"operationId": "securityApiGet",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Security analyzer API path"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Security analyzer response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Security analyzer not initialized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"detail": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"summary": "Security analyzer API (POST)",
|
|
"description": "Catch-all route for security analyzer API POST requests",
|
|
"operationId": "securityApiPost",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Security analyzer API path"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Security analyzer response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Security analyzer not initialized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"detail": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"summary": "Security analyzer API (PUT)",
|
|
"description": "Catch-all route for security analyzer API PUT requests",
|
|
"operationId": "securityApiPut",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Security analyzer API path"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Security analyzer response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Security analyzer not initialized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"detail": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Security analyzer API (DELETE)",
|
|
"description": "Catch-all route for security analyzer API DELETE requests",
|
|
"operationId": "securityApiDelete",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Security analyzer API path"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Security analyzer response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Security analyzer not initialized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"detail": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations": {
|
|
"post": {
|
|
"summary": "Create new conversation",
|
|
"description": "Initialize a new conversation",
|
|
"operationId": "newConversation",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"repository": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "Full name of the repository (e.g., owner/repo)"
|
|
},
|
|
"git_provider": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "The Git provider (e.g., github or gitlab). If omitted, all configured providers are checked for the repository."
|
|
},
|
|
"selected_branch": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"initial_user_msg": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"conversation_instructions": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "Optional instructions the agent must follow throughout the conversation while addressing the user's initial task"
|
|
},
|
|
"image_urls": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"nullable": true
|
|
},
|
|
"replay_json": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Conversation created successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"type": "string",
|
|
"example": "ok"
|
|
},
|
|
"conversation_id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Error creating conversation",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"type": "string",
|
|
"example": "error"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"msg_id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"summary": "Search conversations",
|
|
"description": "Search for conversations",
|
|
"operationId": "searchConversations",
|
|
"parameters": [
|
|
{
|
|
"name": "page_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Page ID for pagination"
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 20
|
|
},
|
|
"description": "Number of conversations to return"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Conversations",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"results": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"conversation_id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"last_updated_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"selected_repository": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["RUNNING", "STOPPED"]
|
|
},
|
|
"trigger": {
|
|
"type": "string",
|
|
"enum": ["GUI", "API"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"next_page_id": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/{conversation_id}": {
|
|
"get": {
|
|
"summary": "Get conversation",
|
|
"description": "Get conversation details",
|
|
"operationId": "getConversation",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Conversation details",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"conversation_id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"last_updated_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"selected_repository": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["RUNNING", "STOPPED"]
|
|
},
|
|
"trigger": {
|
|
"type": "string",
|
|
"enum": ["GUI", "API"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Conversation not found",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"nullable": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"summary": "Update conversation",
|
|
"description": "Update conversation details",
|
|
"operationId": "updateConversation",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Conversation updated successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Delete conversation",
|
|
"description": "Delete a conversation",
|
|
"operationId": "deleteConversation",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Conversation ID"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Conversation deleted successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/user/repositories": {
|
|
"get": {
|
|
"summary": "Get user repositories",
|
|
"description": "Get repositories for the authenticated user",
|
|
"operationId": "getUserRepositories",
|
|
"parameters": [
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "pushed"
|
|
},
|
|
"description": "Sort order for repositories"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "User repositories",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"full_name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"html_url": {
|
|
"type": "string"
|
|
},
|
|
"private": {
|
|
"type": "boolean"
|
|
},
|
|
"fork": {
|
|
"type": "boolean"
|
|
},
|
|
"updated_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Authentication error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Unknown error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/user/info": {
|
|
"get": {
|
|
"summary": "Get user info",
|
|
"description": "Get information about the authenticated user",
|
|
"operationId": "getUser",
|
|
"responses": {
|
|
"200": {
|
|
"description": "User information",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"login": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"avatar_url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Authentication error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Unknown error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/user/search/repositories": {
|
|
"get": {
|
|
"summary": "Search repositories",
|
|
"description": "Search for repositories",
|
|
"operationId": "searchRepositories",
|
|
"parameters": [
|
|
{
|
|
"name": "query",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Search query"
|
|
},
|
|
{
|
|
"name": "per_page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 5
|
|
},
|
|
"description": "Number of repositories to return per page"
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "stars"
|
|
},
|
|
"description": "Sort order for repositories"
|
|
},
|
|
{
|
|
"name": "order",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "desc"
|
|
},
|
|
"description": "Sort direction"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Search results",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"full_name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"html_url": {
|
|
"type": "string"
|
|
},
|
|
"private": {
|
|
"type": "boolean"
|
|
},
|
|
"fork": {
|
|
"type": "boolean"
|
|
},
|
|
"updated_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Authentication error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Unknown error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/user/suggested-tasks": {
|
|
"get": {
|
|
"summary": "Get suggested tasks",
|
|
"description": "Get suggested tasks for the authenticated user across their most recently pushed repositories",
|
|
"operationId": "getSuggestedTasks",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Suggested tasks",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"repository": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Authentication error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Unknown error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/settings": {
|
|
"get": {
|
|
"summary": "Get settings",
|
|
"description": "Get user settings",
|
|
"operationId": "loadSettings",
|
|
"responses": {
|
|
"200": {
|
|
"description": "User settings",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"language": {
|
|
"type": "string"
|
|
},
|
|
"agent": {
|
|
"type": "string"
|
|
},
|
|
"security_analyzer": {
|
|
"type": "string"
|
|
},
|
|
"confirmation_mode": {
|
|
"type": "boolean"
|
|
},
|
|
"llm_model": {
|
|
"type": "string"
|
|
},
|
|
"llm_api_key_set": {
|
|
"type": "boolean"
|
|
},
|
|
"llm_base_url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"remote_runtime_resource_factor": {
|
|
"type": "number"
|
|
},
|
|
"enable_default_condenser": {
|
|
"type": "boolean"
|
|
},
|
|
"enable_sound_notifications": {
|
|
"type": "boolean"
|
|
},
|
|
"user_consents_to_analytics": {
|
|
"type": "boolean"
|
|
},
|
|
"provider_tokens_set": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Invalid token",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Settings not found",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"summary": "Store settings",
|
|
"description": "Store user settings",
|
|
"operationId": "storeSettings",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"language": {
|
|
"type": "string"
|
|
},
|
|
"agent": {
|
|
"type": "string"
|
|
},
|
|
"security_analyzer": {
|
|
"type": "string"
|
|
},
|
|
"confirmation_mode": {
|
|
"type": "boolean"
|
|
},
|
|
"llm_model": {
|
|
"type": "string"
|
|
},
|
|
"llm_api_key": {
|
|
"type": "string"
|
|
},
|
|
"llm_base_url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"remote_runtime_resource_factor": {
|
|
"type": "number"
|
|
},
|
|
"enable_default_condenser": {
|
|
"type": "boolean"
|
|
},
|
|
"enable_sound_notifications": {
|
|
"type": "boolean"
|
|
},
|
|
"user_consents_to_analytics": {
|
|
"type": "boolean"
|
|
},
|
|
"provider_tokens": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Settings stored successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Invalid token",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error storing settings",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/reset-settings": {
|
|
"post": {
|
|
"summary": "Reset settings (Deprecated)",
|
|
"description": "This endpoint is deprecated and will return a 410 Gone error. Reset functionality has been removed.",
|
|
"operationId": "resetSettings",
|
|
"deprecated": true,
|
|
"responses": {
|
|
"410": {
|
|
"description": "Feature removed",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"example": "Reset settings functionality has been removed."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/unset-settings-tokens": {
|
|
"post": {
|
|
"summary": "Unset settings tokens",
|
|
"description": "Unset provider tokens in settings",
|
|
"operationId": "unsetSettingsTokens",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Tokens unset successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Error unsetting tokens",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/options/models": {
|
|
"get": {
|
|
"summary": "Get models",
|
|
"description": "Get all models supported by LiteLLM",
|
|
"operationId": "getLitellmModels",
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of models",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/options/agents": {
|
|
"get": {
|
|
"summary": "Get agents",
|
|
"description": "Get all agents supported by OpenHands",
|
|
"operationId": "getAgents",
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of agents",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/options/security-analyzers": {
|
|
"get": {
|
|
"summary": "Get security analyzers",
|
|
"description": "Get all supported security analyzers",
|
|
"operationId": "getSecurityAnalyzers",
|
|
"responses": {
|
|
"200": {
|
|
"description": "List of security analyzers",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/options/config": {
|
|
"get": {
|
|
"summary": "Get config",
|
|
"description": "Get current server configuration",
|
|
"operationId": "getConfig",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Server configuration",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"Repository": {
|
|
"type": "object",
|
|
"properties": {
|
|
"full_name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"html_url": {
|
|
"type": "string"
|
|
},
|
|
"private": {
|
|
"type": "boolean"
|
|
},
|
|
"fork": {
|
|
"type": "boolean"
|
|
},
|
|
"updated_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"User": {
|
|
"type": "object",
|
|
"properties": {
|
|
"login": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"avatar_url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
}
|
|
},
|
|
"SuggestedTask": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"repository": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"ConversationInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"conversation_id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"last_updated_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"selected_repository": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["RUNNING", "STOPPED"]
|
|
},
|
|
"trigger": {
|
|
"type": "string",
|
|
"enum": ["GUI", "API"]
|
|
}
|
|
}
|
|
},
|
|
"ConversationInfoResultSet": {
|
|
"type": "object",
|
|
"properties": {
|
|
"results": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConversationInfo"
|
|
}
|
|
},
|
|
"next_page_id": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
}
|
|
},
|
|
"FeedbackDataModel": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"format": "email"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"permissions": {
|
|
"type": "string",
|
|
"default": "private"
|
|
},
|
|
"polarity": {
|
|
"type": "string"
|
|
},
|
|
"feedback": {
|
|
"type": "string"
|
|
},
|
|
"trajectory": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Settings": {
|
|
"type": "object",
|
|
"properties": {
|
|
"language": {
|
|
"type": "string"
|
|
},
|
|
"agent": {
|
|
"type": "string"
|
|
},
|
|
"security_analyzer": {
|
|
"type": "string"
|
|
},
|
|
"confirmation_mode": {
|
|
"type": "boolean"
|
|
},
|
|
"llm_model": {
|
|
"type": "string"
|
|
},
|
|
"llm_api_key": {
|
|
"type": "string"
|
|
},
|
|
"llm_base_url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"remote_runtime_resource_factor": {
|
|
"type": "number"
|
|
},
|
|
"enable_default_condenser": {
|
|
"type": "boolean"
|
|
},
|
|
"enable_sound_notifications": {
|
|
"type": "boolean"
|
|
},
|
|
"user_consents_to_analytics": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"GETSettingsModel": {
|
|
"type": "object",
|
|
"properties": {
|
|
"language": {
|
|
"type": "string"
|
|
},
|
|
"agent": {
|
|
"type": "string"
|
|
},
|
|
"security_analyzer": {
|
|
"type": "string"
|
|
},
|
|
"confirmation_mode": {
|
|
"type": "boolean"
|
|
},
|
|
"llm_model": {
|
|
"type": "string"
|
|
},
|
|
"llm_api_key_set": {
|
|
"type": "boolean"
|
|
},
|
|
"llm_base_url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"remote_runtime_resource_factor": {
|
|
"type": "number"
|
|
},
|
|
"enable_default_condenser": {
|
|
"type": "boolean"
|
|
},
|
|
"enable_sound_notifications": {
|
|
"type": "boolean"
|
|
},
|
|
"user_consents_to_analytics": {
|
|
"type": "boolean"
|
|
},
|
|
"provider_tokens_set": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"POSTSettingsModel": {
|
|
"type": "object",
|
|
"properties": {
|
|
"language": {
|
|
"type": "string"
|
|
},
|
|
"agent": {
|
|
"type": "string"
|
|
},
|
|
"security_analyzer": {
|
|
"type": "string"
|
|
},
|
|
"confirmation_mode": {
|
|
"type": "boolean"
|
|
},
|
|
"llm_model": {
|
|
"type": "string"
|
|
},
|
|
"llm_api_key": {
|
|
"type": "string"
|
|
},
|
|
"llm_base_url": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"remote_runtime_resource_factor": {
|
|
"type": "number"
|
|
},
|
|
"enable_default_condenser": {
|
|
"type": "boolean"
|
|
},
|
|
"enable_sound_notifications": {
|
|
"type": "boolean"
|
|
},
|
|
"user_consents_to_analytics": {
|
|
"type": "boolean"
|
|
},
|
|
"provider_tokens": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"bearerAuth": {
|
|
"type": "http",
|
|
"scheme": "bearer",
|
|
"bearerFormat": "JWT"
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
}
|
|
]
|
|
}
|