mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-16 01:40:15 +08:00
* refactor: migrate to fastapi * structure refactor * fix: pyright fix * refactor: improve error handling and public messages in plugin services * feat(api): refactor API client integration and enhance request handling - Updated API client configuration to use a dedicated HTTP client. - Introduced utility functions for generating options, queries, and form data for API requests. - Refactored multiple API methods to utilize the new utility functions for improved consistency and readability. - Renamed types for clarity and updated import statements accordingly. feat(docs): add script to update OpenAPI JSON from YAML spec - Created a Python script to convert OpenAPI YAML specification to JSON format. - The script supports customizable input and output paths. - Ensured the script handles directory creation for output paths and validates the YAML structure. * fix * feat(auth): implement rate limiting for v1 login endpoint and enhance request handling * Refactor dashboard API routers to use legacy_router for backward compatibility - Changed all instances of dashboard_router to legacy_router across multiple API modules including platform, plugins, providers, sessions, skills, stats, subagents, t2i, tools, updates, and asgi_runtime. - Updated route definitions to ensure existing endpoints remain functional under the new router structure. - Introduced support for Quart request context in asgi_runtime to enhance compatibility with existing Quart-based plugins. - Added a test case to validate the functionality of the new Quart request context handling in plugin extensions. * chore: remove cli test * fix: update dashboard tests for fastapi migration * chore: satisfy ruff checks * fix: update openapi api key scopes * fix: sync config scope chip selection * fix: restore quart dependency * docs: clarify quart plugin api compatibility * docs: update openapi scope documentation * fix: use singular skill openapi scope * fix: hide update service exception details * fix: address fastapi review comments * fix: address dashboard review findings * docs: revert unrelated package deployment changes * docs: update agent api generation guidance * feat: add plugin page web api helpers * docs: add plugin page bridge demo * fix: type plugin upload files * fix: stabilize plugin page uploads * fix: type plugin web request proxy * docs: remove plugin page docs example * fix: authenticate plugin page SSE bridge
9718 lines
228 KiB
JSON
9718 lines
228 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "AstrBot OpenAPI v1",
|
|
"version": "0.1.0",
|
|
"description": "Target REST contract for migrating AstrBot HTTP APIs to /api/v1. Dynamic AstrBot configuration payloads are intentionally modeled as open JSON objects because their schemas are provided at runtime by template endpoints. Developer API keys currently support these scopes only: bot, provider, persona, im, config, chat, plugin, mcp, skill. The config scope also grants bot and provider access.\n"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "http://localhost:6185",
|
|
"description": "Local AstrBot server"
|
|
}
|
|
],
|
|
"security": [
|
|
{
|
|
"ApiKeyAuth": []
|
|
}
|
|
],
|
|
"tags": [
|
|
{
|
|
"name": "Auth"
|
|
},
|
|
{
|
|
"name": "API Keys"
|
|
},
|
|
{
|
|
"name": "System Config"
|
|
},
|
|
{
|
|
"name": "Config Profiles"
|
|
},
|
|
{
|
|
"name": "Bot Config Routes"
|
|
},
|
|
{
|
|
"name": "Bots"
|
|
},
|
|
{
|
|
"name": "Provider Sources"
|
|
},
|
|
{
|
|
"name": "Providers"
|
|
},
|
|
{
|
|
"name": "Chat"
|
|
},
|
|
{
|
|
"name": "IM"
|
|
},
|
|
{
|
|
"name": "Files"
|
|
},
|
|
{
|
|
"name": "Plugins"
|
|
},
|
|
{
|
|
"name": "Plugin Sources"
|
|
},
|
|
{
|
|
"name": "Plugin Pages"
|
|
},
|
|
{
|
|
"name": "Commands"
|
|
},
|
|
{
|
|
"name": "Tools"
|
|
},
|
|
{
|
|
"name": "MCP"
|
|
},
|
|
{
|
|
"name": "Skills"
|
|
},
|
|
{
|
|
"name": "Knowledge Base"
|
|
},
|
|
{
|
|
"name": "Personas"
|
|
},
|
|
{
|
|
"name": "Sessions"
|
|
},
|
|
{
|
|
"name": "Conversations"
|
|
},
|
|
{
|
|
"name": "Stats"
|
|
},
|
|
{
|
|
"name": "Backups"
|
|
},
|
|
{
|
|
"name": "Updates"
|
|
},
|
|
{
|
|
"name": "Cron"
|
|
},
|
|
{
|
|
"name": "Logs"
|
|
},
|
|
{
|
|
"name": "T2I"
|
|
},
|
|
{
|
|
"name": "Subagents"
|
|
},
|
|
{
|
|
"name": "Webhooks"
|
|
}
|
|
],
|
|
"paths": {
|
|
"/api/v1/auth/login": {
|
|
"post": {
|
|
"tags": [
|
|
"Auth"
|
|
],
|
|
"summary": "Login to the dashboard API",
|
|
"operationId": "login",
|
|
"security": [],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/logout": {
|
|
"post": {
|
|
"tags": [
|
|
"Auth"
|
|
],
|
|
"summary": "Logout from the dashboard API",
|
|
"operationId": "logout",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/setup-status": {
|
|
"get": {
|
|
"tags": [
|
|
"Auth"
|
|
],
|
|
"summary": "Get first-run setup status",
|
|
"operationId": "getAuthSetupStatus",
|
|
"security": [],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/setup": {
|
|
"post": {
|
|
"tags": [
|
|
"Auth"
|
|
],
|
|
"summary": "Complete first-run dashboard account setup",
|
|
"operationId": "setupAuth",
|
|
"security": [],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SetupAuthRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/totp/setup": {
|
|
"post": {
|
|
"tags": [
|
|
"Auth"
|
|
],
|
|
"summary": "Start or refresh TOTP setup",
|
|
"operationId": "setupTotp",
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TotpSetupRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/totp/recovery": {
|
|
"post": {
|
|
"tags": [
|
|
"Auth"
|
|
],
|
|
"summary": "Generate or rotate TOTP recovery codes",
|
|
"operationId": "recoverTotp",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/account": {
|
|
"patch": {
|
|
"tags": [
|
|
"Auth"
|
|
],
|
|
"summary": "Update dashboard account credentials",
|
|
"operationId": "updateAuthAccount",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateAccountRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/api-keys": {
|
|
"get": {
|
|
"tags": [
|
|
"API Keys"
|
|
],
|
|
"summary": "List OpenAPI keys",
|
|
"operationId": "listApiKeys",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"API Keys"
|
|
],
|
|
"summary": "Create an OpenAPI key",
|
|
"operationId": "createApiKey",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateApiKeyRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/api-keys/{key_id}/revoke": {
|
|
"post": {
|
|
"tags": [
|
|
"API Keys"
|
|
],
|
|
"summary": "Revoke an OpenAPI key",
|
|
"operationId": "revokeApiKey",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KeyId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/api-keys/{key_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"API Keys"
|
|
],
|
|
"summary": "Delete an OpenAPI key",
|
|
"operationId": "deleteApiKey",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KeyId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/system-config/schema": {
|
|
"get": {
|
|
"tags": [
|
|
"System Config"
|
|
],
|
|
"summary": "Get the system configuration schema",
|
|
"operationId": "getSystemConfigSchema",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/system-config": {
|
|
"get": {
|
|
"tags": [
|
|
"System Config"
|
|
],
|
|
"summary": "Get the system configuration",
|
|
"operationId": "getSystemConfig",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"System Config"
|
|
],
|
|
"summary": "Replace the system configuration",
|
|
"operationId": "updateSystemConfig",
|
|
"x-astrbot-scope": "config",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/system-config/runtime": {
|
|
"get": {
|
|
"tags": [
|
|
"System Config"
|
|
],
|
|
"summary": "Get runtime-enriched system configuration metadata",
|
|
"operationId": "getSystemConfigRuntime",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/config-profiles/schema": {
|
|
"get": {
|
|
"tags": [
|
|
"Config Profiles"
|
|
],
|
|
"summary": "Get the configuration profile schema",
|
|
"operationId": "getConfigProfileSchema",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/config-profiles": {
|
|
"get": {
|
|
"tags": [
|
|
"Config Profiles"
|
|
],
|
|
"summary": "List configuration profiles",
|
|
"operationId": "listConfigProfiles",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Config Profiles"
|
|
],
|
|
"summary": "Create a configuration profile",
|
|
"operationId": "createConfigProfile",
|
|
"x-astrbot-scope": "config",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateConfigProfileRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/config-profiles/{config_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Config Profiles"
|
|
],
|
|
"summary": "Get a configuration profile",
|
|
"operationId": "getConfigProfile",
|
|
"x-astrbot-scope": "config",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ConfigId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Config Profiles"
|
|
],
|
|
"summary": "Replace a configuration profile",
|
|
"operationId": "updateConfigProfileContent",
|
|
"x-astrbot-scope": "config",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ConfigId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"Config Profiles"
|
|
],
|
|
"summary": "Rename a configuration profile",
|
|
"operationId": "renameConfigProfile",
|
|
"x-astrbot-scope": "config",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ConfigId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RenameRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Config Profiles"
|
|
],
|
|
"summary": "Delete a configuration profile",
|
|
"operationId": "deleteConfigProfile",
|
|
"x-astrbot-scope": "config",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ConfigId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/config-routes": {
|
|
"get": {
|
|
"tags": [
|
|
"Bot Config Routes"
|
|
],
|
|
"summary": "List UMO to configuration profile bindings",
|
|
"operationId": "listConfigRoutes",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Bot Config Routes"
|
|
],
|
|
"summary": "Replace all UMO to configuration profile bindings",
|
|
"operationId": "replaceConfigRoutes",
|
|
"x-astrbot-scope": "config",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfigRoutesReplaceRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/config-routes/{umo}": {
|
|
"put": {
|
|
"tags": [
|
|
"Bot Config Routes"
|
|
],
|
|
"summary": "Bind a UMO to a configuration profile",
|
|
"operationId": "upsertConfigRoute",
|
|
"x-astrbot-scope": "config",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Umo"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfigRouteUpsertRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Bot Config Routes"
|
|
],
|
|
"summary": "Remove a UMO configuration profile binding",
|
|
"operationId": "deleteConfigRoute",
|
|
"x-astrbot-scope": "config",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Umo"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bot-types": {
|
|
"get": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "List configurable bot types and their schemas",
|
|
"operationId": "listBotTypes",
|
|
"x-astrbot-scope": "bot",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bot-types/{bot_type}/registration": {
|
|
"post": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Run a bot type registration flow action",
|
|
"operationId": "registerBotType",
|
|
"x-astrbot-scope": "bot",
|
|
"parameters": [
|
|
{
|
|
"name": "bot_type",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BotRegistrationRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bots": {
|
|
"get": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "List created bots and their configurations",
|
|
"operationId": "listBots",
|
|
"x-astrbot-scope": "bot",
|
|
"parameters": [
|
|
{
|
|
"name": "enabled",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "type",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Create a bot from configuration",
|
|
"operationId": "createBot",
|
|
"x-astrbot-scope": "bot",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BotConfigRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bots/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "List runtime status for all bots",
|
|
"operationId": "listBotStats",
|
|
"x-astrbot-scope": "bot",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bots/by-id": {
|
|
"get": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Get a bot configuration by query ID",
|
|
"operationId": "getBotById",
|
|
"x-astrbot-scope": "bot",
|
|
"parameters": [
|
|
{
|
|
"name": "bot_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Replace a bot configuration by body ID",
|
|
"operationId": "updateBotById",
|
|
"x-astrbot-scope": "bot",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"bot_id",
|
|
"config"
|
|
],
|
|
"properties": {
|
|
"bot_id": {
|
|
"type": "string"
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Delete a bot by query ID",
|
|
"operationId": "deleteBotById",
|
|
"x-astrbot-scope": "bot",
|
|
"parameters": [
|
|
{
|
|
"name": "bot_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bots/enabled": {
|
|
"patch": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Enable or disable a bot by body ID",
|
|
"operationId": "setBotEnabledById",
|
|
"x-astrbot-scope": "bot",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"bot_id",
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"bot_id": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bots/test": {
|
|
"post": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Test a bot registration or connection by body ID",
|
|
"operationId": "testBotById",
|
|
"x-astrbot-scope": "bot",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"bot_id"
|
|
],
|
|
"properties": {
|
|
"bot_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bots/{bot_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Get a bot configuration",
|
|
"operationId": "getBot",
|
|
"x-astrbot-scope": "bot",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/BotId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Replace a bot configuration",
|
|
"operationId": "updateBot",
|
|
"x-astrbot-scope": "bot",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/BotId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BotConfigRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Delete a bot",
|
|
"operationId": "deleteBot",
|
|
"x-astrbot-scope": "bot",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/BotId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bots/{bot_id}/enabled": {
|
|
"patch": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Enable or disable a bot",
|
|
"operationId": "setBotEnabled",
|
|
"x-astrbot-scope": "bot",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/BotId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EnabledPatch"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/bots/{bot_id}/test": {
|
|
"post": {
|
|
"tags": [
|
|
"Bots"
|
|
],
|
|
"summary": "Test a bot registration or connection",
|
|
"operationId": "testBot",
|
|
"x-astrbot-scope": "bot",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/BotId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers/schema": {
|
|
"get": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Get the overall provider configuration schema",
|
|
"operationId": "getProviderSchema",
|
|
"x-astrbot-scope": "provider",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/provider-sources": {
|
|
"get": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "List provider sources",
|
|
"operationId": "listProviderSources",
|
|
"x-astrbot-scope": "provider",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "Create a provider source",
|
|
"operationId": "createProviderSource",
|
|
"x-astrbot-scope": "provider",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderSourceConfigRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/provider-sources/by-id": {
|
|
"get": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "Get a provider source by query ID",
|
|
"operationId": "getProviderSourceById",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"name": "source_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "Update a provider source by body ID",
|
|
"operationId": "upsertProviderSourceById",
|
|
"x-astrbot-scope": "provider",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"source_id",
|
|
"config"
|
|
],
|
|
"properties": {
|
|
"source_id": {
|
|
"type": "string"
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "Delete a provider source by query ID",
|
|
"operationId": "deleteProviderSourceById",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"name": "source_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/provider-sources/models": {
|
|
"get": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "List models available from a provider source by query ID",
|
|
"operationId": "listProviderSourceModelsById",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"name": "source_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "capability",
|
|
"in": "query",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderCapability"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/provider-sources/providers": {
|
|
"get": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "List providers under a provider source by query ID",
|
|
"operationId": "listProvidersBySourceId",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"name": "source_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "capability",
|
|
"in": "query",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderCapability"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Create a provider under a provider source by body ID",
|
|
"operationId": "createProviderInSourceById",
|
|
"x-astrbot-scope": "provider",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"source_id",
|
|
"config"
|
|
],
|
|
"properties": {
|
|
"source_id": {
|
|
"type": "string"
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/provider-sources/{source_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "Get a provider source",
|
|
"operationId": "getProviderSource",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SourceId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "Update a provider source or create it if missing",
|
|
"operationId": "upsertProviderSource",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SourceId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderSourceConfigRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "Delete a provider source and providers that reference it",
|
|
"operationId": "deleteProviderSource",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SourceId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/provider-sources/{source_id}/models": {
|
|
"get": {
|
|
"tags": [
|
|
"Provider Sources"
|
|
],
|
|
"summary": "List models available from a provider source",
|
|
"operationId": "listProviderSourceModels",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SourceId"
|
|
},
|
|
{
|
|
"name": "capability",
|
|
"in": "query",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderCapability"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/provider-sources/{source_id}/providers": {
|
|
"get": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "List providers under a provider source",
|
|
"operationId": "listProvidersBySource",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SourceId"
|
|
},
|
|
{
|
|
"name": "capability",
|
|
"in": "query",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderCapability"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Create a provider under a provider source",
|
|
"operationId": "createProviderInSource",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SourceId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderConfigRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers": {
|
|
"get": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "List providers by capability or source",
|
|
"operationId": "listProviders",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"name": "capability",
|
|
"in": "query",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderCapability"
|
|
}
|
|
},
|
|
{
|
|
"name": "source_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "enabled",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Create a standalone provider",
|
|
"operationId": "createProvider",
|
|
"x-astrbot-scope": "provider",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderConfigRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers/by-id": {
|
|
"get": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Get a provider configuration by query ID",
|
|
"operationId": "getProviderById",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"name": "provider_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "merged",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Replace a provider configuration by body ID",
|
|
"operationId": "updateProviderById",
|
|
"x-astrbot-scope": "provider",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"provider_id",
|
|
"config"
|
|
],
|
|
"properties": {
|
|
"provider_id": {
|
|
"type": "string"
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Delete a provider by query ID",
|
|
"operationId": "deleteProviderById",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"name": "provider_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers/enabled": {
|
|
"patch": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Enable or disable a provider by body ID",
|
|
"operationId": "setProviderEnabledById",
|
|
"x-astrbot-scope": "provider",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"provider_id",
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"provider_id": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers/test": {
|
|
"post": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Test a provider by body ID",
|
|
"operationId": "testProviderById",
|
|
"x-astrbot-scope": "provider",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"provider_id"
|
|
],
|
|
"properties": {
|
|
"provider_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers/embedding-dimension": {
|
|
"post": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Probe embedding dimension for a provider by body ID",
|
|
"operationId": "getProviderEmbeddingDimensionById",
|
|
"x-astrbot-scope": "provider",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"provider_id"
|
|
],
|
|
"properties": {
|
|
"provider_id": {
|
|
"type": "string"
|
|
},
|
|
"provider_config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers/{provider_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Get a provider configuration",
|
|
"operationId": "getProvider",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ProviderId"
|
|
},
|
|
{
|
|
"name": "merged",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Replace a provider configuration",
|
|
"operationId": "updateProvider",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ProviderId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderConfigRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Delete a provider",
|
|
"operationId": "deleteProvider",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ProviderId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers/{provider_id}/enabled": {
|
|
"patch": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Enable or disable a provider",
|
|
"operationId": "setProviderEnabled",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ProviderId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EnabledPatch"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers/{provider_id}/test": {
|
|
"post": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Test a provider",
|
|
"operationId": "testProvider",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ProviderId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/providers/{provider_id}/embedding-dimension": {
|
|
"post": {
|
|
"tags": [
|
|
"Providers"
|
|
],
|
|
"summary": "Probe embedding dimension for a provider",
|
|
"operationId": "getProviderEmbeddingDimension",
|
|
"x-astrbot-scope": "provider",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ProviderId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat": {
|
|
"post": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Send a webchat message",
|
|
"operationId": "sendChatMessage",
|
|
"x-astrbot-scope": "chat",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/ws": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Open a streaming chat WebSocket",
|
|
"operationId": "openChatWebSocket",
|
|
"x-websocket": true,
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "api_key",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "key",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"101": {
|
|
"description": "WebSocket upgrade accepted"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/live-chat/ws": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Open the live voice chat WebSocket",
|
|
"operationId": "openLiveChatWebSocket",
|
|
"x-websocket": true,
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "token",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"101": {
|
|
"description": "WebSocket upgrade accepted"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/unified-chat/ws": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Open the unified live/chat WebSocket",
|
|
"operationId": "openUnifiedChatWebSocket",
|
|
"x-websocket": true,
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "token",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"101": {
|
|
"description": "WebSocket upgrade accepted"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/sessions": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "List webchat sessions",
|
|
"operationId": "listChatSessions",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Page"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/PageSize"
|
|
},
|
|
{
|
|
"name": "username",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/sessions/new": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Create a webchat session",
|
|
"operationId": "createChatSession",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "platform_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "webchat"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/sessions/batch-delete": {
|
|
"post": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Delete multiple webchat sessions",
|
|
"operationId": "batchDeleteChatSessions",
|
|
"x-astrbot-scope": "chat",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatSessionBatchDeleteRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/sessions/{session_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Get a webchat session and its messages",
|
|
"operationId": "getChatSession",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SessionId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Update a webchat session",
|
|
"operationId": "updateChatSession",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SessionId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatSessionPatchRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Delete a webchat session",
|
|
"operationId": "deleteChatSession",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SessionId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/sessions/{session_id}/stop": {
|
|
"post": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Stop active webchat work for a session",
|
|
"operationId": "stopChatSession",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SessionId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/sessions/{session_id}/messages/{message_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Update the latest user message in a webchat session",
|
|
"operationId": "updateChatMessage",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SessionId"
|
|
},
|
|
{
|
|
"name": "message_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatMessagePatchRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/sessions/{session_id}/messages/{message_id}/regenerate": {
|
|
"post": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Regenerate a bot message in a webchat session",
|
|
"operationId": "regenerateChatMessage",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SessionId"
|
|
},
|
|
{
|
|
"name": "message_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatMessageRegenerateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Server-sent chat stream or an error envelope"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/configs": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "List chat-selectable configuration profiles",
|
|
"operationId": "listChatConfigs",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/threads": {
|
|
"post": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Create or reuse a side thread from a webchat message",
|
|
"operationId": "createChatThread",
|
|
"x-astrbot-scope": "chat",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatThreadCreateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/threads/{thread_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Get a webchat side thread",
|
|
"operationId": "getChatThread",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "thread_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Delete a webchat side thread",
|
|
"operationId": "deleteChatThread",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "thread_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/threads/{thread_id}/messages": {
|
|
"post": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Send a message inside a webchat side thread",
|
|
"operationId": "sendChatThreadMessage",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "thread_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatThreadMessageRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Server-sent chat stream or an error envelope"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/projects": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "List ChatUI projects",
|
|
"operationId": "listChatProjects",
|
|
"x-astrbot-scope": "chat",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Create a ChatUI project",
|
|
"operationId": "createChatProject",
|
|
"x-astrbot-scope": "chat",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatProjectRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/projects/{project_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Get a ChatUI project",
|
|
"operationId": "getChatProject",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "project_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Update a ChatUI project",
|
|
"operationId": "updateChatProject",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "project_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatProjectRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Delete a ChatUI project",
|
|
"operationId": "deleteChatProject",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "project_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/projects/{project_id}/sessions": {
|
|
"get": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "List sessions in a ChatUI project",
|
|
"operationId": "listChatProjectSessions",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "project_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/projects/{project_id}/sessions/{session_id}": {
|
|
"post": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Add a session to a ChatUI project",
|
|
"operationId": "addChatProjectSession",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"name": "project_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/SessionId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/projects/sessions/{session_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"Chat"
|
|
],
|
|
"summary": "Remove a session from its ChatUI project",
|
|
"operationId": "removeChatProjectSession",
|
|
"x-astrbot-scope": "chat",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SessionId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/im/messages": {
|
|
"post": {
|
|
"tags": [
|
|
"IM"
|
|
],
|
|
"summary": "Send a message to a UMO",
|
|
"operationId": "sendImMessage",
|
|
"x-astrbot-scope": "im",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ImMessageRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/im/bots": {
|
|
"get": {
|
|
"tags": [
|
|
"IM"
|
|
],
|
|
"summary": "List active IM bot IDs",
|
|
"operationId": "listImBots",
|
|
"x-astrbot-scope": "im",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/files": {
|
|
"post": {
|
|
"tags": [
|
|
"Files"
|
|
],
|
|
"summary": "Upload a file",
|
|
"operationId": "uploadFile",
|
|
"x-astrbot-scope": "file",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FileUploadRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/files/content": {
|
|
"get": {
|
|
"tags": [
|
|
"Files"
|
|
],
|
|
"summary": "Get an uploaded file by stored filename",
|
|
"operationId": "getFileByName",
|
|
"x-astrbot-scope": "file",
|
|
"parameters": [
|
|
{
|
|
"name": "filename",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "File bytes or an error envelope",
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/files/tokens/{file_token}": {
|
|
"get": {
|
|
"tags": [
|
|
"Files"
|
|
],
|
|
"summary": "Get a tokenized public file",
|
|
"operationId": "getTokenFile",
|
|
"x-astrbot-scope": "file",
|
|
"parameters": [
|
|
{
|
|
"name": "file_token",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Tokenized file bytes or an error envelope",
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/files/{attachment_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Files"
|
|
],
|
|
"summary": "Get attachment metadata",
|
|
"operationId": "getAttachment",
|
|
"x-astrbot-scope": "file",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/AttachmentId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Files"
|
|
],
|
|
"summary": "Delete an attachment",
|
|
"operationId": "deleteAttachment",
|
|
"x-astrbot-scope": "file",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/AttachmentId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/files/{attachment_id}/content": {
|
|
"get": {
|
|
"tags": [
|
|
"Files"
|
|
],
|
|
"summary": "Download attachment content",
|
|
"operationId": "downloadAttachment",
|
|
"x-astrbot-scope": "file",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/AttachmentId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "File content",
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "List installed plugins",
|
|
"operationId": "listPlugins",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "include_reserved",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
},
|
|
{
|
|
"name": "enabled",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/by-id": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin details by query ID",
|
|
"operationId": "getPluginById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Uninstall a plugin by query ID",
|
|
"operationId": "uninstallPluginById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"delete_config": {
|
|
"type": "boolean"
|
|
},
|
|
"delete_data": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/config": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin configuration by query ID",
|
|
"operationId": "getPluginConfigById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Save plugin configuration by body ID",
|
|
"operationId": "updatePluginConfigById",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"plugin_id",
|
|
"config"
|
|
],
|
|
"properties": {
|
|
"plugin_id": {
|
|
"type": "string"
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/config/schema": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin configuration schema by query ID",
|
|
"operationId": "getPluginConfigSchemaById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/config-files": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "List uploaded files for a plugin file configuration item by query ID",
|
|
"operationId": "listPluginConfigFilesById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "config_key",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Upload files for a plugin file configuration item by query ID",
|
|
"operationId": "uploadPluginConfigFilesById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "config_key",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Delete a plugin file configuration upload by query ID",
|
|
"operationId": "deletePluginConfigFileById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginConfigFileDeleteRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/readme": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin README content by query ID",
|
|
"operationId": "getPluginReadmeById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Text"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/changelog": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin CHANGELOG content by query ID",
|
|
"operationId": "getPluginChangelogById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Text"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/reload": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Reload a plugin by body ID",
|
|
"operationId": "reloadPluginById",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"plugin_id"
|
|
],
|
|
"properties": {
|
|
"plugin_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/enabled": {
|
|
"patch": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Enable or disable a plugin by body ID",
|
|
"operationId": "setPluginEnabledById",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"plugin_id",
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"plugin_id": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/pages": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "List plugin pages by query ID",
|
|
"operationId": "listPluginPagesById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/page": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Get plugin page entry HTML by query ID",
|
|
"operationId": "getPluginPageById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_name",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Html"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/page/assets": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Get a plugin page asset by query ID",
|
|
"operationId": "getPluginPageAssetById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_name",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "asset_path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Plugin asset content"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin details",
|
|
"operationId": "getPlugin",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"delete_config": {
|
|
"type": "boolean"
|
|
},
|
|
"delete_data": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Uninstall a plugin",
|
|
"operationId": "uninstallPlugin",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"delete_config": {
|
|
"type": "boolean"
|
|
},
|
|
"delete_data": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/config": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin configuration",
|
|
"operationId": "getPluginConfig",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Save plugin configuration",
|
|
"operationId": "updatePluginConfig",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/config/schema": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin configuration schema",
|
|
"operationId": "getPluginConfigSchema",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/config-files/{config_key}": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "List uploaded files for a plugin file configuration item",
|
|
"operationId": "listPluginConfigFiles",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
},
|
|
{
|
|
"name": "config_key",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "URL-encoded configuration key path.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Upload files for a plugin file configuration item",
|
|
"operationId": "uploadPluginConfigFiles",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
},
|
|
{
|
|
"name": "config_key",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "URL-encoded configuration key path.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/config-files": {
|
|
"delete": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Delete a plugin file configuration upload",
|
|
"operationId": "deletePluginConfigFile",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginConfigFileDeleteRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/readme": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin README content",
|
|
"operationId": "getPluginReadme",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Text"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/changelog": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Get plugin CHANGELOG content",
|
|
"operationId": "getPluginChangelog",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Text"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/reload": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Reload a plugin",
|
|
"operationId": "reloadPlugin",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/enabled": {
|
|
"patch": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Enable or disable a plugin",
|
|
"operationId": "setPluginEnabled",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EnabledPatch"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Update or reinstall a plugin",
|
|
"operationId": "updatePlugin",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginUpdateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/update": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Update multiple plugins",
|
|
"operationId": "updatePlugins",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginBatchUpdateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/version-support/check": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Check whether a plugin version constraint is supported",
|
|
"operationId": "checkPluginVersionSupport",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginVersionSupportRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/failed": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "List failed plugins and errors",
|
|
"operationId": "listFailedPlugins",
|
|
"x-astrbot-scope": "plugin",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/failed/{plugin_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Uninstall a failed plugin",
|
|
"operationId": "uninstallFailedPlugin",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"delete_config": {
|
|
"type": "boolean"
|
|
},
|
|
"delete_data": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/failed/{plugin_id}/reload": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Reload a failed plugin",
|
|
"operationId": "reloadFailedPlugin",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/install/github": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Install a plugin from GitHub",
|
|
"operationId": "installPluginFromGithub",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginGithubInstallRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/install/url": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Install a plugin from a downloadable ZIP URL",
|
|
"operationId": "installPluginFromUrl",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginUrlInstallRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/install/upload": {
|
|
"post": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "Install a plugin from an uploaded ZIP file",
|
|
"operationId": "installPluginFromUpload",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginUploadInstallRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/market": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "List plugin marketplace entries",
|
|
"operationId": "listPluginMarket",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Page"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/PageSize"
|
|
},
|
|
{
|
|
"name": "category",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"recommended",
|
|
"downloads",
|
|
"updated",
|
|
"name"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "keyword",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "force_refresh",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "custom_registry",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/market/categories": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugins"
|
|
],
|
|
"summary": "List plugin marketplace categories",
|
|
"operationId": "listPluginMarketCategories",
|
|
"x-astrbot-scope": "plugin",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugin-sources": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin Sources"
|
|
],
|
|
"summary": "List plugin sources",
|
|
"operationId": "listPluginSources",
|
|
"x-astrbot-scope": "plugin",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Plugin Sources"
|
|
],
|
|
"summary": "Add a plugin source",
|
|
"operationId": "createPluginSource",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PluginSourceRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Plugin Sources"
|
|
],
|
|
"summary": "Replace plugin sources",
|
|
"operationId": "replacePluginSources",
|
|
"x-astrbot-scope": "plugin",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"sources"
|
|
],
|
|
"properties": {
|
|
"sources": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PluginSourceRequest"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugin-sources/{source_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"Plugin Sources"
|
|
],
|
|
"summary": "Delete a plugin source",
|
|
"operationId": "deletePluginSource",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SourceId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugin-sources/by-id": {
|
|
"delete": {
|
|
"tags": [
|
|
"Plugin Sources"
|
|
],
|
|
"summary": "Delete a plugin source by query ID",
|
|
"operationId": "deletePluginSourceById",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "source_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/pages": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "List plugin pages",
|
|
"operationId": "listPluginPages",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/pages/{page_name}": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Get plugin page entry HTML",
|
|
"operationId": "getPluginPage",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
},
|
|
{
|
|
"name": "page_name",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Html"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/{plugin_id}/pages/{page_name}/assets/{asset_path}": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Get a plugin page asset",
|
|
"operationId": "getPluginPageAsset",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PluginId"
|
|
},
|
|
{
|
|
"name": "page_name",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "asset_path",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "URL-encoded relative asset path.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Plugin asset content"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/page-bridge-sdk.js": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Get the plugin page bridge SDK",
|
|
"operationId": "getPluginPageBridgeSdk",
|
|
"x-astrbot-scope": "plugin",
|
|
"responses": {
|
|
"200": {
|
|
"description": "JavaScript bridge SDK",
|
|
"content": {
|
|
"application/javascript": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/plugins/extensions/{plugin_path}": {
|
|
"get": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Proxy a plugin extension GET route",
|
|
"operationId": "getPluginExtensionRoute",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_path",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Plugin extension path after /api/plug/. It may contain slash-separated segments.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Proxy a plugin extension POST route",
|
|
"operationId": "postPluginExtensionRoute",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_path",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Plugin extension path after /api/plug/. It may contain slash-separated segments.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Proxy a plugin extension PUT route",
|
|
"operationId": "putPluginExtensionRoute",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_path",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Proxy a plugin extension PATCH route",
|
|
"operationId": "patchPluginExtensionRoute",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_path",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Plugin Pages"
|
|
],
|
|
"summary": "Proxy a plugin extension DELETE route",
|
|
"operationId": "deletePluginExtensionRoute",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "plugin_path",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/commands": {
|
|
"get": {
|
|
"tags": [
|
|
"Commands"
|
|
],
|
|
"summary": "List plugin commands",
|
|
"operationId": "listCommands",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"name": "config_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/commands/{command_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"Commands"
|
|
],
|
|
"summary": "Update command enabled state, alias, or permission group",
|
|
"operationId": "updateCommand",
|
|
"x-astrbot-scope": "plugin",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/CommandId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CommandPatchRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/commands/conflicts": {
|
|
"get": {
|
|
"tags": [
|
|
"Commands"
|
|
],
|
|
"summary": "List command conflicts",
|
|
"operationId": "listCommandConflicts",
|
|
"x-astrbot-scope": "plugin",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/tools": {
|
|
"get": {
|
|
"tags": [
|
|
"Tools"
|
|
],
|
|
"summary": "List LLM tools",
|
|
"operationId": "listTools",
|
|
"x-astrbot-scope": "tool",
|
|
"parameters": [
|
|
{
|
|
"name": "origin",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"builtin",
|
|
"plugin",
|
|
"mcp"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "enabled",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/tools/{tool_id}/enabled": {
|
|
"patch": {
|
|
"tags": [
|
|
"Tools"
|
|
],
|
|
"summary": "Enable or disable an LLM tool",
|
|
"operationId": "setToolEnabled",
|
|
"x-astrbot-scope": "tool",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ToolId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EnabledPatch"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/tools/{tool_id}/permission": {
|
|
"patch": {
|
|
"tags": [
|
|
"Tools"
|
|
],
|
|
"summary": "Update an LLM tool permission",
|
|
"operationId": "setToolPermission",
|
|
"x-astrbot-scope": "tool",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ToolId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ToolPermissionPatch"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/mcp/servers": {
|
|
"get": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "List MCP servers",
|
|
"operationId": "listMcpServers",
|
|
"x-astrbot-scope": "mcp",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Add an MCP server",
|
|
"operationId": "createMcpServer",
|
|
"x-astrbot-scope": "mcp",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/McpServerConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/mcp/servers/by-name": {
|
|
"put": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Update an MCP server by body name",
|
|
"operationId": "updateMcpServerByName",
|
|
"x-astrbot-scope": "mcp",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"server_name"
|
|
],
|
|
"properties": {
|
|
"server_name": {
|
|
"type": "string"
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Delete an MCP server by query name",
|
|
"operationId": "deleteMcpServerByName",
|
|
"x-astrbot-scope": "mcp",
|
|
"parameters": [
|
|
{
|
|
"name": "server_name",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/mcp/servers/enabled": {
|
|
"patch": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Enable or disable an MCP server by body name",
|
|
"operationId": "setMcpServerEnabledByName",
|
|
"x-astrbot-scope": "mcp",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"server_name",
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"server_name": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/mcp/servers/test": {
|
|
"post": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Test an MCP server connection by body name",
|
|
"operationId": "testMcpServerByName",
|
|
"x-astrbot-scope": "mcp",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"server_name"
|
|
],
|
|
"properties": {
|
|
"server_name": {
|
|
"type": "string"
|
|
},
|
|
"mcp_server_config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/mcp/servers/{server_name}": {
|
|
"put": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Update an MCP server",
|
|
"operationId": "updateMcpServer",
|
|
"x-astrbot-scope": "mcp",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ServerName"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/McpServerConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Delete an MCP server",
|
|
"operationId": "deleteMcpServer",
|
|
"x-astrbot-scope": "mcp",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ServerName"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/mcp/servers/{server_name}/enabled": {
|
|
"patch": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Enable or disable an MCP server",
|
|
"operationId": "setMcpServerEnabled",
|
|
"x-astrbot-scope": "mcp",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ServerName"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EnabledPatch"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/mcp/servers/{server_name}/test": {
|
|
"post": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Test an MCP server connection",
|
|
"operationId": "testMcpServer",
|
|
"x-astrbot-scope": "mcp",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ServerName"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mcp_server_config": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/mcp/providers/modelscope/sync": {
|
|
"post": {
|
|
"tags": [
|
|
"MCP"
|
|
],
|
|
"summary": "Sync MCP servers from ModelScope",
|
|
"operationId": "syncModelScopeMcpServers",
|
|
"x-astrbot-scope": "mcp",
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ModelScopeSyncRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "List skills",
|
|
"operationId": "listSkills",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"name": "enabled",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "source",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Upload or import a skill archive",
|
|
"operationId": "uploadSkill",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SkillUploadRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/batch": {
|
|
"post": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Upload multiple skill archives",
|
|
"operationId": "uploadSkillsBatch",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"files"
|
|
],
|
|
"properties": {
|
|
"files": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/by-name": {
|
|
"patch": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Update skill metadata or enabled state by body name",
|
|
"operationId": "updateSkillByName",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"skill_name"
|
|
],
|
|
"properties": {
|
|
"skill_name": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"active": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Delete a skill by query name",
|
|
"operationId": "deleteSkillByName",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"name": "skill_name",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/archive": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Download a skill archive by query name",
|
|
"operationId": "downloadSkillByName",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"name": "skill_name",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Skill archive",
|
|
"content": {
|
|
"application/zip": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/files": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "List files in a skill by query name",
|
|
"operationId": "listSkillFilesByName",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"name": "skill_name",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/file": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Get skill file content by query name and path",
|
|
"operationId": "getSkillFileByName",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"name": "skill_name",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Text"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Update skill file content by body name and path",
|
|
"operationId": "updateSkillFileByName",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"skill_name",
|
|
"path",
|
|
"content"
|
|
],
|
|
"properties": {
|
|
"skill_name": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"content": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/{skill_name}": {
|
|
"patch": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Update skill metadata or enabled state",
|
|
"operationId": "updateSkill",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SkillName"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SkillPatchRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Delete a skill",
|
|
"operationId": "deleteSkill",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SkillName"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/{skill_name}/archive": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Download a skill archive",
|
|
"operationId": "downloadSkill",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SkillName"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Skill archive",
|
|
"content": {
|
|
"application/zip": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/{skill_name}/files": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "List files in a skill",
|
|
"operationId": "listSkillFiles",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SkillName"
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/{skill_name}/files/{file_path}": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Get skill file content",
|
|
"operationId": "getSkillFile",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SkillName"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/FilePath"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Text"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Update skill file content",
|
|
"operationId": "updateSkillFile",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/SkillName"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/FilePath"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/neo/candidates": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "List Shipyard Neo skill candidates",
|
|
"operationId": "listNeoSkillCandidates",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"name": "skill_key",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "status",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/neo/releases": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "List Shipyard Neo skill releases",
|
|
"operationId": "listNeoSkillReleases",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"name": "skill_key",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "stage",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/neo/payload": {
|
|
"get": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Get a Shipyard Neo skill payload",
|
|
"operationId": "getNeoSkillPayload",
|
|
"x-astrbot-scope": "skill",
|
|
"parameters": [
|
|
{
|
|
"name": "payload_ref",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/neo/evaluate": {
|
|
"post": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Evaluate a Shipyard Neo skill candidate",
|
|
"operationId": "evaluateNeoSkillCandidate",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NeoCandidateActionRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/neo/promote": {
|
|
"post": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Promote a Shipyard Neo skill candidate",
|
|
"operationId": "promoteNeoSkillCandidate",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NeoCandidateActionRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/neo/rollback": {
|
|
"post": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Roll back a Shipyard Neo skill release",
|
|
"operationId": "rollbackNeoSkillRelease",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NeoReleaseActionRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/neo/sync": {
|
|
"post": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Sync a Shipyard Neo skill release",
|
|
"operationId": "syncNeoSkillRelease",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NeoReleaseActionRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/neo/candidates/delete": {
|
|
"post": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Delete a Shipyard Neo skill candidate",
|
|
"operationId": "deleteNeoSkillCandidate",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NeoCandidateActionRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/skills/neo/releases/delete": {
|
|
"post": {
|
|
"tags": [
|
|
"Skills"
|
|
],
|
|
"summary": "Delete a Shipyard Neo skill release",
|
|
"operationId": "deleteNeoSkillRelease",
|
|
"x-astrbot-scope": "skill",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NeoReleaseActionRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases": {
|
|
"get": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "List knowledge bases",
|
|
"operationId": "listKnowledgeBases",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Page"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/PageSize"
|
|
},
|
|
{
|
|
"name": "refresh_stats",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Create a knowledge base",
|
|
"operationId": "createKnowledgeBase",
|
|
"x-astrbot-scope": "kb",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KnowledgeBaseRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/{kb_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Get a knowledge base",
|
|
"operationId": "getKnowledgeBase",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Update a knowledge base",
|
|
"operationId": "updateKnowledgeBase",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KnowledgeBaseRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Delete a knowledge base",
|
|
"operationId": "deleteKnowledgeBase",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/{kb_id}/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Get knowledge base stats",
|
|
"operationId": "getKnowledgeBaseStats",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/{kb_id}/documents": {
|
|
"get": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "List knowledge base documents",
|
|
"operationId": "listKnowledgeDocuments",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/Page"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/PageSize"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Upload a document to a knowledge base",
|
|
"operationId": "uploadKnowledgeDocument",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KnowledgeDocumentUploadRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/{kb_id}/documents/import": {
|
|
"post": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Import documents already available on the server",
|
|
"operationId": "importKnowledgeDocuments",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KnowledgeDocumentImportRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/{kb_id}/documents/import-url": {
|
|
"post": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Import a document from URL",
|
|
"operationId": "importKnowledgeDocumentFromUrl",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KnowledgeDocumentUrlImportRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/{kb_id}/documents/{document_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Get a knowledge base document",
|
|
"operationId": "getKnowledgeDocument",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/DocumentId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Delete a knowledge base document",
|
|
"operationId": "deleteKnowledgeDocument",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/DocumentId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/{kb_id}/chunks": {
|
|
"get": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "List document chunks",
|
|
"operationId": "listKnowledgeChunks",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
},
|
|
{
|
|
"name": "document_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/Page"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/PageSize"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/{kb_id}/chunks/{chunk_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Delete a document chunk",
|
|
"operationId": "deleteKnowledgeChunk",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/ChunkId"
|
|
},
|
|
{
|
|
"name": "document_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/{kb_id}/retrieve": {
|
|
"post": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Retrieve knowledge base chunks",
|
|
"operationId": "retrieveKnowledgeBase",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/KbId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KnowledgeRetrieveRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/knowledge-bases/tasks/{task_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Knowledge Base"
|
|
],
|
|
"summary": "Get knowledge base import task progress",
|
|
"operationId": "getKnowledgeTask",
|
|
"x-astrbot-scope": "kb",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/TaskId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/personas/tree": {
|
|
"get": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Get persona folder tree",
|
|
"operationId": "getPersonaTree",
|
|
"x-astrbot-scope": "persona",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/personas": {
|
|
"get": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "List personas",
|
|
"operationId": "listPersonas",
|
|
"x-astrbot-scope": "persona",
|
|
"parameters": [
|
|
{
|
|
"name": "folder_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Create a persona",
|
|
"operationId": "createPersona",
|
|
"x-astrbot-scope": "persona",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonaRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/personas/by-id": {
|
|
"get": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Get a persona by query ID",
|
|
"operationId": "getPersonaById",
|
|
"x-astrbot-scope": "persona",
|
|
"parameters": [
|
|
{
|
|
"name": "persona_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Update a persona by body ID",
|
|
"operationId": "updatePersonaById",
|
|
"x-astrbot-scope": "persona",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"persona_id"
|
|
],
|
|
"properties": {
|
|
"persona_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Delete a persona by query ID",
|
|
"operationId": "deletePersonaById",
|
|
"x-astrbot-scope": "persona",
|
|
"parameters": [
|
|
{
|
|
"name": "persona_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/personas/{persona_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Get a persona",
|
|
"operationId": "getPersona",
|
|
"x-astrbot-scope": "persona",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PersonaId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Update a persona",
|
|
"operationId": "updatePersona",
|
|
"x-astrbot-scope": "persona",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PersonaId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonaRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Delete a persona",
|
|
"operationId": "deletePersona",
|
|
"x-astrbot-scope": "persona",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/PersonaId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/persona-folders": {
|
|
"get": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "List persona folders",
|
|
"operationId": "listPersonaFolders",
|
|
"x-astrbot-scope": "persona",
|
|
"parameters": [
|
|
{
|
|
"name": "parent_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Create a persona folder",
|
|
"operationId": "createPersonaFolder",
|
|
"x-astrbot-scope": "persona",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonaFolderRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/persona-folders/{folder_id}": {
|
|
"put": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Update a persona folder",
|
|
"operationId": "updatePersonaFolder",
|
|
"x-astrbot-scope": "persona",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/FolderId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonaFolderRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Delete a persona folder",
|
|
"operationId": "deletePersonaFolder",
|
|
"x-astrbot-scope": "persona",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/FolderId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/personas/move": {
|
|
"post": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Move a persona or folder",
|
|
"operationId": "movePersonaItem",
|
|
"x-astrbot-scope": "persona",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonaMoveRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/personas/reorder": {
|
|
"post": {
|
|
"tags": [
|
|
"Personas"
|
|
],
|
|
"summary": "Reorder personas or folders",
|
|
"operationId": "reorderPersonaItems",
|
|
"x-astrbot-scope": "persona",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReorderRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/sessions": {
|
|
"get": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "List active UMOs and session status",
|
|
"operationId": "listSessions",
|
|
"x-astrbot-scope": "data",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Page"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/PageSize"
|
|
},
|
|
{
|
|
"name": "search",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "platform",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "message_type",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"all",
|
|
"group",
|
|
"private"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/sessions/active-umos": {
|
|
"get": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "List active and known UMOs",
|
|
"operationId": "listActiveUmos",
|
|
"x-astrbot-scope": "data",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/sessions/rules": {
|
|
"get": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "List session rules",
|
|
"operationId": "listSessionRules",
|
|
"x-astrbot-scope": "data",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Page"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/PageSize"
|
|
},
|
|
{
|
|
"name": "search",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "Update or create a session rule",
|
|
"operationId": "upsertSessionRule",
|
|
"x-astrbot-scope": "data",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionRuleRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/sessions/rules/delete": {
|
|
"post": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "Delete one or more session rules",
|
|
"operationId": "deleteSessionRules",
|
|
"x-astrbot-scope": "data",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UmoListRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/sessions/provider": {
|
|
"patch": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "Batch update session provider selection",
|
|
"operationId": "batchUpdateSessionProvider",
|
|
"x-astrbot-scope": "data",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BatchSessionProviderRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/sessions/service": {
|
|
"patch": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "Batch update session service settings",
|
|
"operationId": "batchUpdateSessionService",
|
|
"x-astrbot-scope": "data",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BatchSessionServiceRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/session-groups": {
|
|
"get": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "List session groups",
|
|
"operationId": "listSessionGroups",
|
|
"x-astrbot-scope": "data",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "Create a session group",
|
|
"operationId": "createSessionGroup",
|
|
"x-astrbot-scope": "data",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionGroupRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/session-groups/{group_id}": {
|
|
"put": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "Update a session group",
|
|
"operationId": "updateSessionGroup",
|
|
"x-astrbot-scope": "data",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/GroupId"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionGroupRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Sessions"
|
|
],
|
|
"summary": "Delete a session group",
|
|
"operationId": "deleteSessionGroup",
|
|
"x-astrbot-scope": "data",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/GroupId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/conversations": {
|
|
"get": {
|
|
"tags": [
|
|
"Conversations"
|
|
],
|
|
"summary": "List conversation history data",
|
|
"operationId": "listConversations",
|
|
"x-astrbot-scope": "data",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Page"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/PageSize"
|
|
},
|
|
{
|
|
"name": "platform_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "user_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "search",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "platforms",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Comma-separated platform IDs."
|
|
},
|
|
{
|
|
"name": "message_types",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Comma-separated message types."
|
|
},
|
|
{
|
|
"name": "exclude_ids",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Comma-separated user IDs to exclude."
|
|
},
|
|
{
|
|
"name": "exclude_platforms",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Comma-separated platforms to exclude."
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/conversations/batch-delete": {
|
|
"post": {
|
|
"tags": [
|
|
"Conversations"
|
|
],
|
|
"summary": "Delete multiple conversations",
|
|
"operationId": "batchDeleteConversations",
|
|
"x-astrbot-scope": "data",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationBatchDeleteRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/conversations/{conversation_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Conversations"
|
|
],
|
|
"summary": "Get conversation details and messages",
|
|
"operationId": "getConversation",
|
|
"x-astrbot-scope": "data",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ConversationId"
|
|
},
|
|
{
|
|
"name": "user_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"Conversations"
|
|
],
|
|
"summary": "Update conversation metadata",
|
|
"operationId": "updateConversation",
|
|
"x-astrbot-scope": "data",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ConversationId"
|
|
},
|
|
{
|
|
"name": "user_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationPatchRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Conversations"
|
|
],
|
|
"summary": "Delete a conversation",
|
|
"operationId": "deleteConversation",
|
|
"x-astrbot-scope": "data",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ConversationId"
|
|
},
|
|
{
|
|
"name": "user_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/conversations/{conversation_id}/messages": {
|
|
"put": {
|
|
"tags": [
|
|
"Conversations"
|
|
],
|
|
"summary": "Replace conversation message history",
|
|
"operationId": "replaceConversationMessages",
|
|
"x-astrbot-scope": "data",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/ConversationId"
|
|
},
|
|
{
|
|
"name": "user_id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationMessagesReplaceRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/conversations/export": {
|
|
"post": {
|
|
"tags": [
|
|
"Conversations"
|
|
],
|
|
"summary": "Export conversations",
|
|
"operationId": "exportConversations",
|
|
"x-astrbot-scope": "data",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationExportRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Exported conversation data"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Get runtime statistics",
|
|
"operationId": "getStats",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "offset_sec",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 86400
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/stats/provider-tokens": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Get provider token usage statistics",
|
|
"operationId": "getProviderTokenStats",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "days",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/stats/version": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Get AstrBot version",
|
|
"operationId": "getVersion",
|
|
"x-astrbot-scope": "system",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/stats/first-notice": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Get first-run dashboard notice content",
|
|
"operationId": "getFirstNotice",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "locale",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/stats/ghproxy/test": {
|
|
"post": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Test a GitHub proxy endpoint",
|
|
"operationId": "testGhproxyConnection",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GhproxyTestRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/changelogs": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "List available changelog versions",
|
|
"operationId": "listChangelogVersions",
|
|
"x-astrbot-scope": "system",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/changelogs/{version}": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Get changelog content for a version",
|
|
"operationId": "getChangelog",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "version",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/stats/start-time": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Get runtime start time",
|
|
"operationId": "getStartTime",
|
|
"security": [],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/stats/storage": {
|
|
"get": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Get storage status",
|
|
"operationId": "getStorageStatus",
|
|
"x-astrbot-scope": "system",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/stats/storage/cleanup": {
|
|
"post": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Clean storage",
|
|
"operationId": "cleanupStorage",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/system/restart": {
|
|
"post": {
|
|
"tags": [
|
|
"Stats"
|
|
],
|
|
"summary": "Restart AstrBot core",
|
|
"operationId": "restartCore",
|
|
"x-astrbot-scope": "system",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups": {
|
|
"get": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "List backups",
|
|
"operationId": "listBackups",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Page"
|
|
},
|
|
{
|
|
"$ref": "#/components/parameters/PageSize"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Export a backup",
|
|
"operationId": "createBackup",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BackupExportRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups/upload": {
|
|
"post": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Upload a backup file",
|
|
"operationId": "uploadBackup",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BackupUploadRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups/upload/init": {
|
|
"post": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Initialize chunked backup upload",
|
|
"operationId": "initBackupUpload",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BackupUploadInitRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups/upload/chunk": {
|
|
"post": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Upload a backup chunk",
|
|
"operationId": "uploadBackupChunk",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BackupChunkUploadRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups/upload/complete": {
|
|
"post": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Complete chunked backup upload",
|
|
"operationId": "completeBackupUpload",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BackupUploadSessionRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups/upload/abort": {
|
|
"post": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Abort chunked backup upload",
|
|
"operationId": "abortBackupUpload",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BackupUploadSessionRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups/tasks/{task_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Get backup task progress",
|
|
"operationId": "getBackupProgress",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "task_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups/{filename}": {
|
|
"get": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Download a backup",
|
|
"operationId": "downloadBackup",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Filename"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Backup archive"
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Rename a backup",
|
|
"operationId": "renameBackup",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Filename"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BackupRenameRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Delete a backup",
|
|
"operationId": "deleteBackup",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Filename"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups/{filename}/check": {
|
|
"post": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Check a backup before import",
|
|
"operationId": "checkBackup",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Filename"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backups/{filename}/import": {
|
|
"post": {
|
|
"tags": [
|
|
"Backups"
|
|
],
|
|
"summary": "Import a backup",
|
|
"operationId": "importBackup",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Filename"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BackupImportRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/updates/check": {
|
|
"get": {
|
|
"tags": [
|
|
"Updates"
|
|
],
|
|
"summary": "Check for updates",
|
|
"operationId": "checkUpdate",
|
|
"x-astrbot-scope": "system",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/updates/releases": {
|
|
"get": {
|
|
"tags": [
|
|
"Updates"
|
|
],
|
|
"summary": "List releases",
|
|
"operationId": "listReleases",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "type",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"core",
|
|
"dashboard"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/updates/core": {
|
|
"post": {
|
|
"tags": [
|
|
"Updates"
|
|
],
|
|
"summary": "Update AstrBot core",
|
|
"operationId": "updateCore",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/updates/dashboard": {
|
|
"post": {
|
|
"tags": [
|
|
"Updates"
|
|
],
|
|
"summary": "Update dashboard assets",
|
|
"operationId": "updateDashboard",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/updates/progress/{task_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Updates"
|
|
],
|
|
"summary": "Get update progress",
|
|
"operationId": "getUpdateProgress",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/TaskId"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/pip/install": {
|
|
"post": {
|
|
"tags": [
|
|
"Updates"
|
|
],
|
|
"summary": "Install a Python package",
|
|
"operationId": "installPipPackage",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PipInstallRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/migrations": {
|
|
"post": {
|
|
"tags": [
|
|
"Updates"
|
|
],
|
|
"summary": "Run pending migrations",
|
|
"operationId": "runMigrations",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MigrationRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/cron/jobs": {
|
|
"get": {
|
|
"tags": [
|
|
"Cron"
|
|
],
|
|
"summary": "List cron jobs",
|
|
"operationId": "listCronJobs",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "type",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Cron"
|
|
],
|
|
"summary": "Create a cron job",
|
|
"operationId": "createCronJob",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronJobRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/cron/jobs/{job_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"Cron"
|
|
],
|
|
"summary": "Update a cron job",
|
|
"operationId": "updateCronJob",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "job_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronJobPatchRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Cron"
|
|
],
|
|
"summary": "Delete a cron job",
|
|
"operationId": "deleteCronJob",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "job_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/cron/jobs/{job_id}/run": {
|
|
"post": {
|
|
"tags": [
|
|
"Cron"
|
|
],
|
|
"summary": "Run a cron job immediately",
|
|
"operationId": "runCronJob",
|
|
"x-astrbot-scope": "system",
|
|
"parameters": [
|
|
{
|
|
"name": "job_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/logs/live": {
|
|
"get": {
|
|
"tags": [
|
|
"Logs"
|
|
],
|
|
"summary": "Stream live logs",
|
|
"operationId": "streamLiveLogs",
|
|
"x-astrbot-scope": "system",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Server-sent log stream",
|
|
"content": {
|
|
"text/event-stream": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/logs/history": {
|
|
"get": {
|
|
"tags": [
|
|
"Logs"
|
|
],
|
|
"summary": "Get log history",
|
|
"operationId": "getLogHistory",
|
|
"x-astrbot-scope": "system",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Text"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trace/settings": {
|
|
"get": {
|
|
"tags": [
|
|
"Logs"
|
|
],
|
|
"summary": "Get trace settings",
|
|
"operationId": "getTraceSettings",
|
|
"x-astrbot-scope": "system",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Logs"
|
|
],
|
|
"summary": "Update trace settings",
|
|
"operationId": "updateTraceSettings",
|
|
"x-astrbot-scope": "system",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TraceSettingsRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/t2i/templates": {
|
|
"get": {
|
|
"tags": [
|
|
"T2I"
|
|
],
|
|
"summary": "List text-to-image templates",
|
|
"operationId": "listT2iTemplates",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"T2I"
|
|
],
|
|
"summary": "Create a text-to-image template",
|
|
"operationId": "createT2iTemplate",
|
|
"x-astrbot-scope": "config",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/T2iTemplateRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/t2i/templates/active": {
|
|
"get": {
|
|
"tags": [
|
|
"T2I"
|
|
],
|
|
"summary": "Get active text-to-image template",
|
|
"operationId": "getActiveT2iTemplate",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"T2I"
|
|
],
|
|
"summary": "Set active text-to-image template",
|
|
"operationId": "setActiveT2iTemplate",
|
|
"x-astrbot-scope": "config",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NameRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/t2i/templates/default/reset": {
|
|
"post": {
|
|
"tags": [
|
|
"T2I"
|
|
],
|
|
"summary": "Reset the default text-to-image template",
|
|
"operationId": "resetDefaultT2iTemplate",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/t2i/templates/{name}": {
|
|
"get": {
|
|
"tags": [
|
|
"T2I"
|
|
],
|
|
"summary": "Get a text-to-image template",
|
|
"operationId": "getT2iTemplate",
|
|
"x-astrbot-scope": "config",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Name"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"T2I"
|
|
],
|
|
"summary": "Update a text-to-image template",
|
|
"operationId": "updateT2iTemplate",
|
|
"x-astrbot-scope": "config",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Name"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/T2iTemplateContentRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"T2I"
|
|
],
|
|
"summary": "Delete a text-to-image template",
|
|
"operationId": "deleteT2iTemplate",
|
|
"x-astrbot-scope": "config",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/Name"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/subagents/config": {
|
|
"get": {
|
|
"tags": [
|
|
"Subagents"
|
|
],
|
|
"summary": "Get subagent orchestrator configuration",
|
|
"operationId": "getSubagentConfig",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"Subagents"
|
|
],
|
|
"summary": "Update subagent orchestrator configuration",
|
|
"operationId": "updateSubagentConfig",
|
|
"x-astrbot-scope": "config",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/subagents/available-tools": {
|
|
"get": {
|
|
"tags": [
|
|
"Subagents"
|
|
],
|
|
"summary": "List tools available to subagents",
|
|
"operationId": "listSubagentAvailableTools",
|
|
"x-astrbot-scope": "config",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/components/responses/Ok"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/webhooks/platforms/{webhook_uuid}": {
|
|
"get": {
|
|
"tags": [
|
|
"Webhooks"
|
|
],
|
|
"summary": "Verify a platform webhook",
|
|
"operationId": "verifyPlatformWebhook",
|
|
"security": [],
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/WebhookUuid"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Webhook verification response"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Webhooks"
|
|
],
|
|
"summary": "Receive a platform webhook",
|
|
"operationId": "receivePlatformWebhook",
|
|
"security": [],
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/WebhookUuid"
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": false,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Webhook accepted"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"securitySchemes": {
|
|
"ApiKeyAuth": {
|
|
"type": "apiKey",
|
|
"in": "header",
|
|
"name": "X-API-Key"
|
|
},
|
|
"BearerAuth": {
|
|
"type": "http",
|
|
"scheme": "bearer",
|
|
"bearerFormat": "JWT"
|
|
}
|
|
},
|
|
"responses": {
|
|
"Ok": {
|
|
"description": "Standard AstrBot success response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SuccessEnvelope"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Error": {
|
|
"description": "Standard AstrBot error response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorEnvelope"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Text": {
|
|
"description": "Text response",
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SuccessEnvelope"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Html": {
|
|
"description": "HTML response",
|
|
"content": {
|
|
"text/html": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"AttachmentId": {
|
|
"name": "attachment_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"BotId": {
|
|
"name": "bot_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"ChunkId": {
|
|
"name": "chunk_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"CommandId": {
|
|
"name": "command_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "URL-encoded command handler full name.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"ConfigId": {
|
|
"name": "config_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"ConversationId": {
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"DocumentId": {
|
|
"name": "document_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"FilePath": {
|
|
"name": "file_path",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "URL-encoded relative file path.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"Filename": {
|
|
"name": "filename",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"FolderId": {
|
|
"name": "folder_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"GroupId": {
|
|
"name": "group_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"KbId": {
|
|
"name": "kb_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"KeyId": {
|
|
"name": "key_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"Name": {
|
|
"name": "name",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"Page": {
|
|
"name": "page",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1
|
|
}
|
|
},
|
|
"PageSize": {
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 200,
|
|
"default": 20
|
|
}
|
|
},
|
|
"PersonaId": {
|
|
"name": "persona_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"PluginId": {
|
|
"name": "plugin_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"ProviderId": {
|
|
"name": "provider_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"SessionId": {
|
|
"name": "session_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"ServerName": {
|
|
"name": "server_name",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"SkillName": {
|
|
"name": "skill_name",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"SourceId": {
|
|
"name": "source_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"TaskId": {
|
|
"name": "task_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"ToolId": {
|
|
"name": "tool_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"Umo": {
|
|
"name": "umo",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "URL-encoded unified message origin.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"WebhookUuid": {
|
|
"name": "webhook_uuid",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"schemas": {
|
|
"SuccessEnvelope": {
|
|
"type": "object",
|
|
"required": [
|
|
"status",
|
|
"data"
|
|
],
|
|
"properties": {
|
|
"status": {
|
|
"type": "string",
|
|
"const": "ok"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"data": {}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ErrorEnvelope": {
|
|
"type": "object",
|
|
"required": [
|
|
"status",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"status": {
|
|
"type": "string",
|
|
"const": "error"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"data": {}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"DynamicConfig": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
},
|
|
"JsonSchema": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
},
|
|
"ProviderCapability": {
|
|
"type": "string",
|
|
"enum": [
|
|
"chat",
|
|
"agent",
|
|
"stt",
|
|
"tts",
|
|
"embedding",
|
|
"rerank"
|
|
]
|
|
},
|
|
"LoginRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"username",
|
|
"password"
|
|
],
|
|
"properties": {
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"code": {
|
|
"type": "string",
|
|
"description": "TOTP code or recovery code when two-factor authentication is required."
|
|
},
|
|
"trust_device_flag": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SetupAuthRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"username",
|
|
"password",
|
|
"confirm_password"
|
|
],
|
|
"properties": {
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"confirm_password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateAccountRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"password"
|
|
],
|
|
"properties": {
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"new_password": {
|
|
"type": "string"
|
|
},
|
|
"confirm_password": {
|
|
"type": "string"
|
|
},
|
|
"new_username": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"TotpSetupRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"secret": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreateApiKeyRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"scopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"bot",
|
|
"provider",
|
|
"persona",
|
|
"im",
|
|
"config",
|
|
"chat",
|
|
"plugin",
|
|
"mcp",
|
|
"skill"
|
|
]
|
|
},
|
|
"example": [
|
|
"bot",
|
|
"provider",
|
|
"persona",
|
|
"im",
|
|
"config",
|
|
"chat",
|
|
"plugin",
|
|
"mcp",
|
|
"skill"
|
|
]
|
|
},
|
|
"expires_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"expires_in_days": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CreateConfigProfileRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"RenameRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"NameRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConfigRoutesReplaceRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"routing"
|
|
],
|
|
"properties": {
|
|
"routing": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConfigRouteUpsertRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"config_id"
|
|
],
|
|
"properties": {
|
|
"config_id": {
|
|
"type": "string",
|
|
"description": "Use \"default\" to remove a custom route and fall back."
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BotConfigRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"config"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Platform adapter type, such as aiocqhttp, telegram, lark."
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BotRegistrationRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"action"
|
|
],
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"start",
|
|
"poll"
|
|
]
|
|
},
|
|
"platform_config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
},
|
|
"registration_code": {
|
|
"type": "string"
|
|
},
|
|
"device_code": {
|
|
"type": "string"
|
|
},
|
|
"qrcode": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"EnabledPatch": {
|
|
"type": "object",
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ToolPermissionPatch": {
|
|
"type": "object",
|
|
"required": [
|
|
"permission"
|
|
],
|
|
"properties": {
|
|
"permission": {
|
|
"type": "string",
|
|
"enum": [
|
|
"admin",
|
|
"member"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ProviderSourceConfigRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"config"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ProviderConfigRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"config"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"provider_source_id": {
|
|
"type": "string"
|
|
},
|
|
"capability": {
|
|
"$ref": "#/components/schemas/ProviderCapability"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"config": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChatRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"session_id": {
|
|
"type": "string"
|
|
},
|
|
"conversation_id": {
|
|
"type": "string",
|
|
"description": "Deprecated alias for session_id."
|
|
},
|
|
"message": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MessagePart"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"config_id": {
|
|
"type": "string"
|
|
},
|
|
"config_name": {
|
|
"type": "string"
|
|
},
|
|
"selected_provider": {
|
|
"type": "string"
|
|
},
|
|
"selected_model": {
|
|
"type": "string"
|
|
},
|
|
"enable_streaming": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"_skip_user_history": {
|
|
"type": "boolean",
|
|
"description": "Internal WebUI flag for edit/regenerate flows."
|
|
},
|
|
"_llm_checkpoint_id": {
|
|
"type": "string",
|
|
"description": "Internal WebUI checkpoint override."
|
|
},
|
|
"_platform_history_id": {
|
|
"type": "string",
|
|
"description": "Internal WebUI platform history override."
|
|
},
|
|
"_thread_selected_text": {
|
|
"type": "string",
|
|
"description": "Internal WebUI side-thread context."
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChatSessionBatchDeleteRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"session_ids"
|
|
],
|
|
"properties": {
|
|
"session_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChatSessionPatchRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"display_name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChatMessagePatchRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"content"
|
|
],
|
|
"properties": {
|
|
"content": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChatMessageRegenerateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"selected_provider": {
|
|
"type": "string"
|
|
},
|
|
"selected_model": {
|
|
"type": "string"
|
|
},
|
|
"enable_streaming": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChatThreadCreateRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"session_id",
|
|
"parent_message_id",
|
|
"selected_text"
|
|
],
|
|
"properties": {
|
|
"session_id": {
|
|
"type": "string"
|
|
},
|
|
"parent_message_id": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"selected_text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChatThreadMessageRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"message": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MessagePart"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"selected_provider": {
|
|
"type": "string"
|
|
},
|
|
"selected_model": {
|
|
"type": "string"
|
|
},
|
|
"enable_streaming": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ChatProjectRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"emoji": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MessagePart": {
|
|
"type": "object",
|
|
"required": [
|
|
"type"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"text",
|
|
"plain",
|
|
"image",
|
|
"file",
|
|
"audio",
|
|
"record",
|
|
"video",
|
|
"reply"
|
|
]
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
},
|
|
"attachment_id": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"filename": {
|
|
"type": "string"
|
|
},
|
|
"mime_type": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"ImMessageRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"umo",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"umo": {
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MessagePart"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"FileUploadRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
},
|
|
"PluginUpdateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"reinstall": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PluginBatchUpdateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"plugin_id": {
|
|
"type": "string",
|
|
"description": "When set, update this single plugin instead of a batch."
|
|
},
|
|
"plugin_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"reinstall": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"update_all": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"PluginVersionSupportRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"astrbot_version": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PluginGithubInstallRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"repository"
|
|
],
|
|
"properties": {
|
|
"repository": {
|
|
"type": "string",
|
|
"description": "GitHub URL or owner/repository slug."
|
|
},
|
|
"ref": {
|
|
"type": "string"
|
|
},
|
|
"download_url": {
|
|
"type": "string",
|
|
"description": "Optional downloadable ZIP URL to use instead of GitHub archive resolution."
|
|
},
|
|
"proxy": {
|
|
"type": "string"
|
|
},
|
|
"ignore_version_check": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PluginUrlInstallRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"url"
|
|
],
|
|
"properties": {
|
|
"url": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"download_url": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "Optional downloadable ZIP URL when url is the plugin source page or repository."
|
|
},
|
|
"proxy": {
|
|
"type": "string"
|
|
},
|
|
"ignore_version_check": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PluginUploadInstallRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
},
|
|
"PluginConfigFileDeleteRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"path"
|
|
],
|
|
"properties": {
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PluginSourceRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"url"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CommandPatchRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"alias": {
|
|
"type": "string"
|
|
},
|
|
"aliases": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"permission_group": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpServerConfig": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"transport": {
|
|
"type": "string",
|
|
"enum": [
|
|
"stdio",
|
|
"sse",
|
|
"streamable_http"
|
|
]
|
|
},
|
|
"command": {
|
|
"type": "string"
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"headers": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"timeout": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"ModelScopeSyncRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"access_token": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SkillUploadRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
},
|
|
"overwrite": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"SkillPatchRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"display_name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"NeoCandidateActionRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"candidate_id"
|
|
],
|
|
"properties": {
|
|
"candidate_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"NeoReleaseActionRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"release_id"
|
|
],
|
|
"properties": {
|
|
"release_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"KnowledgeBaseRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"embedding_provider_id": {
|
|
"type": "string"
|
|
},
|
|
"rerank_provider_id": {
|
|
"type": "string"
|
|
},
|
|
"chunking": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
},
|
|
"metadata": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"KnowledgeDocumentUploadRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
},
|
|
"parser": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"KnowledgeDocumentImportRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"paths"
|
|
],
|
|
"properties": {
|
|
"paths": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"parser": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"KnowledgeDocumentUrlImportRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"url"
|
|
],
|
|
"properties": {
|
|
"url": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"parser": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"KnowledgeRetrieveRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"query"
|
|
],
|
|
"properties": {
|
|
"query": {
|
|
"type": "string"
|
|
},
|
|
"top_k": {
|
|
"type": "integer",
|
|
"default": 5
|
|
},
|
|
"score_threshold": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PersonaRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"persona_id",
|
|
"system_prompt"
|
|
],
|
|
"properties": {
|
|
"persona_id": {
|
|
"type": "string"
|
|
},
|
|
"system_prompt": {
|
|
"type": "string"
|
|
},
|
|
"begin_dialogs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"folder_id": {
|
|
"type": "string"
|
|
},
|
|
"tools": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"skills": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"custom_error_message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"PersonaFolderRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"parent_id": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"PersonaMoveRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"persona_id"
|
|
],
|
|
"properties": {
|
|
"persona_id": {
|
|
"type": "string"
|
|
},
|
|
"folder_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"ReorderRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"items"
|
|
],
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"type",
|
|
"sort_order"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"persona",
|
|
"folder"
|
|
]
|
|
},
|
|
"sort_order": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"SessionRuleRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"umo",
|
|
"rule_key"
|
|
],
|
|
"properties": {
|
|
"umo": {
|
|
"type": "string"
|
|
},
|
|
"rule_key": {
|
|
"type": "string"
|
|
},
|
|
"rule_value": {
|
|
"$ref": "#/components/schemas/DynamicConfig"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"UmoListRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"umo": {
|
|
"type": "string"
|
|
},
|
|
"umos": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"all",
|
|
"group",
|
|
"private",
|
|
"custom_group"
|
|
]
|
|
},
|
|
"group_id": {
|
|
"type": "string"
|
|
},
|
|
"rule_key": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BatchSessionProviderRequest": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UmoListRequest"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"provider_id",
|
|
"provider_type"
|
|
],
|
|
"properties": {
|
|
"provider_id": {
|
|
"type": "string"
|
|
},
|
|
"provider_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"chat_completion",
|
|
"speech_to_text",
|
|
"text_to_speech"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"BatchSessionServiceRequest": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UmoListRequest"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"session_enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"llm_enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"tts_enabled": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"SessionGroupRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"umos": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"add_umos": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"remove_umos": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConversationPatchRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"persona_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConversationMessagesReplaceRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user_id": {
|
|
"type": "string"
|
|
},
|
|
"messages": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"history": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConversationRef": {
|
|
"type": "object",
|
|
"required": [
|
|
"user_id",
|
|
"cid"
|
|
],
|
|
"properties": {
|
|
"user_id": {
|
|
"type": "string"
|
|
},
|
|
"cid": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConversationBatchDeleteRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"conversations"
|
|
],
|
|
"properties": {
|
|
"conversations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConversationRef"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"ConversationExportRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"conversations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConversationRef"
|
|
}
|
|
},
|
|
"conversation_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": [
|
|
"json",
|
|
"markdown"
|
|
],
|
|
"default": "json"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"CronJobRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"cron_expression": {
|
|
"type": "string"
|
|
},
|
|
"timezone": {
|
|
"type": "string"
|
|
},
|
|
"session": {
|
|
"type": "string"
|
|
},
|
|
"note": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"persona_id": {
|
|
"type": "string"
|
|
},
|
|
"provider_id": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"run_once": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"run_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"payload": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"CronJobPatchRequest": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CronJobRequest"
|
|
}
|
|
]
|
|
},
|
|
"BackupExportRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"include": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"exclude": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BackupUploadRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
},
|
|
"BackupUploadInitRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"filename",
|
|
"total_size"
|
|
],
|
|
"properties": {
|
|
"filename": {
|
|
"type": "string"
|
|
},
|
|
"total_size": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BackupUploadSessionRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"upload_id"
|
|
],
|
|
"properties": {
|
|
"upload_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BackupChunkUploadRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"upload_id",
|
|
"chunk_index",
|
|
"chunk"
|
|
],
|
|
"properties": {
|
|
"upload_id": {
|
|
"type": "string"
|
|
},
|
|
"chunk_index": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"chunk": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
},
|
|
"BackupRenameRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"new_name"
|
|
],
|
|
"properties": {
|
|
"new_name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"BackupImportRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"confirmed": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"UpdateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"proxy": {
|
|
"type": "string"
|
|
},
|
|
"reboot": {
|
|
"type": "boolean"
|
|
},
|
|
"progress_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"PipInstallRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"package"
|
|
],
|
|
"properties": {
|
|
"package": {
|
|
"type": "string"
|
|
},
|
|
"mirror": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"MigrationRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"platform_id_map": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"GhproxyTestRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"proxy_url"
|
|
],
|
|
"properties": {
|
|
"proxy_url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"TraceSettingsRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"level": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"T2iTemplateRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"content"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"content": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"T2iTemplateContentRequest": {
|
|
"type": "object",
|
|
"required": [
|
|
"content"
|
|
],
|
|
"properties": {
|
|
"content": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
}
|