Files
ss-tools/docs/openapi/litellm/chunks_paths/paths__v1_tool.json
busya 30ba70933d feat(llm): mask API keys in UI responses and prevent masked-key leakage in fetch/test/save payloads
- Add mask_api_key() and is_masked_or_placeholder() to llm_provider service
- Return masked keys in all provider CRUD endpoints
- Reject masked/placeholder keys in fetch_models and test_provider_config
- Show masked key with Change button in ProviderConfig.svelte edit form
- Exclude masked keys from fetch-models, test, and submit payloads on frontend
- Update semantics-core skill with clarified complexity tier rules
- Switch agent modes from subagent to all
2026-05-15 23:34:09 +03:00

421 lines
10 KiB
JSON

{
"/v1/tool/list": {
"get": {
"tags": [
"tool management"
],
"summary": "List Tools",
"description": "List all auto-discovered tools and their policies.\n\nParameters:\n- input_policy: Optional filter \u2014 one of \"trusted\", \"untrusted\", \"blocked\"",
"operationId": "list_tools_v1_tool_list_get",
"security": [
{
"APIKeyHeader": []
}
],
"parameters": [
{
"name": "input_policy",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"enum": [
"trusted",
"untrusted",
"blocked"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Input Policy"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/v1/tool/policy": {
"post": {
"tags": [
"tool management"
],
"summary": "Update Tool Policy",
"description": "Set the input_policy and/or output_policy for a tool (global), or block for a specific team/key (override).\n\nParameters:\n- tool_name: str - The tool to update\n- input_policy: optional - \"trusted\" | \"untrusted\" | \"blocked\"\n- output_policy: optional - \"trusted\" | \"untrusted\"\n- team_id: optional - if set, create/update override for this team only\n- key_hash: optional - if set, create/update override for this key only",
"operationId": "update_tool_policy_v1_tool_policy_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolPolicyUpdateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolPolicyUpdateResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"security": [
{
"APIKeyHeader": []
}
]
}
},
"/v1/tool/policy/options": {
"get": {
"tags": [
"tool management"
],
"summary": "Get Tool Policy Options",
"description": "Return the available input and output policy options with descriptions.\nStatic data \u2014 no DB call.",
"operationId": "get_tool_policy_options_v1_tool_policy_options_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolPolicyOptionsResponse"
}
}
}
}
},
"security": [
{
"APIKeyHeader": []
}
]
}
},
"/v1/tool/{tool_name}": {
"get": {
"tags": [
"tool management"
],
"summary": "Get Tool",
"description": "Get details for a single tool.",
"operationId": "get_tool_v1_tool__tool_name__get",
"security": [
{
"APIKeyHeader": []
}
],
"parameters": [
{
"name": "tool_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Tool Name"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LiteLLM_ToolTableRow"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/v1/tool/{tool_name}/detail": {
"get": {
"tags": [
"tool management"
],
"summary": "Get Tool Detail",
"description": "Get a single tool with its policy overrides (for UI detail view).",
"operationId": "get_tool_detail_v1_tool__tool_name__detail_get",
"security": [
{
"APIKeyHeader": []
}
],
"parameters": [
{
"name": "tool_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Tool Name"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolDetailResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/v1/tool/{tool_name}/logs": {
"get": {
"tags": [
"tool management"
],
"summary": "Get Tool Usage Logs",
"description": "Return paginated spend logs for requests that used this tool (from SpendLogToolIndex).",
"operationId": "get_tool_usage_logs_v1_tool__tool_name__logs_get",
"security": [
{
"APIKeyHeader": []
}
],
"parameters": [
{
"name": "tool_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Tool Name"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Page"
}
},
{
"name": "page_size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"default": 50,
"title": "Page Size"
}
},
{
"name": "start_date",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD",
"title": "Start Date"
},
"description": "YYYY-MM-DD"
},
{
"name": "end_date",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD",
"title": "End Date"
},
"description": "YYYY-MM-DD"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolUsageLogsResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/v1/tool/{tool_name}/overrides": {
"delete": {
"tags": [
"tool management"
],
"summary": "Delete Tool Policy Override",
"description": "Remove a policy override for a tool. Specify the override by team_id or key_hash\n(exactly one required).",
"operationId": "delete_tool_policy_override_v1_tool__tool_name__overrides_delete",
"security": [
{
"APIKeyHeader": []
}
],
"parameters": [
{
"name": "tool_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Tool Name"
}
},
{
"name": "team_id",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Team ID of the override to remove",
"title": "Team Id"
},
"description": "Team ID of the override to remove"
},
{
"name": "key_hash",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Key hash of the override to remove",
"title": "Key Hash"
},
"description": "Key hash of the override to remove"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
}
}