├── .gitignore
├── README.md
├── docs
├── .vitepress
│ ├── config.mts
│ └── theme
│ │ ├── custom.css
│ │ └── index.ts
├── affiliate-program.md
├── ai-fusion.md
├── anthropic-configuration.md
├── api-examples.md
├── azure-configuration.md
├── claude-extended-thinking.md
├── contact.md
├── deepseek-configuration.md
├── faq.md
├── gemini-image-generation.md
├── gemini-thinking-mode.md
├── google-configuration.md
├── groq-configuration.md
├── index.md
├── introduction.md
├── markdown-examples.md
├── media-kit.md
├── ollama.md
├── openai-compatible.md
├── openai-configuration.md
├── public
│ ├── Desktop.png
│ ├── Letter B.png
│ ├── Mobile.png
│ ├── add-service-dark.png
│ ├── add-service.png
│ ├── anthropic-claude-dark.png
│ ├── anthropic-claude.png
│ ├── azure-openai-dark.png
│ ├── azure-openai.png
│ ├── claude-3.7-sonnet-dark.png
│ ├── claude-3.7-sonnet.png
│ ├── deepseek-dark.png
│ ├── deepseek.png
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon.ico
│ ├── gemini-2.0-flash-exp-dark.png
│ ├── gemini-2.0-flash-exp.png
│ ├── gemini-thinking-dark.png
│ ├── gemini-thinking.png
│ ├── google-gemini-dark.png
│ ├── google-gemini.png
│ ├── groq-dark.png
│ ├── groq.png
│ ├── ollama-dark.png
│ ├── ollama-pull-model-dark.png
│ ├── ollama-pull-model.png
│ ├── ollama.png
│ ├── openai-dark.png
│ ├── openai.png
│ ├── start-chat-btn-dark.png
│ ├── start-chat-btn.png
│ ├── volcengine-dark.png
│ └── volcengine.png
├── quickstart.md
├── service-providers.md
├── volcengine-configuration.md
└── zh
│ ├── affiliate-program.md
│ ├── ai-fusion.md
│ ├── anthropic-configuration.md
│ ├── api-examples.md
│ ├── azure-configuration.md
│ ├── claude-extended-thinking.md
│ ├── contact.md
│ ├── deepseek-configuration.md
│ ├── faq.md
│ ├── gemini-image-generation.md
│ ├── gemini-thinking-mode.md
│ ├── google-configuration.md
│ ├── groq-configuration.md
│ ├── index.md
│ ├── introduction.md
│ ├── markdown-examples.md
│ ├── media-kit.md
│ ├── ollama.md
│ ├── openai-compatible.md
│ ├── openai-configuration.md
│ ├── quickstart.md
│ ├── service-providers.md
│ └── volcengine-configuration.md
├── package-lock.json
└── package.json
/.gitignore:
--------------------------------------------------------------------------------
1 | docs/.vitepress/cache
2 | docs/.vitepress/dist
3 | node_modules
4 | .vscode
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | # BotGem Documentation
5 |
6 | This repository contains the official documentation for [BotGem](https://botgem.com).
7 |
8 | ## Overview
9 |
10 | [BotGem](https://botgem.com) is a versatile application that provides AI-powered tools to enhance productivity and creativity. This documentation site is built with [VitePress](https://vitepress.dev/) and serves as a comprehensive resource for users to learn about [BotGem](https://botgem.com)'s features, integrations, and capabilities.
11 |
12 | The official documentation is deployed and accessible at [docs.botgem.com](https://docs.botgem.com).
13 |
14 | ## Getting Started
15 |
16 | ### Prerequisites
17 |
18 | - [Node.js](https://nodejs.org/) (v18 or higher)
19 | - npm or yarn
20 |
21 | ### Installation
22 |
23 | 1. Clone this repository
24 | 2. Install dependencies:
25 | ```bash
26 | npm install
27 | ```
28 |
29 | ### Local Development
30 |
31 | To start the development server:
32 |
33 | ```bash
34 | npm run docs:dev
35 | ```
36 |
37 | The site will be available at http://localhost:5173
38 |
39 | ### Build
40 |
41 | To build the documentation for production:
42 |
43 | ```bash
44 | npm run docs:build
45 | ```
46 |
47 | ### Preview Production Build
48 |
49 | To preview the production build locally:
50 |
51 | ```bash
52 | npm run docs:preview
53 | ```
54 |
55 | ## Deployment
56 |
57 | The documentation is officially deployed at [docs.botgem.com](https://docs.botgem.com). After building the site with `npm run docs:build`, the generated static files in the `docs/.vitepress/dist` directory can be deployed to your hosting platform of choice.
58 |
59 | ## Documentation Structure
60 |
61 | - **Get Started**: Introduction and quickstart guides
62 | - **Guides**: Detailed documentation on specific features
63 | - Service Providers
64 | - Ollama Integration
65 | - AI-Fusion
66 | - **Partner With Us**: Information for potential partners
67 | - **FAQ**: Frequently asked questions
68 |
69 | ## Multilingual Support
70 |
71 | The documentation is available in:
72 | - English (default)
73 | - Chinese (zh)
74 |
75 | ## Contributing
76 |
77 | Contributions to improve the documentation are welcome. Please feel free to submit a pull request.
78 |
79 | ## Contact
80 |
81 | For more information, visit [BotGem's website](https://botgem.com) or reach out through the [contact page](https://docs.botgem.com/contact).
82 |
--------------------------------------------------------------------------------
/docs/.vitepress/config.mts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vitepress'
2 |
3 | // https://vitepress.dev/reference/site-config
4 | export default defineConfig({
5 | title: "BotGem Docs",
6 | description: "Your AI-Powered Toolbox for Tomorrow",
7 | head: [
8 | ['meta', { name: 'theme-color', content: '#eaefea' }],
9 | ['link', { rel: "icon", type: "image/png", sizes: "32x32", href: "favicon-32x32.png" }],
10 | ['link', { rel: "icon", type: "image/png", sizes: "16x16", href: "favicon-16x16.png" }],
11 | ['link', { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css2?family=Contrail+One&display=swap' }],
12 |
13 |
14 | ],
15 | themeConfig: {
16 | search: {
17 | provider: 'local'
18 | },
19 | logo: '/Letter B.png',
20 | nav: [
21 | { text: 'Home', link: process.env.NODE_ENV === 'production' ? 'https://botgem.com' : 'http://localhost:3003', target: "_self", noIcon: true, },
22 | {
23 | text: 'Get The App',
24 | link: process.env.NODE_ENV === 'production' ? 'https://botgem.com/#get-the-app' : 'http://localhost:3003#get-the-app',
25 | target: "_self",
26 | noIcon: true,
27 | },
28 | { text: 'FAQ', link: '/faq' }
29 | ],
30 |
31 | sidebar: [
32 | {
33 | text: 'GET STARTED',
34 | collapsed: false,
35 | items: [
36 | { text: 'Introduction', link: '/introduction' },
37 | { text: 'Quickstart', link: '/quickstart' }
38 | ]
39 | },
40 | {
41 | text: 'GUIDES',
42 | items: [
43 | {
44 | text: 'Service Providers',
45 | link: '/service-providers',
46 | items: [
47 | { text: 'OpenAI', link: '/openai-configuration' },
48 | {
49 | text: 'Anthropic (Claude)',
50 | link: '/anthropic-configuration',
51 | items: [
52 | { text: 'Extended Thinking Mode', link: '/claude-extended-thinking' }
53 | ]
54 | },
55 | {
56 | text: 'Google (Gemini)',
57 | link: '/google-configuration',
58 | items: [
59 | { text: 'Thinking Mode', link: '/gemini-thinking-mode' },
60 | { text: 'Image Generation', link: '/gemini-image-generation' }
61 | ]
62 | },
63 | { text: 'Groq', link: '/groq-configuration' },
64 | { text: 'Azure OpenAI', link: '/azure-configuration' },
65 | { text: 'DeepSeek', link: '/deepseek-configuration' },
66 | { text: 'Volcengine', link: '/volcengine-configuration' },
67 | { text: 'OpenAI API Compatible', link: '/openai-compatible' },
68 | ]
69 | },
70 | { text: 'Ollama', link: '/ollama' },
71 | { text: 'AI-Fusion', link: '/ai-fusion' },
72 | ]
73 | },
74 | {
75 | text: 'PARTNER WITH US',
76 | collapsed: false,
77 | items: [
78 | {
79 | text: 'Contact',
80 | link: '/contact'
81 | },
82 | { text: 'Media Kit', link: '/media-kit' },
83 | // { text: 'Affiliate Program', link: '/affiliate-program' }
84 | ]
85 | },
86 | {
87 | text: 'FAQ',
88 | link: '/faq'
89 | },
90 | {
91 | text: 'Get The App',
92 | link: 'https://botgem.com/#get-the-app'
93 | },
94 | ],
95 | },
96 |
97 | locales: {
98 | root: {
99 | label: 'English',
100 | lang: 'en'
101 | },
102 | zh: {
103 | label: '中文',
104 | lang: 'zh',
105 | link: '/zh',
106 | title: "BotGem 文档",
107 | themeConfig: {
108 | nav: [
109 | { text: '官网', link: 'https://botgem.com', target: "_self", noIcon: true },
110 | {
111 | text: '下载',
112 | link: 'https://botgem.com/#get-the-app',
113 | target: "_self",
114 | noIcon: true,
115 | },
116 | { text: '常见问题', link: '/zh/faq' }
117 | ],
118 | sidebar: [
119 | {
120 | text: '开始使用',
121 | collapsed: false,
122 | items: [
123 | { text: '介绍', link: '/zh/introduction' },
124 | { text: '快速入门', link: '/zh/quickstart' }
125 | ]
126 | },
127 | {
128 | text: '指南',
129 | items: [
130 | {
131 | text: 'AI 服务提供商',
132 | link: '/zh/service-providers',
133 | items: [
134 | { text: 'OpenAI', link: '/zh/openai-configuration' },
135 | {
136 | text: 'Anthropic (Claude)',
137 | link: '/zh/anthropic-configuration',
138 | items: [
139 | { text: '扩展思考模式', link: '/zh/claude-extended-thinking' }
140 | ]
141 | },
142 | {
143 | text: 'Google (Gemini)',
144 | link: '/zh/google-configuration',
145 | items: [
146 | { text: '思考模式', link: '/zh/gemini-thinking-mode' },
147 | { text: '图像生成', link: '/zh/gemini-image-generation' }
148 | ]
149 | },
150 | { text: 'Groq', link: '/zh/groq-configuration' },
151 | { text: 'Azure OpenAI', link: '/zh/azure-configuration' },
152 | { text: 'DeepSeek', link: '/zh/deepseek-configuration' },
153 | { text: '火山引擎', link: '/zh/volcengine-configuration' },
154 | { text: 'OpenAI API 兼容服务', link: '/zh/openai-compatible' }
155 | ]
156 | },
157 | { text: 'Ollama', link: '/zh/ollama' },
158 | { text: 'AI-Fusion', link: '/zh/ai-fusion' },
159 | ]
160 | },
161 | {
162 | text: '与我们合作',
163 | collapsed: false,
164 | items: [
165 | {
166 | text: '联系我们',
167 | link: '/zh/contact'
168 | },
169 | { text: '媒体工具包', link: '/zh/media-kit' },
170 | { text: '联盟计划', link: '/zh/affiliate-program' }
171 | ]
172 | },
173 | {
174 | text: '常见问题',
175 | link: '/zh/faq'
176 | },
177 | {
178 | text: '下载应用',
179 | link: 'https://botgem.com/#get-the-app'
180 | },
181 | ],
182 | }
183 | }
184 | }
185 | })
186 |
--------------------------------------------------------------------------------
/docs/.vitepress/theme/custom.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --vp-c-brand-1: #22c55e;
3 | --vp-c-brand-2: #16a34a;
4 | --vp-c-brand-3: #4ade80;
5 | --vp-nav-logo-height: 20px;
6 | --vp-home-hero-name-color: transparent;
7 | --vp-home-hero-name-background: -webkit-linear-gradient(0deg, #16a34a,#16a34a,#c8de4a);
8 | }
9 |
10 | .VPSidebarItem.level-0 {
11 | padding-bottom: 12px !important;
12 | }
13 |
14 | html.dark .light-only {
15 | display: none !important;
16 | }
17 |
18 | html:not(.dark) .dark-only {
19 | display: none !important;
20 | }
21 |
22 | .botgem-logo {
23 | font-family: "Contrail One", Arial;
24 | font-weight: 400;
25 | font-style: normal;
26 | }
27 |
28 | .VPHomeHero .name {
29 | font-family: "Contrail One", Arial;
30 | }
31 |
--------------------------------------------------------------------------------
/docs/.vitepress/theme/index.ts:
--------------------------------------------------------------------------------
1 | import DefaultTheme from 'vitepress/theme'
2 | import './custom.css'
3 |
4 | export default DefaultTheme
--------------------------------------------------------------------------------
/docs/affiliate-program.md:
--------------------------------------------------------------------------------
1 | # affiliate program
--------------------------------------------------------------------------------
/docs/ai-fusion.md:
--------------------------------------------------------------------------------
1 | # AI-Fusion
2 |
3 | :::warning Coming Soon
4 | The AI-Fusion feature is currently under development and not yet available in the public release of BotGem. This documentation will be updated when the feature is launched.
5 | :::
6 |
7 | AI-Fusion is an upcoming feature in BotGem that will allow you to seamlessly blend AI with your apps. This innovative feature will enhance how you interact with artificial intelligence through BotGem, bringing more powerful and integrated AI capabilities to your everyday applications.
8 |
9 | Stay tuned for updates on this exciting new feature!
10 |
--------------------------------------------------------------------------------
/docs/anthropic-configuration.md:
--------------------------------------------------------------------------------
1 | # Anthropic (Claude) Configuration Guide
2 |
3 | This guide explains how to set up and configure Anthropic's Claude models in BotGem.
4 |
5 | ## Getting Your Anthropic API Key
6 |
7 | To use Claude models in BotGem, you'll need to obtain an API key:
8 |
9 | 1. Visit the [Anthropic Console](https://console.anthropic.com/settings/keys) and sign in or create an account
10 | 2. Navigate to the API Keys section
11 | 3. Click "Create Key" and give your key a name
12 | 4. Copy the API key for use in BotGem
13 |
14 | ## Configuring Claude in BotGem
15 |
16 | Once you have your API key, follow these steps to configure Claude in BotGem:
17 |
18 | 1. Open BotGem and go to **Setting**
19 | 2. Navigate to the **Service Provider** section
20 | 3. Find the **Anthropic Claude** provider in the list
21 | 4. Enter your Anthropic Claude API key in the designated field
22 | 5. Click **Save** to apply your changes
23 |
24 | {.light-only}
25 | {.dark-only}
26 |
27 | ## Advanced Features
28 |
29 | ### Extended Thinking Mode for Claude 3.7 Sonnet
30 |
31 | Claude 3.7 Sonnet supports an Extended Thinking Mode that enhances its reasoning capabilities for complex tasks. To learn how to enable and use this feature, see our [Claude Extended Thinking Mode Guide](/claude-extended-thinking).
--------------------------------------------------------------------------------
/docs/api-examples.md:
--------------------------------------------------------------------------------
1 | ---
2 | outline: deep
3 | ---
4 |
5 | # Runtime API Examples
6 |
7 | This page demonstrates usage of some of the runtime APIs provided by VitePress.
8 |
9 | The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:
10 |
11 | ```md
12 |
17 |
18 | ## Results
19 |
20 | ### Theme Data
21 |
{{ theme }}22 | 23 | ### Page Data 24 |
{{ page }}25 | 26 | ### Page Frontmatter 27 |
{{ frontmatter }}28 | ``` 29 | 30 | 35 | 36 | ## Results 37 | 38 | ### Theme Data 39 |
{{ theme }}40 | 41 | ### Page Data 42 |
{{ page }}43 | 44 | ### Page Frontmatter 45 |
{{ frontmatter }}46 | 47 | ## More 48 | 49 | Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata). 50 | -------------------------------------------------------------------------------- /docs/azure-configuration.md: -------------------------------------------------------------------------------- 1 | # Azure OpenAI Configuration Guide 2 | 3 | This guide explains how to set up and configure Azure OpenAI as an AI service provider in BotGem. 4 | 5 | ## Prerequisites 6 | 7 | To use Azure OpenAI in BotGem, you'll need: 8 | 9 | 1. An Azure account with access to Azure OpenAI Service 10 | 2. A deployed Azure OpenAI model 11 | 3. Your Azure OpenAI API key and endpoint 12 | 13 | ## Getting Your Azure OpenAI Credentials 14 | 15 | If you haven't already set up Azure OpenAI: 16 | 17 | 1. Visit the [Azure Portal](https://portal.azure.com) 18 | 2. Create or access your Azure OpenAI resource 19 | 3. Deploy your desired models through the Azure OpenAI Studio 20 | 4. Obtain your API key and endpoint URL from the "Keys and Endpoint" section of your resource 21 | 22 | ## Configuring Azure OpenAI in BotGem 23 | 24 | Once you have your credentials, follow these steps to configure Azure OpenAI in BotGem: 25 | 26 | 1. Open BotGem and go to **Settings** 27 | 2. Navigate to the **AI Providers** section 28 | 3. Find the **Azure OpenAI** provider in the list 29 | 4. Enter the following information: 30 | - **API Key**: Your Azure OpenAI API key 31 | - **API Endpoint**: Your Azure OpenAI endpoint URL 32 | - **Models**: Click the refresh button to get the models list 33 | 5. Click **Save** to apply your changes 34 | 35 | {.light-only} 36 | {.dark-only} 37 | 38 | 39 | -------------------------------------------------------------------------------- /docs/claude-extended-thinking.md: -------------------------------------------------------------------------------- 1 | # Claude Extended Thinking Mode 2 | 3 | ### How to Enable Extended Thinking Mode for Claude 3.7 Sonnet 4 | 5 | {.light-only} 6 | {.dark-only} 7 | 8 | You can enable Extended thinking mode in the chat window by following these steps: 9 | 10 | 1. Click the **settings icon** in the top right corner of the chat window 11 | 2. Find the **Parameters** input field in the settings panel 12 | 3. Copy the following configuration into **Parameters**: 13 | 14 | ```json 15 | { 16 | "max_tokens": 64000, 17 | "thinking": { 18 | "type": "enabled", 19 | "budget_tokens": 16000 20 | } 21 | } 22 | ``` 23 | -------------------------------------------------------------------------------- /docs/contact.md: -------------------------------------------------------------------------------- 1 | # Partner with us and make an impact! 2 | 3 | We believe in the power of collaboration and welcome partnerships with tech companies, service providers, and anyone with valuable feedback. Your insights and expertise can help shape the future of our app. 4 | 5 | To explore partnership opportunities or share your feedback, please email us at hi@botgem.com. We appreciate your input and look forward to creating something amazing together! -------------------------------------------------------------------------------- /docs/deepseek-configuration.md: -------------------------------------------------------------------------------- 1 | # DeepSeek Configuration Guide 2 | 3 | This guide explains how to set up and configure DeepSeek as an AI service provider in BotGem. 4 | 5 | ## Getting Your DeepSeek API Key 6 | 7 | To use DeepSeek models in BotGem, you'll need to obtain an API key: 8 | 9 | 1. Visit the [DeepSeek Platform](https://platform.deepseek.com/) and sign in to your account 10 | 2. Navigate to the API section in your dashboard 11 | 3. Create a new API key 12 | 4. Copy the API key immediately (you won't be able to see it again) 13 | 14 | ## Configuring DeepSeek in BotGem 15 | 16 | Once you have your API key, follow these steps to configure DeepSeek in BotGem: 17 | 18 | 1. Open BotGem and go to **Setting** 19 | 2. Navigate to the **Service Provider** section 20 | 3. Find the **DeepSeek** provider in the list 21 | 4. Enter your DeepSeek API key in the designated field 22 | 5. Click **Save** to apply your changes 23 | 24 | {.light-only} 25 | {.dark-only} 26 | -------------------------------------------------------------------------------- /docs/faq.md: -------------------------------------------------------------------------------- 1 | # Frequently Asked Questions 2 | 3 | ## General Questions 4 | 5 | ### Which platforms does BotGem support? 6 | 7 | BotGem is available on iOS, macOS, Android, and Windows, allowing you to use it on virtually any device. 8 | 9 | ### Is BotGem free to use? 10 | 11 | BotGem offers both free and Pro versions: 12 | - **Free Version**: Access to basic features with standard functionality 13 | - **Pro Version**: One-time payment that unlocks all advanced features 14 | 15 | Note that regardless of which version you use, you may still need to pay for API usage to third-party AI providers like OpenAI or Anthropic. 16 | 17 | ## AI Providers and Models 18 | 19 | ### Which AI providers does BotGem support? 20 | 21 | BotGem offers extensive compatibility with a wide range of AI service providers, giving you access to the most powerful AI models available today: 22 | - OpenAI (GPT series models) 23 | - Anthropic (Claude series models) 24 | - Google (Gemini series models) 25 | - Groq 26 | - Deepseek 27 | - Volcengine 28 | - Local models via Ollama 29 | - All services compatible with OpenAI API 30 | 31 | ### Do I need to have my own API keys? 32 | 33 | Yes, to use most AI providers, you'll need to obtain your own API keys from the respective services. BotGem does not provide API keys. See our [Service Providers](/service-providers) section for guides on how to obtain API keys. 34 | 35 | 36 | ## Usage and Features 37 | 38 | 39 | ### What is Extended Thinking Mode for Claude? 40 | 41 | Extended Thinking Mode is a special feature for Anthropic's Claude models that enhances its reasoning capabilities for complex tasks. It allocates a portion of the token budget specifically for the model's internal thinking process. See our [Claude Extended Thinking Mode Guide](/claude-extended-thinking) for more information. 42 | 43 | ### Does BotGem support voice conversations? 44 | 45 | Yes, BotGem supports real-time voice conversations using OpenAI's realtime API, allowing for natural, interactive voice interactions with AI assistants. 46 | 47 | ## Privacy and Security 48 | 49 | ### Is my data secure when using BotGem? 50 | 51 | BotGem takes data security seriously. We do not store any of your conversation data on our servers. All your data remains on your device. When using local models with Ollama, your data never even leaves your device to reach external AI providers. 52 | 53 | ### Does BotGem share my prompts or conversations with third parties? 54 | 55 | BotGem does not share your prompts or conversations with third parties. However, when you use external AI providers (like OpenAI or Anthropic), your prompts are sent to their servers and are subject to their privacy policies. 56 | 57 | ### Can I delete my conversation history? 58 | 59 | Yes, you can delete individual conversations or clear your entire conversation history from the settings menu. 60 | 61 | ## Billing and Subscription 62 | 63 | ### How does billing work for API usage? 64 | 65 | API usage is billed directly by the AI providers (OpenAI, Anthropic, etc.) based on their pricing models. BotGem does not charge for API usage but provides a convenient interface to access these services. 66 | 67 | ### How do I manage my Pro purchase? 68 | 69 | After purchasing the Pro version, it will be automatically activated on your device. For mobile versions, your purchase is linked to your app store account. 70 | 71 | ### Is the Pro version a recurring payment? 72 | 73 | No, the Pro version is a one-time purchase, not a subscription. Once you buy it, you own it permanently with no recurring fees. 74 | 75 | ## Troubleshooting 76 | 77 | ### Why am I getting an "API Key Invalid" error? 78 | 79 | This error typically occurs when: 80 | - Your API key is entered incorrectly 81 | - Your API key has expired 82 | - Your API key has insufficient credits 83 | - The API service is experiencing issues 84 | 85 | Verify your API key in the provider's dashboard and ensure you have sufficient credits. 86 | 87 | 88 | ### How do I report a bug or request a feature? 89 | 90 | You can report bugs or request features by joining our [Telegram community](https://t.me/AMA_HQ) or by contacting our support team at hi@botgem.com. 91 | 92 | 93 | -------------------------------------------------------------------------------- /docs/gemini-image-generation.md: -------------------------------------------------------------------------------- 1 | # Gemini Image Generation Guide 2 | 3 | This guide explains how to enable image generation and editing capabilities with Gemini 2.0 Flash Experimental in BotGem. 4 | 5 | ## Enabling Image Generation with Gemini 2.0 Flash Experimental 6 | 7 | {.light-only} 8 | {.dark-only} 9 | 10 | You can enable image generation and editing capabilities in the chat window by following these steps: 11 | 12 | 1. Click the **settings icon** in the top right corner of the chat window 13 | 2. Disable the **Prompt** option in the chat settings 14 | 3. Find the **Parameters** input field in the settings panel 15 | 4. Copy the following configuration into **Parameters**: 16 | 17 | ```json 18 | { 19 | "responseModalities": [ 20 | "Text", 21 | "Image" 22 | ] 23 | } 24 | ``` 25 | 26 | ## Using Image Generation Features 27 | 28 | Once you've enabled image generation capabilities, you can: 29 | 30 | 1. Ask Gemini to create images by describing what you want 31 | 2. Request edits to existing images by uploading them and providing instructions 32 | 3. Generate variations of images 33 | 34 | ## Example Prompts 35 | 36 | Here are some example prompts you can use: 37 | 38 | - "Create an image of a mountain landscape at sunset" 39 | - "Draw a cartoon cat wearing a space suit" 40 | - "Generate a logo for a coffee shop named 'Morning Brew'" 41 | 42 | ## Troubleshooting 43 | 44 | If you encounter issues with image generation: 45 | 46 | - Ensure your Google API key has access to Gemini 2.0 Flash Experimental 47 | - Verify that the parameters are correctly formatted in JSON 48 | - Check that the Prompt option is disabled in chat settings 49 | 50 | For more information about Google Gemini configuration, see the [Google AI Configuration Guide](google-configuration.md). 51 | -------------------------------------------------------------------------------- /docs/gemini-thinking-mode.md: -------------------------------------------------------------------------------- 1 | # Gemini Thinking Mode 2 | 3 | Gemini 2.5 series models have thinking capabilities enabled by default, allowing them to perform deeper reasoning and tackle complex problems. Want to make the most of this powerful feature? This guide will show you how to customize and use Gemini's Thinking Mode in BotGem to see the model's reasoning process and get better results. 4 | 5 | ## How to Customize Thinking Mode for Gemini 2.5 Models 6 | 7 | > **Note**: Thinking is enabled by default for the Gemini 2.5 series models. The following configuration allows you to customize the thinking behavior and make it visible in responses. 8 | > 9 | > Thought summaries offer insights into the model's internal reasoning process. This feature can be valuable for verifying the model's approach and keeping users informed during longer tasks, especially when combined with streaming. 10 | 11 | {.dark-only} 12 | {.light-only} 13 | 14 | You can enable thought summaries (make the thinking process visible) in the chat window by following these steps: 15 | 16 | 1. Click the **settings icon** in the top right corner of the chat window 17 | 2. Find the **Parameters** input field in the settings panel 18 | 3. Copy the following configuration into **Parameters**: 19 | 20 | ```json 21 | { 22 | "thinkingConfig": { 23 | "includeThoughts": true 24 | } 25 | } 26 | ``` 27 | 28 | ## Understanding Thinking Mode 29 | 30 | Gemini Thinking Mode allows the model to engage in more detailed reasoning before providing a response. This feature is particularly useful for: 31 | 32 | - Complex problem-solving 33 | - Multi-step reasoning tasks 34 | - Detailed analysis and planning 35 | - Code generation and debugging 36 | 37 | While thinking is enabled by default for Gemini 2.5 series models, the `thinkingConfig` parameter with `includeThoughts` set to `true` allows you to see the model's reasoning process through thought summaries. These summaries offer insights into the model's internal reasoning, making the thinking visible in the response and giving you insight into how the model arrived at its conclusions. 38 | 39 | Thought summaries are valuable for: 40 | - Verifying the model's approach to solving problems 41 | - Understanding the reasoning behind complex answers 42 | - Keeping users informed during longer tasks 43 | - Identifying where reasoning might have gone wrong 44 | 45 | If you want to adjust the thinking process further, you can also set a thinking budget: 46 | 47 | ```json 48 | { 49 | "thinkingConfig": { 50 | "includeThoughts": true, 51 | "thinkingBudget": 16000 52 | } 53 | } 54 | ``` 55 | 56 | The `thinkingBudget` parameter lets you guide the model on the number of thinking tokens it can use when generating a response: 57 | 58 | - **Range**: Must be an integer from 0 to 24576 tokens 59 | - **Default**: If not specified, Gemini will dynamically adjust the budget based on the complexity of the request 60 | - **Disable thinking**: Setting the budget to 0 disables thinking completely 61 | - **Recommended for complex tasks**: 8000-16000 tokens 62 | - **Model support**: Note that `thinkingBudget` is only supported in Gemini 2.5 Flash 63 | 64 | A higher token count generally allows for more detailed reasoning, which can be beneficial for tackling more complex tasks. Depending on the prompt, the model might overflow or underflow the token budget. 65 | 66 | 67 | 68 | ## Troubleshooting 69 | 70 | If you encounter issues with Thinking Mode: 71 | 72 | - Ensure your Google API key has access to Gemini 2.5 models 73 | - Verify that the parameters are correctly formatted in JSON 74 | - Try adjusting the thinking budget if responses are incomplete or not detailed enough 75 | - For very complex tasks, consider breaking them down into smaller steps 76 | 77 | For more information about Google Gemini configuration, see the [Google AI Configuration Guide](google-configuration.md). 78 | -------------------------------------------------------------------------------- /docs/google-configuration.md: -------------------------------------------------------------------------------- 1 | # Google AI Configuration Guide 2 | 3 | This guide explains how to set up and configure Google AI (Gemini) as a service provider in BotGem. 4 | 5 | ## Getting Your Google AI API Key 6 | 7 | To use Google's Gemini models in BotGem, you'll need to obtain an API key: 8 | 9 | 1. Visit the [Google AI Studio](https://makersuite.google.com/app/apikey) and sign in with your Google account 10 | 2. Click on "Create API key" in the API keys section 11 | 3. Give your key a name (optional) and click "Create" 12 | 4. Copy the API key for use in BotGem 13 | 14 | ## Configuring Google AI in BotGem 15 | 16 | Once you have your API key, follow these steps to configure Google AI in BotGem: 17 | 18 | 1. Open BotGem and go to **Setting** 19 | 2. Navigate to the **Service Provider** section 20 | 3. Find the **Google Gemini** provider in the list 21 | 4. Enter your Google Gemini API key in the designated field 22 | 5. Click **Save** to apply your changes 23 | 24 | {.light-only} 25 | {.dark-only} 26 | 27 | ## Advanced Features 28 | 29 | ### Image Generation with Gemini 2.0 Flash Experimental 30 | 31 | Gemini 2.0 Flash Experimental supports image generation and editing capabilities. To learn how to enable and use these features, see our [Gemini Image Generation Guide](/gemini-image-generation). 32 | -------------------------------------------------------------------------------- /docs/groq-configuration.md: -------------------------------------------------------------------------------- 1 | # Groq Configuration Guide 2 | 3 | This guide explains how to set up and configure Groq as an AI service provider in BotGem. 4 | 5 | ## Getting Your Groq API Key 6 | 7 | To use Groq's AI models in BotGem, you'll need to obtain an API key: 8 | 9 | 1. Visit the [Groq website](https://console.groq.com/keys) and create an account or sign in 10 | 2. Navigate to the API Keys section in your account dashboard 11 | 3. Create a new API key 12 | 4. Copy the API key for use in BotGem 13 | 14 | ## Configuring Groq in BotGem 15 | 16 | Once you have your API key, follow these steps to configure Groq in BotGem: 17 | 18 | 1. Open BotGem and go to **Setting** 19 | 2. Navigate to the **Service Provider** section 20 | 3. Find the **Groq** provider in the list 21 | 4. Enter your Groq API key in the designated field 22 | 5. Click **Save** to apply your changes 23 | 24 | {.light-only} 25 | {.dark-only} 26 | 27 | 28 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | # https://vitepress.dev/reference/default-theme-home-page 3 | layout: home 4 | 5 | hero: 6 | name: "BotGem" 7 | text: "Your AI-Powered Toolbox for Tomorrow" 8 | tagline: "Empowering you to achieve more with less effort" 9 | # image: 10 | # src: /Mobile.png 11 | # alt: BotGem 12 | actions: 13 | - theme: brand 14 | text: Quickstart 15 | link: /quickstart 16 | - theme: alt 17 | text: Partner with us 18 | link: /contact 19 | 20 | features: 21 | - title: Your Gateway to AI Versatility 22 | details: Unlock a World of AI with Multi-Provider and Multi-Modal Support 23 | link: /service-providers 24 | - title: Local LLMs 25 | details: Get up and running with large language models, locally. 26 | link: /ollama 27 | - title: AI Fusion 28 | details: Seamlessly Blend AI With Your Apps. 29 | link: /ai-fusion 30 | 31 | 32 | 33 | 34 | --- 35 | 36 | -------------------------------------------------------------------------------- /docs/introduction.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | BotGem is a cross-platform application that serves as your personal AI assistant hub. Available on iOS, macOS, Android, and Windows, it allows you to interact with various AI models through a clean, intuitive interface, eliminating the need to switch between different platforms or websites. 4 | 5 | ## Supported AI Service Providers 6 | 7 | BotGem supports a wide range of AI service providers including: 8 | 9 | - **OpenAI GPT Series Models** 10 | - **Anthropic Claude** 11 | - **Google Gemini** 12 | - **Groq** 13 | - **Deepseek** 14 | - **Volcengine** 15 | - **Local Models** (Ollama) 16 | - **All services compatible with OpenAI API** 17 | 18 | ## Key Features 19 | 20 | - **Privacy-Focused**: Your data stays on your device when using local models 21 | - **Cross-Platform**: Available for iOS, macOS, Android, and Windows 22 | 23 | ## Getting Started 24 | 25 | To begin using BotGem, check out our [Quickstart Guide](/quickstart) which will walk you through the installation process and basic configuration steps. 26 | 27 | For detailed information on configuring specific AI service providers, visit our [Service Providers](/service-providers) section. -------------------------------------------------------------------------------- /docs/markdown-examples.md: -------------------------------------------------------------------------------- 1 | # Markdown Extension Examples 2 | 3 | This page demonstrates some of the built-in markdown extensions provided by VitePress. 4 | 5 | ## Syntax Highlighting 6 | 7 | VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting: 8 | 9 | **Input** 10 | 11 | 12 | ```js{4} 13 | export default { 14 | data () { 15 | return { 16 | msg: 'Highlighted!' 17 | } 18 | } 19 | } 20 | ``` 21 | 22 | 23 | **Output** 24 | 25 | ```js{4} 26 | export default { 27 | data () { 28 | return { 29 | msg: 'Highlighted!' 30 | } 31 | } 32 | } 33 | ``` 34 | 35 | ## Custom Containers 36 | 37 | **Input** 38 | 39 | ```md 40 | ::: info 41 | This is an info box. 42 | ::: 43 | 44 | ::: tip 45 | This is a tip. 46 | ::: 47 | 48 | ::: warning 49 | This is a warning. 50 | ::: 51 | 52 | ::: danger 53 | This is a dangerous warning. 54 | ::: 55 | 56 | ::: details 57 | This is a details block. 58 | ::: 59 | ``` 60 | 61 | **Output** 62 | 63 | ::: info 64 | This is an info box. 65 | ::: 66 | 67 | ::: tip 68 | This is a tip. 69 | ::: 70 | 71 | ::: warning 72 | This is a warning. 73 | ::: 74 | 75 | ::: danger 76 | This is a dangerous warning. 77 | ::: 78 | 79 | ::: details 80 | This is a details block. 81 | ::: 82 | 83 | ## More 84 | 85 | Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown). 86 | -------------------------------------------------------------------------------- /docs/media-kit.md: -------------------------------------------------------------------------------- 1 | # Media Kit -------------------------------------------------------------------------------- /docs/ollama.md: -------------------------------------------------------------------------------- 1 | # Ollama Setup Guide 2 | 3 | This guide explains how to set up and use Ollama with BotGem for running local AI models on your own machine. 4 | 5 | ## What is Ollama? 6 | 7 | Ollama is an open-source tool that allows you to run large language models (LLMs) locally on your computer. By using Ollama with BotGem, you can: 8 | 9 | - Run AI models completely offline without sending data to external services 10 | - Maintain full privacy and control over your data 11 | - Avoid API costs associated with cloud-based AI services 12 | - Experiment with a variety of open-source models 13 | 14 | ## Installation 15 | 16 | ### macOS 17 | 18 | 1. Download the Ollama installer from the [official website](https://ollama.com/download) 19 | 2. Open the downloaded file and follow the installation instructions 20 | 3. Once installed, Ollama will run as a service in the background 21 | 22 | ### Windows 23 | 24 | 1. Download the Ollama installer from the [official website](https://ollama.com/download) 25 | 2. Run the installer and follow the on-screen instructions 26 | 3. After installation, Ollama will start automatically 27 | 28 | ### Linux 29 | 30 | ```bash 31 | curl -fsSL https://ollama.com/install.sh | sh 32 | ``` 33 | 34 | 35 | ## Configuring Ollama in BotGem 36 | 37 | Once Ollama is installed and running, follow these steps to configure it in BotGem: 38 | 39 | 1. Open BotGem and go to **Setting** 40 | 2. Navigate to the **Ollama Management Console** section 41 | 3. Click **Add** to add a new Ollama instance 42 | 4. Enter the Ollama server Name and URL (default is `http://localhost:11434`) 43 | 5. Click **Save** to apply your changes 44 | 45 | {.light-only} 46 | {.dark-only} 47 | 48 | 6. Click Top Right Input and type model name to pull the model you want to use 49 | 50 | you can find latest model name in [Ollama Model List](https://ollama.com/models) 51 | 52 | {.light-only} 53 | {.dark-only} -------------------------------------------------------------------------------- /docs/openai-compatible.md: -------------------------------------------------------------------------------- 1 | # OpenAI API Compatible Services Configuration 2 | 3 | This guide explains how to set up and configure OpenAI API compatible services in BotGem. 4 | 5 | ## What are OpenAI API Compatible Services? 6 | 7 | OpenAI API compatible services are third-party AI services that implement the OpenAI API specification, allowing you to use alternative providers with the same API format as OpenAI. These services often offer: 8 | 9 | - Lower costs compared to OpenAI 10 | - Different model options 11 | - Potentially faster response times 12 | - Self-hosted options for privacy 13 | 14 | ## Popular Compatible Services 15 | 16 | Several providers offer OpenAI API compatible endpoints: 17 | 18 | - **OhMyGPT** - Offers a variety of open and closed source models 19 | - **OpenRouter** - Unified API for 300+ models from 50+ providers with high availability 20 | - **Mistral AI** - Provides their own competitive models 21 | 22 | ## Configuring Compatible Services in BotGem 23 | 24 | To set up an OpenAI API compatible service in BotGem: 25 | 26 | 1. Open BotGem and go to **Setting** 27 | 2. Navigate to the **Service Provider** section 28 | 3. Find the **OpenAI API Compatible** provider in the list 29 | 4. Enter the following information: 30 | - **API Key** - The API key from your compatible service 31 | - **Base URL** - The API endpoint URL of your compatible service 32 | - **Model List** - Custom model names if needed 33 | 5. Click **Save** to apply your changes -------------------------------------------------------------------------------- /docs/openai-configuration.md: -------------------------------------------------------------------------------- 1 | # OpenAI Configuration Guide 2 | 3 | This guide explains how to set up and configure OpenAI as an AI service provider in BotGem. 4 | 5 | ## Getting Your OpenAI API Key 6 | 7 | To use OpenAI models in BotGem, you'll need to obtain an API key: 8 | 9 | 1. Visit the [OpenAI Platform](https://platform.openai.com/api-keys) and sign in to your account 10 | 2. Click on "Create new secret key" 11 | 3. Give your key a name (optional) and click "Create secret key" 12 | 4. Copy the API key immediately (you won't be able to see it again) 13 | 14 | ## Configuring OpenAI in BotGem 15 | 16 | Once you have your API key, follow these steps to configure OpenAI in BotGem: 17 | 18 | 1. Open BotGem and go to **Setting** 19 | 2. Navigate to the **Service Provider** section 20 | 3. Find the **OpenAI** provider in the list 21 | 4. Enter your OpenAI API key in the designated field 22 | 5. Click **Save** to apply your changes 23 | 24 | {.light-only} 25 | {.dark-only} 26 | 27 | -------------------------------------------------------------------------------- /docs/public/Desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/Desktop.png -------------------------------------------------------------------------------- /docs/public/Letter B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/Letter B.png -------------------------------------------------------------------------------- /docs/public/Mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/Mobile.png -------------------------------------------------------------------------------- /docs/public/add-service-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/add-service-dark.png -------------------------------------------------------------------------------- /docs/public/add-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/add-service.png -------------------------------------------------------------------------------- /docs/public/anthropic-claude-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/anthropic-claude-dark.png -------------------------------------------------------------------------------- /docs/public/anthropic-claude.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/anthropic-claude.png -------------------------------------------------------------------------------- /docs/public/azure-openai-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/azure-openai-dark.png -------------------------------------------------------------------------------- /docs/public/azure-openai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/azure-openai.png -------------------------------------------------------------------------------- /docs/public/claude-3.7-sonnet-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/claude-3.7-sonnet-dark.png -------------------------------------------------------------------------------- /docs/public/claude-3.7-sonnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/claude-3.7-sonnet.png -------------------------------------------------------------------------------- /docs/public/deepseek-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/deepseek-dark.png -------------------------------------------------------------------------------- /docs/public/deepseek.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/deepseek.png -------------------------------------------------------------------------------- /docs/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/favicon-16x16.png -------------------------------------------------------------------------------- /docs/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/favicon-32x32.png -------------------------------------------------------------------------------- /docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/favicon.ico -------------------------------------------------------------------------------- /docs/public/gemini-2.0-flash-exp-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/gemini-2.0-flash-exp-dark.png -------------------------------------------------------------------------------- /docs/public/gemini-2.0-flash-exp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/gemini-2.0-flash-exp.png -------------------------------------------------------------------------------- /docs/public/gemini-thinking-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/gemini-thinking-dark.png -------------------------------------------------------------------------------- /docs/public/gemini-thinking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/gemini-thinking.png -------------------------------------------------------------------------------- /docs/public/google-gemini-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/google-gemini-dark.png -------------------------------------------------------------------------------- /docs/public/google-gemini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/google-gemini.png -------------------------------------------------------------------------------- /docs/public/groq-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/groq-dark.png -------------------------------------------------------------------------------- /docs/public/groq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/groq.png -------------------------------------------------------------------------------- /docs/public/ollama-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/ollama-dark.png -------------------------------------------------------------------------------- /docs/public/ollama-pull-model-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/ollama-pull-model-dark.png -------------------------------------------------------------------------------- /docs/public/ollama-pull-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/ollama-pull-model.png -------------------------------------------------------------------------------- /docs/public/ollama.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/ollama.png -------------------------------------------------------------------------------- /docs/public/openai-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/openai-dark.png -------------------------------------------------------------------------------- /docs/public/openai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/openai.png -------------------------------------------------------------------------------- /docs/public/start-chat-btn-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/start-chat-btn-dark.png -------------------------------------------------------------------------------- /docs/public/start-chat-btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/start-chat-btn.png -------------------------------------------------------------------------------- /docs/public/volcengine-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/volcengine-dark.png -------------------------------------------------------------------------------- /docs/public/volcengine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaodeng/botgem-docs/ee43b04a2c141d274ec0919d3b187ac5ed0f421b/docs/public/volcengine.png -------------------------------------------------------------------------------- /docs/quickstart.md: -------------------------------------------------------------------------------- 1 | # Quickstart Guide 2 | 3 | This guide will help you get started with BotGem quickly, from installation to your first conversation with an AI assistant. 4 | 5 | ## Download and Install 6 | 7 | ### Step 1: Download BotGem 8 | 9 | Download BotGem for your platform: 10 | 11 | - **iOS**: Download from the [App Store](https://apps.apple.com/app/ama-ask-me-anything/id6446135619?l=en) 12 | - **macOS**: Download from the [Mac App Store](https://apps.apple.com/app/ama-ask-me-anything/id6446135619?l=en) or from our [website](https://botgem.com/#get-the-app) 13 | - **Android**: Download from the [Google Play Store](https://play.google.com/store/apps/details?id=com.bytemyth.ama) 14 | - **Windows**: Download from our [Microsoft Store](https://apps.microsoft.com/detail/ama-the-gpt-app/9NQZVTBFJ86K?hl=en-US&gl=SE) 15 | 16 | ### Step 2: Install BotGem 17 | 18 | - **iOS/Android**: The app will install automatically after downloading 19 | - **macOS**: Open the downloaded .dmg file and drag BotGem to your Applications folder 20 | - **Windows**: The app will install automatically after downloading from the Microsoft Store 21 | 22 | ## Getting Started 23 | 24 | Launch BotGem from your applications menu or home screen. No account is required to use the application. 25 | 26 | ## Configure AI Service Providers 27 | 28 | BotGem supports multiple AI service providers. To set up your preferred provider: 29 | 30 | 1. Go to **Setting** (gear icon) 31 | 2. Select **Service Provider** 32 | 3. Choose your preferred provider from the list 33 | 4. Enter your API key for the selected provider 34 | 35 | {.light-only} 36 | {.dark-only} 37 | 38 | For detailed configuration guides for each provider, visit: 39 | 40 | - [OpenAI Configuration](/openai-configuration) 41 | - [Anthropic (Claude) Configuration](/anthropic-configuration) 42 | - [Google Gemini Configuration](/google-configuration) 43 | - [Groq Configuration](/groq-configuration) 44 | - [Azure OpenAI Configuration](/azure-configuration) 45 | - [DeepSeek Configuration](/deepseek-configuration) 46 | - [Volcengine Configuration](/volcengine-configuration) 47 | - [OpenAI API Compatible Services](/openai-compatible) 48 | - [Ollama Setup](/ollama) (for local models) 49 | 50 | ## Your First Conversation 51 | 52 | 1. From the main screen, click the **chat icon** to start a new conversation 53 | 2. Type your message in the input field at the bottom 54 | 3. Press **Send** or use **Command + Enter** (Mac) / **Ctrl + Enter** (Windows/Android) 55 | 4. Wait for the AI to respond 56 | 57 | {.light-only} 58 | {.dark-only} 59 | 60 | ## Troubleshooting 61 | 62 | If you encounter any issues: 63 | 64 | 1. Check your internet connection 65 | 2. Verify your API key is correct and has sufficient credits 66 | 3. Restart the application 67 | 4. Visit our [FAQ](/faq) for common issues and solutions 68 | 69 | ## Next Steps 70 | 71 | Now that you're up and running with BotGem, explore more features: 72 | 73 | - Configure additional AI service providers 74 | - Use the voice call feature to practice foreign languages with AI 75 | - Join our [Telegram community](https://t.me/AMA_HQ) to share tips and get help -------------------------------------------------------------------------------- /docs/service-providers.md: -------------------------------------------------------------------------------- 1 | # Extensive AI Service Provider Support 2 | 3 | BotGem integrates with a wide range of AI service providers, giving you access to the most powerful AI models available today: 4 | 5 | - [OpenAI](/openai-configuration) - GPT Series Models 6 | - [Anthropic](/anthropic-configuration) - Claude Series Models 7 | - [Google](/google-configuration) - Gemini Series Models 8 | - [Groq](/groq-configuration) 9 | - [Deepseek](/deepseek-configuration) 10 | - [Volcengine](/volcengine-configuration) 11 | - [Azure](/azure-configuration) - OpenAI Series Models 12 | - [Ollama](/ollama) - Local Models 13 | - [OpenAI Compatible Services](/openai-compatible) 14 | 15 | With support for all these providers and more, BotGem gives you unparalleled flexibility to choose the AI models that best suit your needs. Select any provider above to view its detailed configuration guide. 16 | 17 | {.light-only} 18 | {.dark-only} 19 | -------------------------------------------------------------------------------- /docs/volcengine-configuration.md: -------------------------------------------------------------------------------- 1 | # Volcengine Configuration Guide 2 | 3 | This guide explains how to set up and configure Volcengine as an AI service provider in BotGem. 4 | 5 | ## Getting Your Volcengine API Key 6 | 7 | To use Volcengine models in BotGem, you'll need to obtain an API key: 8 | 9 | 1. Visit the [Volcengine Platform](https://www.volcengine.com/) and sign in to your account 10 | 2. Navigate to the AI Services section in your dashboard 11 | 3. Create a new API key for the Volcengine AI services 12 | 4. Copy the API key and other required credentials 13 | 14 | ## Configuring Volcengine in BotGem 15 | 16 | Once you have your API key, follow these steps to configure Volcengine in BotGem: 17 | 18 | 1. Open BotGem and go to **Setting** 19 | 2. Navigate to the **Service Provider** section 20 | 3. Find the **Volcengine** provider in the list 21 | 4. Enter your Volcengine API key and other required credentials 22 | 5. Click **Save** to apply your changes 23 | 24 | {.light-only} 25 | {.dark-only} 26 | -------------------------------------------------------------------------------- /docs/zh/affiliate-program.md: -------------------------------------------------------------------------------- 1 | # 联盟计划 2 | -------------------------------------------------------------------------------- /docs/zh/ai-fusion.md: -------------------------------------------------------------------------------- 1 | # AI-Fusion 2 | 3 | :::warning 即将推出 4 | AI-Fusion 功能目前正在开发中,尚未在 BotGem 的公开版本中提供。该文档将在功能发布时更新。 5 | ::: 6 | 7 | AI-Fusion 是 BotGem 即将推出的一项功能,它将允许您将 AI 与您的应用程序无缝融合。这一创新功能将增强您通过 BotGem 与人工智能的交互方式,为您的日常应用程序带来更强大和集成的 AI 能力。 8 | 9 | 敬请期待这一令人兴奋的新功能的更新! 10 | -------------------------------------------------------------------------------- /docs/zh/anthropic-configuration.md: -------------------------------------------------------------------------------- 1 | # Anthropic (Claude) 配置指南 2 | 3 | 本指南说明如何在 BotGem 中设置和配置 Anthropic 的 Claude 模型。 4 | 5 | ## 获取您的 Anthropic API 密钥 6 | 7 | 要在 BotGem 中使用 Claude 模型,您需要获取 API 密钥: 8 | 9 | 1. 访问 [Anthropic 控制台](https://console.anthropic.com/settings/keys) 并登录或创建账户 10 | 2. 导航到 API 密钥部分 11 | 3. 点击"创建密钥"并为您的密钥命名 12 | 4. 复制 API 密钥以在 BotGem 中使用 13 | 14 | ## 在 BotGem 中配置 Claude 15 | 16 | 获取 API 密钥后,按照以下步骤在 BotGem 中配置 Claude: 17 | 18 | 1. 打开 BotGem 并进入**设置** 19 | 2. 导航到**服务提供商**部分 20 | 3. 在列表中找到 **Anthropic Claude** 提供商 21 | 4. 在指定字段中输入您的 Anthropic Claude API 密钥 22 | 5. 点击**保存**应用您的更改 23 | 24 | {.light-only} 25 | {.dark-only} 26 | 27 | ## 高级功能 28 | 29 | ### Claude 3.7 Sonnet 的扩展思考模式 30 | 31 | Claude 3.7 Sonnet 支持扩展思考模式,该模式可增强其处理复杂任务的推理能力。要了解如何启用和使用此功能,请参阅我们的 [扩展思考模式指南](/zh/claude-extended-thinking)。 32 | -------------------------------------------------------------------------------- /docs/zh/api-examples.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # 运行时 API 示例 6 | 7 | 本页面演示了 VitePress 提供的一些运行时 API 的使用方法。 8 | 9 | 主要的 `useData()` API 可用于访问当前页面的站点、主题和页面数据。它在 `.md` 和 `.vue` 文件中都可以使用: 10 | 11 | ```md 12 | 17 | 18 | ## 结果 19 | 20 | ### 主题数据 21 |
{{ theme }}22 | 23 | ### 页面数据 24 |
{{ page }}25 | 26 | ### 页面前置元数据 27 |
{{ frontmatter }}28 | ``` 29 | 30 | 35 | 36 | ## 结果 37 | 38 | ### 主题数据 39 |
{{ theme }}40 | 41 | ### 页面数据 42 |
{{ page }}43 | 44 | ### 页面前置元数据 45 |
{{ frontmatter }}46 | 47 | ## 更多 48 | 49 | 查看文档获取[完整的运行时 API 列表](https://vitepress.dev/reference/runtime-api#usedata)。 50 | -------------------------------------------------------------------------------- /docs/zh/azure-configuration.md: -------------------------------------------------------------------------------- 1 | # Azure OpenAI 配置指南 2 | 3 | 本指南说明如何在 BotGem 中设置和配置 Azure OpenAI 作为 AI 服务提供商。 4 | 5 | ## 前提条件 6 | 7 | 要在 BotGem 中使用 Azure OpenAI,您需要: 8 | 9 | 1. 一个可以访问 Azure OpenAI 服务的 Azure 账户 10 | 2. 一个已部署的 Azure OpenAI 模型 11 | 3. 您的 Azure OpenAI API 密钥和端点 12 | 13 | ## 获取您的 Azure OpenAI 凭据 14 | 15 | 如果您尚未设置 Azure OpenAI: 16 | 17 | 1. 访问 [Azure 门户](https://portal.azure.com) 18 | 2. 创建或访问您的 Azure OpenAI 资源 19 | 3. 通过 Azure OpenAI Studio 部署您想要的模型 20 | 4. 从资源的"密钥和端点"部分获取您的 API 密钥和端点 URL 21 | 22 | ## 在 BotGem 中配置 Azure OpenAI 23 | 24 | 获取凭据后,按照以下步骤在 BotGem 中配置 Azure OpenAI: 25 | 26 | 1. 打开 BotGem 并进入**设置** 27 | 2. 导航到 **AI 提供商**部分 28 | 3. 在列表中找到 **Azure OpenAI** 提供商 29 | 4. 输入以下信息: 30 | - **API 密钥**:您的 Azure OpenAI API 密钥 31 | - **API 端点**:您的 Azure OpenAI 端点 URL 32 | - **模型**:点击刷新按钮获取模型列表 33 | 5. 点击**保存**应用您的更改 34 | 35 | {.light-only} 36 | {.dark-only} 37 | -------------------------------------------------------------------------------- /docs/zh/claude-extended-thinking.md: -------------------------------------------------------------------------------- 1 | # Claude 扩展思考模式 2 | 3 | ### 如何为 Claude 3.7 Sonnet 启用扩展思考模式 4 | 5 | {.light-only} 6 | {.dark-only} 7 | 8 | 您可以通过以下步骤在聊天窗口中启用扩展思考模式: 9 | 10 | 1. 点击聊天窗口右上角的**设置图标** 11 | 2. 在设置面板中找到 **Parameters** 输入框 12 | 3. 将以下配置复制到 **Parameters** 中: 13 | 14 | ```json 15 | { 16 | "max_tokens": 64000, 17 | "thinking": { 18 | "type": "enabled", 19 | "budget_tokens": 16000 20 | } 21 | } 22 | ``` 23 | -------------------------------------------------------------------------------- /docs/zh/contact.md: -------------------------------------------------------------------------------- 1 | # 与我们合作,共创影响力! 2 | 3 | 我们相信协作的力量,欢迎与科技公司、服务提供商以及任何有宝贵反馈的人合作。您的见解和专业知识可以帮助塑造我们应用的未来。 4 | 5 | 如需探索合作机会或分享您的反馈,请发送电子邮件至 hi@botgem.com。我们感谢您的投入,期待与您一起创造令人惊叹的成果! 6 | -------------------------------------------------------------------------------- /docs/zh/deepseek-configuration.md: -------------------------------------------------------------------------------- 1 | # DeepSeek 配置指南 2 | 3 | 本指南说明如何在 BotGem 中设置和配置 DeepSeek 作为 AI 服务提供商。 4 | 5 | ## 获取您的 DeepSeek API 密钥 6 | 7 | 要在 BotGem 中使用 DeepSeek 模型,您需要获取 API 密钥: 8 | 9 | 1. 访问 [DeepSeek 平台](https://platform.deepseek.com/) 并登录您的账户 10 | 2. 在您的仪表板中导航到 API 部分 11 | 3. 创建新的 API 密钥 12 | 4. 立即复制 API 密钥(您将无法再次查看它) 13 | 14 | ## 在 BotGem 中配置 DeepSeek 15 | 16 | 获取 API 密钥后,按照以下步骤在 BotGem 中配置 DeepSeek: 17 | 18 | 1. 打开 BotGem 并进入**设置** 19 | 2. 导航到**服务提供商**部分 20 | 3. 在列表中找到 **DeepSeek** 提供商 21 | 4. 在指定字段中输入您的 DeepSeek API 密钥 22 | 5. 点击**保存**应用您的更改 23 | 24 | {.light-only} 25 | {.dark-only} 26 | -------------------------------------------------------------------------------- /docs/zh/faq.md: -------------------------------------------------------------------------------- 1 | # 常见问题解答 2 | 3 | ## 一般问题 4 | 5 | ### BotGem 支持哪些平台? 6 | 7 | BotGem 可在 iOS、macOS、Android 和 Windows 上使用,让您几乎可以在任何设备上使用它。 8 | 9 | ### BotGem 是免费使用的吗? 10 | 11 | BotGem 提供免费版和专业版: 12 | - **免费版**:可访问具有标准功能的基本特性 13 | - **专业版**:一次性付款,解锁所有高级功能 14 | 15 | 请注意,无论您使用哪个版本,您可能仍需要为第三方 AI 提供商(如 OpenAI 或 Anthropic)的 API 使用付费。 16 | 17 | ## AI 提供商和模型 18 | 19 | ### BotGem 支持哪些 AI 提供商? 20 | 21 | BotGem 提供与广泛的 AI 服务提供商的兼容性,使您能够访问当今最强大的 AI 模型: 22 | - OpenAI(GPT 系列模型) 23 | - Anthropic(Claude 系列模型) 24 | - Google(Gemini 系列模型) 25 | - Groq 26 | - Deepseek 27 | - Volcengine(火山引擎) 28 | - 通过 Ollama 使用本地模型 29 | - 所有与 OpenAI API 兼容的服务 30 | 31 | ### 我需要拥有自己的 API 密钥吗? 32 | 33 | 是的,要使用大多数 AI 提供商,您需要从相应的服务获取自己的 API 密钥。BotGem 不提供 API 密钥。请参阅我们的[服务提供商](/zh/service-providers)部分,了解如何获取 API 密钥的指南。 34 | 35 | ## 使用和功能 36 | 37 | ### Claude 的扩展思考模式是什么? 38 | 39 | 扩展思考模式是 Anthropic 的 Claude 模型的一项特殊功能,它增强了模型处理复杂任务的推理能力。它专门为模型的内部思考过程分配了部分令牌预算。有关更多信息,请参阅我们的 [Claude 扩展思考模式指南](/zh/claude-extended-thinking)。 40 | 41 | ### BotGem 支持语音对话吗? 42 | 43 | 是的,BotGem 支持使用 OpenAI 的实时 API 进行实时语音对话,允许与 AI 助手进行自然、互动的语音交流。 44 | 45 | ## 隐私和安全 46 | 47 | ### 使用 BotGem 时我的数据安全吗? 48 | 49 | BotGem 非常重视数据安全。我们不会在我们的服务器上存储您的任何对话数据。所有数据都保留在您的设备上。当使用 Ollama 的本地模型时,您的数据甚至不会离开您的设备到达外部 AI 提供商。 50 | 51 | ### BotGem 会与第三方分享我的提示或对话吗? 52 | 53 | BotGem 不会与第三方分享您的提示或对话。但是,当您使用外部 AI 提供商(如 OpenAI 或 Anthropic)时,您的提示会发送到他们的服务器,并受其隐私政策约束。 54 | 55 | ### 我可以删除我的对话历史记录吗? 56 | 57 | 是的,您可以从设置菜单中删除单个对话或清除整个对话历史记录。 58 | 59 | ## 计费和订阅 60 | 61 | ### API 使用的计费方式是怎样的? 62 | 63 | API 使用直接由 AI 提供商(OpenAI、Anthropic 等)根据其定价模型计费。BotGem 不收取 API 使用费,但提供了访问这些服务的便捷界面。 64 | 65 | ### 我如何管理我的专业版购买? 66 | 67 | 购买专业版后,它将在您的设备上自动激活。对于移动版本,您的购买与您的应用商店账户关联。 68 | 69 | ### 专业版是经常性付款吗? 70 | 71 | 不是,专业版是一次性购买,不是订阅。一旦您购买了它,您将永久拥有它,没有经常性费用。 72 | 73 | ## 故障排除 74 | 75 | ### 为什么我收到"API 密钥无效"错误? 76 | 77 | 这种错误通常发生在: 78 | - 您的 API 密钥输入不正确 79 | - 您的 API 密钥已过期 80 | - 您的 API 密钥额度不足 81 | - API 服务遇到问题 82 | 83 | 在提供商的仪表板中验证您的 API 密钥,并确保您有足够的额度。 84 | 85 | ### 我如何报告错误或请求功能? 86 | 87 | 您可以通过加入我们的 [Telegram 社区](https://t.me/AMA_HQ)或联系我们的支持团队(hi@botgem.com)来报告错误或请求功能。 88 | -------------------------------------------------------------------------------- /docs/zh/gemini-image-generation.md: -------------------------------------------------------------------------------- 1 | # Gemini 图像生成指南 2 | 3 | 本指南介绍如何在 BotGem 中启用 Gemini 2.0 Flash Experimental 的图像生成和编辑功能。 4 | 5 | ## 启用 Gemini 2.0 Flash Experimental 的图像生成功能 6 | 7 | {.light-only} 8 | {.dark-only} 9 | 10 | 您可以按照以下步骤在聊天窗口中启用图像生成和编辑功能: 11 | 12 | 1. 点击聊天窗口右上角的**设置图标** 13 | 2. 在聊天设置中禁用 **Prompt** 选项 14 | 3. 在设置面板中找到 **Parameters** 输入字段 15 | 4. 将以下配置复制到 **Parameters** 中: 16 | 17 | ```json 18 | { 19 | "responseModalities": [ 20 | "Text", 21 | "Image" 22 | ] 23 | } 24 | ``` 25 | 26 | ## 使用图像生成功能 27 | 28 | 启用图像生成功能后,您可以: 29 | 30 | 1. 通过描述您想要的内容,让 Gemini 创建图像 31 | 2. 通过上传现有图像并提供指令,请求编辑图像 32 | 3. 生成图像的变体 33 | 34 | ## 示例提示 35 | 36 | 以下是一些您可以使用的示例提示: 37 | 38 | - "创建一张日落时分的山景图像" 39 | - "画一只穿着太空服的卡通猫" 40 | - "为一家名为'Morning Brew'的咖啡店生成一个标志" 41 | 42 | ## 故障排除 43 | 44 | 如果您在图像生成过程中遇到问题: 45 | 46 | - 确保您的 Google API 密钥可以访问 Gemini 2.0 Flash Experimental 47 | - 验证参数是否以正确的 JSON 格式设置 48 | - 检查聊天设置中的 Prompt 选项是否已禁用 49 | 50 | 有关 Google Gemini 配置的更多信息,请参阅 [Google AI 配置指南](google-configuration.md)。 51 | -------------------------------------------------------------------------------- /docs/zh/gemini-thinking-mode.md: -------------------------------------------------------------------------------- 1 | # Gemini 思考模式 2 | 3 | Gemini 2.5 系列模型的思考功能默认就已开启,这使得模型能够进行更深层次的推理,帮你解决复杂问题。想要充分发挥这一能力?这篇文章将带你了解如何在 BotGem 中自定义和使用 Gemini 的思考模式。 4 | 5 | ## 如何自定义 Gemini 2.5 模型的思考模式 6 | 7 | > **注意**:思考功能在 Gemini 2.5 系列模型中默认启用。以下配置允许您自定义思考行为并在响应中查看思考过程。 8 | > 9 | > 思考摘要能够让您洞察模型的内部推理过程。这一功能在验证模型的解题思路和让用户了解长时间任务的进展方面特别有价值,尤其是与流式输出结合使用时。 10 | 11 | {.dark-only} 12 | {.light-only} 13 | 14 | 您可以通过以下步骤在聊天窗口中启用思考摘要(使思考过程可见): 15 | 16 | 1. 点击聊天窗口右上角的**设置图标** 17 | 2. 在设置面板中找到**参数**输入字段 18 | 3. 将以下配置复制到**参数**中: 19 | 20 | ```json 21 | { 22 | "thinkingConfig": { 23 | "includeThoughts": true 24 | } 25 | } 26 | ``` 27 | 28 | ## 理解思考模式 29 | 30 | Gemini 思考模式让模型能够在提供回答前进行更详细的推理。这一功能特别适用于: 31 | 32 | - 复杂问题解决 33 | - 多步骤推理任务 34 | - 详细分析和规划 35 | - 代码生成和调试 36 | 37 | 虽然思考功能在 Gemini 2.5 系列模型中默认启用,但将 `thinkingConfig` 参数中的 `includeThoughts` 设置为 `true` 可以让您通过思考摘要查看模型的推理过程。这些摘要让您能够了解模型的内部思考,使推理过程在响应中可见,帮助您理解模型如何得出结论。 38 | 39 | 思考摘要的价值在于: 40 | - 验证模型的解题思路 41 | - 理解复杂答案背后的推理逻辑 42 | - 让用户了解长时间任务的进展 43 | - 发现推理中可能出现的错误 44 | 45 | 如果您想进一步调整思考过程,还可以设置思考预算: 46 | 47 | ```json 48 | { 49 | "thinkingConfig": { 50 | "includeThoughts": true, 51 | "thinkingBudget": 16000 52 | } 53 | } 54 | ``` 55 | 56 | `thinkingBudget` 参数让您可以控制模型在生成响应时可以使用的思考token数量: 57 | 58 | - **范围**:必须是 0 到 24576 之间的整数 59 | - **默认值**:如果未指定,Gemini 会根据请求的复杂度自动调整预算 60 | - **禁用思考**:将预算设置为 0 会完全禁用思考 61 | - **复杂任务推荐值**:8000-16000 tokens 62 | - **模型支持**:请注意,`thinkingBudget` 仅在 Gemini 2.5 Flash 中支持 63 | 64 | 更高的 token 数量通常能够支持更详细的推理,这对解决复杂任务很有帮助。不过,根据您提供的 prompt 不同,模型实际使用的token可能会比设定的预算多一些或少一些。 65 | 66 | ## 故障排除 67 | 68 | 如果您在使用思考模式时遇到问题: 69 | 70 | - 确保您的 Google API 密钥有权限访问 Gemini 2.5 模型 71 | - 检查 JSON 参数格式是否正确 72 | - 如果响应不完整或不够详细,尝试调整思考预算 73 | - 对于非常复杂的任务,考虑将其拆分为更小的步骤 74 | 75 | 有关 Google Gemini 配置的更多信息,请参阅 [Google AI 配置指南](google-configuration.md)。 76 | -------------------------------------------------------------------------------- /docs/zh/google-configuration.md: -------------------------------------------------------------------------------- 1 | # Google AI 配置指南 2 | 3 | 本指南说明如何在 BotGem 中设置和配置 Google AI (Gemini) 作为服务提供商。 4 | 5 | ## 获取您的 Google AI API 密钥 6 | 7 | 要在 BotGem 中使用 Google 的 Gemini 模型,您需要获取 API 密钥: 8 | 9 | 1. 访问 [Google AI Studio](https://makersuite.google.com/app/apikey) 并使用您的 Google 账户登录 10 | 2. 在 API 密钥部分点击"创建 API 密钥" 11 | 3. 给您的密钥命名(可选)并点击"创建" 12 | 4. 复制 API 密钥以在 BotGem 中使用 13 | 14 | ## 在 BotGem 中配置 Google AI 15 | 16 | 获取 API 密钥后,按照以下步骤在 BotGem 中配置 Google AI: 17 | 18 | 1. 打开 BotGem 并进入**设置** 19 | 2. 导航到**服务提供商**部分 20 | 3. 在列表中找到 **Google Gemini** 提供商 21 | 4. 在指定字段中输入您的 Google Gemini API 密钥 22 | 5. 点击**保存**应用您的更改 23 | 24 | {.light-only} 25 | {.dark-only} 26 | 27 | ## 高级功能 28 | 29 | ### Gemini 2.0 Flash Experimental 图像生成 30 | 31 | Gemini 2.0 Flash Experimental 支持图像生成和编辑功能。要了解如何启用和使用这些功能,请参阅我们的 [Gemini 图像生成指南](/zh/gemini-image-generation)。 32 | -------------------------------------------------------------------------------- /docs/zh/groq-configuration.md: -------------------------------------------------------------------------------- 1 | # Groq 配置指南 2 | 3 | 本指南说明如何在 BotGem 中设置和配置 Groq 作为 AI 服务提供商。 4 | 5 | ## 获取您的 Groq API 密钥 6 | 7 | 要在 BotGem 中使用 Groq 的 AI 模型,您需要获取 API 密钥: 8 | 9 | 1. 访问 [Groq 网站](https://console.groq.com/keys) 并创建账户或登录 10 | 2. 在您的账户仪表板中导航到 API 密钥部分 11 | 3. 创建新的 API 密钥 12 | 4. 复制 API 密钥以在 BotGem 中使用 13 | 14 | ## 在 BotGem 中配置 Groq 15 | 16 | 获取 API 密钥后,按照以下步骤在 BotGem 中配置 Groq: 17 | 18 | 1. 打开 BotGem 并进入**设置** 19 | 2. 导航到**服务提供商**部分 20 | 3. 在列表中找到 **Groq** 提供商 21 | 4. 在指定字段中输入您的 Groq API 密钥 22 | 5. 点击**保存**应用您的更改 23 | 24 | {.light-only} 25 | {.dark-only} 26 | -------------------------------------------------------------------------------- /docs/zh/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | # https://vitepress.dev/reference/default-theme-home-page 3 | layout: home 4 | 5 | hero: 6 | name: "BotGem" 7 | text: "AI 在手, 未来我有" 8 | tagline: "释放 AI 潜能,开启无限可能" 9 | actions: 10 | - theme: brand 11 | text: 快捷入门指南 12 | link: /quickstart 13 | - theme: alt 14 | text: 合作共赢 15 | link: /contact 16 | 17 | features: 18 | - title: Your Gateway to AI Versatility 19 | details: Unlock a World of AI with Multi-Provider and Multi-Modal Support 20 | link: /service-providers 21 | - title: Local LLMs 22 | details: Get up and running with large language models, locally. 23 | link: /ollama 24 | - title: AI Fusion 25 | details: Seamlessly Blend AI With Your Apps. 26 | link: /ai-fusion 27 | 28 | --- 29 | 30 | -------------------------------------------------------------------------------- /docs/zh/introduction.md: -------------------------------------------------------------------------------- 1 | # 介绍 2 | 3 | BotGem 是一个跨平台应用程序,作为您的个人 AI 助手中心。它可在 iOS、macOS、Android 和 Windows 上使用,通过简洁、直观的界面让您与各种 AI 模型互动,无需在不同平台或网站之间切换。 4 | 5 | ## 支持的 AI 服务提供商 6 | 7 | BotGem 支持广泛的 AI 服务提供商,包括: 8 | 9 | - **OpenAI GPT 系列模型** 10 | - **Anthropic Claude** 11 | - **Google Gemini** 12 | - **Groq** 13 | - **Deepseek** 14 | - **Volcengine(火山引擎)** 15 | - **本地模型**(Ollama) 16 | - **所有与 OpenAI API 兼容的服务** 17 | 18 | ## 主要特点 19 | 20 | - **注重隐私**:使用本地模型时,您的数据保留在您的设备上 21 | - **跨平台**:适用于 iOS、macOS、Android 和 Windows 22 | 23 | ## 开始使用 24 | 25 | 要开始使用 BotGem,请查看我们的[快速入门指南](/zh/quickstart),它将引导您完成安装过程和基本配置步骤。 26 | 27 | 有关配置特定 AI 服务提供商的详细信息,请访问我们的[服务提供商](/zh/service-providers)部分。 28 | -------------------------------------------------------------------------------- /docs/zh/markdown-examples.md: -------------------------------------------------------------------------------- 1 | # Markdown 扩展示例 2 | 3 | 本页面演示了 VitePress 提供的一些内置 Markdown 扩展功能。 4 | 5 | ## 语法高亮 6 | 7 | VitePress 提供由 [Shiki](https://github.com/shikijs/shiki) 驱动的语法高亮功能,并具有行高亮等附加功能: 8 | 9 | **输入** 10 | 11 | ```js{4} 12 | export default { 13 | data () { 14 | return { 15 | msg: 'Highlighted!' 16 | } 17 | } 18 | } 19 | ``` 20 | 21 | **输出** 22 | 23 | ```js{4} 24 | export default { 25 | data () { 26 | return { 27 | msg: 'Highlighted!' 28 | } 29 | } 30 | } 31 | ``` 32 | 33 | ## 自定义容器 34 | 35 | **输入** 36 | 37 | ```md 38 | ::: info 39 | 这是一个信息框。 40 | ::: 41 | 42 | ::: tip 43 | 这是一个提示。 44 | ::: 45 | 46 | ::: warning 47 | 这是一个警告。 48 | ::: 49 | 50 | ::: danger 51 | 这是一个危险警告。 52 | ::: 53 | 54 | ::: details 55 | 这是一个详情块。 56 | ::: 57 | ``` 58 | 59 | **输出** 60 | 61 | ::: info 62 | 这是一个信息框。 63 | ::: 64 | 65 | ::: tip 66 | 这是一个提示。 67 | ::: 68 | 69 | ::: warning 70 | 这是一个警告。 71 | ::: 72 | 73 | ::: danger 74 | 这是一个危险警告。 75 | ::: 76 | 77 | ::: details 78 | 这是一个详情块。 79 | ::: 80 | 81 | ## 更多 82 | 83 | 查看文档获取[完整的 Markdown 扩展列表](https://vitepress.dev/guide/markdown)。 84 | -------------------------------------------------------------------------------- /docs/zh/media-kit.md: -------------------------------------------------------------------------------- 1 | # 媒体工具包 2 | -------------------------------------------------------------------------------- /docs/zh/ollama.md: -------------------------------------------------------------------------------- 1 | # Ollama 设置指南 2 | 3 | 本指南说明如何设置和使用 Ollama 与 BotGem 一起在您自己的机器上运行本地 AI 模型。 4 | 5 | ## 什么是 Ollama? 6 | 7 | Ollama 是一个开源工具,允许您在本地计算机上运行大型语言模型 (LLMs)。通过将 Ollama 与 BotGem 一起使用,您可以: 8 | 9 | - 完全离线运行 AI 模型,无需将数据发送到外部服务 10 | - 保持对您数据的完全隐私和控制 11 | - 避免与基于云的 AI 服务相关的 API 成本 12 | - 尝试各种开源模型 13 | 14 | ## 安装 15 | 16 | ### macOS 17 | 18 | 1. 从[官方网站](https://ollama.com/download)下载 Ollama 安装程序 19 | 2. 打开下载的文件并按照安装说明进行操作 20 | 3. 安装完成后,Ollama 将在后台作为服务运行 21 | 22 | ### Windows 23 | 24 | 1. 从[官方网站](https://ollama.com/download)下载 Ollama 安装程序 25 | 2. 运行安装程序并按照屏幕上的说明进行操作 26 | 3. 安装后,Ollama 将自动启动 27 | 28 | ### Linux 29 | 30 | ```bash 31 | curl -fsSL https://ollama.com/install.sh | sh 32 | ``` 33 | 34 | ## 在 BotGem 中配置 Ollama 35 | 36 | 一旦 Ollama 安装并运行,按照以下步骤在 BotGem 中配置它: 37 | 38 | 1. 打开 BotGem 并进入**设置** 39 | 2. 导航到 **Ollama 管理控制台**部分 40 | 3. 点击**添加**来添加新的 Ollama 实例 41 | 4. 输入 Ollama 服务器名称和 URL(默认为 `http://localhost:11434`) 42 | 5. 点击**保存**应用您的更改 43 | 44 | {.light-only} 45 | {.dark-only} 46 | 47 | 6. 点击右上角输入框并输入模型名称以拉取您想要使用的模型 48 | 49 | 您可以在 [Ollama 模型列表](https://ollama.com/models) 中找到最新的模型名称 50 | 51 | {.light-only} 52 | {.dark-only} 53 | -------------------------------------------------------------------------------- /docs/zh/openai-compatible.md: -------------------------------------------------------------------------------- 1 | # OpenAI API 兼容服务配置 2 | 3 | 本指南说明如何在 BotGem 中设置和配置 OpenAI API 兼容服务。 4 | 5 | ## 什么是 OpenAI API 兼容服务? 6 | 7 | OpenAI API 兼容服务是实现了 OpenAI API 规范的第三方 AI 服务,允许您使用与 OpenAI 相同的 API 格式的替代提供商。这些服务通常提供: 8 | 9 | - 与 OpenAI 相比更低的成本 10 | - 不同的模型选项 11 | - 可能更快的响应时间 12 | - 自托管选项以保护隐私 13 | 14 | ## 流行的兼容服务 15 | 16 | 几个提供商提供 OpenAI API 兼容端点: 17 | 18 | - **OhMyGPT** - 提供各种开源和闭源模型 19 | - **OpenRouter** - 统一 API,支持来自 50 多个提供商的 300 多个模型,具有高可用性 20 | - **Mistral AI** - 提供他们自己的有竞争力的模型 21 | 22 | ## 在 BotGem 中配置兼容服务 23 | 24 | 要在 BotGem 中设置 OpenAI API 兼容服务: 25 | 26 | 1. 打开 BotGem 并进入**设置** 27 | 2. 导航到**服务提供商**部分 28 | 3. 在列表中找到 **OpenAI API 兼容**提供商 29 | 4. 输入以下信息: 30 | - **API 密钥** - 来自您兼容服务的 API 密钥 31 | - **基础 URL** - 您兼容服务的 API 端点 URL 32 | - **模型列表** - 如果需要,自定义模型名称 33 | 5. 点击**保存**应用您的更改 34 | -------------------------------------------------------------------------------- /docs/zh/openai-configuration.md: -------------------------------------------------------------------------------- 1 | # OpenAI 配置指南 2 | 3 | 本指南说明如何在 BotGem 中设置和配置 OpenAI 作为 AI 服务提供商。 4 | 5 | ## 获取您的 OpenAI API 密钥 6 | 7 | 要在 BotGem 中使用 OpenAI 模型,您需要获取 API 密钥: 8 | 9 | 1. 访问 [OpenAI 平台](https://platform.openai.com/api-keys) 并登录您的账户 10 | 2. 点击"创建新的密钥" 11 | 3. 给您的密钥命名(可选)并点击"创建密钥" 12 | 4. 立即复制 API 密钥(您将无法再次查看它) 13 | 14 | ## 在 BotGem 中配置 OpenAI 15 | 16 | 获取 API 密钥后,按照以下步骤在 BotGem 中配置 OpenAI: 17 | 18 | 1. 打开 BotGem 并进入**设置** 19 | 2. 导航到**服务提供商**部分 20 | 3. 在列表中找到 **OpenAI** 提供商 21 | 4. 在指定字段中输入您的 OpenAI API 密钥 22 | 5. 点击**保存**应用您的更改 23 | 24 | {.light-only} 25 | {.dark-only} 26 | -------------------------------------------------------------------------------- /docs/zh/quickstart.md: -------------------------------------------------------------------------------- 1 | # 快速入门指南 2 | 3 | 本指南将帮助您快速开始使用 BotGem,从安装到与 AI 助手的第一次对话。 4 | 5 | ## 下载和安装 6 | 7 | ### 步骤 1:下载 BotGem 8 | 9 | 为您的平台下载 BotGem: 10 | 11 | - **iOS**:从 [App Store](https://apps.apple.com/app/ama-ask-me-anything/id6446135619?l=en) 下载 12 | - **macOS**:从 [Mac App Store](https://apps.apple.com/app/ama-ask-me-anything/id6446135619?l=en) 或我们的[网站](https://botgem.com/#get-the-app)下载 13 | - **Android**:从 [Google Play Store](https://play.google.com/store/apps/details?id=com.bytemyth.ama) 下载 14 | - **Windows**:从 [Microsoft Store](https://apps.microsoft.com/detail/ama-the-gpt-app/9NQZVTBFJ86K?hl=en-US&gl=SE) 下载 15 | 16 | ### 步骤 2:安装 BotGem 17 | 18 | - **iOS/Android**:下载后应用将自动安装 19 | - **macOS**:打开下载的 .dmg 文件,并将 BotGem 拖到您的应用程序文件夹 20 | - **Windows**:从 Microsoft Store 下载后应用将自动安装 21 | 22 | ## 开始使用 23 | 24 | 从您的应用程序菜单或主屏幕启动 BotGem。使用应用程序不需要账户。 25 | 26 | ## 配置 AI 服务提供商 27 | 28 | BotGem 支持多个 AI 服务提供商。要设置您首选的提供商: 29 | 30 | 1. 进入**设置**(齿轮图标) 31 | 2. 选择**服务提供商** 32 | 3. 从列表中选择您首选的提供商 33 | 4. 输入所选提供商的 API 密钥 34 | 35 | {.light-only} 36 | {.dark-only} 37 | 38 | 有关每个提供商的详细配置指南,请访问: 39 | 40 | - [OpenAI 配置](/zh/openai-configuration) 41 | - [Anthropic (Claude) 配置](/zh/anthropic-configuration) 42 | - [Google Gemini 配置](/zh/google-configuration) 43 | - [Groq 配置](/zh/groq-configuration) 44 | - [Azure OpenAI 配置](/zh/azure-configuration) 45 | - [DeepSeek 配置](/zh/deepseek-configuration) 46 | - [Volcengine(火山引擎)配置](/zh/volcengine-configuration) 47 | - [OpenAI API 兼容服务](/zh/openai-compatible) 48 | - [Ollama 设置](/zh/ollama)(用于本地模型) 49 | 50 | ## 您的第一次对话 51 | 52 | 1. 从主屏幕,点击**聊天图标**开始新对话 53 | 2. 在底部的输入框中输入您的消息 54 | 3. 按**发送**或使用 **Command + Enter**(Mac)/ **Ctrl + Enter**(Windows/Android) 55 | 4. 等待 AI 回应 56 | 57 | {.light-only} 58 | {.dark-only} 59 | 60 | ## 故障排除 61 | 62 | 如果您遇到任何问题: 63 | 64 | 1. 检查您的互联网连接 65 | 2. 验证您的 API 密钥是否正确且有足够的额度 66 | 3. 重启应用程序 67 | 4. 访问我们的[常见问题](/zh/faq)了解常见问题和解决方案 68 | 69 | ## 后续步骤 70 | 71 | 现在您已经开始运行 BotGem,探索更多功能: 72 | 73 | - 配置其他 AI 服务提供商 74 | - 使用语音通话功能与 AI 练习外语 75 | - 加入我们的 [Telegram 社区](https://t.me/AMA_HQ)分享技巧并获取帮助 76 | -------------------------------------------------------------------------------- /docs/zh/service-providers.md: -------------------------------------------------------------------------------- 1 | # 广泛的 AI 服务提供商支持 2 | 3 | BotGem 集成了各种 AI 服务提供商,使您能够访问当前最强大的 AI 模型: 4 | 5 | - [OpenAI](/zh/openai-configuration) - GPT 系列模型 6 | - [Anthropic](/zh/anthropic-configuration) - Claude 系列模型 7 | - [Google](/zh/google-configuration) - Gemini 系列模型 8 | - [Groq](/zh/groq-configuration) 9 | - [Deepseek](/zh/deepseek-configuration) 10 | - [Volcengine](/zh/volcengine-configuration) 11 | - [Azure](/zh/azure-configuration) - OpenAI 系列模型 12 | - [Ollama](/zh/ollama) - 本地模型 13 | - [OpenAI 兼容服务](/zh/openai-compatible) 14 | 15 | 通过支持所有这些提供商及更多,BotGem 给您提供了无与伦比的灵活性,可以选择最适合您需求的 AI 模型。点击上面的任何提供商以查看其详细的配置指南。 16 | 17 | {.light-only} 18 | {.dark-only} -------------------------------------------------------------------------------- /docs/zh/volcengine-configuration.md: -------------------------------------------------------------------------------- 1 | # 火山引擎配置指南 2 | 3 | 本指南说明如何在 BotGem 中设置和配置火山引擎作为 AI 服务提供商。 4 | 5 | ## 获取您的火山引擎 API 密钥 6 | 7 | 要在 BotGem 中使用火山引擎模型,您需要获取 API 密钥: 8 | 9 | 1. 访问[火山引擎平台](https://www.volcengine.com/)并登录您的账户 10 | 2. 在您的仪表板中导航到 AI 服务部分 11 | 3. 为火山引擎 AI 服务创建新的 API 密钥 12 | 4. 复制 API 密钥和其他必需的凭据 13 | 14 | ## 在 BotGem 中配置火山引擎 15 | 16 | 获取 API 密钥后,按照以下步骤在 BotGem 中配置火山引擎: 17 | 18 | 1. 打开 BotGem 并进入**设置** 19 | 2. 导航到**服务提供商**部分 20 | 3. 在列表中找到**火山引擎**提供商 21 | 4. 输入您的火山引擎 API 密钥和其他必需的凭据 22 | 5. 点击**保存**应用您的更改 23 | 24 | {.light-only} 25 | {.dark-only} 26 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "docs", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "devDependencies": { 8 | "@types/node": "^20.14.9", 9 | "vitepress": "^1.2.3" 10 | } 11 | }, 12 | "node_modules/@algolia/autocomplete-core": { 13 | "version": "1.9.3", 14 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", 15 | "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", 16 | "dev": true, 17 | "dependencies": { 18 | "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", 19 | "@algolia/autocomplete-shared": "1.9.3" 20 | } 21 | }, 22 | "node_modules/@algolia/autocomplete-plugin-algolia-insights": { 23 | "version": "1.9.3", 24 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", 25 | "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", 26 | "dev": true, 27 | "dependencies": { 28 | "@algolia/autocomplete-shared": "1.9.3" 29 | }, 30 | "peerDependencies": { 31 | "search-insights": ">= 1 < 3" 32 | } 33 | }, 34 | "node_modules/@algolia/autocomplete-preset-algolia": { 35 | "version": "1.9.3", 36 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", 37 | "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", 38 | "dev": true, 39 | "dependencies": { 40 | "@algolia/autocomplete-shared": "1.9.3" 41 | }, 42 | "peerDependencies": { 43 | "@algolia/client-search": ">= 4.9.1 < 6", 44 | "algoliasearch": ">= 4.9.1 < 6" 45 | } 46 | }, 47 | "node_modules/@algolia/autocomplete-shared": { 48 | "version": "1.9.3", 49 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", 50 | "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", 51 | "dev": true, 52 | "peerDependencies": { 53 | "@algolia/client-search": ">= 4.9.1 < 6", 54 | "algoliasearch": ">= 4.9.1 < 6" 55 | } 56 | }, 57 | "node_modules/@algolia/cache-browser-local-storage": { 58 | "version": "4.23.3", 59 | "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz", 60 | "integrity": "sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==", 61 | "dev": true, 62 | "dependencies": { 63 | "@algolia/cache-common": "4.23.3" 64 | } 65 | }, 66 | "node_modules/@algolia/cache-common": { 67 | "version": "4.23.3", 68 | "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.3.tgz", 69 | "integrity": "sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==", 70 | "dev": true 71 | }, 72 | "node_modules/@algolia/cache-in-memory": { 73 | "version": "4.23.3", 74 | "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz", 75 | "integrity": "sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==", 76 | "dev": true, 77 | "dependencies": { 78 | "@algolia/cache-common": "4.23.3" 79 | } 80 | }, 81 | "node_modules/@algolia/client-account": { 82 | "version": "4.23.3", 83 | "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.3.tgz", 84 | "integrity": "sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==", 85 | "dev": true, 86 | "dependencies": { 87 | "@algolia/client-common": "4.23.3", 88 | "@algolia/client-search": "4.23.3", 89 | "@algolia/transporter": "4.23.3" 90 | } 91 | }, 92 | "node_modules/@algolia/client-analytics": { 93 | "version": "4.23.3", 94 | "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.3.tgz", 95 | "integrity": "sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==", 96 | "dev": true, 97 | "dependencies": { 98 | "@algolia/client-common": "4.23.3", 99 | "@algolia/client-search": "4.23.3", 100 | "@algolia/requester-common": "4.23.3", 101 | "@algolia/transporter": "4.23.3" 102 | } 103 | }, 104 | "node_modules/@algolia/client-common": { 105 | "version": "4.23.3", 106 | "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.3.tgz", 107 | "integrity": "sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==", 108 | "dev": true, 109 | "dependencies": { 110 | "@algolia/requester-common": "4.23.3", 111 | "@algolia/transporter": "4.23.3" 112 | } 113 | }, 114 | "node_modules/@algolia/client-personalization": { 115 | "version": "4.23.3", 116 | "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.3.tgz", 117 | "integrity": "sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==", 118 | "dev": true, 119 | "dependencies": { 120 | "@algolia/client-common": "4.23.3", 121 | "@algolia/requester-common": "4.23.3", 122 | "@algolia/transporter": "4.23.3" 123 | } 124 | }, 125 | "node_modules/@algolia/client-search": { 126 | "version": "4.23.3", 127 | "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.3.tgz", 128 | "integrity": "sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==", 129 | "dev": true, 130 | "dependencies": { 131 | "@algolia/client-common": "4.23.3", 132 | "@algolia/requester-common": "4.23.3", 133 | "@algolia/transporter": "4.23.3" 134 | } 135 | }, 136 | "node_modules/@algolia/logger-common": { 137 | "version": "4.23.3", 138 | "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.3.tgz", 139 | "integrity": "sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==", 140 | "dev": true 141 | }, 142 | "node_modules/@algolia/logger-console": { 143 | "version": "4.23.3", 144 | "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.3.tgz", 145 | "integrity": "sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==", 146 | "dev": true, 147 | "dependencies": { 148 | "@algolia/logger-common": "4.23.3" 149 | } 150 | }, 151 | "node_modules/@algolia/recommend": { 152 | "version": "4.23.3", 153 | "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.3.tgz", 154 | "integrity": "sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==", 155 | "dev": true, 156 | "dependencies": { 157 | "@algolia/cache-browser-local-storage": "4.23.3", 158 | "@algolia/cache-common": "4.23.3", 159 | "@algolia/cache-in-memory": "4.23.3", 160 | "@algolia/client-common": "4.23.3", 161 | "@algolia/client-search": "4.23.3", 162 | "@algolia/logger-common": "4.23.3", 163 | "@algolia/logger-console": "4.23.3", 164 | "@algolia/requester-browser-xhr": "4.23.3", 165 | "@algolia/requester-common": "4.23.3", 166 | "@algolia/requester-node-http": "4.23.3", 167 | "@algolia/transporter": "4.23.3" 168 | } 169 | }, 170 | "node_modules/@algolia/requester-browser-xhr": { 171 | "version": "4.23.3", 172 | "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz", 173 | "integrity": "sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==", 174 | "dev": true, 175 | "dependencies": { 176 | "@algolia/requester-common": "4.23.3" 177 | } 178 | }, 179 | "node_modules/@algolia/requester-common": { 180 | "version": "4.23.3", 181 | "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.3.tgz", 182 | "integrity": "sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==", 183 | "dev": true 184 | }, 185 | "node_modules/@algolia/requester-node-http": { 186 | "version": "4.23.3", 187 | "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz", 188 | "integrity": "sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==", 189 | "dev": true, 190 | "dependencies": { 191 | "@algolia/requester-common": "4.23.3" 192 | } 193 | }, 194 | "node_modules/@algolia/transporter": { 195 | "version": "4.23.3", 196 | "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.3.tgz", 197 | "integrity": "sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==", 198 | "dev": true, 199 | "dependencies": { 200 | "@algolia/cache-common": "4.23.3", 201 | "@algolia/logger-common": "4.23.3", 202 | "@algolia/requester-common": "4.23.3" 203 | } 204 | }, 205 | "node_modules/@babel/parser": { 206 | "version": "7.24.7", 207 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", 208 | "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", 209 | "dev": true, 210 | "bin": { 211 | "parser": "bin/babel-parser.js" 212 | }, 213 | "engines": { 214 | "node": ">=6.0.0" 215 | } 216 | }, 217 | "node_modules/@docsearch/css": { 218 | "version": "3.6.0", 219 | "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", 220 | "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==", 221 | "dev": true 222 | }, 223 | "node_modules/@docsearch/js": { 224 | "version": "3.6.0", 225 | "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.6.0.tgz", 226 | "integrity": "sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==", 227 | "dev": true, 228 | "dependencies": { 229 | "@docsearch/react": "3.6.0", 230 | "preact": "^10.0.0" 231 | } 232 | }, 233 | "node_modules/@docsearch/react": { 234 | "version": "3.6.0", 235 | "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", 236 | "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", 237 | "dev": true, 238 | "dependencies": { 239 | "@algolia/autocomplete-core": "1.9.3", 240 | "@algolia/autocomplete-preset-algolia": "1.9.3", 241 | "@docsearch/css": "3.6.0", 242 | "algoliasearch": "^4.19.1" 243 | }, 244 | "peerDependencies": { 245 | "@types/react": ">= 16.8.0 < 19.0.0", 246 | "react": ">= 16.8.0 < 19.0.0", 247 | "react-dom": ">= 16.8.0 < 19.0.0", 248 | "search-insights": ">= 1 < 3" 249 | }, 250 | "peerDependenciesMeta": { 251 | "@types/react": { 252 | "optional": true 253 | }, 254 | "react": { 255 | "optional": true 256 | }, 257 | "react-dom": { 258 | "optional": true 259 | }, 260 | "search-insights": { 261 | "optional": true 262 | } 263 | } 264 | }, 265 | "node_modules/@esbuild/aix-ppc64": { 266 | "version": "0.21.5", 267 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", 268 | "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", 269 | "cpu": [ 270 | "ppc64" 271 | ], 272 | "dev": true, 273 | "optional": true, 274 | "os": [ 275 | "aix" 276 | ], 277 | "engines": { 278 | "node": ">=12" 279 | } 280 | }, 281 | "node_modules/@esbuild/android-arm": { 282 | "version": "0.21.5", 283 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", 284 | "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", 285 | "cpu": [ 286 | "arm" 287 | ], 288 | "dev": true, 289 | "optional": true, 290 | "os": [ 291 | "android" 292 | ], 293 | "engines": { 294 | "node": ">=12" 295 | } 296 | }, 297 | "node_modules/@esbuild/android-arm64": { 298 | "version": "0.21.5", 299 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", 300 | "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", 301 | "cpu": [ 302 | "arm64" 303 | ], 304 | "dev": true, 305 | "optional": true, 306 | "os": [ 307 | "android" 308 | ], 309 | "engines": { 310 | "node": ">=12" 311 | } 312 | }, 313 | "node_modules/@esbuild/android-x64": { 314 | "version": "0.21.5", 315 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", 316 | "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", 317 | "cpu": [ 318 | "x64" 319 | ], 320 | "dev": true, 321 | "optional": true, 322 | "os": [ 323 | "android" 324 | ], 325 | "engines": { 326 | "node": ">=12" 327 | } 328 | }, 329 | "node_modules/@esbuild/darwin-arm64": { 330 | "version": "0.21.5", 331 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", 332 | "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", 333 | "cpu": [ 334 | "arm64" 335 | ], 336 | "dev": true, 337 | "optional": true, 338 | "os": [ 339 | "darwin" 340 | ], 341 | "engines": { 342 | "node": ">=12" 343 | } 344 | }, 345 | "node_modules/@esbuild/darwin-x64": { 346 | "version": "0.21.5", 347 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", 348 | "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", 349 | "cpu": [ 350 | "x64" 351 | ], 352 | "dev": true, 353 | "optional": true, 354 | "os": [ 355 | "darwin" 356 | ], 357 | "engines": { 358 | "node": ">=12" 359 | } 360 | }, 361 | "node_modules/@esbuild/freebsd-arm64": { 362 | "version": "0.21.5", 363 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", 364 | "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", 365 | "cpu": [ 366 | "arm64" 367 | ], 368 | "dev": true, 369 | "optional": true, 370 | "os": [ 371 | "freebsd" 372 | ], 373 | "engines": { 374 | "node": ">=12" 375 | } 376 | }, 377 | "node_modules/@esbuild/freebsd-x64": { 378 | "version": "0.21.5", 379 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", 380 | "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", 381 | "cpu": [ 382 | "x64" 383 | ], 384 | "dev": true, 385 | "optional": true, 386 | "os": [ 387 | "freebsd" 388 | ], 389 | "engines": { 390 | "node": ">=12" 391 | } 392 | }, 393 | "node_modules/@esbuild/linux-arm": { 394 | "version": "0.21.5", 395 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", 396 | "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", 397 | "cpu": [ 398 | "arm" 399 | ], 400 | "dev": true, 401 | "optional": true, 402 | "os": [ 403 | "linux" 404 | ], 405 | "engines": { 406 | "node": ">=12" 407 | } 408 | }, 409 | "node_modules/@esbuild/linux-arm64": { 410 | "version": "0.21.5", 411 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", 412 | "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", 413 | "cpu": [ 414 | "arm64" 415 | ], 416 | "dev": true, 417 | "optional": true, 418 | "os": [ 419 | "linux" 420 | ], 421 | "engines": { 422 | "node": ">=12" 423 | } 424 | }, 425 | "node_modules/@esbuild/linux-ia32": { 426 | "version": "0.21.5", 427 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", 428 | "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", 429 | "cpu": [ 430 | "ia32" 431 | ], 432 | "dev": true, 433 | "optional": true, 434 | "os": [ 435 | "linux" 436 | ], 437 | "engines": { 438 | "node": ">=12" 439 | } 440 | }, 441 | "node_modules/@esbuild/linux-loong64": { 442 | "version": "0.21.5", 443 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", 444 | "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", 445 | "cpu": [ 446 | "loong64" 447 | ], 448 | "dev": true, 449 | "optional": true, 450 | "os": [ 451 | "linux" 452 | ], 453 | "engines": { 454 | "node": ">=12" 455 | } 456 | }, 457 | "node_modules/@esbuild/linux-mips64el": { 458 | "version": "0.21.5", 459 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", 460 | "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", 461 | "cpu": [ 462 | "mips64el" 463 | ], 464 | "dev": true, 465 | "optional": true, 466 | "os": [ 467 | "linux" 468 | ], 469 | "engines": { 470 | "node": ">=12" 471 | } 472 | }, 473 | "node_modules/@esbuild/linux-ppc64": { 474 | "version": "0.21.5", 475 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", 476 | "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", 477 | "cpu": [ 478 | "ppc64" 479 | ], 480 | "dev": true, 481 | "optional": true, 482 | "os": [ 483 | "linux" 484 | ], 485 | "engines": { 486 | "node": ">=12" 487 | } 488 | }, 489 | "node_modules/@esbuild/linux-riscv64": { 490 | "version": "0.21.5", 491 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", 492 | "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", 493 | "cpu": [ 494 | "riscv64" 495 | ], 496 | "dev": true, 497 | "optional": true, 498 | "os": [ 499 | "linux" 500 | ], 501 | "engines": { 502 | "node": ">=12" 503 | } 504 | }, 505 | "node_modules/@esbuild/linux-s390x": { 506 | "version": "0.21.5", 507 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", 508 | "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", 509 | "cpu": [ 510 | "s390x" 511 | ], 512 | "dev": true, 513 | "optional": true, 514 | "os": [ 515 | "linux" 516 | ], 517 | "engines": { 518 | "node": ">=12" 519 | } 520 | }, 521 | "node_modules/@esbuild/linux-x64": { 522 | "version": "0.21.5", 523 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", 524 | "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", 525 | "cpu": [ 526 | "x64" 527 | ], 528 | "dev": true, 529 | "optional": true, 530 | "os": [ 531 | "linux" 532 | ], 533 | "engines": { 534 | "node": ">=12" 535 | } 536 | }, 537 | "node_modules/@esbuild/netbsd-x64": { 538 | "version": "0.21.5", 539 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", 540 | "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", 541 | "cpu": [ 542 | "x64" 543 | ], 544 | "dev": true, 545 | "optional": true, 546 | "os": [ 547 | "netbsd" 548 | ], 549 | "engines": { 550 | "node": ">=12" 551 | } 552 | }, 553 | "node_modules/@esbuild/openbsd-x64": { 554 | "version": "0.21.5", 555 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", 556 | "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", 557 | "cpu": [ 558 | "x64" 559 | ], 560 | "dev": true, 561 | "optional": true, 562 | "os": [ 563 | "openbsd" 564 | ], 565 | "engines": { 566 | "node": ">=12" 567 | } 568 | }, 569 | "node_modules/@esbuild/sunos-x64": { 570 | "version": "0.21.5", 571 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", 572 | "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", 573 | "cpu": [ 574 | "x64" 575 | ], 576 | "dev": true, 577 | "optional": true, 578 | "os": [ 579 | "sunos" 580 | ], 581 | "engines": { 582 | "node": ">=12" 583 | } 584 | }, 585 | "node_modules/@esbuild/win32-arm64": { 586 | "version": "0.21.5", 587 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", 588 | "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", 589 | "cpu": [ 590 | "arm64" 591 | ], 592 | "dev": true, 593 | "optional": true, 594 | "os": [ 595 | "win32" 596 | ], 597 | "engines": { 598 | "node": ">=12" 599 | } 600 | }, 601 | "node_modules/@esbuild/win32-ia32": { 602 | "version": "0.21.5", 603 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", 604 | "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", 605 | "cpu": [ 606 | "ia32" 607 | ], 608 | "dev": true, 609 | "optional": true, 610 | "os": [ 611 | "win32" 612 | ], 613 | "engines": { 614 | "node": ">=12" 615 | } 616 | }, 617 | "node_modules/@esbuild/win32-x64": { 618 | "version": "0.21.5", 619 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", 620 | "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", 621 | "cpu": [ 622 | "x64" 623 | ], 624 | "dev": true, 625 | "optional": true, 626 | "os": [ 627 | "win32" 628 | ], 629 | "engines": { 630 | "node": ">=12" 631 | } 632 | }, 633 | "node_modules/@jridgewell/sourcemap-codec": { 634 | "version": "1.4.15", 635 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", 636 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", 637 | "dev": true 638 | }, 639 | "node_modules/@rollup/rollup-android-arm-eabi": { 640 | "version": "4.18.0", 641 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", 642 | "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", 643 | "cpu": [ 644 | "arm" 645 | ], 646 | "dev": true, 647 | "optional": true, 648 | "os": [ 649 | "android" 650 | ] 651 | }, 652 | "node_modules/@rollup/rollup-android-arm64": { 653 | "version": "4.18.0", 654 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", 655 | "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", 656 | "cpu": [ 657 | "arm64" 658 | ], 659 | "dev": true, 660 | "optional": true, 661 | "os": [ 662 | "android" 663 | ] 664 | }, 665 | "node_modules/@rollup/rollup-darwin-arm64": { 666 | "version": "4.18.0", 667 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", 668 | "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", 669 | "cpu": [ 670 | "arm64" 671 | ], 672 | "dev": true, 673 | "optional": true, 674 | "os": [ 675 | "darwin" 676 | ] 677 | }, 678 | "node_modules/@rollup/rollup-darwin-x64": { 679 | "version": "4.18.0", 680 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", 681 | "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", 682 | "cpu": [ 683 | "x64" 684 | ], 685 | "dev": true, 686 | "optional": true, 687 | "os": [ 688 | "darwin" 689 | ] 690 | }, 691 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 692 | "version": "4.18.0", 693 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", 694 | "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", 695 | "cpu": [ 696 | "arm" 697 | ], 698 | "dev": true, 699 | "optional": true, 700 | "os": [ 701 | "linux" 702 | ] 703 | }, 704 | "node_modules/@rollup/rollup-linux-arm-musleabihf": { 705 | "version": "4.18.0", 706 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", 707 | "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", 708 | "cpu": [ 709 | "arm" 710 | ], 711 | "dev": true, 712 | "optional": true, 713 | "os": [ 714 | "linux" 715 | ] 716 | }, 717 | "node_modules/@rollup/rollup-linux-arm64-gnu": { 718 | "version": "4.18.0", 719 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", 720 | "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", 721 | "cpu": [ 722 | "arm64" 723 | ], 724 | "dev": true, 725 | "optional": true, 726 | "os": [ 727 | "linux" 728 | ] 729 | }, 730 | "node_modules/@rollup/rollup-linux-arm64-musl": { 731 | "version": "4.18.0", 732 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", 733 | "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", 734 | "cpu": [ 735 | "arm64" 736 | ], 737 | "dev": true, 738 | "optional": true, 739 | "os": [ 740 | "linux" 741 | ] 742 | }, 743 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 744 | "version": "4.18.0", 745 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", 746 | "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", 747 | "cpu": [ 748 | "ppc64" 749 | ], 750 | "dev": true, 751 | "optional": true, 752 | "os": [ 753 | "linux" 754 | ] 755 | }, 756 | "node_modules/@rollup/rollup-linux-riscv64-gnu": { 757 | "version": "4.18.0", 758 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", 759 | "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", 760 | "cpu": [ 761 | "riscv64" 762 | ], 763 | "dev": true, 764 | "optional": true, 765 | "os": [ 766 | "linux" 767 | ] 768 | }, 769 | "node_modules/@rollup/rollup-linux-s390x-gnu": { 770 | "version": "4.18.0", 771 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", 772 | "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", 773 | "cpu": [ 774 | "s390x" 775 | ], 776 | "dev": true, 777 | "optional": true, 778 | "os": [ 779 | "linux" 780 | ] 781 | }, 782 | "node_modules/@rollup/rollup-linux-x64-gnu": { 783 | "version": "4.18.0", 784 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", 785 | "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", 786 | "cpu": [ 787 | "x64" 788 | ], 789 | "dev": true, 790 | "optional": true, 791 | "os": [ 792 | "linux" 793 | ] 794 | }, 795 | "node_modules/@rollup/rollup-linux-x64-musl": { 796 | "version": "4.18.0", 797 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", 798 | "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", 799 | "cpu": [ 800 | "x64" 801 | ], 802 | "dev": true, 803 | "optional": true, 804 | "os": [ 805 | "linux" 806 | ] 807 | }, 808 | "node_modules/@rollup/rollup-win32-arm64-msvc": { 809 | "version": "4.18.0", 810 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", 811 | "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", 812 | "cpu": [ 813 | "arm64" 814 | ], 815 | "dev": true, 816 | "optional": true, 817 | "os": [ 818 | "win32" 819 | ] 820 | }, 821 | "node_modules/@rollup/rollup-win32-ia32-msvc": { 822 | "version": "4.18.0", 823 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", 824 | "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", 825 | "cpu": [ 826 | "ia32" 827 | ], 828 | "dev": true, 829 | "optional": true, 830 | "os": [ 831 | "win32" 832 | ] 833 | }, 834 | "node_modules/@rollup/rollup-win32-x64-msvc": { 835 | "version": "4.18.0", 836 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", 837 | "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", 838 | "cpu": [ 839 | "x64" 840 | ], 841 | "dev": true, 842 | "optional": true, 843 | "os": [ 844 | "win32" 845 | ] 846 | }, 847 | "node_modules/@shikijs/core": { 848 | "version": "1.7.0", 849 | "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.7.0.tgz", 850 | "integrity": "sha512-O6j27b7dGmJbR3mjwh/aHH8Ld+GQvA0OQsNO43wKWnqbAae3AYXrhFyScHGX8hXZD6vX2ngjzDFkZY5srtIJbQ==", 851 | "dev": true 852 | }, 853 | "node_modules/@shikijs/transformers": { 854 | "version": "1.7.0", 855 | "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.7.0.tgz", 856 | "integrity": "sha512-QX3TP+CS4yYLt4X4Dk7wT0MsC7yweTYHMAAKY+ay+uuR9yRdFae/h+hivny2O+YixJHfZl57xtiZfWSrHdyVhQ==", 857 | "dev": true, 858 | "dependencies": { 859 | "shiki": "1.7.0" 860 | } 861 | }, 862 | "node_modules/@types/estree": { 863 | "version": "1.0.5", 864 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", 865 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", 866 | "dev": true 867 | }, 868 | "node_modules/@types/linkify-it": { 869 | "version": "5.0.0", 870 | "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", 871 | "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", 872 | "dev": true 873 | }, 874 | "node_modules/@types/markdown-it": { 875 | "version": "14.1.1", 876 | "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", 877 | "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", 878 | "dev": true, 879 | "dependencies": { 880 | "@types/linkify-it": "^5", 881 | "@types/mdurl": "^2" 882 | } 883 | }, 884 | "node_modules/@types/mdurl": { 885 | "version": "2.0.0", 886 | "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", 887 | "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", 888 | "dev": true 889 | }, 890 | "node_modules/@types/node": { 891 | "version": "20.14.9", 892 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", 893 | "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", 894 | "dev": true, 895 | "dependencies": { 896 | "undici-types": "~5.26.4" 897 | } 898 | }, 899 | "node_modules/@types/web-bluetooth": { 900 | "version": "0.0.20", 901 | "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", 902 | "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", 903 | "dev": true 904 | }, 905 | "node_modules/@vitejs/plugin-vue": { 906 | "version": "5.0.5", 907 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz", 908 | "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==", 909 | "dev": true, 910 | "engines": { 911 | "node": "^18.0.0 || >=20.0.0" 912 | }, 913 | "peerDependencies": { 914 | "vite": "^5.0.0", 915 | "vue": "^3.2.25" 916 | } 917 | }, 918 | "node_modules/@vue/compiler-core": { 919 | "version": "3.4.29", 920 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", 921 | "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", 922 | "dev": true, 923 | "dependencies": { 924 | "@babel/parser": "^7.24.7", 925 | "@vue/shared": "3.4.29", 926 | "entities": "^4.5.0", 927 | "estree-walker": "^2.0.2", 928 | "source-map-js": "^1.2.0" 929 | } 930 | }, 931 | "node_modules/@vue/compiler-dom": { 932 | "version": "3.4.29", 933 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", 934 | "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", 935 | "dev": true, 936 | "dependencies": { 937 | "@vue/compiler-core": "3.4.29", 938 | "@vue/shared": "3.4.29" 939 | } 940 | }, 941 | "node_modules/@vue/compiler-sfc": { 942 | "version": "3.4.29", 943 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz", 944 | "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==", 945 | "dev": true, 946 | "dependencies": { 947 | "@babel/parser": "^7.24.7", 948 | "@vue/compiler-core": "3.4.29", 949 | "@vue/compiler-dom": "3.4.29", 950 | "@vue/compiler-ssr": "3.4.29", 951 | "@vue/shared": "3.4.29", 952 | "estree-walker": "^2.0.2", 953 | "magic-string": "^0.30.10", 954 | "postcss": "^8.4.38", 955 | "source-map-js": "^1.2.0" 956 | } 957 | }, 958 | "node_modules/@vue/compiler-ssr": { 959 | "version": "3.4.29", 960 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", 961 | "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", 962 | "dev": true, 963 | "dependencies": { 964 | "@vue/compiler-dom": "3.4.29", 965 | "@vue/shared": "3.4.29" 966 | } 967 | }, 968 | "node_modules/@vue/devtools-api": { 969 | "version": "7.3.2", 970 | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.3.2.tgz", 971 | "integrity": "sha512-qFCm12te9rG0XWLCHm3x8TiZLULEP5s7Ruaadi5jAogwZ5qF7QH7tKc6yXZGV96uM+y1FUlbK+QwVbWgMfXEhQ==", 972 | "dev": true, 973 | "dependencies": { 974 | "@vue/devtools-kit": "^7.3.2" 975 | } 976 | }, 977 | "node_modules/@vue/devtools-kit": { 978 | "version": "7.3.2", 979 | "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.2.tgz", 980 | "integrity": "sha512-ba60JnbeLPzhfF5j0BPDGn9q5Ma9dWUV5gtVNjD+zm5uRf7LW8saAGNRnxxkRA56HZFzSAnXRGADc7YMAdrm0w==", 981 | "dev": true, 982 | "dependencies": { 983 | "@vue/devtools-shared": "^7.3.2", 984 | "birpc": "^0.2.17", 985 | "hookable": "^5.5.3", 986 | "mitt": "^3.0.1", 987 | "perfect-debounce": "^1.0.0", 988 | "speakingurl": "^14.0.1", 989 | "superjson": "^2.2.1" 990 | } 991 | }, 992 | "node_modules/@vue/devtools-shared": { 993 | "version": "7.3.2", 994 | "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.2.tgz", 995 | "integrity": "sha512-RpYfqStbzljD6zf9LPXF2T7kM3fMfepxJB5yjzyloFel5nEB49DUm4TeA426IH+hKvwjjRorZyh6CT1cG/H2Vw==", 996 | "dev": true, 997 | "dependencies": { 998 | "rfdc": "^1.4.1" 999 | } 1000 | }, 1001 | "node_modules/@vue/reactivity": { 1002 | "version": "3.4.29", 1003 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", 1004 | "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", 1005 | "dev": true, 1006 | "dependencies": { 1007 | "@vue/shared": "3.4.29" 1008 | } 1009 | }, 1010 | "node_modules/@vue/runtime-core": { 1011 | "version": "3.4.29", 1012 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", 1013 | "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", 1014 | "dev": true, 1015 | "dependencies": { 1016 | "@vue/reactivity": "3.4.29", 1017 | "@vue/shared": "3.4.29" 1018 | } 1019 | }, 1020 | "node_modules/@vue/runtime-dom": { 1021 | "version": "3.4.29", 1022 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", 1023 | "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", 1024 | "dev": true, 1025 | "dependencies": { 1026 | "@vue/reactivity": "3.4.29", 1027 | "@vue/runtime-core": "3.4.29", 1028 | "@vue/shared": "3.4.29", 1029 | "csstype": "^3.1.3" 1030 | } 1031 | }, 1032 | "node_modules/@vue/server-renderer": { 1033 | "version": "3.4.29", 1034 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", 1035 | "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", 1036 | "dev": true, 1037 | "dependencies": { 1038 | "@vue/compiler-ssr": "3.4.29", 1039 | "@vue/shared": "3.4.29" 1040 | }, 1041 | "peerDependencies": { 1042 | "vue": "3.4.29" 1043 | } 1044 | }, 1045 | "node_modules/@vue/shared": { 1046 | "version": "3.4.29", 1047 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", 1048 | "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==", 1049 | "dev": true 1050 | }, 1051 | "node_modules/@vueuse/core": { 1052 | "version": "10.11.0", 1053 | "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", 1054 | "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", 1055 | "dev": true, 1056 | "dependencies": { 1057 | "@types/web-bluetooth": "^0.0.20", 1058 | "@vueuse/metadata": "10.11.0", 1059 | "@vueuse/shared": "10.11.0", 1060 | "vue-demi": ">=0.14.8" 1061 | }, 1062 | "funding": { 1063 | "url": "https://github.com/sponsors/antfu" 1064 | } 1065 | }, 1066 | "node_modules/@vueuse/core/node_modules/vue-demi": { 1067 | "version": "0.14.8", 1068 | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", 1069 | "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", 1070 | "dev": true, 1071 | "hasInstallScript": true, 1072 | "bin": { 1073 | "vue-demi-fix": "bin/vue-demi-fix.js", 1074 | "vue-demi-switch": "bin/vue-demi-switch.js" 1075 | }, 1076 | "engines": { 1077 | "node": ">=12" 1078 | }, 1079 | "funding": { 1080 | "url": "https://github.com/sponsors/antfu" 1081 | }, 1082 | "peerDependencies": { 1083 | "@vue/composition-api": "^1.0.0-rc.1", 1084 | "vue": "^3.0.0-0 || ^2.6.0" 1085 | }, 1086 | "peerDependenciesMeta": { 1087 | "@vue/composition-api": { 1088 | "optional": true 1089 | } 1090 | } 1091 | }, 1092 | "node_modules/@vueuse/integrations": { 1093 | "version": "10.11.0", 1094 | "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.11.0.tgz", 1095 | "integrity": "sha512-Pp6MtWEIr+NDOccWd8j59Kpjy5YDXogXI61Kb1JxvSfVBO8NzFQkmrKmSZz47i+ZqHnIzxaT38L358yDHTncZg==", 1096 | "dev": true, 1097 | "dependencies": { 1098 | "@vueuse/core": "10.11.0", 1099 | "@vueuse/shared": "10.11.0", 1100 | "vue-demi": ">=0.14.8" 1101 | }, 1102 | "funding": { 1103 | "url": "https://github.com/sponsors/antfu" 1104 | }, 1105 | "peerDependencies": { 1106 | "async-validator": "^4", 1107 | "axios": "^1", 1108 | "change-case": "^4", 1109 | "drauu": "^0.3", 1110 | "focus-trap": "^7", 1111 | "fuse.js": "^6", 1112 | "idb-keyval": "^6", 1113 | "jwt-decode": "^3", 1114 | "nprogress": "^0.2", 1115 | "qrcode": "^1.5", 1116 | "sortablejs": "^1", 1117 | "universal-cookie": "^6" 1118 | }, 1119 | "peerDependenciesMeta": { 1120 | "async-validator": { 1121 | "optional": true 1122 | }, 1123 | "axios": { 1124 | "optional": true 1125 | }, 1126 | "change-case": { 1127 | "optional": true 1128 | }, 1129 | "drauu": { 1130 | "optional": true 1131 | }, 1132 | "focus-trap": { 1133 | "optional": true 1134 | }, 1135 | "fuse.js": { 1136 | "optional": true 1137 | }, 1138 | "idb-keyval": { 1139 | "optional": true 1140 | }, 1141 | "jwt-decode": { 1142 | "optional": true 1143 | }, 1144 | "nprogress": { 1145 | "optional": true 1146 | }, 1147 | "qrcode": { 1148 | "optional": true 1149 | }, 1150 | "sortablejs": { 1151 | "optional": true 1152 | }, 1153 | "universal-cookie": { 1154 | "optional": true 1155 | } 1156 | } 1157 | }, 1158 | "node_modules/@vueuse/integrations/node_modules/vue-demi": { 1159 | "version": "0.14.8", 1160 | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", 1161 | "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", 1162 | "dev": true, 1163 | "hasInstallScript": true, 1164 | "bin": { 1165 | "vue-demi-fix": "bin/vue-demi-fix.js", 1166 | "vue-demi-switch": "bin/vue-demi-switch.js" 1167 | }, 1168 | "engines": { 1169 | "node": ">=12" 1170 | }, 1171 | "funding": { 1172 | "url": "https://github.com/sponsors/antfu" 1173 | }, 1174 | "peerDependencies": { 1175 | "@vue/composition-api": "^1.0.0-rc.1", 1176 | "vue": "^3.0.0-0 || ^2.6.0" 1177 | }, 1178 | "peerDependenciesMeta": { 1179 | "@vue/composition-api": { 1180 | "optional": true 1181 | } 1182 | } 1183 | }, 1184 | "node_modules/@vueuse/metadata": { 1185 | "version": "10.11.0", 1186 | "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", 1187 | "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", 1188 | "dev": true, 1189 | "funding": { 1190 | "url": "https://github.com/sponsors/antfu" 1191 | } 1192 | }, 1193 | "node_modules/@vueuse/shared": { 1194 | "version": "10.11.0", 1195 | "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", 1196 | "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", 1197 | "dev": true, 1198 | "dependencies": { 1199 | "vue-demi": ">=0.14.8" 1200 | }, 1201 | "funding": { 1202 | "url": "https://github.com/sponsors/antfu" 1203 | } 1204 | }, 1205 | "node_modules/@vueuse/shared/node_modules/vue-demi": { 1206 | "version": "0.14.8", 1207 | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", 1208 | "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", 1209 | "dev": true, 1210 | "hasInstallScript": true, 1211 | "bin": { 1212 | "vue-demi-fix": "bin/vue-demi-fix.js", 1213 | "vue-demi-switch": "bin/vue-demi-switch.js" 1214 | }, 1215 | "engines": { 1216 | "node": ">=12" 1217 | }, 1218 | "funding": { 1219 | "url": "https://github.com/sponsors/antfu" 1220 | }, 1221 | "peerDependencies": { 1222 | "@vue/composition-api": "^1.0.0-rc.1", 1223 | "vue": "^3.0.0-0 || ^2.6.0" 1224 | }, 1225 | "peerDependenciesMeta": { 1226 | "@vue/composition-api": { 1227 | "optional": true 1228 | } 1229 | } 1230 | }, 1231 | "node_modules/algoliasearch": { 1232 | "version": "4.23.3", 1233 | "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.3.tgz", 1234 | "integrity": "sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==", 1235 | "dev": true, 1236 | "dependencies": { 1237 | "@algolia/cache-browser-local-storage": "4.23.3", 1238 | "@algolia/cache-common": "4.23.3", 1239 | "@algolia/cache-in-memory": "4.23.3", 1240 | "@algolia/client-account": "4.23.3", 1241 | "@algolia/client-analytics": "4.23.3", 1242 | "@algolia/client-common": "4.23.3", 1243 | "@algolia/client-personalization": "4.23.3", 1244 | "@algolia/client-search": "4.23.3", 1245 | "@algolia/logger-common": "4.23.3", 1246 | "@algolia/logger-console": "4.23.3", 1247 | "@algolia/recommend": "4.23.3", 1248 | "@algolia/requester-browser-xhr": "4.23.3", 1249 | "@algolia/requester-common": "4.23.3", 1250 | "@algolia/requester-node-http": "4.23.3", 1251 | "@algolia/transporter": "4.23.3" 1252 | } 1253 | }, 1254 | "node_modules/birpc": { 1255 | "version": "0.2.17", 1256 | "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.17.tgz", 1257 | "integrity": "sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==", 1258 | "dev": true, 1259 | "funding": { 1260 | "url": "https://github.com/sponsors/antfu" 1261 | } 1262 | }, 1263 | "node_modules/copy-anything": { 1264 | "version": "3.0.5", 1265 | "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", 1266 | "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", 1267 | "dev": true, 1268 | "dependencies": { 1269 | "is-what": "^4.1.8" 1270 | }, 1271 | "engines": { 1272 | "node": ">=12.13" 1273 | }, 1274 | "funding": { 1275 | "url": "https://github.com/sponsors/mesqueeb" 1276 | } 1277 | }, 1278 | "node_modules/csstype": { 1279 | "version": "3.1.3", 1280 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", 1281 | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", 1282 | "dev": true 1283 | }, 1284 | "node_modules/entities": { 1285 | "version": "4.5.0", 1286 | "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 1287 | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 1288 | "dev": true, 1289 | "engines": { 1290 | "node": ">=0.12" 1291 | }, 1292 | "funding": { 1293 | "url": "https://github.com/fb55/entities?sponsor=1" 1294 | } 1295 | }, 1296 | "node_modules/esbuild": { 1297 | "version": "0.21.5", 1298 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", 1299 | "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", 1300 | "dev": true, 1301 | "hasInstallScript": true, 1302 | "bin": { 1303 | "esbuild": "bin/esbuild" 1304 | }, 1305 | "engines": { 1306 | "node": ">=12" 1307 | }, 1308 | "optionalDependencies": { 1309 | "@esbuild/aix-ppc64": "0.21.5", 1310 | "@esbuild/android-arm": "0.21.5", 1311 | "@esbuild/android-arm64": "0.21.5", 1312 | "@esbuild/android-x64": "0.21.5", 1313 | "@esbuild/darwin-arm64": "0.21.5", 1314 | "@esbuild/darwin-x64": "0.21.5", 1315 | "@esbuild/freebsd-arm64": "0.21.5", 1316 | "@esbuild/freebsd-x64": "0.21.5", 1317 | "@esbuild/linux-arm": "0.21.5", 1318 | "@esbuild/linux-arm64": "0.21.5", 1319 | "@esbuild/linux-ia32": "0.21.5", 1320 | "@esbuild/linux-loong64": "0.21.5", 1321 | "@esbuild/linux-mips64el": "0.21.5", 1322 | "@esbuild/linux-ppc64": "0.21.5", 1323 | "@esbuild/linux-riscv64": "0.21.5", 1324 | "@esbuild/linux-s390x": "0.21.5", 1325 | "@esbuild/linux-x64": "0.21.5", 1326 | "@esbuild/netbsd-x64": "0.21.5", 1327 | "@esbuild/openbsd-x64": "0.21.5", 1328 | "@esbuild/sunos-x64": "0.21.5", 1329 | "@esbuild/win32-arm64": "0.21.5", 1330 | "@esbuild/win32-ia32": "0.21.5", 1331 | "@esbuild/win32-x64": "0.21.5" 1332 | } 1333 | }, 1334 | "node_modules/estree-walker": { 1335 | "version": "2.0.2", 1336 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1337 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 1338 | "dev": true 1339 | }, 1340 | "node_modules/focus-trap": { 1341 | "version": "7.5.4", 1342 | "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz", 1343 | "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==", 1344 | "dev": true, 1345 | "dependencies": { 1346 | "tabbable": "^6.2.0" 1347 | } 1348 | }, 1349 | "node_modules/fsevents": { 1350 | "version": "2.3.3", 1351 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1352 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1353 | "dev": true, 1354 | "hasInstallScript": true, 1355 | "optional": true, 1356 | "os": [ 1357 | "darwin" 1358 | ], 1359 | "engines": { 1360 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1361 | } 1362 | }, 1363 | "node_modules/hookable": { 1364 | "version": "5.5.3", 1365 | "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", 1366 | "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", 1367 | "dev": true 1368 | }, 1369 | "node_modules/is-what": { 1370 | "version": "4.1.16", 1371 | "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", 1372 | "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", 1373 | "dev": true, 1374 | "engines": { 1375 | "node": ">=12.13" 1376 | }, 1377 | "funding": { 1378 | "url": "https://github.com/sponsors/mesqueeb" 1379 | } 1380 | }, 1381 | "node_modules/magic-string": { 1382 | "version": "0.30.10", 1383 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", 1384 | "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", 1385 | "dev": true, 1386 | "dependencies": { 1387 | "@jridgewell/sourcemap-codec": "^1.4.15" 1388 | } 1389 | }, 1390 | "node_modules/mark.js": { 1391 | "version": "8.11.1", 1392 | "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", 1393 | "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", 1394 | "dev": true 1395 | }, 1396 | "node_modules/minisearch": { 1397 | "version": "6.3.0", 1398 | "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.3.0.tgz", 1399 | "integrity": "sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==", 1400 | "dev": true 1401 | }, 1402 | "node_modules/mitt": { 1403 | "version": "3.0.1", 1404 | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", 1405 | "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", 1406 | "dev": true 1407 | }, 1408 | "node_modules/nanoid": { 1409 | "version": "3.3.7", 1410 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 1411 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 1412 | "dev": true, 1413 | "funding": [ 1414 | { 1415 | "type": "github", 1416 | "url": "https://github.com/sponsors/ai" 1417 | } 1418 | ], 1419 | "bin": { 1420 | "nanoid": "bin/nanoid.cjs" 1421 | }, 1422 | "engines": { 1423 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1424 | } 1425 | }, 1426 | "node_modules/perfect-debounce": { 1427 | "version": "1.0.0", 1428 | "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", 1429 | "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", 1430 | "dev": true 1431 | }, 1432 | "node_modules/picocolors": { 1433 | "version": "1.0.1", 1434 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", 1435 | "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", 1436 | "dev": true 1437 | }, 1438 | "node_modules/postcss": { 1439 | "version": "8.4.38", 1440 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", 1441 | "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", 1442 | "dev": true, 1443 | "funding": [ 1444 | { 1445 | "type": "opencollective", 1446 | "url": "https://opencollective.com/postcss/" 1447 | }, 1448 | { 1449 | "type": "tidelift", 1450 | "url": "https://tidelift.com/funding/github/npm/postcss" 1451 | }, 1452 | { 1453 | "type": "github", 1454 | "url": "https://github.com/sponsors/ai" 1455 | } 1456 | ], 1457 | "dependencies": { 1458 | "nanoid": "^3.3.7", 1459 | "picocolors": "^1.0.0", 1460 | "source-map-js": "^1.2.0" 1461 | }, 1462 | "engines": { 1463 | "node": "^10 || ^12 || >=14" 1464 | } 1465 | }, 1466 | "node_modules/preact": { 1467 | "version": "10.22.0", 1468 | "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.0.tgz", 1469 | "integrity": "sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==", 1470 | "dev": true, 1471 | "funding": { 1472 | "type": "opencollective", 1473 | "url": "https://opencollective.com/preact" 1474 | } 1475 | }, 1476 | "node_modules/rfdc": { 1477 | "version": "1.4.1", 1478 | "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", 1479 | "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", 1480 | "dev": true 1481 | }, 1482 | "node_modules/rollup": { 1483 | "version": "4.18.0", 1484 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", 1485 | "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", 1486 | "dev": true, 1487 | "dependencies": { 1488 | "@types/estree": "1.0.5" 1489 | }, 1490 | "bin": { 1491 | "rollup": "dist/bin/rollup" 1492 | }, 1493 | "engines": { 1494 | "node": ">=18.0.0", 1495 | "npm": ">=8.0.0" 1496 | }, 1497 | "optionalDependencies": { 1498 | "@rollup/rollup-android-arm-eabi": "4.18.0", 1499 | "@rollup/rollup-android-arm64": "4.18.0", 1500 | "@rollup/rollup-darwin-arm64": "4.18.0", 1501 | "@rollup/rollup-darwin-x64": "4.18.0", 1502 | "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", 1503 | "@rollup/rollup-linux-arm-musleabihf": "4.18.0", 1504 | "@rollup/rollup-linux-arm64-gnu": "4.18.0", 1505 | "@rollup/rollup-linux-arm64-musl": "4.18.0", 1506 | "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", 1507 | "@rollup/rollup-linux-riscv64-gnu": "4.18.0", 1508 | "@rollup/rollup-linux-s390x-gnu": "4.18.0", 1509 | "@rollup/rollup-linux-x64-gnu": "4.18.0", 1510 | "@rollup/rollup-linux-x64-musl": "4.18.0", 1511 | "@rollup/rollup-win32-arm64-msvc": "4.18.0", 1512 | "@rollup/rollup-win32-ia32-msvc": "4.18.0", 1513 | "@rollup/rollup-win32-x64-msvc": "4.18.0", 1514 | "fsevents": "~2.3.2" 1515 | } 1516 | }, 1517 | "node_modules/search-insights": { 1518 | "version": "2.14.0", 1519 | "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.14.0.tgz", 1520 | "integrity": "sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==", 1521 | "dev": true, 1522 | "peer": true 1523 | }, 1524 | "node_modules/shiki": { 1525 | "version": "1.7.0", 1526 | "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.7.0.tgz", 1527 | "integrity": "sha512-H5pMn4JA7ayx8H0qOz1k2qANq6mZVCMl1gKLK6kWIrv1s2Ial4EmD4s4jE8QB5Dw03d/oCQUxc24sotuyR5byA==", 1528 | "dev": true, 1529 | "dependencies": { 1530 | "@shikijs/core": "1.7.0" 1531 | } 1532 | }, 1533 | "node_modules/source-map-js": { 1534 | "version": "1.2.0", 1535 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", 1536 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", 1537 | "dev": true, 1538 | "engines": { 1539 | "node": ">=0.10.0" 1540 | } 1541 | }, 1542 | "node_modules/speakingurl": { 1543 | "version": "14.0.1", 1544 | "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", 1545 | "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", 1546 | "dev": true, 1547 | "engines": { 1548 | "node": ">=0.10.0" 1549 | } 1550 | }, 1551 | "node_modules/superjson": { 1552 | "version": "2.2.1", 1553 | "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz", 1554 | "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", 1555 | "dev": true, 1556 | "dependencies": { 1557 | "copy-anything": "^3.0.2" 1558 | }, 1559 | "engines": { 1560 | "node": ">=16" 1561 | } 1562 | }, 1563 | "node_modules/tabbable": { 1564 | "version": "6.2.0", 1565 | "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", 1566 | "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", 1567 | "dev": true 1568 | }, 1569 | "node_modules/undici-types": { 1570 | "version": "5.26.5", 1571 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 1572 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", 1573 | "dev": true 1574 | }, 1575 | "node_modules/vite": { 1576 | "version": "5.3.1", 1577 | "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", 1578 | "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", 1579 | "dev": true, 1580 | "dependencies": { 1581 | "esbuild": "^0.21.3", 1582 | "postcss": "^8.4.38", 1583 | "rollup": "^4.13.0" 1584 | }, 1585 | "bin": { 1586 | "vite": "bin/vite.js" 1587 | }, 1588 | "engines": { 1589 | "node": "^18.0.0 || >=20.0.0" 1590 | }, 1591 | "funding": { 1592 | "url": "https://github.com/vitejs/vite?sponsor=1" 1593 | }, 1594 | "optionalDependencies": { 1595 | "fsevents": "~2.3.3" 1596 | }, 1597 | "peerDependencies": { 1598 | "@types/node": "^18.0.0 || >=20.0.0", 1599 | "less": "*", 1600 | "lightningcss": "^1.21.0", 1601 | "sass": "*", 1602 | "stylus": "*", 1603 | "sugarss": "*", 1604 | "terser": "^5.4.0" 1605 | }, 1606 | "peerDependenciesMeta": { 1607 | "@types/node": { 1608 | "optional": true 1609 | }, 1610 | "less": { 1611 | "optional": true 1612 | }, 1613 | "lightningcss": { 1614 | "optional": true 1615 | }, 1616 | "sass": { 1617 | "optional": true 1618 | }, 1619 | "stylus": { 1620 | "optional": true 1621 | }, 1622 | "sugarss": { 1623 | "optional": true 1624 | }, 1625 | "terser": { 1626 | "optional": true 1627 | } 1628 | } 1629 | }, 1630 | "node_modules/vitepress": { 1631 | "version": "1.2.3", 1632 | "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.2.3.tgz", 1633 | "integrity": "sha512-GvEsrEeNLiDE1+fuwDAYJCYLNZDAna+EtnXlPajhv/MYeTjbNK6Bvyg6NoTdO1sbwuQJ0vuJR99bOlH53bo6lg==", 1634 | "dev": true, 1635 | "dependencies": { 1636 | "@docsearch/css": "^3.6.0", 1637 | "@docsearch/js": "^3.6.0", 1638 | "@shikijs/core": "^1.6.2", 1639 | "@shikijs/transformers": "^1.6.2", 1640 | "@types/markdown-it": "^14.1.1", 1641 | "@vitejs/plugin-vue": "^5.0.5", 1642 | "@vue/devtools-api": "^7.2.1", 1643 | "@vue/shared": "^3.4.27", 1644 | "@vueuse/core": "^10.10.0", 1645 | "@vueuse/integrations": "^10.10.0", 1646 | "focus-trap": "^7.5.4", 1647 | "mark.js": "8.11.1", 1648 | "minisearch": "^6.3.0", 1649 | "shiki": "^1.6.2", 1650 | "vite": "^5.2.12", 1651 | "vue": "^3.4.27" 1652 | }, 1653 | "bin": { 1654 | "vitepress": "bin/vitepress.js" 1655 | }, 1656 | "peerDependencies": { 1657 | "markdown-it-mathjax3": "^4", 1658 | "postcss": "^8" 1659 | }, 1660 | "peerDependenciesMeta": { 1661 | "markdown-it-mathjax3": { 1662 | "optional": true 1663 | }, 1664 | "postcss": { 1665 | "optional": true 1666 | } 1667 | } 1668 | }, 1669 | "node_modules/vue": { 1670 | "version": "3.4.29", 1671 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", 1672 | "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", 1673 | "dev": true, 1674 | "dependencies": { 1675 | "@vue/compiler-dom": "3.4.29", 1676 | "@vue/compiler-sfc": "3.4.29", 1677 | "@vue/runtime-dom": "3.4.29", 1678 | "@vue/server-renderer": "3.4.29", 1679 | "@vue/shared": "3.4.29" 1680 | }, 1681 | "peerDependencies": { 1682 | "typescript": "*" 1683 | }, 1684 | "peerDependenciesMeta": { 1685 | "typescript": { 1686 | "optional": true 1687 | } 1688 | } 1689 | } 1690 | } 1691 | } 1692 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "docs:dev": "vitepress dev docs --host", 4 | "docs:build": "vitepress build docs", 5 | "docs:preview": "vitepress preview docs" 6 | }, 7 | "devDependencies": { 8 | "@types/node": "^20.14.9", 9 | "vitepress": "^1.2.3" 10 | } 11 | } 12 | --------------------------------------------------------------------------------