convert crlf to lf

This commit is contained in:
ivamp 2024-08-03 15:39:04 +08:00
parent ebe075e0c4
commit 4124bd21b3
34 changed files with 3653 additions and 2740 deletions

View File

@ -10,13 +10,12 @@ module.exports = {
node: true, node: true,
}, },
extends: [ extends: [
'vuetify', "vuetify",
'@vue/eslint-config-typescript', "@vue/eslint-config-typescript",
'./.eslintrc-auto-import.json', "./.eslintrc-auto-import.json",
'plugin:prettier/recommended' "plugin:prettier/recommended",
], ],
rules: { rules: {
'vue/multi-word-component-names': 'off', "vue/multi-word-component-names": "off",
}, },
};
}

View File

@ -14,12 +14,12 @@ This is the official scaffolding tool for Vuetify, designed to give you a head s
Set up your project using your preferred package manager. Use the corresponding command to install the dependencies: Set up your project using your preferred package manager. Use the corresponding command to install the dependencies:
| Package Manager | Command | | Package Manager | Command |
|---------------------------------------------------------------|----------------| | --------------------------------------------------------- | -------------- |
| [yarn](https://yarnpkg.com/getting-started) | `yarn install` | | [yarn](https://yarnpkg.com/getting-started) | `yarn install` |
| [npm](https://docs.npmjs.com/cli/v7/commands/npm-install) | `npm install` | | [npm](https://docs.npmjs.com/cli/v7/commands/npm-install) | `npm install` |
| [pnpm](https://pnpm.io/installation) | `pnpm install` | | [pnpm](https://pnpm.io/installation) | `pnpm install` |
| [bun](https://bun.sh/#getting-started) | `bun install` | | [bun](https://bun.sh/#getting-started) | `bun install` |
After completing the installation, your environment is ready for Vuetify development. After completing the installation, your environment is ready for Vuetify development.
@ -76,6 +76,7 @@ This project is built with [Vuetify](https://vuetifyjs.com/en/), a UI Library wi
- [Making a one-time donation with Paypal](https://paypal.me/vuetify) - [Making a one-time donation with Paypal](https://paypal.me/vuetify)
## 📑 License ## 📑 License
[MIT](http://opensource.org/licenses/MIT) [MIT](http://opensource.org/licenses/MIT)
Copyright (c) 2016-present Vuetify, LLC Copyright (c) 2016-present Vuetify, LLC

View File

@ -72,7 +72,7 @@ definitions:
created_at: created_at:
type: string type: string
data: data:
$ref: '#/definitions/rag-new_internal_schema.ToolDiscoveryOutput' $ref: "#/definitions/rag-new_internal_schema.ToolDiscoveryOutput"
description: description:
type: string type: string
discovery_url: discovery_url:
@ -97,8 +97,8 @@ definitions:
prompt: prompt:
type: string type: string
required: required:
- description - description
- name - name
type: object type: object
rag-new_internal_schema.ChatCreateRequest: rag-new_internal_schema.ChatCreateRequest:
properties: properties:
@ -108,8 +108,8 @@ definitions:
maxLength: 255 maxLength: 255
type: string type: string
required: required:
- assistant_id - assistant_id
- name - name
type: object type: object
rag-new_internal_schema.ChatMessageAddRequest: rag-new_internal_schema.ChatMessageAddRequest:
properties: properties:
@ -117,7 +117,7 @@ definitions:
maxLength: 255 maxLength: 255
type: string type: string
required: required:
- message - message
type: object type: object
rag-new_internal_schema.ChatMessageResponse: rag-new_internal_schema.ChatMessageResponse:
properties: properties:
@ -160,9 +160,9 @@ definitions:
maxLength: 255 maxLength: 255
type: string type: string
required: required:
- description - description
- name - name
- url - url
type: object type: object
rag-new_internal_schema.ToolDiscoveryOutput: rag-new_internal_schema.ToolDiscoveryOutput:
properties: properties:
@ -172,7 +172,7 @@ definitions:
type: string type: string
function: function:
items: items:
$ref: '#/definitions/rag-new_internal_schema.ToolDiscoveryOutputFunctions' $ref: "#/definitions/rag-new_internal_schema.ToolDiscoveryOutputFunctions"
type: array type: array
homepage_url: homepage_url:
type: string type: string
@ -195,7 +195,7 @@ definitions:
properties: properties:
function: function:
items: items:
$ref: '#/definitions/rag-new_internal_schema.ToolDiscoveryOutputFunction' $ref: "#/definitions/rag-new_internal_schema.ToolDiscoveryOutputFunction"
type: array type: array
type: type:
type: string type: string
@ -208,594 +208,594 @@ paths:
/api/v1/assistants: /api/v1/assistants:
get: get:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
items: items:
$ref: '#/definitions/rag-new_internal_entity.Assistant' $ref: "#/definitions/rag-new_internal_entity.Assistant"
type: array type: array
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: 获取 Assistant 列表 summary: 获取 Assistant 列表
tags: tags:
- assistant - assistant
post: post:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Assistant - description: Assistant
in: body in: body
name: assistant name: assistant
required: true required: true
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.AssistantCreateRequest' $ref: "#/definitions/rag-new_internal_schema.AssistantCreateRequest"
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_entity.Assistant' $ref: "#/definitions/rag-new_internal_entity.Assistant"
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: 创建 Assistant summary: 创建 Assistant
tags: tags:
- assistant - assistant
/api/v1/assistants/{id}: /api/v1/assistants/{id}:
delete: delete:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Assistant ID - description: Assistant ID
in: path in: path
name: id name: id
required: true required: true
type: integer type: integer
produces: produces:
- application/json - application/json
responses: responses:
"204": "204":
description: No Content description: No Content
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: 删除 Assistant summary: 删除 Assistant
tags: tags:
- assistant - assistant
/api/v1/assistants/{id}/tools: /api/v1/assistants/{id}/tools:
get: get:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Assistant ID - description: Assistant ID
in: path in: path
name: id name: id
required: true required: true
type: integer type: integer
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
items: items:
$ref: '#/definitions/rag-new_internal_entity.AssistantTool' $ref: "#/definitions/rag-new_internal_entity.AssistantTool"
type: array type: array
type: object type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: 获取 Assistant 所绑定的 Tool summary: 获取 Assistant 所绑定的 Tool
tags: tags:
- assistant - assistant
/api/v1/assistants/{id}/tools/{tool_id}: /api/v1/assistants/{id}/tools/{tool_id}:
delete: delete:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Assistant ID - description: Assistant ID
in: path in: path
name: id name: id
required: true required: true
type: integer type: integer
- description: Tool ID - description: Tool ID
in: path in: path
name: tool_id name: tool_id
required: true required: true
type: integer type: integer
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_entity.AssistantTool' $ref: "#/definitions/rag-new_internal_entity.AssistantTool"
type: object type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: 解绑 Tool summary: 解绑 Tool
tags: tags:
- assistant - assistant
post: post:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Assistant ID - description: Assistant ID
in: path in: path
name: id name: id
required: true required: true
type: integer type: integer
- description: Tool ID - description: Tool ID
in: path in: path
name: tool_id name: tool_id
required: true required: true
type: integer type: integer
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_entity.AssistantTool' $ref: "#/definitions/rag-new_internal_entity.AssistantTool"
type: object type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: 绑定 Tool summary: 绑定 Tool
tags: tags:
- assistant - assistant
/api/v1/chats: /api/v1/chats:
get: get:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
items: items:
$ref: '#/definitions/rag-new_internal_entity.Chat' $ref: "#/definitions/rag-new_internal_entity.Chat"
type: array type: array
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
summary: 获取所有 Chat summary: 获取所有 Chat
tags: tags:
- chat - chat
post: post:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Chat - description: Chat
in: body in: body
name: chat name: chat
required: true required: true
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ChatCreateRequest' $ref: "#/definitions/rag-new_internal_schema.ChatCreateRequest"
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_entity.Chat' $ref: "#/definitions/rag-new_internal_entity.Chat"
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
summary: Create Chat summary: Create Chat
tags: tags:
- chat - chat
/api/v1/chats/{id}: /api/v1/chats/{id}:
delete: delete:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Chat ID - description: Chat ID
in: path in: path
name: id name: id
required: true required: true
type: integer type: integer
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: Delete Chat summary: Delete Chat
tags: tags:
- chat - chat
/api/v1/chats/{id}/messages: /api/v1/chats/{id}/messages:
get: get:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Chat ID - description: Chat ID
in: path in: path
name: id name: id
required: true required: true
type: integer type: integer
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
items: items:
$ref: '#/definitions/rag-new_internal_entity.ChatMessage' $ref: "#/definitions/rag-new_internal_entity.ChatMessage"
type: array type: array
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: 查看聊天记录 summary: 查看聊天记录
tags: tags:
- chat_message - chat_message
post: post:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Chat ID - description: Chat ID
in: path in: path
name: id name: id
required: true required: true
type: integer type: integer
- description: Message - description: Message
in: body in: body
name: message name: message
required: true required: true
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ChatMessageAddRequest' $ref: "#/definitions/rag-new_internal_schema.ChatMessageAddRequest"
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_schema.ChatMessageResponse' $ref: "#/definitions/rag-new_internal_schema.ChatMessageResponse"
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"409": "409":
description: Conflict description: Conflict
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_schema.ChatMessageResponse' $ref: "#/definitions/rag-new_internal_schema.ChatMessageResponse"
type: object type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: 添加聊天记录 summary: 添加聊天记录
tags: tags:
- chat_message - chat_message
/api/v1/ping: /api/v1/ping:
get: get:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_schema.CurrentUserResponse' $ref: "#/definitions/rag-new_internal_schema.CurrentUserResponse"
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: Greet summary: Greet
tags: tags:
- ping - ping
/api/v1/stream/{stream_id}: /api/v1/stream/{stream_id}:
get: get:
consumes: consumes:
- application/json - application/json
description: get string by ID description: get string by ID
parameters: parameters:
- description: Chat ID - description: Chat ID
in: path in: path
name: id name: id
required: true required: true
type: integer type: integer
- description: Chat stream id - description: Chat stream id
in: path in: path
name: stream_id name: stream_id
required: true required: true
type: string type: string
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_schema.ChatMessageResponse' $ref: "#/definitions/rag-new_internal_schema.ChatMessageResponse"
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"409": "409":
description: Conflict description: Conflict
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_schema.ChatMessageResponse' $ref: "#/definitions/rag-new_internal_schema.ChatMessageResponse"
type: object type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- none: [] - none: []
summary: 流式传输聊天内容 summary: 流式传输聊天内容
tags: tags:
- chat_message - chat_message
/api/v1/tools: /api/v1/tools:
get: get:
consumes: consumes:
- application/json - application/json
description: List tools description: List tools
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_schema.CurrentUserResponse' $ref: "#/definitions/rag-new_internal_schema.CurrentUserResponse"
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: List Tool summary: List Tool
tags: tags:
- tool - tool
post: post:
consumes: consumes:
- application/json - application/json
description: Create tool description: Create tool
parameters: parameters:
- description: Tool - description: Tool
in: body in: body
name: tool name: tool
required: true required: true
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ToolCreateRequest' $ref: "#/definitions/rag-new_internal_schema.ToolCreateRequest"
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
items: items:
$ref: '#/definitions/rag-new_internal_entity.Tool' $ref: "#/definitions/rag-new_internal_entity.Tool"
type: array type: array
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: Create Tool summary: Create Tool
tags: tags:
- tool - tool
/api/v1/tools/{id}: /api/v1/tools/{id}:
delete: delete:
consumes: consumes:
- application/json - application/json
description: DeleteTool description: DeleteTool
parameters: parameters:
- description: Tool ID - description: Tool ID
in: path in: path
name: id name: id
required: true required: true
type: string type: string
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: DeleteTool summary: DeleteTool
tags: tags:
- tool - tool
get: get:
consumes: consumes:
- application/json - application/json
description: Get tool description: Get tool
parameters: parameters:
- description: Tool ID - description: Tool ID
in: path in: path
name: id name: id
required: true required: true
type: string type: string
produces: produces:
- application/json - application/json
responses: responses:
"200": "200":
description: OK description: OK
schema: schema:
allOf: allOf:
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody' - $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
- properties: - properties:
data: data:
$ref: '#/definitions/rag-new_internal_entity.Tool' $ref: "#/definitions/rag-new_internal_entity.Tool"
type: object type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/rag-new_internal_schema.ResponseBody' $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
security: security:
- ApiKeyAuth: [] - ApiKeyAuth: []
summary: Get Tool summary: Get Tool
tags: tags:
- tool - tool
securityDefinitions: securityDefinitions:
ApiKeyAuth: ApiKeyAuth:
in: header in: header

View File

@ -1,16 +1,14 @@
<!DOCTYPE html> <!doctype html>
<html lang="en"> <html lang="en">
<head>
<head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Welcome to Vuetify 3</title> <title>Welcome to Vuetify 3</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
<script type="module" src="/src/main.ts"></script> <script type="module" src="/src/main.ts"></script>
</body> </body>
</html> </html>

View File

@ -24,6 +24,7 @@
"@vitejs/plugin-vue": "^5.0.5", "@vitejs/plugin-vue": "^5.0.5",
"@vue/eslint-config-typescript": "^13.0.0", "@vue/eslint-config-typescript": "^13.0.0",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard": "^17.1.0", "eslint-config-standard": "^17.1.0",
"eslint-config-vuetify": "^1.0.0", "eslint-config-vuetify": "^1.0.0",
"eslint-plugin-import": "^2.29.1", "eslint-plugin-import": "^2.29.1",
@ -32,6 +33,7 @@
"eslint-plugin-promise": "^6.4.0", "eslint-plugin-promise": "^6.4.0",
"eslint-plugin-vue": "^9.27.0", "eslint-plugin-vue": "^9.27.0",
"pinia": "^2.1.7", "pinia": "^2.1.7",
"prettier": "^3.3.3",
"sass": "1.77.6", "sass": "1.77.6",
"typescript": "^5.4.2", "typescript": "^5.4.2",
"unplugin-auto-import": "^0.17.6", "unplugin-auto-import": "^0.17.6",

View File

@ -7,5 +7,5 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
// //
</script> </script>

File diff suppressed because it is too large Load Diff

View File

@ -5,19 +5,18 @@
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
* *
* The version of the OpenAPI document: 1.0 * The version of the OpenAPI document: 1.0
* *
* *
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech * https://openapi-generator.tech
* Do not edit the class manually. * Do not edit the class manually.
*/ */
import type { Configuration } from "./configuration";
import type { Configuration } from './configuration';
// Some imports not used depending on template conditions // Some imports not used depending on template conditions
// @ts-ignore // @ts-ignore
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from "axios";
import globalAxios from 'axios'; import globalAxios from "axios";
export const BASE_PATH = "http://localhost".replace(/\/+$/, ""); export const BASE_PATH = "http://localhost".replace(/\/+$/, "");
@ -26,10 +25,10 @@ export const BASE_PATH = "http://localhost".replace(/\/+$/, "");
* @export * @export
*/ */
export const COLLECTION_FORMATS = { export const COLLECTION_FORMATS = {
csv: ",", csv: ",",
ssv: " ", ssv: " ",
tsv: "\t", tsv: "\t",
pipes: "|", pipes: "|",
}; };
/** /**
@ -38,8 +37,8 @@ export const COLLECTION_FORMATS = {
* @interface RequestArgs * @interface RequestArgs
*/ */
export interface RequestArgs { export interface RequestArgs {
url: string; url: string;
options: RawAxiosRequestConfig; options: RawAxiosRequestConfig;
} }
/** /**
@ -48,15 +47,19 @@ export interface RequestArgs {
* @class BaseAPI * @class BaseAPI
*/ */
export class BaseAPI { export class BaseAPI {
protected configuration: Configuration | undefined; protected configuration: Configuration | undefined;
constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { constructor(
if (configuration) { configuration?: Configuration,
this.configuration = configuration; protected basePath: string = BASE_PATH,
this.basePath = configuration.basePath ?? basePath; protected axios: AxiosInstance = globalAxios,
} ) {
if (configuration) {
this.configuration = configuration;
this.basePath = configuration.basePath ?? basePath;
} }
}; }
}
/** /**
* *
@ -65,22 +68,24 @@ export class BaseAPI {
* @extends {Error} * @extends {Error}
*/ */
export class RequiredError extends Error { export class RequiredError extends Error {
constructor(public field: string, msg?: string) { constructor(
super(msg); public field: string,
this.name = "RequiredError" msg?: string,
} ) {
super(msg);
this.name = "RequiredError";
}
} }
interface ServerMap { interface ServerMap {
[key: string]: { [key: string]: {
url: string, url: string;
description: string, description: string;
}[]; }[];
} }
/** /**
* *
* @export * @export
*/ */
export const operationServerMap: ServerMap = { export const operationServerMap: ServerMap = {};
}

View File

@ -5,105 +5,139 @@
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
* *
* The version of the OpenAPI document: 1.0 * The version of the OpenAPI document: 1.0
* *
* *
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech * https://openapi-generator.tech
* Do not edit the class manually. * Do not edit the class manually.
*/ */
import type { Configuration } from "./configuration"; import type { Configuration } from "./configuration";
import type { RequestArgs } from "./base"; import type { RequestArgs } from "./base";
import type { AxiosInstance, AxiosResponse } from 'axios'; import type { AxiosInstance, AxiosResponse } from "axios";
import { RequiredError } from "./base"; import { RequiredError } from "./base";
/** /**
* *
* @export * @export
*/ */
export const DUMMY_BASE_URL = 'https://example.com' export const DUMMY_BASE_URL = "https://example.com";
/** /**
* *
* @throws {RequiredError} * @throws {RequiredError}
* @export * @export
*/ */
export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) { export const assertParamExists = function (
if (paramValue === null || paramValue === undefined) { functionName: string,
throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`); paramName: string,
} paramValue: unknown,
} ) {
if (paramValue === null || paramValue === undefined) {
throw new RequiredError(
paramName,
`Required parameter ${paramName} was null or undefined when calling ${functionName}.`,
);
}
};
/** /**
* *
* @export * @export
*/ */
export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) { export const setApiKeyToObject = async function (
if (configuration && configuration.apiKey) { object: any,
const localVarApiKeyValue = typeof configuration.apiKey === 'function' keyParamName: string,
? await configuration.apiKey(keyParamName) configuration?: Configuration,
: await configuration.apiKey; ) {
object[keyParamName] = localVarApiKeyValue; if (configuration && configuration.apiKey) {
} const localVarApiKeyValue =
} typeof configuration.apiKey === "function"
? await configuration.apiKey(keyParamName)
: await configuration.apiKey;
object[keyParamName] = localVarApiKeyValue;
}
};
/** /**
* *
* @export * @export
*/ */
export const setBasicAuthToObject = function (object: any, configuration?: Configuration) { export const setBasicAuthToObject = function (
if (configuration && (configuration.username || configuration.password)) { object: any,
object["auth"] = { username: configuration.username, password: configuration.password }; configuration?: Configuration,
} ) {
} if (configuration && (configuration.username || configuration.password)) {
object["auth"] = {
username: configuration.username,
password: configuration.password,
};
}
};
/** /**
* *
* @export * @export
*/ */
export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) { export const setBearerAuthToObject = async function (
if (configuration && configuration.accessToken) { object: any,
const accessToken = typeof configuration.accessToken === 'function' configuration?: Configuration,
? await configuration.accessToken() ) {
: await configuration.accessToken; if (configuration && configuration.accessToken) {
object["Authorization"] = "Bearer " + accessToken; const accessToken =
} typeof configuration.accessToken === "function"
} ? await configuration.accessToken()
: await configuration.accessToken;
object["Authorization"] = "Bearer " + accessToken;
}
};
/** /**
* *
* @export * @export
*/ */
export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) { export const setOAuthToObject = async function (
if (configuration && configuration.accessToken) { object: any,
const localVarAccessTokenValue = typeof configuration.accessToken === 'function' name: string,
? await configuration.accessToken(name, scopes) scopes: string[],
: await configuration.accessToken; configuration?: Configuration,
object["Authorization"] = "Bearer " + localVarAccessTokenValue; ) {
} if (configuration && configuration.accessToken) {
} const localVarAccessTokenValue =
typeof configuration.accessToken === "function"
? await configuration.accessToken(name, scopes)
: await configuration.accessToken;
object["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
};
function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = ""): void { function setFlattenedQueryParams(
if (parameter == null) return; urlSearchParams: URLSearchParams,
if (typeof parameter === "object") { parameter: any,
if (Array.isArray(parameter)) { key: string = "",
(parameter as any[]).forEach(item => setFlattenedQueryParams(urlSearchParams, item, key)); ): void {
} if (parameter == null) return;
else { if (typeof parameter === "object") {
Object.keys(parameter).forEach(currentKey => if (Array.isArray(parameter)) {
setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`) (parameter as any[]).forEach((item) =>
); setFlattenedQueryParams(urlSearchParams, item, key),
} );
} } else {
else { Object.keys(parameter).forEach((currentKey) =>
if (urlSearchParams.has(key)) { setFlattenedQueryParams(
urlSearchParams.append(key, parameter); urlSearchParams,
} parameter[currentKey],
else { `${key}${key !== "" ? "." : ""}${currentKey}`,
urlSearchParams.set(key, parameter); ),
} );
} }
} else {
if (urlSearchParams.has(key)) {
urlSearchParams.append(key, parameter);
} else {
urlSearchParams.set(key, parameter);
}
}
} }
/** /**
@ -111,40 +145,58 @@ function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: an
* @export * @export
*/ */
export const setSearchParams = function (url: URL, ...objects: any[]) { export const setSearchParams = function (url: URL, ...objects: any[]) {
const searchParams = new URLSearchParams(url.search); const searchParams = new URLSearchParams(url.search);
setFlattenedQueryParams(searchParams, objects); setFlattenedQueryParams(searchParams, objects);
url.search = searchParams.toString(); url.search = searchParams.toString();
} };
/** /**
* *
* @export * @export
*/ */
export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) { export const serializeDataIfNeeded = function (
const nonString = typeof value !== 'string'; value: any,
const needsSerialization = nonString && configuration && configuration.isJsonMime requestOptions: any,
? configuration.isJsonMime(requestOptions.headers['Content-Type']) configuration?: Configuration,
: nonString; ) {
return needsSerialization const nonString = typeof value !== "string";
? JSON.stringify(value !== undefined ? value : {}) const needsSerialization =
: (value || ""); nonString && configuration && configuration.isJsonMime
} ? configuration.isJsonMime(requestOptions.headers["Content-Type"])
: nonString;
return needsSerialization
? JSON.stringify(value !== undefined ? value : {})
: value || "";
};
/** /**
* *
* @export * @export
*/ */
export const toPathString = function (url: URL) { export const toPathString = function (url: URL) {
return url.pathname + url.search + url.hash return url.pathname + url.search + url.hash;
} };
/** /**
* *
* @export * @export
*/ */
export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) { export const createRequestFunction = function (
return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { axiosArgs: RequestArgs,
const axiosRequestArgs = {...axiosArgs.options, url: (axios.defaults.baseURL ? '' : configuration?.basePath ?? basePath) + axiosArgs.url}; globalAxios: AxiosInstance,
return axios.request<T, R>(axiosRequestArgs); BASE_PATH: string,
configuration?: Configuration,
) {
return <T = unknown, R = AxiosResponse<T>>(
axios: AxiosInstance = globalAxios,
basePath: string = BASE_PATH,
) => {
const axiosRequestArgs = {
...axiosArgs.options,
url:
(axios.defaults.baseURL ? "" : (configuration?.basePath ?? basePath)) +
axiosArgs.url,
}; };
} return axios.request<T, R>(axiosRequestArgs);
};
};

View File

@ -5,106 +5,128 @@
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
* *
* The version of the OpenAPI document: 1.0 * The version of the OpenAPI document: 1.0
* *
* *
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech * https://openapi-generator.tech
* Do not edit the class manually. * Do not edit the class manually.
*/ */
export interface ConfigurationParameters { export interface ConfigurationParameters {
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>); apiKey?:
username?: string; | string
password?: string; | Promise<string>
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>); | ((name: string) => string)
basePath?: string; | ((name: string) => Promise<string>);
serverIndex?: number; username?: string;
baseOptions?: any; password?: string;
formDataCtor?: new () => any; accessToken?:
| string
| Promise<string>
| ((name?: string, scopes?: string[]) => string)
| ((name?: string, scopes?: string[]) => Promise<string>);
basePath?: string;
serverIndex?: number;
baseOptions?: any;
formDataCtor?: new () => any;
} }
export class Configuration { export class Configuration {
/** /**
* parameter for apiKey security * parameter for apiKey security
* @param name security name * @param name security name
* @memberof Configuration * @memberof Configuration
*/ */
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>); apiKey?:
/** | string
* parameter for basic security | Promise<string>
* | ((name: string) => string)
* @type {string} | ((name: string) => Promise<string>);
* @memberof Configuration /**
*/ * parameter for basic security
username?: string; *
/** * @type {string}
* parameter for basic security * @memberof Configuration
* */
* @type {string} username?: string;
* @memberof Configuration /**
*/ * parameter for basic security
password?: string; *
/** * @type {string}
* parameter for oauth2 security * @memberof Configuration
* @param name security name */
* @param scopes oauth2 scope password?: string;
* @memberof Configuration /**
*/ * parameter for oauth2 security
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>); * @param name security name
/** * @param scopes oauth2 scope
* override base path * @memberof Configuration
* */
* @type {string} accessToken?:
* @memberof Configuration | string
*/ | Promise<string>
basePath?: string; | ((name?: string, scopes?: string[]) => string)
/** | ((name?: string, scopes?: string[]) => Promise<string>);
* override server index /**
* * override base path
* @type {number} *
* @memberof Configuration * @type {string}
*/ * @memberof Configuration
serverIndex?: number; */
/** basePath?: string;
* base options for axios calls /**
* * override server index
* @type {any} *
* @memberof Configuration * @type {number}
*/ * @memberof Configuration
baseOptions?: any; */
/** serverIndex?: number;
* The FormData constructor that will be used to create multipart form data /**
* requests. You can inject this here so that execution environments that * base options for axios calls
* do not support the FormData class can still run the generated client. *
* * @type {any}
* @type {new () => FormData} * @memberof Configuration
*/ */
formDataCtor?: new () => any; baseOptions?: any;
/**
* The FormData constructor that will be used to create multipart form data
* requests. You can inject this here so that execution environments that
* do not support the FormData class can still run the generated client.
*
* @type {new () => FormData}
*/
formDataCtor?: new () => any;
constructor(param: ConfigurationParameters = {}) { constructor(param: ConfigurationParameters = {}) {
this.apiKey = param.apiKey; this.apiKey = param.apiKey;
this.username = param.username; this.username = param.username;
this.password = param.password; this.password = param.password;
this.accessToken = param.accessToken; this.accessToken = param.accessToken;
this.basePath = param.basePath; this.basePath = param.basePath;
this.serverIndex = param.serverIndex; this.serverIndex = param.serverIndex;
this.baseOptions = param.baseOptions; this.baseOptions = param.baseOptions;
this.formDataCtor = param.formDataCtor; this.formDataCtor = param.formDataCtor;
} }
/** /**
* Check if the given MIME is a JSON MIME. * Check if the given MIME is a JSON MIME.
* JSON MIME examples: * JSON MIME examples:
* application/json * application/json
* application/json; charset=UTF8 * application/json; charset=UTF8
* APPLICATION/JSON * APPLICATION/JSON
* application/vnd.company+json * application/vnd.company+json
* @param mime - MIME (Multipurpose Internet Mail Extensions) * @param mime - MIME (Multipurpose Internet Mail Extensions)
* @return True if the given MIME is JSON, false otherwise. * @return True if the given MIME is JSON, false otherwise.
*/ */
public isJsonMime(mime: string): boolean { public isJsonMime(mime: string): boolean {
const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); const jsonMime: RegExp = new RegExp(
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); "^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$",
} "i",
);
return (
mime !== null &&
(jsonMime.test(mime) ||
mime.toLowerCase() === "application/json-patch+json")
);
}
} }

View File

@ -5,14 +5,12 @@
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
* *
* The version of the OpenAPI document: 1.0 * The version of the OpenAPI document: 1.0
* *
* *
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech * https://openapi-generator.tech
* Do not edit the class manually. * Do not edit the class manually.
*/ */
export * from "./api"; export * from "./api";
export * from "./configuration"; export * from "./configuration";

424
src/auto-imports.d.ts vendored
View File

@ -5,187 +5,271 @@
// Generated by unplugin-auto-import // Generated by unplugin-auto-import
export {} export {}
declare global { declare global {
const EffectScope: typeof import('vue')['EffectScope'] const EffectScope: (typeof import("vue"))["EffectScope"];
const computed: typeof import('vue')['computed'] const computed: (typeof import("vue"))["computed"];
const createApp: typeof import('vue')['createApp'] const createApp: (typeof import("vue"))["createApp"];
const customRef: typeof import('vue')['customRef'] const customRef: (typeof import("vue"))["customRef"];
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] const defineAsyncComponent: (typeof import("vue"))["defineAsyncComponent"];
const defineComponent: typeof import('vue')['defineComponent'] const defineComponent: (typeof import("vue"))["defineComponent"];
const effectScope: typeof import('vue')['effectScope'] const effectScope: (typeof import("vue"))["effectScope"];
const getCurrentInstance: typeof import('vue')['getCurrentInstance'] const getCurrentInstance: (typeof import("vue"))["getCurrentInstance"];
const getCurrentScope: typeof import('vue')['getCurrentScope'] const getCurrentScope: (typeof import("vue"))["getCurrentScope"];
const h: typeof import('vue')['h'] const h: (typeof import("vue"))["h"];
const inject: typeof import('vue')['inject'] const inject: (typeof import("vue"))["inject"];
const isProxy: typeof import('vue')['isProxy'] const isProxy: (typeof import("vue"))["isProxy"];
const isReactive: typeof import('vue')['isReactive'] const isReactive: (typeof import("vue"))["isReactive"];
const isReadonly: typeof import('vue')['isReadonly'] const isReadonly: (typeof import("vue"))["isReadonly"];
const isRef: typeof import('vue')['isRef'] const isRef: (typeof import("vue"))["isRef"];
const markRaw: typeof import('vue')['markRaw'] const markRaw: (typeof import("vue"))["markRaw"];
const nextTick: typeof import('vue')['nextTick'] const nextTick: (typeof import("vue"))["nextTick"];
const onActivated: typeof import('vue')['onActivated'] const onActivated: (typeof import("vue"))["onActivated"];
const onBeforeMount: typeof import('vue')['onBeforeMount'] const onBeforeMount: (typeof import("vue"))["onBeforeMount"];
const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] const onBeforeRouteLeave: (typeof import("vue-router"))["onBeforeRouteLeave"];
const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] const onBeforeRouteUpdate: (typeof import("vue-router"))["onBeforeRouteUpdate"];
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] const onBeforeUnmount: (typeof import("vue"))["onBeforeUnmount"];
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] const onBeforeUpdate: (typeof import("vue"))["onBeforeUpdate"];
const onDeactivated: typeof import('vue')['onDeactivated'] const onDeactivated: (typeof import("vue"))["onDeactivated"];
const onErrorCaptured: typeof import('vue')['onErrorCaptured'] const onErrorCaptured: (typeof import("vue"))["onErrorCaptured"];
const onMounted: typeof import('vue')['onMounted'] const onMounted: (typeof import("vue"))["onMounted"];
const onRenderTracked: typeof import('vue')['onRenderTracked'] const onRenderTracked: (typeof import("vue"))["onRenderTracked"];
const onRenderTriggered: typeof import('vue')['onRenderTriggered'] const onRenderTriggered: (typeof import("vue"))["onRenderTriggered"];
const onScopeDispose: typeof import('vue')['onScopeDispose'] const onScopeDispose: (typeof import("vue"))["onScopeDispose"];
const onServerPrefetch: typeof import('vue')['onServerPrefetch'] const onServerPrefetch: (typeof import("vue"))["onServerPrefetch"];
const onUnmounted: typeof import('vue')['onUnmounted'] const onUnmounted: (typeof import("vue"))["onUnmounted"];
const onUpdated: typeof import('vue')['onUpdated'] const onUpdated: (typeof import("vue"))["onUpdated"];
const provide: typeof import('vue')['provide'] const provide: (typeof import("vue"))["provide"];
const reactive: typeof import('vue')['reactive'] const reactive: (typeof import("vue"))["reactive"];
const readonly: typeof import('vue')['readonly'] const readonly: (typeof import("vue"))["readonly"];
const ref: typeof import('vue')['ref'] const ref: (typeof import("vue"))["ref"];
const resolveComponent: typeof import('vue')['resolveComponent'] const resolveComponent: (typeof import("vue"))["resolveComponent"];
const shallowReactive: typeof import('vue')['shallowReactive'] const shallowReactive: (typeof import("vue"))["shallowReactive"];
const shallowReadonly: typeof import('vue')['shallowReadonly'] const shallowReadonly: (typeof import("vue"))["shallowReadonly"];
const shallowRef: typeof import('vue')['shallowRef'] const shallowRef: (typeof import("vue"))["shallowRef"];
const toRaw: typeof import('vue')['toRaw'] const toRaw: (typeof import("vue"))["toRaw"];
const toRef: typeof import('vue')['toRef'] const toRef: (typeof import("vue"))["toRef"];
const toRefs: typeof import('vue')['toRefs'] const toRefs: (typeof import("vue"))["toRefs"];
const toValue: typeof import('vue')['toValue'] const toValue: (typeof import("vue"))["toValue"];
const triggerRef: typeof import('vue')['triggerRef'] const triggerRef: (typeof import("vue"))["triggerRef"];
const unref: typeof import('vue')['unref'] const unref: (typeof import("vue"))["unref"];
const useAttrs: typeof import('vue')['useAttrs'] const useAttrs: (typeof import("vue"))["useAttrs"];
const useCssModule: typeof import('vue')['useCssModule'] const useCssModule: (typeof import("vue"))["useCssModule"];
const useCssVars: typeof import('vue')['useCssVars'] const useCssVars: (typeof import("vue"))["useCssVars"];
const useLink: typeof import('vue-router')['useLink'] const useLink: (typeof import("vue-router"))["useLink"];
const useRoute: typeof import('vue-router/auto')['useRoute'] const useRoute: (typeof import("vue-router/auto"))["useRoute"];
const useRouter: typeof import('vue-router/auto')['useRouter'] const useRouter: (typeof import("vue-router/auto"))["useRouter"];
const useSlots: typeof import('vue')['useSlots'] const useSlots: (typeof import("vue"))["useSlots"];
const watch: typeof import('vue')['watch'] const watch: (typeof import("vue"))["watch"];
const watchEffect: typeof import('vue')['watchEffect'] const watchEffect: (typeof import("vue"))["watchEffect"];
const watchPostEffect: typeof import('vue')['watchPostEffect'] const watchPostEffect: (typeof import("vue"))["watchPostEffect"];
const watchSyncEffect: typeof import('vue')['watchSyncEffect'] const watchSyncEffect: (typeof import("vue"))["watchSyncEffect"];
} }
// for type re-export // for type re-export
declare global { declare global {
// @ts-ignore // @ts-ignore
export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' export type {
import('vue') Component,
ComponentPublicInstance,
ComputedRef,
ExtractDefaultPropTypes,
ExtractPropTypes,
ExtractPublicPropTypes,
InjectionKey,
PropType,
Ref,
VNode,
WritableComputedRef,
} from "vue";
import("vue");
} }
// for vue template auto import // for vue template auto import
import { UnwrapRef } from 'vue' import { UnwrapRef } from "vue";
declare module 'vue' { declare module "vue" {
interface GlobalComponents {} interface GlobalComponents {}
interface ComponentCustomProperties { interface ComponentCustomProperties {
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']> readonly EffectScope: UnwrapRef<(typeof import("vue"))["EffectScope"]>;
readonly computed: UnwrapRef<typeof import('vue')['computed']> readonly computed: UnwrapRef<(typeof import("vue"))["computed"]>;
readonly createApp: UnwrapRef<typeof import('vue')['createApp']> readonly createApp: UnwrapRef<(typeof import("vue"))["createApp"]>;
readonly customRef: UnwrapRef<typeof import('vue')['customRef']> readonly customRef: UnwrapRef<(typeof import("vue"))["customRef"]>;
readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']> readonly defineAsyncComponent: UnwrapRef<
readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']> (typeof import("vue"))["defineAsyncComponent"]
readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']> >;
readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']> readonly defineComponent: UnwrapRef<
readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']> (typeof import("vue"))["defineComponent"]
readonly h: UnwrapRef<typeof import('vue')['h']> >;
readonly inject: UnwrapRef<typeof import('vue')['inject']> readonly effectScope: UnwrapRef<(typeof import("vue"))["effectScope"]>;
readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']> readonly getCurrentInstance: UnwrapRef<
readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']> (typeof import("vue"))["getCurrentInstance"]
readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']> >;
readonly isRef: UnwrapRef<typeof import('vue')['isRef']> readonly getCurrentScope: UnwrapRef<
readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']> (typeof import("vue"))["getCurrentScope"]
readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']> >;
readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']> readonly h: UnwrapRef<(typeof import("vue"))["h"]>;
readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']> readonly inject: UnwrapRef<(typeof import("vue"))["inject"]>;
readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']> readonly isProxy: UnwrapRef<(typeof import("vue"))["isProxy"]>;
readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']> readonly isReactive: UnwrapRef<(typeof import("vue"))["isReactive"]>;
readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']> readonly isReadonly: UnwrapRef<(typeof import("vue"))["isReadonly"]>;
readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']> readonly isRef: UnwrapRef<(typeof import("vue"))["isRef"]>;
readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']> readonly markRaw: UnwrapRef<(typeof import("vue"))["markRaw"]>;
readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']> readonly nextTick: UnwrapRef<(typeof import("vue"))["nextTick"]>;
readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']> readonly onActivated: UnwrapRef<(typeof import("vue"))["onActivated"]>;
readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']> readonly onBeforeMount: UnwrapRef<(typeof import("vue"))["onBeforeMount"]>;
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']> readonly onBeforeUnmount: UnwrapRef<
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']> (typeof import("vue"))["onBeforeUnmount"]
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']> >;
readonly provide: UnwrapRef<typeof import('vue')['provide']> readonly onBeforeUpdate: UnwrapRef<
readonly reactive: UnwrapRef<typeof import('vue')['reactive']> (typeof import("vue"))["onBeforeUpdate"]
readonly readonly: UnwrapRef<typeof import('vue')['readonly']> >;
readonly ref: UnwrapRef<typeof import('vue')['ref']> readonly onDeactivated: UnwrapRef<(typeof import("vue"))["onDeactivated"]>;
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']> readonly onErrorCaptured: UnwrapRef<
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']> (typeof import("vue"))["onErrorCaptured"]
readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']> >;
readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']> readonly onMounted: UnwrapRef<(typeof import("vue"))["onMounted"]>;
readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']> readonly onRenderTracked: UnwrapRef<
readonly toRef: UnwrapRef<typeof import('vue')['toRef']> (typeof import("vue"))["onRenderTracked"]
readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']> >;
readonly toValue: UnwrapRef<typeof import('vue')['toValue']> readonly onRenderTriggered: UnwrapRef<
readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']> (typeof import("vue"))["onRenderTriggered"]
readonly unref: UnwrapRef<typeof import('vue')['unref']> >;
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']> readonly onScopeDispose: UnwrapRef<
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']> (typeof import("vue"))["onScopeDispose"]
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']> >;
readonly useRoute: UnwrapRef<typeof import('vue-router/auto')['useRoute']> readonly onServerPrefetch: UnwrapRef<
readonly useRouter: UnwrapRef<typeof import('vue-router/auto')['useRouter']> (typeof import("vue"))["onServerPrefetch"]
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']> >;
readonly watch: UnwrapRef<typeof import('vue')['watch']> readonly onUnmounted: UnwrapRef<(typeof import("vue"))["onUnmounted"]>;
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']> readonly onUpdated: UnwrapRef<(typeof import("vue"))["onUpdated"]>;
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']> readonly provide: UnwrapRef<(typeof import("vue"))["provide"]>;
readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']> readonly reactive: UnwrapRef<(typeof import("vue"))["reactive"]>;
readonly readonly: UnwrapRef<(typeof import("vue"))["readonly"]>;
readonly ref: UnwrapRef<(typeof import("vue"))["ref"]>;
readonly resolveComponent: UnwrapRef<
(typeof import("vue"))["resolveComponent"]
>;
readonly shallowReactive: UnwrapRef<
(typeof import("vue"))["shallowReactive"]
>;
readonly shallowReadonly: UnwrapRef<
(typeof import("vue"))["shallowReadonly"]
>;
readonly shallowRef: UnwrapRef<(typeof import("vue"))["shallowRef"]>;
readonly toRaw: UnwrapRef<(typeof import("vue"))["toRaw"]>;
readonly toRef: UnwrapRef<(typeof import("vue"))["toRef"]>;
readonly toRefs: UnwrapRef<(typeof import("vue"))["toRefs"]>;
readonly toValue: UnwrapRef<(typeof import("vue"))["toValue"]>;
readonly triggerRef: UnwrapRef<(typeof import("vue"))["triggerRef"]>;
readonly unref: UnwrapRef<(typeof import("vue"))["unref"]>;
readonly useAttrs: UnwrapRef<(typeof import("vue"))["useAttrs"]>;
readonly useCssModule: UnwrapRef<(typeof import("vue"))["useCssModule"]>;
readonly useCssVars: UnwrapRef<(typeof import("vue"))["useCssVars"]>;
readonly useRoute: UnwrapRef<
(typeof import("vue-router/auto"))["useRoute"]
>;
readonly useRouter: UnwrapRef<
(typeof import("vue-router/auto"))["useRouter"]
>;
readonly useSlots: UnwrapRef<(typeof import("vue"))["useSlots"]>;
readonly watch: UnwrapRef<(typeof import("vue"))["watch"]>;
readonly watchEffect: UnwrapRef<(typeof import("vue"))["watchEffect"]>;
readonly watchPostEffect: UnwrapRef<
(typeof import("vue"))["watchPostEffect"]
>;
readonly watchSyncEffect: UnwrapRef<
(typeof import("vue"))["watchSyncEffect"]
>;
} }
} }
declare module '@vue/runtime-core' { declare module "@vue/runtime-core" {
interface GlobalComponents {} interface GlobalComponents {}
interface ComponentCustomProperties { interface ComponentCustomProperties {
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']> readonly EffectScope: UnwrapRef<(typeof import("vue"))["EffectScope"]>;
readonly computed: UnwrapRef<typeof import('vue')['computed']> readonly computed: UnwrapRef<(typeof import("vue"))["computed"]>;
readonly createApp: UnwrapRef<typeof import('vue')['createApp']> readonly createApp: UnwrapRef<(typeof import("vue"))["createApp"]>;
readonly customRef: UnwrapRef<typeof import('vue')['customRef']> readonly customRef: UnwrapRef<(typeof import("vue"))["customRef"]>;
readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']> readonly defineAsyncComponent: UnwrapRef<
readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']> (typeof import("vue"))["defineAsyncComponent"]
readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']> >;
readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']> readonly defineComponent: UnwrapRef<
readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']> (typeof import("vue"))["defineComponent"]
readonly h: UnwrapRef<typeof import('vue')['h']> >;
readonly inject: UnwrapRef<typeof import('vue')['inject']> readonly effectScope: UnwrapRef<(typeof import("vue"))["effectScope"]>;
readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']> readonly getCurrentInstance: UnwrapRef<
readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']> (typeof import("vue"))["getCurrentInstance"]
readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']> >;
readonly isRef: UnwrapRef<typeof import('vue')['isRef']> readonly getCurrentScope: UnwrapRef<
readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']> (typeof import("vue"))["getCurrentScope"]
readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']> >;
readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']> readonly h: UnwrapRef<(typeof import("vue"))["h"]>;
readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']> readonly inject: UnwrapRef<(typeof import("vue"))["inject"]>;
readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']> readonly isProxy: UnwrapRef<(typeof import("vue"))["isProxy"]>;
readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']> readonly isReactive: UnwrapRef<(typeof import("vue"))["isReactive"]>;
readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']> readonly isReadonly: UnwrapRef<(typeof import("vue"))["isReadonly"]>;
readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']> readonly isRef: UnwrapRef<(typeof import("vue"))["isRef"]>;
readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']> readonly markRaw: UnwrapRef<(typeof import("vue"))["markRaw"]>;
readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']> readonly nextTick: UnwrapRef<(typeof import("vue"))["nextTick"]>;
readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']> readonly onActivated: UnwrapRef<(typeof import("vue"))["onActivated"]>;
readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']> readonly onBeforeMount: UnwrapRef<(typeof import("vue"))["onBeforeMount"]>;
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']> readonly onBeforeUnmount: UnwrapRef<
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']> (typeof import("vue"))["onBeforeUnmount"]
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']> >;
readonly provide: UnwrapRef<typeof import('vue')['provide']> readonly onBeforeUpdate: UnwrapRef<
readonly reactive: UnwrapRef<typeof import('vue')['reactive']> (typeof import("vue"))["onBeforeUpdate"]
readonly readonly: UnwrapRef<typeof import('vue')['readonly']> >;
readonly ref: UnwrapRef<typeof import('vue')['ref']> readonly onDeactivated: UnwrapRef<(typeof import("vue"))["onDeactivated"]>;
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']> readonly onErrorCaptured: UnwrapRef<
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']> (typeof import("vue"))["onErrorCaptured"]
readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']> >;
readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']> readonly onMounted: UnwrapRef<(typeof import("vue"))["onMounted"]>;
readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']> readonly onRenderTracked: UnwrapRef<
readonly toRef: UnwrapRef<typeof import('vue')['toRef']> (typeof import("vue"))["onRenderTracked"]
readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']> >;
readonly toValue: UnwrapRef<typeof import('vue')['toValue']> readonly onRenderTriggered: UnwrapRef<
readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']> (typeof import("vue"))["onRenderTriggered"]
readonly unref: UnwrapRef<typeof import('vue')['unref']> >;
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']> readonly onScopeDispose: UnwrapRef<
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']> (typeof import("vue"))["onScopeDispose"]
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']> >;
readonly useRoute: UnwrapRef<typeof import('vue-router/auto')['useRoute']> readonly onServerPrefetch: UnwrapRef<
readonly useRouter: UnwrapRef<typeof import('vue-router/auto')['useRouter']> (typeof import("vue"))["onServerPrefetch"]
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']> >;
readonly watch: UnwrapRef<typeof import('vue')['watch']> readonly onUnmounted: UnwrapRef<(typeof import("vue"))["onUnmounted"]>;
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']> readonly onUpdated: UnwrapRef<(typeof import("vue"))["onUpdated"]>;
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']> readonly provide: UnwrapRef<(typeof import("vue"))["provide"]>;
readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']> readonly reactive: UnwrapRef<(typeof import("vue"))["reactive"]>;
readonly readonly: UnwrapRef<(typeof import("vue"))["readonly"]>;
readonly ref: UnwrapRef<(typeof import("vue"))["ref"]>;
readonly resolveComponent: UnwrapRef<
(typeof import("vue"))["resolveComponent"]
>;
readonly shallowReactive: UnwrapRef<
(typeof import("vue"))["shallowReactive"]
>;
readonly shallowReadonly: UnwrapRef<
(typeof import("vue"))["shallowReadonly"]
>;
readonly shallowRef: UnwrapRef<(typeof import("vue"))["shallowRef"]>;
readonly toRaw: UnwrapRef<(typeof import("vue"))["toRaw"]>;
readonly toRef: UnwrapRef<(typeof import("vue"))["toRef"]>;
readonly toRefs: UnwrapRef<(typeof import("vue"))["toRefs"]>;
readonly toValue: UnwrapRef<(typeof import("vue"))["toValue"]>;
readonly triggerRef: UnwrapRef<(typeof import("vue"))["triggerRef"]>;
readonly unref: UnwrapRef<(typeof import("vue"))["unref"]>;
readonly useAttrs: UnwrapRef<(typeof import("vue"))["useAttrs"]>;
readonly useCssModule: UnwrapRef<(typeof import("vue"))["useCssModule"]>;
readonly useCssVars: UnwrapRef<(typeof import("vue"))["useCssVars"]>;
readonly useRoute: UnwrapRef<
(typeof import("vue-router/auto"))["useRoute"]
>;
readonly useRouter: UnwrapRef<
(typeof import("vue-router/auto"))["useRouter"]
>;
readonly useSlots: UnwrapRef<(typeof import("vue"))["useSlots"]>;
readonly watch: UnwrapRef<(typeof import("vue"))["watch"]>;
readonly watchEffect: UnwrapRef<(typeof import("vue"))["watchEffect"]>;
readonly watchPostEffect: UnwrapRef<
(typeof import("vue"))["watchPostEffect"]
>;
readonly watchSyncEffect: UnwrapRef<
(typeof import("vue"))["watchSyncEffect"]
>;
} }
} }

2
src/components.d.ts vendored
View File

@ -2,7 +2,7 @@
// @ts-nocheck // @ts-nocheck
// Generated by unplugin-vue-components // Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399 // Read more: https://github.com/vuejs/core/pull/3399
export {} export {};
/* prettier-ignore */ /* prettier-ignore */
declare module 'vue' { declare module 'vue' {

View File

@ -5,24 +5,14 @@
<v-btn-group rounded="lg"> <v-btn-group rounded="lg">
<v-btn density="default" icon="mdi-close" @click="drawer = !drawer" /> <v-btn density="default" icon="mdi-close" @click="drawer = !drawer" />
<v-btn <v-btn density="default" icon="mdi-plus" title="创建助理" />
density="default"
icon="mdi-plus"
title="创建助理"
/>
</v-btn-group> </v-btn-group>
</div> </div>
<!-- <v-divider></v-divider> --> <!-- <v-divider></v-divider> -->
<v-list density="compact" nav> <v-list density="compact" nav>
<v-list-item prepend-icon="mdi-home" rounded="lg" title="首页" to="/" />
<v-list-item
prepend-icon="mdi-home"
rounded="lg"
title="首页"
to="/"
/>
<v-list-item <v-list-item
prepend-icon="mdi-home" prepend-icon="mdi-home"
@ -38,7 +28,6 @@
to="/ping" to="/ping"
/> />
<v-list-item <v-list-item
v-show="!userStore.logined" v-show="!userStore.logined"
prepend-icon="mdi-account" prepend-icon="mdi-account"
@ -46,7 +35,6 @@
title="登录" title="登录"
to="/auth/login" to="/auth/login"
/> />
</v-list> </v-list>
</v-navigation-drawer> </v-navigation-drawer>

View File

@ -16,7 +16,7 @@ The following example assumes a component located at `src/components/MyComponent
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
// //
</script> </script>
``` ```
@ -30,6 +30,6 @@ When your template is rendered, the component's import will automatically be inl
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import MyComponent from '@/components/MyComponent.vue' import MyComponent from "@/components/MyComponent.vue";
</script> </script>
``` ```

View File

@ -7,9 +7,19 @@
// import { useConfigStore } from "@/stores/config"; // import { useConfigStore } from "@/stores/config";
import AppBar from "@/components/AppBar.vue"; import AppBar from "@/components/AppBar.vue";
import View from "@/components/View.vue"; import View from "@/components/View.vue";
import { useTheme } from "vuetify";
// const configStore = useConfigStore(); const theme = useTheme();
// const drawer = ref(false); //
// const logined = ref(false); function updateTheme() {
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
theme.global.name.value = prefersDark ? "dark" : "light";
}
updateTheme();
window
.matchMedia("(prefers-color-scheme: dark)")
.addEventListener("change", updateTheme);
</script> </script>

View File

@ -5,16 +5,16 @@
*/ */
// Plugins // Plugins
import { registerPlugins } from '@/plugins' import { registerPlugins } from "@/plugins";
// Components // Components
import App from './App.vue' import App from "./App.vue";
// Composables // Composables
import { createApp } from 'vue' import { createApp } from "vue";
const app = createApp(App) const app = createApp(App);
registerPlugins(app) registerPlugins(app);
app.mount('#app') app.mount("#app");

View File

@ -6,9 +6,21 @@
<v-card-title class="headline">创建助理</v-card-title> <v-card-title class="headline">创建助理</v-card-title>
<v-card-text> <v-card-text>
<v-form ref="form"> <v-form ref="form">
<v-text-field v-model="name" label="助理名称" required></v-text-field> <v-text-field
<v-text-field v-model="description" label="描述你的助理" required></v-text-field> v-model="name"
<v-textarea v-model="prompt" label="助理提示语" required></v-textarea> label="助理名称"
required
></v-text-field>
<v-text-field
v-model="description"
label="描述你的助理"
required
></v-text-field>
<v-textarea
v-model="prompt"
label="助理提示语"
required
></v-textarea>
<v-btn @click="createAssistant" color="primary">创建</v-btn> <v-btn @click="createAssistant" color="primary">创建</v-btn>
</v-form> </v-form>
</v-card-text> </v-card-text>
@ -16,35 +28,40 @@
</v-col> </v-col>
<v-col cols="12" md="6"> <v-col cols="12" md="6">
<div> <div>
<h3>创建你的助理</h3> <h3>创建你的助理</h3>
<p>每个助理可以绑定工具工具可以让你的助理具有访问外界或者操作一些装置的能力</p> <p>
<p>能用成什么样取决于你的想象</p> 每个助理可以绑定工具工具可以让你的助理具有访问外界或者操作一些装置的能力
</p>
<p>能用成什么样取决于你的想象</p>
</div> </div>
<div v-if="createdID != 0"> <div v-if="createdID != 0">
<h3>你刚刚创建了一个助理</h3> <h3>你刚刚创建了一个助理</h3>
<p>你的助理ID是{{ createdID }}</p> <p>你的助理ID是{{ createdID }}</p>
<p>回到助理页面开始设置它</p> <p>回到助理页面开始设置它</p>
</div> </div>
</v-col> </v-col>
</v-row> </v-row>
</v-container> </v-container>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref } from 'vue'; import { ref } from "vue";
import { api } from '@/plugins/api'; import { api } from "@/plugins/api";
const name = ref(''); const name = ref("");
const prompt = ref(''); const prompt = ref("");
const description = ref(''); const description = ref("");
const createdID = ref(0); const createdID = ref(0);
const createAssistant = async () => { const createAssistant = async () => {
try { try {
let assistant = await api.Assistant.apiV1AssistantsPost({ name: name.value, prompt: prompt.value, description: description.value }); let assistant = await api.Assistant.apiV1AssistantsPost({
prompt.value = ''; name: name.value,
prompt: prompt.value,
description: description.value,
});
prompt.value = "";
createdID.value = assistant.data.data?.id ?? 0; createdID.value = assistant.data.data?.id ?? 0;
} catch (error) { } catch (error) {
console.error(error); console.error(error);
@ -55,4 +72,4 @@ const createAssistant = async () => {
<style scoped> <style scoped>
/* 添加样式 */ /* 添加样式 */
</style> </style>

View File

@ -37,9 +37,7 @@
<v-dialog v-model="dialog" persistent max-width="290"> <v-dialog v-model="dialog" persistent max-width="290">
<v-card> <v-card>
<v-card-title class="headline">确认删除</v-card-title> <v-card-title class="headline">确认删除</v-card-title>
<v-card-text <v-card-text>您确定要删除这个助理吗</v-card-text>
>您确定要删除这个助理吗</v-card-text
>
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-btn color="green darken-1" text @click="dialog = false">取消</v-btn> <v-btn color="green darken-1" text @click="dialog = false">取消</v-btn>

View File

@ -14,37 +14,32 @@ const userStore = useUserStore();
let discovery = await axios.get(configStore.oauth_discovery_url); let discovery = await axios.get(configStore.oauth_discovery_url);
let local_code_verifier = localStorage.getItem(configStore.oauth_storage_key) let local_code_verifier = localStorage.getItem(configStore.oauth_storage_key);
// code // code
let code = new URLSearchParams(window.location.search).get("code"); let code = new URLSearchParams(window.location.search).get("code");
let q = new URLSearchParams({ let q = new URLSearchParams({
client_id: configStore.oauth_client_id, client_id: configStore.oauth_client_id,
grant_type: 'authorization_code', grant_type: "authorization_code",
redirect_uri: configStore.oauth_callback_url, redirect_uri: configStore.oauth_callback_url,
code_verifier: local_code_verifier || '', code_verifier: local_code_verifier || "",
code: code || '', code: code || "",
}) });
const tokenEndpoint = discovery.data.token_endpoint const tokenEndpoint = discovery.data.token_endpoint;
const r = await axios.post(tokenEndpoint, q) const r = await axios.post(tokenEndpoint, q);
userStore.access_token = r.data.access_token;
userStore.access_token = r.data.access_token userStore.refresh_token = r.data.refresh_token;
userStore.refresh_token = r.data.refresh_token
userStore.login( userStore.login(
r.data.id_token, r.data.id_token,
r.data.access_token, r.data.access_token,
r.data.refresh_token, r.data.refresh_token,
r.data.expires_in, r.data.expires_in,
) );
// / // /
router.push('/') router.push("/");
</script> </script>

View File

@ -9,12 +9,12 @@ import axios from "axios";
import { useConfigStore } from "@/stores/config"; import { useConfigStore } from "@/stores/config";
const configStore = useConfigStore(); const configStore = useConfigStore();
let discovery = await axios.get(configStore.oauth_discovery_url); let discovery = await axios.get(configStore.oauth_discovery_url);
function generateRandomString(length: number) { function generateRandomString(length: number) {
let text = ""; let text = "";
let possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; let possible =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (let i = 0; i < length; i++) { for (let i = 0; i < length; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length)); text += possible.charAt(Math.floor(Math.random() * possible.length));
@ -24,11 +24,15 @@ function generateRandomString(length: number) {
} }
async function generateCodeChallenge(codeVerifier: string) { async function generateCodeChallenge(codeVerifier: string) {
let digest = await crypto.subtle.digest("SHA-256", let digest = await crypto.subtle.digest(
new TextEncoder().encode(codeVerifier)); "SHA-256",
new TextEncoder().encode(codeVerifier),
);
return btoa(String.fromCharCode(...new Uint8Array(digest))) return btoa(String.fromCharCode(...new Uint8Array(digest)))
.replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_') .replace(/=/g, "")
.replace(/\+/g, "-")
.replace(/\//g, "_");
} }
const codeVerifier = generateRandomString(128); const codeVerifier = generateRandomString(128);
@ -46,7 +50,5 @@ const query = new URLSearchParams({
code_challenge_method: "S256", code_challenge_method: "S256",
}).toString(); }).toString();
window.location.href = discovery.data.authorization_endpoint + "?" + query; window.location.href = discovery.data.authorization_endpoint + "?" + query;
</script> </script>

View File

@ -24,19 +24,13 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
console.log("this is index");
import { useUserStore } from "@/stores/user";
console.log("this is index")
import { useUserStore } from '@/stores/user';
const userStore = useUserStore(); const userStore = useUserStore();
function refresh() { function refresh() {
userStore.refresh() userStore.refresh();
console.log('refresh') console.log("refresh");
} }
</script> </script>

View File

@ -16,9 +16,8 @@ const conf = new Configuration();
conf.basePath = configStore.backend; conf.basePath = configStore.backend;
conf.apiKey = () => { conf.apiKey = () => {
return "Bearer " + userStore.id_token; return "Bearer " + userStore.id_token;
} };
// userStore.$subscribe((mutation, state) => { // userStore.$subscribe((mutation, state) => {
// console.log(mutation); // console.log(mutation);

View File

@ -5,16 +5,13 @@
*/ */
// Plugins // Plugins
import vuetify from './vuetify' import vuetify from "./vuetify";
import pinia from '../stores' import pinia from "../stores";
import router from '../router' import router from "../router";
// Types // Types
import type { App } from 'vue' import type { App } from "vue";
export function registerPlugins (app: App) { export function registerPlugins(app: App) {
app app.use(vuetify).use(router).use(pinia);
.use(vuetify)
.use(router)
.use(pinia)
} }

View File

@ -5,15 +5,15 @@
*/ */
// Styles // Styles
import '@mdi/font/css/materialdesignicons.css' import "@mdi/font/css/materialdesignicons.css";
import 'vuetify/styles' import "vuetify/styles";
// Composables // Composables
import { createVuetify } from 'vuetify' import { createVuetify } from "vuetify";
// https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides // https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides
export default createVuetify({ export default createVuetify({
theme: { theme: {
defaultTheme: 'dark', defaultTheme: "dark",
}, },
}) });

View File

@ -5,32 +5,32 @@
*/ */
// Composables // Composables
import { createRouter, createWebHistory } from 'vue-router/auto' import { createRouter, createWebHistory } from "vue-router/auto";
import { setupLayouts } from 'virtual:generated-layouts' import { setupLayouts } from "virtual:generated-layouts";
import { routes } from 'vue-router/auto-routes' import { routes } from "vue-router/auto-routes";
const router = createRouter({ const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL), history: createWebHistory(import.meta.env.BASE_URL),
routes: setupLayouts(routes), routes: setupLayouts(routes),
}) });
// Workaround for https://github.com/vitejs/vite/issues/11804 // Workaround for https://github.com/vitejs/vite/issues/11804
router.onError((err, to) => { router.onError((err, to) => {
if (err?.message?.includes?.('Failed to fetch dynamically imported module')) { if (err?.message?.includes?.("Failed to fetch dynamically imported module")) {
if (!localStorage.getItem('vuetify:dynamic-reload')) { if (!localStorage.getItem("vuetify:dynamic-reload")) {
console.log('Reloading page to fix dynamic import error') console.log("Reloading page to fix dynamic import error");
localStorage.setItem('vuetify:dynamic-reload', 'true') localStorage.setItem("vuetify:dynamic-reload", "true");
location.assign(to.fullPath) location.assign(to.fullPath);
} else { } else {
console.error('Dynamic import error, reloading page did not fix it', err) console.error("Dynamic import error, reloading page did not fix it", err);
} }
} else { } else {
console.error(err) console.error(err);
} }
}) });
router.isReady().then(() => { router.isReady().then(() => {
localStorage.removeItem('vuetify:dynamic-reload') localStorage.removeItem("vuetify:dynamic-reload");
}) });
export default router export default router;

View File

@ -1,8 +1,8 @@
// Utilities // Utilities
import { defineStore } from 'pinia' import { defineStore } from "pinia";
export const useAppStore = defineStore('app', { export const useAppStore = defineStore("app", {
state: () => ({ state: () => ({
// //
}), }),
}) });

View File

@ -1,14 +1,15 @@
// Utilities // Utilities
import { defineStore } from 'pinia' import { defineStore } from "pinia";
export const useConfigStore = defineStore('config', { export const useConfigStore = defineStore("config", {
state: () => ({ state: () => ({
app_name: "Amber", app_name: "Amber",
oauth_discovery_url: "https://auth.leaflow.cn/.well-known/openid-configuration", oauth_discovery_url:
"https://auth.leaflow.cn/.well-known/openid-configuration",
oauth_client_id: "14", oauth_client_id: "14",
oauth_callback_url: "http://localhost:3000/auth/callback", oauth_callback_url: "http://localhost:3000/auth/callback",
oauth_storage_key: "code_verifier", oauth_storage_key: "code_verifier",
oauth_scope: "openid profile", oauth_scope: "openid profile",
backend: "http://localhost:8080" backend: "http://localhost:8080",
}), }),
}) });

View File

@ -1,10 +1,10 @@
// Utilities // Utilities
import { createPinia } from 'pinia' import { createPinia } from "pinia";
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
const pinia = createPinia() const pinia = createPinia();
pinia.use(piniaPluginPersistedstate) pinia.use(piniaPluginPersistedstate);
export default pinia export default pinia;

View File

@ -24,7 +24,7 @@ export const useUserStore = defineStore("user", {
id_token: string, id_token: string,
access_token: string, access_token: string,
refresh_token: string, refresh_token: string,
expired_at: number expired_at: number,
) { ) {
let id_token_parts = id_token.split("."); let id_token_parts = id_token.split(".");
let id_token_payload = JSON.parse(atob(id_token_parts[1])); let id_token_payload = JSON.parse(atob(id_token_parts[1]));
@ -77,7 +77,7 @@ export const useUserStore = defineStore("user", {
response.data.id_token, response.data.id_token,
response.data.access_token, response.data.access_token,
response.data.refresh_token, response.data.refresh_token,
response.data.expires_in response.data.expires_in,
); );
}) })
.catch((error) => { .catch((error) => {

8
src/vite-env.d.ts vendored
View File

@ -1,7 +1,7 @@
/// <reference types="vite/client" /> /// <reference types="vite/client" />
declare module '*.vue' { declare module "*.vue" {
import type { DefineComponent } from 'vue' import type { DefineComponent } from "vue";
const component: DefineComponent<{}, {}, any> const component: DefineComponent<{}, {}, any>;
export default component export default component;
} }

View File

@ -24,10 +24,7 @@
"isolatedModules": true, "isolatedModules": true,
"skipLibCheck": true "skipLibCheck": true
}, },
"include": [ "include": ["src/**/*", "src/**/*.vue"],
"src/**/*",
"src/**/*.vue"
],
"exclude": ["dist", "node_modules", "cypress"], "exclude": ["dist", "node_modules", "cypress"],
"references": [{ "path": "./tsconfig.node.json" }], "references": [{ "path": "./tsconfig.node.json" }]
} }

View File

@ -1,38 +1,38 @@
// Plugins // Plugins
import AutoImport from 'unplugin-auto-import/vite' import AutoImport from "unplugin-auto-import/vite";
import Components from 'unplugin-vue-components/vite' import Components from "unplugin-vue-components/vite";
import Fonts from 'unplugin-fonts/vite' import Fonts from "unplugin-fonts/vite";
import Layouts from 'vite-plugin-vue-layouts' import Layouts from "vite-plugin-vue-layouts";
import Vue from '@vitejs/plugin-vue' import Vue from "@vitejs/plugin-vue";
import VueRouter from 'unplugin-vue-router/vite' import VueRouter from "unplugin-vue-router/vite";
import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify' import Vuetify, { transformAssetUrls } from "vite-plugin-vuetify";
// Utilities // Utilities
import { defineConfig } from 'vite' import { defineConfig } from "vite";
import { fileURLToPath, URL } from 'node:url' import { fileURLToPath, URL } from "node:url";
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
plugins: [ plugins: [
VueRouter({ VueRouter({
dts: 'src/typed-router.d.ts', dts: "src/typed-router.d.ts",
}), }),
Layouts(), Layouts(),
AutoImport({ AutoImport({
imports: [ imports: [
'vue', "vue",
{ {
'vue-router/auto': ['useRoute', 'useRouter'], "vue-router/auto": ["useRoute", "useRouter"],
} },
], ],
dts: 'src/auto-imports.d.ts', dts: "src/auto-imports.d.ts",
eslintrc: { eslintrc: {
enabled: true, enabled: true,
}, },
vueTemplate: true, vueTemplate: true,
}), }),
Components({ Components({
dts: 'src/components.d.ts', dts: "src/components.d.ts",
}), }),
Vue({ Vue({
template: { transformAssetUrls }, template: { transformAssetUrls },
@ -41,34 +41,28 @@ export default defineConfig({
Vuetify({ Vuetify({
autoImport: true, autoImport: true,
styles: { styles: {
configFile: 'src/styles/settings.scss', configFile: "src/styles/settings.scss",
}, },
}), }),
Fonts({ Fonts({
google: { google: {
families: [ { families: [
name: 'Roboto', {
styles: 'wght@100;300;400;500;700;900', name: "Roboto",
}], styles: "wght@100;300;400;500;700;900",
},
],
}, },
}), }),
], ],
define: { 'process.env': {} }, define: { "process.env": {} },
resolve: { resolve: {
alias: { alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)), "@": fileURLToPath(new URL("./src", import.meta.url)),
}, },
extensions: [ extensions: [".js", ".json", ".jsx", ".mjs", ".ts", ".tsx", ".vue"],
'.js',
'.json',
'.jsx',
'.mjs',
'.ts',
'.tsx',
'.vue',
],
}, },
server: { server: {
port: 3000, port: 3000,
}, },
}) });

View File

@ -1289,6 +1289,11 @@ eslint-compat-utils@^0.5.1:
dependencies: dependencies:
semver "^7.5.4" semver "^7.5.4"
eslint-config-prettier@^9.1.0:
version "9.1.0"
resolved "https://mirrors.cloud.tencent.com/npm/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f"
integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
eslint-config-standard@^17.1.0: eslint-config-standard@^17.1.0:
version "17.1.0" version "17.1.0"
resolved "https://mirrors.cloud.tencent.com/npm/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" resolved "https://mirrors.cloud.tencent.com/npm/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975"
@ -2401,6 +2406,11 @@ prettier-linter-helpers@^1.0.0:
dependencies: dependencies:
fast-diff "^1.1.2" fast-diff "^1.1.2"
prettier@^3.3.3:
version "3.3.3"
resolved "https://mirrors.cloud.tencent.com/npm/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105"
integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==
proxy-from-env@^1.1.0: proxy-from-env@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://mirrors.cloud.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" resolved "https://mirrors.cloud.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"