{ "openapi": "3.1.0", "info": { "title": "X-Financial", "description": "X-Financial 后端 OpenAPI 文档。\n\n## 基本信息\n\n- 所有业务接口都挂在 `/api/v1` 前缀下。\n- 交互式 Swagger 页面默认位于 `/docs`,ReDoc 页面位于 `/redoc`。\n- 仓库内导出的静态规范文件位于 `document/development/backend_api/openapi.json`。\n\n## 鉴权约定\n\n- 知识库接口依赖以下请求头模拟当前用户:\n - `X-Auth-Username`\n - `X-Auth-Name`\n - `X-Auth-Role-Codes`\n - `X-Auth-Is-Admin`\n- Agent 资产写接口支持以下审计头:\n - `X-Actor`\n - `X-Request-Id`\n- Hermes 运行时模型配置接口需要:\n - `Authorization: Bearer `\n\n## 当前模块范围\n\n- 系统初始化与健康检查\n- 登录认证\n- 员工目录\n- 报销单\n- 知识库与 ONLYOFFICE\n- 系统设置与模型连通性\n- Agent 资产、运行日志、审计日志", "version": "0.1.0" }, "paths": { "/api/v1/health": { "get": { "tags": [ "health" ], "summary": "服务健康检查", "description": "检查服务基础状态,并在系统初始化完成后验证数据库连通性。", "operationId": "health_check_api_v1_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckRead" } } } } } } }, "/api/v1/bootstrap": { "get": { "tags": [ "bootstrap" ], "summary": "读取初始化状态", "description": "返回当前系统是否已完成初始化,以及公司、数据库和缓存配置快照。", "operationId": "get_bootstrap_state_api_v1_bootstrap_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BootstrapStateRead" } } } } } }, "post": { "tags": [ "bootstrap" ], "summary": "写入初始化配置", "description": "保存系统初始化配置,并刷新运行时数据库连接。", "operationId": "initialize_bootstrap_api_v1_bootstrap_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BootstrapSetupPayload" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BootstrapStateRead" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/auth/login": { "post": { "tags": [ "auth" ], "summary": "用户登录", "description": "支持管理员账号和员工账号登录,成功后返回前端会话所需的用户信息。", "operationId": "login_api_v1_auth_login_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginResponse" } } } }, "401": { "description": "账号或密码错误。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/agent-assets": { "get": { "tags": [ "agent-assets" ], "summary": "查询 Agent 资产列表", "description": "按资产类型、状态、领域和关键字筛选规则、技能、MCP 与任务资产。", "operationId": "list_agent_assets_api_v1_agent_assets_get", "parameters": [ { "name": "asset_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "资产类型:`rule`、`skill`、`mcp`、`task`。", "title": "Asset Type" }, "description": "资产类型:`rule`、`skill`、`mcp`、`task`。" }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "资产状态筛选。", "title": "Status" }, "description": "资产状态筛选。" }, { "name": "domain", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "业务领域筛选,例如 `expense`、`ar`、`ap`。", "title": "Domain" }, "description": "业务领域筛选,例如 `expense`、`ar`、`ap`。" }, { "name": "keyword", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "资产编码、名称关键字模糊查询。", "title": "Keyword" }, "description": "资产编码、名称关键字模糊查询。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgentAssetListItem" }, "title": "Response List Agent Assets Api V1 Agent Assets Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "agent-assets" ], "summary": "创建 Agent 资产", "description": "创建新的规则、技能、MCP 或任务资产,并自动记录审计日志。", "operationId": "create_agent_asset_api_v1_agent_assets_post", "parameters": [ { "name": "x-actor", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。", "title": "X-Actor" }, "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。" }, { "name": "x-request-id", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "外部请求 ID,用于串联审计日志和上游调用链。", "title": "X-Request-Id" }, "description": "外部请求 ID,用于串联审计日志和上游调用链。" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetRead" } } } }, "400": { "description": "资产编码冲突或请求字段不合法。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/agent-assets/{asset_id}": { "get": { "tags": [ "agent-assets" ], "summary": "读取 Agent 资产详情", "description": "返回资产当前版本正文、最近版本列表和最近一次审核信息。", "operationId": "get_agent_asset_api_v1_agent_assets__asset_id__get", "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetRead" } } } }, "404": { "description": "资产不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "agent-assets" ], "summary": "更新 Agent 资产", "description": "更新资产基础信息、当前版本、状态和配置,并写入审计日志。", "operationId": "update_agent_asset_api_v1_agent_assets__asset_id__patch", "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } }, { "name": "x-actor", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。", "title": "X-Actor" }, "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。" }, { "name": "x-request-id", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "外部请求 ID,用于串联审计日志和上游调用链。", "title": "X-Request-Id" }, "description": "外部请求 ID,用于串联审计日志和上游调用链。" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetRead" } } } }, "400": { "description": "状态更新非法或请求字段不合法。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "资产或指定版本不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/agent-assets/{asset_id}/versions": { "get": { "tags": [ "agent-assets" ], "summary": "查询资产版本列表", "description": "返回指定资产的版本历史,默认按最近版本优先排序。", "operationId": "list_agent_asset_versions_api_v1_agent_assets__asset_id__versions_get", "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "返回版本数量上限。", "default": 20, "title": "Limit" }, "description": "返回版本数量上限。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgentAssetVersionRead" }, "title": "Response List Agent Asset Versions Api V1 Agent Assets Asset Id Versions Get" } } } }, "404": { "description": "资产不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "agent-assets" ], "summary": "创建资产版本", "description": "为指定资产创建新版本;规则使用 Markdown,其他资产使用 JSON 快照。", "operationId": "create_agent_asset_version_api_v1_agent_assets__asset_id__versions_post", "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } }, { "name": "x-actor", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。", "title": "X-Actor" }, "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。" }, { "name": "x-request-id", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "外部请求 ID,用于串联审计日志和上游调用链。", "title": "X-Request-Id" }, "description": "外部请求 ID,用于串联审计日志和上游调用链。" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetVersionCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetVersionRead" } } } }, "400": { "description": "版本号重复或内容类型不匹配。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "资产不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/agent-assets/{asset_id}/reviews": { "post": { "tags": [ "agent-assets" ], "summary": "创建资产审核记录", "description": "为指定资产版本写入审核结果,并联动更新资产状态。", "operationId": "create_agent_asset_review_api_v1_agent_assets__asset_id__reviews_post", "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } }, { "name": "x-actor", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。", "title": "X-Actor" }, "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。" }, { "name": "x-request-id", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "外部请求 ID,用于串联审计日志和上游调用链。", "title": "X-Request-Id" }, "description": "外部请求 ID,用于串联审计日志和上游调用链。" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetReviewCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetReviewRead" } } } }, "400": { "description": "审核参数不合法。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "资产或版本不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/agent-assets/{asset_id}/activate": { "post": { "tags": [ "agent-assets" ], "summary": "激活资产当前版本", "description": "将资产当前版本切换为上线状态;规则资产必须已有 `approved` 审核记录。", "operationId": "activate_agent_asset_api_v1_agent_assets__asset_id__activate_post", "parameters": [ { "name": "asset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Asset Id" } }, { "name": "x-actor", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。", "title": "X-Actor" }, "description": "审计操作者。未传时回退到请求体中的 owner / reviewer 或 `system`。" }, { "name": "x-request-id", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "外部请求 ID,用于串联审计日志和上游调用链。", "title": "X-Request-Id" }, "description": "外部请求 ID,用于串联审计日志和上游调用链。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssetRead" } } } }, "400": { "description": "审核未通过或当前版本未设置。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "资产不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/agent-runs": { "get": { "tags": [ "agent-runs" ], "summary": "查询 Agent 运行日志", "description": "按 Agent、运行状态、来源和数量限制筛选运行日志。", "operationId": "list_agent_runs_api_v1_agent_runs_get", "parameters": [ { "name": "agent", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Agent 名称筛选。", "title": "Agent" }, "description": "Agent 名称筛选。" }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "运行状态筛选。", "title": "Status" }, "description": "运行状态筛选。" }, { "name": "source", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "运行来源筛选。", "title": "Source" }, "description": "运行来源筛选。" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "返回记录上限。", "default": 20, "title": "Limit" }, "description": "返回记录上限。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgentRunRead" }, "title": "Response List Agent Runs Api V1 Agent Runs Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/agent-runs/{run_id}": { "get": { "tags": [ "agent-runs" ], "summary": "读取单次 Agent 运行详情", "description": "按 `run_id` 返回单次执行的路由结果、工具调用和语义解析信息。", "operationId": "get_agent_run_api_v1_agent_runs__run_id__get", "parameters": [ { "name": "run_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Run Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentRunRead" } } } }, "404": { "description": "运行记录不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/audit-logs": { "get": { "tags": [ "audit-logs" ], "summary": "查询审计日志", "description": "按资源类型、资源 ID、动作类型和数量限制筛选审计日志。", "operationId": "list_audit_logs_api_v1_audit_logs_get", "parameters": [ { "name": "resource_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "资源类型筛选,例如 `rule`、`task`。", "title": "Resource Type" }, "description": "资源类型筛选,例如 `rule`、`task`。" }, { "name": "resource_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "资源主键或业务编码筛选。", "title": "Resource Id" }, "description": "资源主键或业务编码筛选。" }, { "name": "action", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "动作名称筛选。", "title": "Action" }, "description": "动作名称筛选。" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "description": "返回日志上限。", "default": 50, "title": "Limit" }, "description": "返回日志上限。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AuditLogRead" }, "title": "Response List Audit Logs Api V1 Audit Logs Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/knowledge/library": { "get": { "tags": [ "knowledge" ], "summary": "查询知识库目录", "description": "返回固定知识库目录与当前已上传文档列表。", "operationId": "get_knowledge_library_api_v1_knowledge_library_get", "parameters": [ { "name": "x-auth-username", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。", "title": "X-Auth-Username" }, "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。" }, { "name": "x-auth-name", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录人展示姓名。未传时默认回退到用户名。", "title": "X-Auth-Name" }, "description": "当前登录人展示姓名。未传时默认回退到用户名。" }, { "name": "x-auth-role-codes", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。", "title": "X-Auth-Role-Codes" }, "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。" }, { "name": "x-auth-is-admin", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "是否管理员,支持 `true/false/1/0`。", "title": "X-Auth-Is-Admin" }, "description": "是否管理员,支持 `true/false/1/0`。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeLibraryRead" } } } }, "401": { "description": "未提供知识库访问用户头。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/knowledge/documents/{document_id}": { "get": { "tags": [ "knowledge" ], "summary": "读取知识库文档详情", "description": "返回单个知识库文档的元信息、预览类型和预览内容。", "operationId": "get_knowledge_document_api_v1_knowledge_documents__document_id__get", "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Document Id" } }, { "name": "x-auth-username", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。", "title": "X-Auth-Username" }, "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。" }, { "name": "x-auth-name", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录人展示姓名。未传时默认回退到用户名。", "title": "X-Auth-Name" }, "description": "当前登录人展示姓名。未传时默认回退到用户名。" }, { "name": "x-auth-role-codes", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。", "title": "X-Auth-Role-Codes" }, "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。" }, { "name": "x-auth-is-admin", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "是否管理员,支持 `true/false/1/0`。", "title": "X-Auth-Is-Admin" }, "description": "是否管理员,支持 `true/false/1/0`。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeDocumentDetailRead" } } } }, "401": { "description": "未提供知识库访问用户头。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "知识库文件不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "knowledge" ], "summary": "删除知识库文档", "description": "删除知识库文档及其索引记录。", "operationId": "delete_knowledge_document_api_v1_knowledge_documents__document_id__delete", "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Document Id" } }, { "name": "x-auth-username", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。", "title": "X-Auth-Username" }, "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。" }, { "name": "x-auth-name", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录人展示姓名。未传时默认回退到用户名。", "title": "X-Auth-Name" }, "description": "当前登录人展示姓名。未传时默认回退到用户名。" }, { "name": "x-auth-role-codes", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。", "title": "X-Auth-Role-Codes" }, "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。" }, { "name": "x-auth-is-admin", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "是否管理员,支持 `true/false/1/0`。", "title": "X-Auth-Is-Admin" }, "description": "是否管理员,支持 `true/false/1/0`。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeActionResponse" } } } }, "401": { "description": "未提供知识库访问用户头。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "只有管理员可以删除知识库文件。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "知识库文件不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/knowledge/documents/{document_id}/onlyoffice-config": { "get": { "tags": [ "knowledge" ], "summary": "读取 ONLYOFFICE 预览配置", "description": "为支持的 Office 文档生成 ONLYOFFICE 前端配置和临时访问令牌。", "operationId": "get_knowledge_document_onlyoffice_config_api_v1_knowledge_documents__document_id__onlyoffice_config_get", "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Document Id" } }, { "name": "x-auth-username", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。", "title": "X-Auth-Username" }, "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。" }, { "name": "x-auth-name", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录人展示姓名。未传时默认回退到用户名。", "title": "X-Auth-Name" }, "description": "当前登录人展示姓名。未传时默认回退到用户名。" }, { "name": "x-auth-role-codes", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。", "title": "X-Auth-Role-Codes" }, "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。" }, { "name": "x-auth-is-admin", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "是否管理员,支持 `true/false/1/0`。", "title": "X-Auth-Is-Admin" }, "description": "是否管理员,支持 `true/false/1/0`。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeOnlyOfficeConfigRead" } } } }, "400": { "description": "ONLYOFFICE 未启用、配置不完整或文件格式不支持。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "未提供知识库访问用户头。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "知识库文件不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/knowledge/documents": { "post": { "tags": [ "knowledge" ], "summary": "上传知识库文档", "description": "上传原始文件二进制内容到指定知识库目录。已有同名文件会覆盖并提升版本号。", "operationId": "upload_knowledge_document_api_v1_knowledge_documents_post", "parameters": [ { "name": "folder", "in": "query", "required": true, "schema": { "type": "string", "minLength": 1, "description": "目标知识库目录名称。", "title": "Folder" }, "description": "目标知识库目录名称。" }, { "name": "filename", "in": "query", "required": true, "schema": { "type": "string", "minLength": 1, "description": "原始文件名。", "title": "Filename" }, "description": "原始文件名。" }, { "name": "x-auth-username", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。", "title": "X-Auth-Username" }, "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。" }, { "name": "x-auth-name", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录人展示姓名。未传时默认回退到用户名。", "title": "X-Auth-Name" }, "description": "当前登录人展示姓名。未传时默认回退到用户名。" }, { "name": "x-auth-role-codes", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。", "title": "X-Auth-Role-Codes" }, "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。" }, { "name": "x-auth-is-admin", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "是否管理员,支持 `true/false/1/0`。", "title": "X-Auth-Is-Admin" }, "description": "是否管理员,支持 `true/false/1/0`。" } ], "requestBody": { "required": true, "content": { "application/octet-stream": { "schema": { "type": "string", "contentMediaType": "application/octet-stream", "description": "待上传的文件二进制内容。", "title": "Content" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeDocumentDetailRead" } } } }, "400": { "description": "目录、文件名或文件内容不合法。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "未提供知识库访问用户头。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "只有管理员可以上传知识库文件。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/knowledge/documents/{document_id}/content": { "get": { "tags": [ "knowledge" ], "summary": "下载或预览知识库原文", "description": "根据文档 ID 返回原始文件内容,可用于浏览器内联预览或下载。", "operationId": "get_knowledge_document_content_api_v1_knowledge_documents__document_id__content_get", "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Document Id" } }, { "name": "disposition", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^(inline|attachment)$", "description": "内容展示方式,支持 `inline` 或 `attachment`。", "default": "inline", "title": "Disposition" }, "description": "内容展示方式,支持 `inline` 或 `attachment`。" }, { "name": "x-auth-username", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。", "title": "X-Auth-Username" }, "description": "当前登录用户名。知识库接口至少需要提供用户名或姓名。" }, { "name": "x-auth-name", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "当前登录人展示姓名。未传时默认回退到用户名。", "title": "X-Auth-Name" }, "description": "当前登录人展示姓名。未传时默认回退到用户名。" }, { "name": "x-auth-role-codes", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。", "title": "X-Auth-Role-Codes" }, "description": "角色编码列表,多个角色使用英文逗号分隔,例如 `manager,finance`。" }, { "name": "x-auth-is-admin", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "是否管理员,支持 `true/false/1/0`。", "title": "X-Auth-Is-Admin" }, "description": "是否管理员,支持 `true/false/1/0`。" } ], "responses": { "200": { "description": "文件内容。", "content": { "application/octet-stream": {} } }, "401": { "description": "未提供知识库访问用户头。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "知识库文件不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/knowledge/documents/{document_id}/onlyoffice/content": { "get": { "tags": [ "knowledge" ], "summary": "读取 ONLYOFFICE 文档源文件", "description": "供 ONLYOFFICE 服务通过短时访问令牌拉取原始文件内容。", "operationId": "get_knowledge_document_onlyoffice_content_api_v1_knowledge_documents__document_id__onlyoffice_content_get", "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Document Id" } }, { "name": "access_token", "in": "query", "required": true, "schema": { "type": "string", "minLength": 1, "description": "ONLYOFFICE 临时访问令牌。", "title": "Access Token" }, "description": "ONLYOFFICE 临时访问令牌。" } ], "responses": { "200": { "description": "文件内容。", "content": { "application/octet-stream": {} } }, "401": { "description": "ONLYOFFICE 访问令牌无效。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "知识库文件不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/knowledge/documents/{document_id}/onlyoffice/callback": { "post": { "tags": [ "knowledge" ], "summary": "接收 ONLYOFFICE 回调", "description": "接收 ONLYOFFICE 文档回写回调,在状态满足要求时更新知识库文件内容。", "operationId": "handle_knowledge_document_onlyoffice_callback_api_v1_knowledge_documents__document_id__onlyoffice_callback_post", "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Document Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeOnlyOfficeCallbackWrite" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeOnlyOfficeCallbackRead" } } } }, "400": { "description": "回调载荷不合法。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "知识库文件不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/employees/meta": { "get": { "tags": [ "employees" ], "summary": "读取员工目录元数据", "description": "返回员工总数、状态汇总和可选角色列表,供员工管理页面初始化使用。", "operationId": "get_employee_meta_api_v1_employees_meta_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmployeeMetaRead" } } } } } } }, "/api/v1/employees": { "get": { "tags": [ "employees" ], "summary": "查询员工列表", "description": "按状态和关键字筛选员工目录。", "operationId": "list_employees_api_v1_employees_get", "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "员工状态筛选值。", "title": "Status" }, "description": "员工状态筛选值。" }, { "name": "keyword", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "姓名、工号、邮箱等关键字模糊查询。", "title": "Keyword" }, "description": "姓名、工号、邮箱等关键字模糊查询。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EmployeeRead" }, "title": "Response List Employees Api V1 Employees Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "employees" ], "summary": "创建员工", "description": "创建新的员工目录记录,并初始化基础角色与组织归属。", "operationId": "create_employee_api_v1_employees_post", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmployeeCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmployeeRead" } } } }, "400": { "description": "员工数据校验失败。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/employees/{employee_id}": { "get": { "tags": [ "employees" ], "summary": "读取员工详情", "description": "根据员工主键读取员工完整档案信息。", "operationId": "get_employee_api_v1_employees__employee_id__get", "parameters": [ { "name": "employee_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Employee Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmployeeRead" } } } }, "404": { "description": "员工不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "employees" ], "summary": "更新员工", "description": "更新员工基础信息、角色、密码等可维护字段。", "operationId": "update_employee_api_v1_employees__employee_id__patch", "parameters": [ { "name": "employee_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Employee Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmployeeUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmployeeRead" } } } }, "400": { "description": "请求字段不合法。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "员工不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/employees/{employee_id}/disable": { "post": { "tags": [ "employees" ], "summary": "停用员工", "description": "将员工状态切换为停用,阻止其继续登录系统。", "operationId": "disable_employee_api_v1_employees__employee_id__disable_post", "parameters": [ { "name": "employee_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Employee Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmployeeRead" } } } }, "404": { "description": "员工不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/reimbursements": { "get": { "tags": [ "reimbursements" ], "summary": "查询报销申请列表", "description": "返回当前系统中的报销申请列表。", "operationId": "list_reimbursements_api_v1_reimbursements_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ReimbursementRead" }, "type": "array", "title": "Response List Reimbursements Api V1 Reimbursements Get" } } } } } }, "post": { "tags": [ "reimbursements" ], "summary": "创建报销申请", "description": "创建一条新的报销申请记录,初始状态为 `draft`。", "operationId": "create_reimbursement_api_v1_reimbursements_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReimbursementCreate" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReimbursementRead" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/reimbursements/{request_id}": { "get": { "tags": [ "reimbursements" ], "summary": "读取报销申请详情", "description": "根据报销申请主键读取单据详情。", "operationId": "get_reimbursement_api_v1_reimbursements__request_id__get", "parameters": [ { "name": "request_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Request Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReimbursementRead" } } } }, "404": { "description": "报销申请不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/settings": { "get": { "tags": [ "settings" ], "summary": "读取系统设置", "description": "返回公司、管理员、模型、日志、邮件和 ONLYOFFICE 的设置快照。", "operationId": "get_settings_api_v1_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingsRead" } } } } } }, "put": { "tags": [ "settings" ], "summary": "保存系统设置", "description": "保存系统设置,并同步运行时模型配置与 Hermes 使用的模型路由。", "operationId": "update_settings_api_v1_settings_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingsWrite" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingsRead" } } } }, "400": { "description": "设置字段校验失败。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/settings/model-connectivity": { "post": { "tags": [ "settings" ], "summary": "测试模型连通性", "description": "验证指定模型服务端点是否可用;当未传 API Key 且提供 slot 时会尝试复用已保存密钥。", "operationId": "test_model_connectivity_api_v1_settings_model_connectivity_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelConnectivityTestRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelConnectivityTestRead" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/settings/runtime-models/{slot}": { "get": { "tags": [ "settings" ], "summary": "读取 Hermes 运行时模型配置", "description": "供 Hermes 进程读取主模型、备用模型、VLM 或 Embedding 模型的运行时配置。", "operationId": "get_runtime_model_config_api_v1_settings_runtime_models__slot__get", "parameters": [ { "name": "slot", "in": "path", "required": true, "schema": { "type": "string", "title": "Slot" } }, { "name": "authorization", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Hermes 读取运行时模型配置时使用的 Bearer Token。", "title": "Authorization" }, "description": "Hermes 读取运行时模型配置时使用的 Bearer Token。" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RuntimeModelConfigRead" } } } }, "401": { "description": "Hermes 令牌校验失败。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "指定模型槽位不存在。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "Hermes 集成令牌尚未配置。", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/": { "get": { "tags": [ "root" ], "summary": "服务根检查", "description": "用于快速确认后端服务进程已经启动。", "operationId": "root__get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RootStatusRead" } } } } } } } }, "components": { "schemas": { "AgentAssetContentType": { "type": "string", "enum": [ "markdown", "json" ], "title": "AgentAssetContentType" }, "AgentAssetCreate": { "properties": { "asset_type": { "$ref": "#/components/schemas/AgentAssetType" }, "code": { "type": "string", "maxLength": 100, "minLength": 1, "title": "Code" }, "name": { "type": "string", "maxLength": 200, "minLength": 1, "title": "Name" }, "description": { "type": "string", "title": "Description", "default": "" }, "domain": { "$ref": "#/components/schemas/AgentAssetDomain" }, "scenario_json": { "items": {}, "type": "array", "title": "Scenario Json" }, "owner": { "type": "string", "maxLength": 100, "minLength": 1, "title": "Owner" }, "reviewer": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "title": "Reviewer" }, "status": { "$ref": "#/components/schemas/AgentAssetStatus", "default": "draft" }, "config_json": { "additionalProperties": true, "type": "object", "title": "Config Json" } }, "type": "object", "required": [ "asset_type", "code", "name", "domain", "owner" ], "title": "AgentAssetCreate" }, "AgentAssetDomain": { "type": "string", "enum": [ "expense", "ar", "ap", "knowledge", "system" ], "title": "AgentAssetDomain" }, "AgentAssetListItem": { "properties": { "id": { "type": "string", "title": "Id" }, "asset_type": { "type": "string", "title": "Asset Type" }, "code": { "type": "string", "title": "Code" }, "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "domain": { "type": "string", "title": "Domain" }, "scenario_json": { "items": {}, "type": "array", "title": "Scenario Json" }, "owner": { "type": "string", "title": "Owner" }, "reviewer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reviewer" }, "status": { "type": "string", "title": "Status" }, "current_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Current Version" }, "config_json": { "additionalProperties": true, "type": "object", "title": "Config Json" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "id", "asset_type", "code", "name", "description", "domain", "scenario_json", "owner", "reviewer", "status", "current_version", "config_json", "created_at", "updated_at" ], "title": "AgentAssetListItem" }, "AgentAssetRead": { "properties": { "id": { "type": "string", "title": "Id" }, "asset_type": { "type": "string", "title": "Asset Type" }, "code": { "type": "string", "title": "Code" }, "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "domain": { "type": "string", "title": "Domain" }, "scenario_json": { "items": {}, "type": "array", "title": "Scenario Json" }, "owner": { "type": "string", "title": "Owner" }, "reviewer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reviewer" }, "status": { "type": "string", "title": "Status" }, "current_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Current Version" }, "config_json": { "additionalProperties": true, "type": "object", "title": "Config Json" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "current_version_content": { "anyOf": [ {}, { "type": "null" } ], "title": "Current Version Content" }, "current_version_content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Current Version Content Type" }, "current_version_change_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Current Version Change Note" }, "recent_versions": { "items": { "$ref": "#/components/schemas/AgentAssetVersionRead" }, "type": "array", "title": "Recent Versions" }, "latest_review": { "anyOf": [ { "$ref": "#/components/schemas/AgentAssetReviewRead" }, { "type": "null" } ] } }, "type": "object", "required": [ "id", "asset_type", "code", "name", "description", "domain", "scenario_json", "owner", "reviewer", "status", "current_version", "config_json", "created_at", "updated_at" ], "title": "AgentAssetRead" }, "AgentAssetReviewCreate": { "properties": { "version": { "type": "string", "maxLength": 30, "minLength": 1, "title": "Version" }, "reviewer": { "type": "string", "maxLength": 100, "minLength": 1, "title": "Reviewer" }, "review_status": { "$ref": "#/components/schemas/AgentReviewStatus" }, "review_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Review Note" } }, "type": "object", "required": [ "version", "reviewer", "review_status" ], "title": "AgentAssetReviewCreate" }, "AgentAssetReviewRead": { "properties": { "id": { "type": "string", "title": "Id" }, "asset_id": { "type": "string", "title": "Asset Id" }, "version": { "type": "string", "title": "Version" }, "reviewer": { "type": "string", "title": "Reviewer" }, "review_status": { "type": "string", "title": "Review Status" }, "review_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Review Note" }, "reviewed_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Reviewed At" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "id", "asset_id", "version", "reviewer", "review_status", "review_note", "reviewed_at", "created_at" ], "title": "AgentAssetReviewRead" }, "AgentAssetStatus": { "type": "string", "enum": [ "draft", "review", "active", "disabled" ], "title": "AgentAssetStatus" }, "AgentAssetType": { "type": "string", "enum": [ "rule", "skill", "mcp", "task" ], "title": "AgentAssetType" }, "AgentAssetUpdate": { "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "domain": { "anyOf": [ { "$ref": "#/components/schemas/AgentAssetDomain" }, { "type": "null" } ] }, "scenario_json": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Scenario Json" }, "owner": { "anyOf": [ { "type": "string", "maxLength": 100, "minLength": 1 }, { "type": "null" } ], "title": "Owner" }, "reviewer": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "title": "Reviewer" }, "status": { "anyOf": [ { "$ref": "#/components/schemas/AgentAssetStatus" }, { "type": "null" } ] }, "current_version": { "anyOf": [ { "type": "string", "maxLength": 30 }, { "type": "null" } ], "title": "Current Version" }, "config_json": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config Json" } }, "type": "object", "title": "AgentAssetUpdate" }, "AgentAssetVersionCreate": { "properties": { "version": { "type": "string", "maxLength": 30, "minLength": 1, "title": "Version" }, "content": { "title": "Content" }, "content_type": { "$ref": "#/components/schemas/AgentAssetContentType" }, "change_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Change Note" }, "created_by": { "type": "string", "maxLength": 100, "minLength": 1, "title": "Created By" } }, "type": "object", "required": [ "version", "content", "content_type", "created_by" ], "title": "AgentAssetVersionCreate" }, "AgentAssetVersionRead": { "properties": { "id": { "type": "string", "title": "Id" }, "asset_id": { "type": "string", "title": "Asset Id" }, "version": { "type": "string", "title": "Version" }, "content": { "title": "Content" }, "content_type": { "type": "string", "title": "Content Type" }, "change_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Change Note" }, "created_by": { "type": "string", "title": "Created By" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "is_current": { "type": "boolean", "title": "Is Current", "default": false } }, "type": "object", "required": [ "id", "asset_id", "version", "content", "content_type", "change_note", "created_by", "created_at" ], "title": "AgentAssetVersionRead" }, "AgentReviewStatus": { "type": "string", "enum": [ "pending", "approved", "rejected" ], "title": "AgentReviewStatus" }, "AgentRunRead": { "properties": { "id": { "type": "string", "title": "Id" }, "run_id": { "type": "string", "title": "Run Id" }, "agent": { "type": "string", "title": "Agent" }, "source": { "type": "string", "title": "Source" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "task_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Task Id" }, "ontology_json": { "additionalProperties": true, "type": "object", "title": "Ontology Json" }, "route_json": { "additionalProperties": true, "type": "object", "title": "Route Json" }, "permission_level": { "type": "string", "title": "Permission Level" }, "status": { "type": "string", "title": "Status" }, "result_summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Result Summary" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" }, "started_at": { "type": "string", "format": "date-time", "title": "Started At" }, "finished_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Finished At" }, "tool_calls": { "items": { "$ref": "#/components/schemas/AgentToolCallRead" }, "type": "array", "title": "Tool Calls" }, "semantic_parse": { "anyOf": [ { "$ref": "#/components/schemas/SemanticParseRead" }, { "type": "null" } ] } }, "type": "object", "required": [ "id", "run_id", "agent", "source", "user_id", "task_id", "ontology_json", "route_json", "permission_level", "status", "result_summary", "error_message", "started_at", "finished_at" ], "title": "AgentRunRead" }, "AgentToolCallRead": { "properties": { "id": { "type": "string", "title": "Id" }, "run_id": { "type": "string", "title": "Run Id" }, "tool_type": { "type": "string", "title": "Tool Type" }, "tool_name": { "type": "string", "title": "Tool Name" }, "request_json": { "additionalProperties": true, "type": "object", "title": "Request Json" }, "response_json": { "additionalProperties": true, "type": "object", "title": "Response Json" }, "status": { "type": "string", "title": "Status" }, "duration_ms": { "type": "integer", "title": "Duration Ms" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "id", "run_id", "tool_type", "tool_name", "request_json", "response_json", "status", "duration_ms", "error_message", "created_at" ], "title": "AgentToolCallRead" }, "AuditLogRead": { "properties": { "id": { "type": "string", "title": "Id" }, "actor": { "type": "string", "title": "Actor" }, "action": { "type": "string", "title": "Action" }, "resource_type": { "type": "string", "title": "Resource Type" }, "resource_id": { "type": "string", "title": "Resource Id" }, "before_json": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Before Json" }, "after_json": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "After Json" }, "request_id": { "type": "string", "title": "Request Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "id", "actor", "action", "resource_type", "resource_id", "before_json", "after_json", "request_id", "created_at" ], "title": "AuditLogRead" }, "AuthUserRead": { "properties": { "username": { "type": "string", "title": "Username" }, "name": { "type": "string", "title": "Name" }, "role": { "type": "string", "title": "Role" }, "roleCodes": { "items": { "type": "string" }, "type": "array", "title": "Rolecodes" }, "email": { "anyOf": [ { "type": "string", "format": "email" }, { "type": "string" } ], "title": "Email" }, "avatar": { "type": "string", "title": "Avatar" }, "isAdmin": { "type": "boolean", "title": "Isadmin", "default": false } }, "type": "object", "required": [ "username", "name", "role", "email", "avatar" ], "title": "AuthUserRead" }, "BootstrapCacheRead": { "properties": { "enabled": { "type": "boolean", "title": "Enabled" }, "url": { "type": "string", "title": "Url" } }, "type": "object", "required": [ "enabled", "url" ], "title": "BootstrapCacheRead" }, "BootstrapCompanyRead": { "properties": { "name": { "type": "string", "title": "Name" }, "code": { "type": "string", "title": "Code" }, "admin_email": { "type": "string", "title": "Admin Email" } }, "type": "object", "required": [ "name", "code", "admin_email" ], "title": "BootstrapCompanyRead" }, "BootstrapConnectionRead": { "properties": { "host": { "type": "string", "title": "Host" }, "port": { "type": "integer", "title": "Port" } }, "type": "object", "required": [ "host", "port" ], "title": "BootstrapConnectionRead" }, "BootstrapDatabaseRead": { "properties": { "driver": { "type": "string", "title": "Driver" }, "host": { "type": "string", "title": "Host" }, "port": { "type": "integer", "title": "Port" }, "name": { "type": "string", "title": "Name" }, "username": { "type": "string", "title": "Username" }, "password_configured": { "type": "boolean", "title": "Password Configured" } }, "type": "object", "required": [ "driver", "host", "port", "name", "username", "password_configured" ], "title": "BootstrapDatabaseRead" }, "BootstrapSetupPayload": { "properties": { "company_name": { "type": "string", "maxLength": 80, "minLength": 2, "title": "Company Name" }, "company_code": { "type": "string", "maxLength": 32, "title": "Company Code", "default": "" }, "admin_email": { "anyOf": [ { "type": "string", "format": "email" }, { "type": "null" } ], "title": "Admin Email" }, "postgres_host": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Postgres Host" }, "postgres_port": { "type": "integer", "maximum": 65535.0, "minimum": 1.0, "title": "Postgres Port", "default": 5432 }, "postgres_db": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Postgres Db" }, "postgres_user": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Postgres User" }, "postgres_password": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Postgres Password" }, "redis_url": { "anyOf": [ { "type": "string", "maxLength": 255 }, { "type": "null" } ], "title": "Redis Url" } }, "type": "object", "required": [ "company_name", "postgres_host", "postgres_db", "postgres_user", "postgres_password" ], "title": "BootstrapSetupPayload" }, "BootstrapStateRead": { "properties": { "initialized": { "type": "boolean", "title": "Initialized" }, "company": { "$ref": "#/components/schemas/BootstrapCompanyRead" }, "web": { "$ref": "#/components/schemas/BootstrapConnectionRead" }, "server": { "$ref": "#/components/schemas/BootstrapConnectionRead" }, "database": { "$ref": "#/components/schemas/BootstrapDatabaseRead" }, "redis": { "$ref": "#/components/schemas/BootstrapCacheRead" } }, "type": "object", "required": [ "initialized", "company", "web", "server", "database", "redis" ], "title": "BootstrapStateRead" }, "EmployeeCreate": { "properties": { "employee_no": { "type": "string", "maxLength": 50, "minLength": 1, "title": "Employee No" }, "name": { "type": "string", "maxLength": 100, "minLength": 1, "title": "Name" }, "email": { "type": "string", "format": "email", "title": "Email" }, "gender": { "anyOf": [ { "type": "string", "maxLength": 20 }, { "type": "null" } ], "title": "Gender" }, "birth_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Birth Date" }, "phone": { "anyOf": [ { "type": "string", "maxLength": 30 }, { "type": "null" } ], "title": "Phone" }, "join_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Join Date" }, "location": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "title": "Location" }, "position": { "type": "string", "maxLength": 100, "title": "Position", "default": "员工" }, "grade": { "type": "string", "maxLength": 20, "title": "Grade", "default": "P3" }, "cost_center": { "anyOf": [ { "type": "string", "maxLength": 50 }, { "type": "null" } ], "title": "Cost Center" }, "finance_owner_name": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "title": "Finance Owner Name" }, "employment_status": { "type": "string", "maxLength": 30, "title": "Employment Status", "default": "在职" }, "sync_state": { "type": "string", "maxLength": 30, "title": "Sync State", "default": "已同步" }, "spotlight": { "type": "boolean", "title": "Spotlight", "default": false }, "organization_unit_code": { "anyOf": [ { "type": "string", "maxLength": 50 }, { "type": "null" } ], "title": "Organization Unit Code" }, "manager_employee_no": { "anyOf": [ { "type": "string", "maxLength": 50 }, { "type": "null" } ], "title": "Manager Employee No" }, "role_codes": { "items": { "type": "string" }, "type": "array", "title": "Role Codes" } }, "type": "object", "required": [ "employee_no", "name", "email" ], "title": "EmployeeCreate" }, "EmployeeHistoryRead": { "properties": { "action": { "type": "string", "title": "Action" }, "owner": { "type": "string", "title": "Owner" }, "time": { "type": "string", "title": "Time" }, "occurredAt": { "type": "string", "title": "Occurredat" } }, "type": "object", "required": [ "action", "owner", "time", "occurredAt" ], "title": "EmployeeHistoryRead" }, "EmployeeMetaRead": { "properties": { "totalEmployees": { "type": "integer", "title": "Totalemployees" }, "statusSummary": { "items": { "$ref": "#/components/schemas/EmployeeStatusSummaryRead" }, "type": "array", "title": "Statussummary" }, "roleOptions": { "items": { "$ref": "#/components/schemas/EmployeeRoleOptionRead" }, "type": "array", "title": "Roleoptions" } }, "type": "object", "required": [ "totalEmployees", "statusSummary", "roleOptions" ], "title": "EmployeeMetaRead" }, "EmployeeOrganizationRead": { "properties": { "id": { "type": "string", "title": "Id" }, "code": { "type": "string", "title": "Code" }, "name": { "type": "string", "title": "Name" }, "unitType": { "type": "string", "title": "Unittype" }, "costCenter": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Costcenter" }, "location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Location" }, "managerName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Managername" } }, "type": "object", "required": [ "id", "code", "name", "unitType" ], "title": "EmployeeOrganizationRead" }, "EmployeeRead": { "properties": { "id": { "type": "string", "title": "Id" }, "avatar": { "type": "string", "title": "Avatar" }, "name": { "type": "string", "title": "Name" }, "employeeNo": { "type": "string", "title": "Employeeno" }, "department": { "type": "string", "title": "Department" }, "position": { "type": "string", "title": "Position" }, "grade": { "type": "string", "title": "Grade" }, "manager": { "type": "string", "title": "Manager" }, "financeOwner": { "type": "string", "title": "Financeowner" }, "roles": { "items": { "type": "string" }, "type": "array", "title": "Roles" }, "roleCodes": { "items": { "type": "string" }, "type": "array", "title": "Rolecodes" }, "status": { "type": "string", "title": "Status" }, "statusTone": { "type": "string", "title": "Statustone" }, "gender": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Gender" }, "age": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Age" }, "birthDate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Birthdate" }, "email": { "type": "string", "format": "email", "title": "Email" }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phone" }, "joinDate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Joindate" }, "location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Location" }, "costCenter": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Costcenter" }, "updatedAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updatedat" }, "lastSync": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lastsync" }, "syncState": { "type": "string", "title": "Syncstate" }, "spotlight": { "type": "boolean", "title": "Spotlight", "default": false }, "permissions": { "items": { "type": "string" }, "type": "array", "title": "Permissions" }, "history": { "items": { "$ref": "#/components/schemas/EmployeeHistoryRead" }, "type": "array", "title": "History" }, "organization": { "anyOf": [ { "$ref": "#/components/schemas/EmployeeOrganizationRead" }, { "type": "null" } ] } }, "type": "object", "required": [ "id", "avatar", "name", "employeeNo", "department", "position", "grade", "manager", "financeOwner", "status", "statusTone", "email", "syncState" ], "title": "EmployeeRead" }, "EmployeeRoleOptionRead": { "properties": { "id": { "type": "string", "title": "Id" }, "code": { "type": "string", "title": "Code" }, "label": { "type": "string", "title": "Label" }, "desc": { "type": "string", "title": "Desc" }, "permissions": { "items": { "type": "string" }, "type": "array", "title": "Permissions" } }, "type": "object", "required": [ "id", "code", "label", "desc" ], "title": "EmployeeRoleOptionRead" }, "EmployeeStatusSummaryRead": { "properties": { "id": { "type": "string", "title": "Id" }, "label": { "type": "string", "title": "Label" }, "count": { "type": "integer", "title": "Count" } }, "type": "object", "required": [ "id", "label", "count" ], "title": "EmployeeStatusSummaryRead" }, "EmployeeUpdate": { "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 100, "minLength": 1 }, { "type": "null" } ], "title": "Name" }, "gender": { "anyOf": [ { "type": "string", "maxLength": 20 }, { "type": "null" } ], "title": "Gender" }, "birth_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Birth Date" }, "phone": { "anyOf": [ { "type": "string", "maxLength": 30 }, { "type": "null" } ], "title": "Phone" }, "email": { "anyOf": [ { "type": "string", "format": "email" }, { "type": "null" } ], "title": "Email" }, "join_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Join Date" }, "location": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "title": "Location" }, "position": { "anyOf": [ { "type": "string", "maxLength": 100, "minLength": 1 }, { "type": "null" } ], "title": "Position" }, "grade": { "anyOf": [ { "type": "string", "maxLength": 20, "minLength": 1 }, { "type": "null" } ], "title": "Grade" }, "cost_center": { "anyOf": [ { "type": "string", "maxLength": 50 }, { "type": "null" } ], "title": "Cost Center" }, "finance_owner_name": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "title": "Finance Owner Name" }, "role_codes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Role Codes" }, "password": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 5 }, { "type": "null" } ], "title": "Password" } }, "type": "object", "title": "EmployeeUpdate" }, "ErrorResponse": { "properties": { "detail": { "type": "string", "title": "Detail" } }, "type": "object", "required": [ "detail" ], "title": "ErrorResponse" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "HealthCheckRead": { "properties": { "status": { "type": "string", "title": "Status" }, "database": { "$ref": "#/components/schemas/HealthDatabaseStatusRead" }, "redis": { "$ref": "#/components/schemas/HealthRedisStatusRead" } }, "type": "object", "required": [ "status", "database", "redis" ], "title": "HealthCheckRead" }, "HealthDatabaseStatusRead": { "properties": { "configured": { "type": "boolean", "title": "Configured" }, "ok": { "type": "boolean", "title": "Ok" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" } }, "type": "object", "required": [ "configured", "ok" ], "title": "HealthDatabaseStatusRead" }, "HealthRedisStatusRead": { "properties": { "configured": { "type": "boolean", "title": "Configured" }, "enabled": { "type": "boolean", "title": "Enabled" } }, "type": "object", "required": [ "configured", "enabled" ], "title": "HealthRedisStatusRead" }, "KnowledgeActionResponse": { "properties": { "ok": { "type": "boolean", "title": "Ok", "default": true }, "detail": { "type": "string", "title": "Detail" } }, "type": "object", "required": [ "detail" ], "title": "KnowledgeActionResponse" }, "KnowledgeDocumentDetailRead": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "folder": { "type": "string", "title": "Folder" }, "tag": { "type": "string", "title": "Tag" }, "time": { "type": "string", "title": "Time" }, "version": { "type": "string", "title": "Version" }, "state": { "type": "string", "title": "State" }, "stateTone": { "type": "string", "title": "Statetone" }, "owner": { "type": "string", "title": "Owner" }, "icon": { "type": "string", "title": "Icon" }, "fileType": { "type": "string", "title": "Filetype" }, "fileTypeLabel": { "type": "string", "title": "Filetypelabel" }, "summary": { "type": "string", "title": "Summary" }, "mimeType": { "type": "string", "title": "Mimetype" }, "extension": { "type": "string", "title": "Extension" }, "sizeBytes": { "type": "integer", "title": "Sizebytes" }, "canPreview": { "type": "boolean", "title": "Canpreview", "default": false }, "previewKind": { "type": "string", "title": "Previewkind" }, "previewPages": { "items": { "$ref": "#/components/schemas/KnowledgePreviewPageRead" }, "type": "array", "title": "Previewpages" } }, "type": "object", "required": [ "id", "name", "folder", "tag", "time", "version", "state", "stateTone", "owner", "icon", "fileType", "fileTypeLabel", "summary", "mimeType", "extension", "sizeBytes", "previewKind" ], "title": "KnowledgeDocumentDetailRead" }, "KnowledgeDocumentRead": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "folder": { "type": "string", "title": "Folder" }, "tag": { "type": "string", "title": "Tag" }, "time": { "type": "string", "title": "Time" }, "version": { "type": "string", "title": "Version" }, "state": { "type": "string", "title": "State" }, "stateTone": { "type": "string", "title": "Statetone" }, "owner": { "type": "string", "title": "Owner" }, "icon": { "type": "string", "title": "Icon" }, "fileType": { "type": "string", "title": "Filetype" }, "fileTypeLabel": { "type": "string", "title": "Filetypelabel" }, "summary": { "type": "string", "title": "Summary" }, "mimeType": { "type": "string", "title": "Mimetype" }, "extension": { "type": "string", "title": "Extension" }, "sizeBytes": { "type": "integer", "title": "Sizebytes" }, "canPreview": { "type": "boolean", "title": "Canpreview", "default": false } }, "type": "object", "required": [ "id", "name", "folder", "tag", "time", "version", "state", "stateTone", "owner", "icon", "fileType", "fileTypeLabel", "summary", "mimeType", "extension", "sizeBytes" ], "title": "KnowledgeDocumentRead" }, "KnowledgeFolderRead": { "properties": { "name": { "type": "string", "title": "Name" }, "count": { "type": "integer", "title": "Count" }, "icon": { "type": "string", "title": "Icon", "default": "mdi mdi-folder" } }, "type": "object", "required": [ "name", "count" ], "title": "KnowledgeFolderRead" }, "KnowledgeLibraryRead": { "properties": { "folders": { "items": { "$ref": "#/components/schemas/KnowledgeFolderRead" }, "type": "array", "title": "Folders" }, "documents": { "items": { "$ref": "#/components/schemas/KnowledgeDocumentRead" }, "type": "array", "title": "Documents" } }, "type": "object", "title": "KnowledgeLibraryRead" }, "KnowledgeOnlyOfficeCallbackRead": { "properties": { "error": { "type": "integer", "title": "Error", "default": 0 } }, "type": "object", "title": "KnowledgeOnlyOfficeCallbackRead" }, "KnowledgeOnlyOfficeCallbackWrite": { "properties": { "status": { "type": "integer", "title": "Status", "description": "ONLYOFFICE 回调状态码。" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url", "description": "文档下载地址,状态为 2 或 6 时使用。" }, "users": { "items": { "type": "string" }, "type": "array", "title": "Users", "description": "当前编辑用户列表。" } }, "additionalProperties": true, "type": "object", "required": [ "status" ], "title": "KnowledgeOnlyOfficeCallbackWrite" }, "KnowledgeOnlyOfficeConfigRead": { "properties": { "documentServerUrl": { "type": "string", "title": "Documentserverurl" }, "config": { "additionalProperties": true, "type": "object", "title": "Config" } }, "type": "object", "required": [ "documentServerUrl" ], "title": "KnowledgeOnlyOfficeConfigRead" }, "KnowledgePreviewBlockRead": { "properties": { "heading": { "type": "string", "title": "Heading" }, "lines": { "items": { "type": "string" }, "type": "array", "title": "Lines" } }, "type": "object", "required": [ "heading" ], "title": "KnowledgePreviewBlockRead" }, "KnowledgePreviewPageRead": { "properties": { "title": { "type": "string", "title": "Title" }, "subtitle": { "type": "string", "title": "Subtitle" }, "stats": { "items": { "$ref": "#/components/schemas/KnowledgePreviewStatRead" }, "type": "array", "title": "Stats" }, "blocks": { "items": { "$ref": "#/components/schemas/KnowledgePreviewBlockRead" }, "type": "array", "title": "Blocks" } }, "type": "object", "required": [ "title", "subtitle" ], "title": "KnowledgePreviewPageRead" }, "KnowledgePreviewStatRead": { "properties": { "label": { "type": "string", "title": "Label" }, "value": { "type": "string", "title": "Value" } }, "type": "object", "required": [ "label", "value" ], "title": "KnowledgePreviewStatRead" }, "LoginRequest": { "properties": { "username": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Username" }, "password": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Password" } }, "type": "object", "required": [ "username", "password" ], "title": "LoginRequest" }, "LoginResponse": { "properties": { "ok": { "type": "boolean", "title": "Ok", "default": true }, "detail": { "type": "string", "title": "Detail", "default": "登录成功。" }, "user": { "$ref": "#/components/schemas/AuthUserRead" } }, "type": "object", "required": [ "user" ], "title": "LoginResponse" }, "ModelConnectivityTestRead": { "properties": { "ok": { "type": "boolean", "title": "Ok" }, "provider": { "type": "string", "title": "Provider" }, "model": { "type": "string", "title": "Model" }, "endpoint": { "type": "string", "title": "Endpoint" }, "capability": { "type": "string", "title": "Capability" }, "detail": { "type": "string", "title": "Detail" }, "status_code": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Status Code" }, "checked_at": { "type": "string", "format": "date-time", "title": "Checked At" } }, "type": "object", "required": [ "ok", "provider", "model", "endpoint", "capability", "detail", "checked_at" ], "title": "ModelConnectivityTestRead" }, "ModelConnectivityTestRequest": { "properties": { "provider": { "type": "string", "maxLength": 64, "minLength": 1, "title": "Provider" }, "endpoint": { "type": "string", "maxLength": 512, "minLength": 1, "title": "Endpoint" }, "model": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Model" }, "api_key": { "anyOf": [ { "type": "string", "maxLength": 1024 }, { "type": "null" } ], "title": "Api Key" }, "capability": { "type": "string", "enum": [ "chat", "embedding" ], "title": "Capability", "default": "chat" }, "slot": { "anyOf": [ { "type": "string", "enum": [ "main", "backup", "vlm", "embedding" ] }, { "type": "null" } ], "title": "Slot" } }, "type": "object", "required": [ "provider", "endpoint", "model" ], "title": "ModelConnectivityTestRequest" }, "ReimbursementCreate": { "properties": { "request_no": { "type": "string", "title": "Request No" }, "employee_id": { "type": "string", "title": "Employee Id" }, "title": { "type": "string", "title": "Title" }, "category": { "type": "string", "title": "Category" }, "amount": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "title": "Amount" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason" } }, "type": "object", "required": [ "request_no", "employee_id", "title", "category", "amount" ], "title": "ReimbursementCreate" }, "ReimbursementRead": { "properties": { "id": { "type": "string", "title": "Id" }, "request_no": { "type": "string", "title": "Request No" }, "employee_id": { "type": "string", "title": "Employee Id" }, "title": { "type": "string", "title": "Title" }, "category": { "type": "string", "title": "Category" }, "status": { "type": "string", "title": "Status" }, "amount": { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "title": "Amount" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "id", "request_no", "employee_id", "title", "category", "status", "amount", "reason", "created_at", "updated_at" ], "title": "ReimbursementRead" }, "RootStatusRead": { "properties": { "message": { "type": "string", "title": "Message" } }, "type": "object", "required": [ "message" ], "title": "RootStatusRead" }, "RuntimeModelConfigRead": { "properties": { "slot": { "type": "string", "enum": [ "main", "backup", "vlm", "embedding" ], "title": "Slot" }, "provider": { "type": "string", "title": "Provider" }, "model": { "type": "string", "title": "Model" }, "endpoint": { "type": "string", "title": "Endpoint" }, "apiKey": { "type": "string", "title": "Apikey" }, "capability": { "type": "string", "enum": [ "chat", "embedding" ], "title": "Capability" } }, "type": "object", "required": [ "slot", "provider", "model", "endpoint", "apiKey", "capability" ], "title": "RuntimeModelConfigRead" }, "SemanticParseRead": { "properties": { "id": { "type": "string", "title": "Id" }, "run_id": { "type": "string", "title": "Run Id" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "raw_query": { "type": "string", "title": "Raw Query" }, "scenario": { "type": "string", "title": "Scenario" }, "intent": { "type": "string", "title": "Intent" }, "entities_json": { "items": {}, "type": "array", "title": "Entities Json" }, "time_range_json": { "additionalProperties": true, "type": "object", "title": "Time Range Json" }, "metrics_json": { "items": {}, "type": "array", "title": "Metrics Json" }, "constraints_json": { "items": {}, "type": "array", "title": "Constraints Json" }, "risk_flags_json": { "items": {}, "type": "array", "title": "Risk Flags Json" }, "permission_json": { "additionalProperties": true, "type": "object", "title": "Permission Json" }, "confidence": { "type": "number", "title": "Confidence" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "id", "run_id", "user_id", "raw_query", "scenario", "intent", "entities_json", "time_range_json", "metrics_json", "constraints_json", "risk_flags_json", "permission_json", "confidence", "created_at" ], "title": "SemanticParseRead" }, "SettingsAdminForm": { "properties": { "adminAccount": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Adminaccount" }, "adminEmail": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Adminemail" }, "newPassword": { "type": "string", "maxLength": 128, "title": "Newpassword", "default": "" }, "confirmPassword": { "type": "string", "maxLength": 128, "title": "Confirmpassword", "default": "" }, "sessionTimeout": { "type": "integer", "maximum": 240.0, "minimum": 5.0, "title": "Sessiontimeout", "default": 30 }, "noticeEmail": { "type": "string", "maxLength": 255, "title": "Noticeemail", "default": "" }, "mfaEnabled": { "type": "boolean", "title": "Mfaenabled", "default": true }, "strongPassword": { "type": "boolean", "title": "Strongpassword", "default": true }, "loginAlertEnabled": { "type": "boolean", "title": "Loginalertenabled", "default": true }, "adminPasswordConfigured": { "type": "boolean", "title": "Adminpasswordconfigured", "default": false } }, "type": "object", "required": [ "adminAccount", "adminEmail" ], "title": "SettingsAdminForm" }, "SettingsCompanyForm": { "properties": { "companyName": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Companyname" }, "displayName": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Displayname" }, "companyCode": { "type": "string", "maxLength": 64, "title": "Companycode", "default": "" }, "recordNumber": { "type": "string", "maxLength": 120, "title": "Recordnumber", "default": "" }, "copyright": { "type": "string", "maxLength": 255, "title": "Copyright", "default": "" } }, "type": "object", "required": [ "companyName", "displayName" ], "title": "SettingsCompanyForm" }, "SettingsLlmForm": { "properties": { "mainProvider": { "type": "string", "maxLength": 64, "minLength": 1, "title": "Mainprovider" }, "mainModel": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Mainmodel" }, "mainEndpoint": { "type": "string", "maxLength": 512, "minLength": 1, "title": "Mainendpoint" }, "mainApiKey": { "type": "string", "maxLength": 1024, "title": "Mainapikey", "default": "" }, "mainApiKeyConfigured": { "type": "boolean", "title": "Mainapikeyconfigured", "default": false }, "backupProvider": { "type": "string", "maxLength": 64, "minLength": 1, "title": "Backupprovider" }, "backupModel": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Backupmodel" }, "backupEndpoint": { "type": "string", "maxLength": 512, "minLength": 1, "title": "Backupendpoint" }, "backupApiKey": { "type": "string", "maxLength": 1024, "title": "Backupapikey", "default": "" }, "backupApiKeyConfigured": { "type": "boolean", "title": "Backupapikeyconfigured", "default": false }, "vlmProvider": { "type": "string", "maxLength": 64, "minLength": 1, "title": "Vlmprovider" }, "vlmModel": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Vlmmodel" }, "vlmEndpoint": { "type": "string", "maxLength": 512, "minLength": 1, "title": "Vlmendpoint" }, "vlmApiKey": { "type": "string", "maxLength": 1024, "title": "Vlmapikey", "default": "" }, "vlmApiKeyConfigured": { "type": "boolean", "title": "Vlmapikeyconfigured", "default": false }, "embeddingProvider": { "type": "string", "maxLength": 64, "minLength": 1, "title": "Embeddingprovider" }, "embeddingModel": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Embeddingmodel" }, "embeddingEndpoint": { "type": "string", "maxLength": 512, "minLength": 1, "title": "Embeddingendpoint" }, "embeddingApiKey": { "type": "string", "maxLength": 1024, "title": "Embeddingapikey", "default": "" }, "embeddingApiKeyConfigured": { "type": "boolean", "title": "Embeddingapikeyconfigured", "default": false } }, "type": "object", "required": [ "mainProvider", "mainModel", "mainEndpoint", "backupProvider", "backupModel", "backupEndpoint", "vlmProvider", "vlmModel", "vlmEndpoint", "embeddingProvider", "embeddingModel", "embeddingEndpoint" ], "title": "SettingsLlmForm" }, "SettingsLogForm": { "properties": { "level": { "type": "string", "maxLength": 16, "minLength": 1, "title": "Level" }, "retentionDays": { "type": "integer", "maximum": 3650.0, "minimum": 1.0, "title": "Retentiondays", "default": 180 }, "archiveCycle": { "type": "string", "maxLength": 32, "title": "Archivecycle", "default": "weekly" }, "logPath": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Logpath" }, "alertEmail": { "type": "string", "maxLength": 255, "title": "Alertemail", "default": "" }, "operationAudit": { "type": "boolean", "title": "Operationaudit", "default": true }, "loginAudit": { "type": "boolean", "title": "Loginaudit", "default": true }, "maskSensitive": { "type": "boolean", "title": "Masksensitive", "default": true } }, "type": "object", "required": [ "level", "logPath" ], "title": "SettingsLogForm" }, "SettingsMailForm": { "properties": { "smtpHost": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Smtphost" }, "port": { "type": "integer", "maximum": 65535.0, "minimum": 1.0, "title": "Port", "default": 465 }, "encryption": { "type": "string", "maxLength": 32, "title": "Encryption", "default": "SSL/TLS" }, "senderName": { "type": "string", "maxLength": 120, "title": "Sendername", "default": "" }, "senderAddress": { "type": "string", "maxLength": 255, "title": "Senderaddress", "default": "" }, "username": { "type": "string", "maxLength": 255, "title": "Username", "default": "" }, "password": { "type": "string", "maxLength": 1024, "title": "Password", "default": "" }, "passwordConfigured": { "type": "boolean", "title": "Passwordconfigured", "default": false }, "alertEnabled": { "type": "boolean", "title": "Alertenabled", "default": true }, "digestEnabled": { "type": "boolean", "title": "Digestenabled", "default": false }, "digestTime": { "type": "string", "maxLength": 16, "title": "Digesttime", "default": "09:00" }, "defaultReceiver": { "type": "string", "maxLength": 255, "title": "Defaultreceiver", "default": "" } }, "type": "object", "required": [ "smtpHost" ], "title": "SettingsMailForm" }, "SettingsRead": { "properties": { "companyForm": { "$ref": "#/components/schemas/SettingsCompanyForm" }, "adminForm": { "$ref": "#/components/schemas/SettingsAdminForm" }, "llmForm": { "$ref": "#/components/schemas/SettingsLlmForm" }, "renderForm": { "$ref": "#/components/schemas/SettingsRenderForm" }, "logForm": { "$ref": "#/components/schemas/SettingsLogForm" }, "mailForm": { "$ref": "#/components/schemas/SettingsMailForm" } }, "type": "object", "required": [ "companyForm", "adminForm", "llmForm", "renderForm", "logForm", "mailForm" ], "title": "SettingsRead" }, "SettingsRenderForm": { "properties": { "enabled": { "type": "boolean", "title": "Enabled", "default": false }, "publicUrl": { "type": "string", "maxLength": 512, "title": "Publicurl", "default": "" }, "jwtSecret": { "type": "string", "maxLength": 1024, "title": "Jwtsecret", "default": "" }, "jwtSecretConfigured": { "type": "boolean", "title": "Jwtsecretconfigured", "default": false } }, "type": "object", "title": "SettingsRenderForm" }, "SettingsWrite": { "properties": { "companyForm": { "$ref": "#/components/schemas/SettingsCompanyForm" }, "adminForm": { "$ref": "#/components/schemas/SettingsAdminForm" }, "llmForm": { "$ref": "#/components/schemas/SettingsLlmForm" }, "renderForm": { "$ref": "#/components/schemas/SettingsRenderForm" }, "logForm": { "$ref": "#/components/schemas/SettingsLogForm" }, "mailForm": { "$ref": "#/components/schemas/SettingsMailForm" } }, "type": "object", "required": [ "companyForm", "adminForm", "llmForm", "renderForm", "logForm", "mailForm" ], "title": "SettingsWrite" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" }, "input": { "title": "Input" }, "ctx": { "type": "object", "title": "Context" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" } } }, "tags": [ { "name": "health", "description": "服务健康检查与数据库 / Redis 连通性状态。" }, { "name": "bootstrap", "description": "系统初始化配置,包括公司信息、数据库和缓存配置。" }, { "name": "auth", "description": "后台登录认证接口,支持管理员和员工账号登录。" }, { "name": "employees", "description": "员工目录管理,包括员工列表、详情、创建、更新和停用。" }, { "name": "reimbursements", "description": "报销申请基础接口,包含列表、创建和详情查询。" }, { "name": "knowledge", "description": "知识库文件管理、内容访问与 ONLYOFFICE 集成接口。" }, { "name": "settings", "description": "系统设置、模型配置、模型连通性探测和 Hermes 运行时模型配置。" }, { "name": "agent-assets", "description": "Agent 资产中心,覆盖规则、技能、MCP、任务及其版本、审核和上线流程。" }, { "name": "agent-runs", "description": "Agent 运行日志查询,包括工具调用和语义解析结果。" }, { "name": "audit-logs", "description": "系统审计日志查询接口,用于追踪资产和任务写操作。" }, { "name": "root", "description": "服务根入口,用于确认应用已启动。" } ] }