diff --git a/.eslintignore b/.eslintignore index 0292a5f..0a0ef14 100644 --- a/.eslintignore +++ b/.eslintignore @@ -14,3 +14,4 @@ deployspec.yml .storybook/*.html cz-adapter.cjs LICENSE +*.vue diff --git a/.gitignore b/.gitignore index e0ac319..e85f647 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,6 @@ node_modules temp .aider* .vscode-test-web +**/.vitepress/cache +**/.vitepress/.temp +.gpt-runner diff --git a/.vscode/settings.json b/.vscode/settings.json index c2861c4..2c7ca1d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -47,23 +47,31 @@ "titleBar.activeForeground": "#F8FCFD" }, "cSpell.words": [ + "Codegee", + "Codeium", "commitlint", + "deepseek", "esno", "execa", "fullpath", "ianvs", + "iconify", "knip", "langchain", "Nicepkg", "nodir", + "Ollama", "openai", "Pipfile", "pyproject", + "qwen", "tailwindcss", "treeshake", "tsup", "undici", - "vsix" + "vitepress", + "vsix", + "Zhipu" ], "aide.convertLanguagePairs": { "typescript": "python" diff --git a/README.md b/README.md index 9f16f84..6cd6da3 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ English / [简体中文 🌏](https://github.com/nicepkg/aide/tree/master/README_CN.md) -Master Any Code: One-Click Comments and Language Conversion. 💪 +Mastering Any Code In VSCode: One-click commenting and language conversion. 💪 -掌握任何屎山代码:一键注释和语言转换。💪 +在 VSCode 里掌握任何屎山代码:一键注释和语言转换。💪 [![Version](https://img.shields.io/visual-studio-marketplace/v/nicepkg.aide-pro)](https://marketplace.visualstudio.com/items?itemName=nicepkg.aide-pro) [![Downloads](https://img.shields.io/visual-studio-marketplace/d/nicepkg.aide-pro)](https://marketplace.visualstudio.com/items?itemName=nicepkg.aide-pro) diff --git a/README_CN.md b/README_CN.md index 5b6ae25..98f0ed4 100644 --- a/README_CN.md +++ b/README_CN.md @@ -4,7 +4,7 @@ [English 🌏](https://github.com/nicepkg/aide/tree/master/README.md) / 简体中文 -掌握任何屎山代码:一键注释和语言转换。💪 +在 VSCode 里掌握任何屎山代码:一键注释和语言转换。💪 [![Version](https://img.shields.io/visual-studio-marketplace/v/nicepkg.aide-pro)](https://marketplace.visualstudio.com/items?itemName=nicepkg.aide-pro) [![Downloads](https://img.shields.io/visual-studio-marketplace/d/nicepkg.aide-pro)](https://marketplace.visualstudio.com/items?itemName=nicepkg.aide-pro) diff --git a/package.json b/package.json index b156604..d772ac7 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "publisher": "nicepkg", "name": "aide-pro", "displayName": "Aide", - "description": "Master Any Code: One-Click Comments and Language Conversion. 💪", + "description": "Master Any Code: One-Click Comments and Language Conversion. 掌握任何屎山代码:一键注释和语言转换。💪", "version": "1.12.0", "private": true, "packageManager": "pnpm@9.3.0", @@ -238,6 +238,7 @@ "@commitlint/config-conventional": "^19.2.2", "@commitlint/cz-commitlint": "^19.2.0", "@ianvs/prettier-plugin-sort-imports": "^4.3.1", + "@langchain/anthropic": "^0.2.6", "@langchain/core": "0.2.17", "@langchain/openai": "^0.2.4", "@types/fs-extra": "^11.0.4", diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index 857ba0f..e2e99fc 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -1,5 +1,5 @@ { - "command.copyAsPrompt": "✨ Aide: 复制为 AI Prompt", + "command.copyAsPrompt": "✨ Aide: 复制为 AI 提示词", "command.askAI": "✨ Aide: 问 AI", "command.codeConvert": "✨ Aide: 代码转换", "command.codeViewerHelper": "✨ Aide: 代码查看器助手", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab626e6..b931b05 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,13 +25,16 @@ importers: version: 19.2.0(@types/node@20.14.11)(commitizen@4.3.0(@types/node@20.14.11)(typescript@5.4.5))(inquirer@9.3.4)(typescript@5.4.5) '@ianvs/prettier-plugin-sort-imports': specifier: ^4.3.1 - version: 4.3.1(@vue/compiler-sfc@3.4.31)(prettier@3.3.3) + version: 4.3.1(@vue/compiler-sfc@3.4.32)(prettier@3.3.3) + '@langchain/anthropic': + specifier: ^0.2.6 + version: 0.2.6(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) '@langchain/core': specifier: 0.2.17 - version: 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) + version: 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) '@langchain/openai': specifier: ^0.2.4 - version: 0.2.4(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1)) + version: 0.2.4(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1)) '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -124,7 +127,7 @@ importers: version: 5.26.0(@types/node@20.14.11)(typescript@5.4.5) langchain: specifier: ^0.2.10 - version: 0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1) + version: 0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1) lint-staged: specifier: ^15.2.7 version: 15.2.7 @@ -162,16 +165,133 @@ importers: specifier: ^3.23.8 version: 3.23.8 + website: + dependencies: + '@vueuse/core': + specifier: 10.11.0 + version: 10.11.0(vue@3.4.32(typescript@5.4.5)) + vue: + specifier: 3.4.32 + version: 3.4.32(typescript@5.4.5) + devDependencies: + '@iconify-json/bx': + specifier: ^1.1.10 + version: 1.1.10 + '@iconify-json/fluent-emoji': + specifier: ^1.1.18 + version: 1.1.18 + '@iconify-json/logos': + specifier: ^1.1.43 + version: 1.1.43 + '@unocss/preset-icons': + specifier: ^0.61.5 + version: 0.61.5 + '@unocss/preset-uno': + specifier: 0.61.5 + version: 0.61.5 + '@unocss/preset-web-fonts': + specifier: ^0.61.5 + version: 0.61.5 + markdown-it: + specifier: ^14.1.0 + version: 14.1.0 + markdown-it-container: + specifier: ^4.0.0 + version: 4.0.0 + unocss: + specifier: ^0.61.5 + version: 0.61.5(postcss@8.4.39)(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)) + vitepress: + specifier: 1.3.1 + version: 1.3.1(@algolia/client-search@4.24.0)(@types/node@20.14.11)(postcss@8.4.39)(search-insights@2.15.0)(typescript@5.4.5) + zod: + specifier: 3.23.8 + version: 3.23.8 + packages: '@aashutoshrathi/word-wrap@1.2.6': resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} + '@algolia/autocomplete-core@1.9.3': + resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + + '@algolia/autocomplete-plugin-algolia-insights@1.9.3': + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-preset-algolia@1.9.3': + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.9.3': + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/cache-browser-local-storage@4.24.0': + resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==} + + '@algolia/cache-common@4.24.0': + resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==} + + '@algolia/cache-in-memory@4.24.0': + resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==} + + '@algolia/client-account@4.24.0': + resolution: {integrity: sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==} + + '@algolia/client-analytics@4.24.0': + resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==} + + '@algolia/client-common@4.24.0': + resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} + + '@algolia/client-personalization@4.24.0': + resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} + + '@algolia/client-search@4.24.0': + resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} + + '@algolia/logger-common@4.24.0': + resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} + + '@algolia/logger-console@4.24.0': + resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==} + + '@algolia/recommend@4.24.0': + resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==} + + '@algolia/requester-browser-xhr@4.24.0': + resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} + + '@algolia/requester-common@4.24.0': + resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} + + '@algolia/requester-node-http@4.24.0': + resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} + + '@algolia/transporter@4.24.0': + resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@antfu/install-pkg@0.1.1': + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@anthropic-ai/sdk@0.22.0': + resolution: {integrity: sha512-dv4BCC6FZJw3w66WNLsHlUFjhu19fS1L/5jMPApwhZLa/Oy1j0A2i3RypmDtHEPp4Wwg3aZkSHksp7VzYWjzmw==} + '@atao60/fse-cli@0.1.9': resolution: {integrity: sha512-ga+hz6CUNOvvA63EMs5gucg6IHUuQSq3noL+Y479Om57FXsLEqBpl96vdLj1QnBEK6Z8mrzwZ/vXovOK8OQZ1g==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0, npm: '>=6.14.11'} @@ -237,18 +357,44 @@ packages: resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.9': + resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} + engines: {node: '>=6.9.0'} + '@babel/core@7.24.7': resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} + '@babel/core@7.24.9': + resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.24.10': + resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.24.7': resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.24.7': resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.24.8': + resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.24.8': + resolution: {integrity: sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-environment-visitor@7.24.7': resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} @@ -261,6 +407,10 @@ packages: resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.24.8': + resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.24.7': resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} @@ -271,10 +421,34 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.24.9': + resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.24.7': + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.24.8': + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.24.7': + resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-simple-access@7.24.7': resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.24.7': resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} @@ -283,6 +457,10 @@ packages: resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} @@ -291,10 +469,18 @@ packages: resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.24.7': resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.24.8': + resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} + engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} @@ -304,6 +490,41 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.24.8': + resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.24.7': + resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.24.8': + resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.24.8': + resolution: {integrity: sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.24.7': + resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/runtime@7.24.7': resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} engines: {node: '>=6.9.0'} @@ -316,10 +537,18 @@ packages: resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.8': + resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.24.7': resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.24.9': + resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + engines: {node: '>=6.9.0'} + '@commitlint/cli@19.3.0': resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==} engines: {node: '>=v18'} @@ -396,6 +625,29 @@ packages: resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} engines: {node: '>=v18'} + '@docsearch/css@3.6.1': + resolution: {integrity: sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg==} + + '@docsearch/js@3.6.1': + resolution: {integrity: sha512-erI3RRZurDr1xES5hvYJ3Imp7jtrXj6f1xYIzDzxiS7nNBufYWPbJwrmMqWC5g9y165PmxEmN9pklGCdLi0Iqg==} + + '@docsearch/react@3.6.1': + resolution: {integrity: sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + '@esbuild/aix-ppc64@0.20.2': resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} @@ -856,6 +1108,21 @@ packages: '@vue/compiler-sfc': optional: true + '@iconify-json/bx@1.1.10': + resolution: {integrity: sha512-4JzMDYhs/hkU9mO8nNMNKZwHn706oQaD46URyUuD4fP/XAWGf01vg6wKITmQseEHsHDrtKAXjwcumfnTUDi3OQ==} + + '@iconify-json/fluent-emoji@1.1.18': + resolution: {integrity: sha512-LLXbamtfQctodGAOlBEKuXyLs2TrwY/EI0EvNmttuf128V/Bkb872bNmlsKzVrescix3NOvqr0EMhyW/L/Upww==} + + '@iconify-json/logos@1.1.43': + resolution: {integrity: sha512-UtvL1yDHUr9dl1Tqihh6K9m5dmbYKOYyLf3i9aKhymSW76QjOCGjpgQc0PQ4GJCAdU1cAMu+WO61TgPxdonrlg==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@2.1.25': + resolution: {integrity: sha512-Y+iGko8uv/Fz5bQLLJyNSZGOdMW0G7cnlEX1CiNcKsRXX9cq/y/vwxrIAtLCZhKHr3m0VJmsjVPsvnM4uX8YLg==} + '@inquirer/figures@1.0.3': resolution: {integrity: sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==} engines: {node: '>=18'} @@ -882,6 +1149,10 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@langchain/anthropic@0.2.6': + resolution: {integrity: sha512-mFBC944rKGy+oRKWOmCmABPj+pQ2S8FcvyFGavFgIqjWlnBk9PwMjWm8IEdWwaSEahJXuEL9xAV2StWazWdXvg==} + engines: {node: '>=18'} + '@langchain/core@0.2.17': resolution: {integrity: sha512-WnFiZ7R/ZUVeHO2IgcSL7Tu+CjApa26Iy99THJP5fax/NF8UQCc/ZRcw2Sb/RUuRPVm6ALDass0fSQE1L9YNJg==} engines: {node: '>=18'} @@ -914,6 +1185,18 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.17.2': resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} cpu: [arm] @@ -1077,6 +1360,12 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@shikijs/core@1.10.3': + resolution: {integrity: sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==} + + '@shikijs/transformers@1.10.3': + resolution: {integrity: sha512-MNjsyye2WHVdxfZUSr5frS97sLGe6G1T+1P41QjyBFJehZphMcr4aBlRLmq6OSPBslYe9byQPVvt/LJCOfxw8Q==} + '@sindresorhus/merge-streams@4.0.0': resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} @@ -1101,6 +1390,9 @@ packages: '@types/global-agent@2.1.3': resolution: {integrity: sha512-rGtZZcgZcKWuKNTkGBGsqyOQ7Nn2MjXh4+xeZbf+5b5KMUx8H1rTqLRackxos7pUlreszbYjQcop5JvqCnZlLw==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1110,6 +1402,15 @@ packages: '@types/jsonfile@6.1.4': resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.1': + resolution: {integrity: sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} @@ -1125,12 +1426,18 @@ packages: '@types/shell-quote@1.7.5': resolution: {integrity: sha512-+UE8GAGRPbJVQDdxi16dgadcBfQ+KG2vgZhV1+3A1XmHbmwcdwhCUwIdy+d3pAGrbvgRoVSjeI9vOWyq376Yzw==} + '@types/unist@3.0.2': + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} '@types/vscode@1.82.0': resolution: {integrity: sha512-VSHV+VnpF8DEm8LNrn8OJ8VuUNcBzN3tMvKrNpbhhfuVjFm82+6v44AbDhLvVFgCzn6vs94EJNTp7w8S6+Q1Rw==} + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + '@typescript-eslint/eslint-plugin@7.16.1': resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1192,6 +1499,99 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@unocss/astro@0.61.5': + resolution: {integrity: sha512-keyh6/EsPMBEiLguaOsh47UcMkWCGT0rW3KV5aYRUfYXlgccSzDd4SLmTNsdlGXIso2XCl/14BJQuwjP0UEU0Q==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + vite: + optional: true + + '@unocss/cli@0.61.5': + resolution: {integrity: sha512-Y5mKSoQGEYRmjUi5Tia3EesQbLgQTTPGmeE7LFrbeyP1c7PDiW3wSR5fRNZ7PBrr6/C5oo2sId3MhWJQl3tFSA==} + engines: {node: '>=14'} + hasBin: true + + '@unocss/config@0.61.5': + resolution: {integrity: sha512-VIIln/1aD9cqU95+3IVZG9U1yO7Ys6RqyqtgD5pIJ77rg57v/2sey+S2ScFx3KB24Bal3FxAgHA5CdjFpQZldA==} + engines: {node: '>=14'} + + '@unocss/core@0.61.5': + resolution: {integrity: sha512-hB8zr2rnrCzz9x8ho2SAXQiYTEjwAPMiBzpaEe2C0+CFWeL1179h9508YVyZHHAzMyZILIG9YrVAWrrMdt2/Xg==} + + '@unocss/extractor-arbitrary-variants@0.61.5': + resolution: {integrity: sha512-UB1EweAaJrUxv+h3n5FqoizKHrnUgUzkdmOdJTfV6xvow90ITqbUoza+L6iVMNfcrcXTx8QpDnWh6rhLRyKY+g==} + + '@unocss/inspector@0.61.5': + resolution: {integrity: sha512-DIT+hgTphHXZTJEe4ZWUoYoQUNszmVJr06+gGhBkKwpdetQa6B2N+zGLkAxgAvo/BUmk29tOORIBu7AyoloRUA==} + + '@unocss/postcss@0.61.5': + resolution: {integrity: sha512-FbN9G3v5X6TEzBRytnFvqOr1oeeUv1ZzprBIyXnQFg17D8rx7uRS9kAfUMoSiqAqnFxkJObv43fH+W3E41+JYQ==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 + + '@unocss/preset-attributify@0.61.5': + resolution: {integrity: sha512-D2KDHPj8Qvp0hafA4JT5GXebO49gHsuKT6QvzwBpP9wzwAefAkd6PIY8cSKqSD6sjjVSfOpCfbZIzbwLEbXV5w==} + + '@unocss/preset-icons@0.61.5': + resolution: {integrity: sha512-Fx1WZz6A7wtUDU+mt6KdjWOu9fEGG2XgzE8t8YFfUu22KjXyyef7Lto90uUNs9z+vYLevXqeDfthOZQFwNSfIg==} + + '@unocss/preset-mini@0.61.5': + resolution: {integrity: sha512-gVm7Z9X0krx8CK/+pKAqcVmpqzRk1+SH7bfgRxKtKhyFSxJlwpjNp1rKm3gCT0F1Tlp3d8aufYRksaXGZhs8Ow==} + + '@unocss/preset-tagify@0.61.5': + resolution: {integrity: sha512-kxO20pV7Bwg7U3hPpxShFSn6CXH+EMaTFC+WXsh2wTOEs43Tta7L6kCSUPzrZ9pX/Pq4oInRQY9gqiZqlGETmQ==} + + '@unocss/preset-typography@0.61.5': + resolution: {integrity: sha512-CQIleFkmfk/dAOlY7nPA1SOYHzXA6ia7+BCqGrTKxQVFOyBL7iHeNl0yV7lFtKFQn8zyFNEiBVW+fYi0QrouYw==} + + '@unocss/preset-uno@0.61.5': + resolution: {integrity: sha512-CflB0l9CeZx+b/Q8mA4Ow4d63Caf+vFJ+1EGA06jG9qYjPLy76Rkci//0m9cEtO+vPnYtgLc7HZAZv0X6wh4Tg==} + + '@unocss/preset-web-fonts@0.61.5': + resolution: {integrity: sha512-hVIMPGayxg7xvlvfQnJxB0N3KTvmrglbH3v5BCYNjbh37+5hv+x22K6iWewY3BkGtaWqOtLO3H1n5a1rxPMyaw==} + + '@unocss/preset-wind@0.61.5': + resolution: {integrity: sha512-n4uepxv3gVoVQb0tv7iV8M4W0CgwLw0QaMX+3ECYzFLMynjCkZmFDtdQAX720yTvLZxwCxEZfQCgydOSt0qjZA==} + + '@unocss/reset@0.61.5': + resolution: {integrity: sha512-5FKNsHnke9J1Z0T4prOZn9hkWh86c6Px+Oh3xf8mDd6dDw8CjzYMRxZEKti0gt13NcsO29G1vLGM7UjG1sCamg==} + + '@unocss/rule-utils@0.61.5': + resolution: {integrity: sha512-sCHnpCQoj3/ZmCjYo+oW3+4r5Z8kFI2snEL+miU2Uk0SqCgY1k0cUIYivj5L9ghp29p8VjEusX9M01QEZOYK7g==} + engines: {node: '>=14'} + + '@unocss/scope@0.61.5': + resolution: {integrity: sha512-GSmnSYWQ4oiSmJdyT5bmf0McXXhFJcVY7jgweAK2WltQgrxs1C3FWl9XIJtkWvaP3DIJjf4mKJf+zc6TjYxxEw==} + + '@unocss/transformer-attributify-jsx-babel@0.61.5': + resolution: {integrity: sha512-wBwjBCh6N95Bv3fJg8iokbDO9P5F+ee4n4gCecoePi6qSW22cBowj/UakP++L92GWX8FNZcphKOqMxx61q9gOg==} + + '@unocss/transformer-attributify-jsx@0.61.5': + resolution: {integrity: sha512-w9vSBfgRdfofFnqzBvxrMi/FmP+ZtXz9W07wnoS6Yea7uhADilgx1h7wNfJECmK8kM8gWhjl5e6svZNAUQbI7A==} + + '@unocss/transformer-compile-class@0.61.5': + resolution: {integrity: sha512-5WLi5MgRt8DJiANoWUK49noCgdyU/IKneGs3RJYDRNONEh2HdsL6ktACSRe9Y185ICGaD9MOk3cHBZALj07gew==} + + '@unocss/transformer-directives@0.61.5': + resolution: {integrity: sha512-vQvgLicgFJt/rUTh3nd8yZz5l0AMoE9qmtZqpgb9iDMOTHUZrlWpI3hsVsU6AB9kvL/NoyMI16hVkP8x6y7b9g==} + + '@unocss/transformer-variant-group@0.61.5': + resolution: {integrity: sha512-7Is7PChplNYTkLTiQm5fL5zFKf+LV6d9TpzNuwXNK2oa1pQARMXNmnHjFPpzaDgxpTjn9sqQON72gziuXcpOsg==} + + '@unocss/vite@0.61.5': + resolution: {integrity: sha512-+U5Ey5Z2csjLy7zcaDCtUqs08+ugRK87UWGm65W8yMAGW7me72f36QR8IHJUTqlVVEdhbJVIAy+yNFjGHYffjA==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + + '@vitejs/plugin-vue@5.0.5': + resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + '@vitest/expect@2.0.3': resolution: {integrity: sha512-X6AepoOYePM0lDNUPsGXTxgXZAl3EXd0GYe/MZyVE4HzkUqyUVC6S3PrY5mClDJ6/7/7vALLMV3+xD/Ko60Hqg==} @@ -1263,21 +1663,97 @@ packages: engines: {node: '>= 16'} hasBin: true - '@vue/compiler-core@3.4.31': - resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} + '@vue/compiler-core@3.4.32': + resolution: {integrity: sha512-8tCVWkkLe/QCWIsrIvExUGnhYCAOroUs5dzhSoKL5w4MJS8uIYiou+pOPSVIOALOQ80B0jBs+Ri+kd5+MBnCDw==} + + '@vue/compiler-dom@3.4.32': + resolution: {integrity: sha512-PbSgt9KuYo4fyb90dynuPc0XFTfFPs3sCTbPLOLlo+PrUESW1gn/NjSsUvhR+mI2AmmEzexwYMxbHDldxSOr2A==} + + '@vue/compiler-sfc@3.4.32': + resolution: {integrity: sha512-STy9im/WHfaguJnfKjjVpMHukxHUrOKjm2vVCxiojQJyo3Sb6Os8SMXBr/MI+ekpstEGkDONfqAQoSbZhspLYw==} - '@vue/compiler-dom@3.4.31': - resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} + '@vue/compiler-ssr@3.4.32': + resolution: {integrity: sha512-nyu/txTecF6DrxLrpLcI34xutrvZPtHPBj9yRoPxstIquxeeyywXpYZrQMsIeDfBhlw1abJb9CbbyZvDw2kjdg==} - '@vue/compiler-sfc@3.4.31': - resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==} + '@vue/devtools-api@7.3.6': + resolution: {integrity: sha512-z6cKyxdXrIGgA++eyGBfquj6dCplRdgjt+I18fJx8hjWTXDTIyeQvryyEBMchnfZVyvUTjK3QjGjDpLCnJxPjw==} - '@vue/compiler-ssr@3.4.31': - resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==} + '@vue/devtools-kit@7.3.6': + resolution: {integrity: sha512-5Ym9V3fkJenEoptqKoo+cgY5RTVwrSssFdzRsuyIgaeiskCT+rRJeQdwoo81tyrQ1mfS7Er1rYZlSzr3Y3L/ew==} + + '@vue/devtools-shared@7.3.6': + resolution: {integrity: sha512-R/FOmdJV+hhuwcNoxp6e87RRkEeDMVhWH+nOsnHUrwjjsyeXJ2W1475Ozmw+cbZhejWQzftkHVKO28Fuo1yqCw==} + + '@vue/reactivity@3.4.32': + resolution: {integrity: sha512-1P7QvghAzhSIWmiNmh4MNkLVjr2QTNDcFv2sKmytEWhR6t7BZzNicgm5ENER4uU++wbWxgRh/pSEYgdI3MDcvg==} + + '@vue/runtime-core@3.4.32': + resolution: {integrity: sha512-FxT2dTHUs1Hki8Ui/B1Hu339mx4H5kRJooqrNM32tGUHBPStJxwMzLIRbeGO/B1NMplU4Pg9fwOqrJtrOzkdfA==} + + '@vue/runtime-dom@3.4.32': + resolution: {integrity: sha512-Xz9G+ZViRyPFQtRBCPFkhMzKn454ihCPMKUiacNaUhuTIXvyfkAq8l89IZ/kegFVyw/7KkJGRGqYdEZrf27Xsg==} + + '@vue/server-renderer@3.4.32': + resolution: {integrity: sha512-3c4rd0522Ao8hKjzgmUAbcjv2mBnvnw0Ld2f8HOMCuWJZjYie/p8cpIoYJbeP0VV2JYmrJJMwGQDO5RH4iQ30A==} + peerDependencies: + vue: 3.4.32 '@vue/shared@3.4.31': resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} + '@vue/shared@3.4.32': + resolution: {integrity: sha512-ep4mF1IVnX/pYaNwxwOpJHyBtOMKWoKZMbnUyd+z0udqIxLUh7YCCd/JfDna8aUrmnG9SFORyIq2HzEATRrQsg==} + + '@vueuse/core@10.11.0': + resolution: {integrity: sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==} + + '@vueuse/integrations@10.11.0': + resolution: {integrity: sha512-Pp6MtWEIr+NDOccWd8j59Kpjy5YDXogXI61Kb1JxvSfVBO8NzFQkmrKmSZz47i+ZqHnIzxaT38L358yDHTncZg==} + peerDependencies: + async-validator: ^4 + axios: ^1 + change-case: ^4 + drauu: ^0.3 + focus-trap: ^7 + fuse.js: ^6 + idb-keyval: ^6 + jwt-decode: ^3 + nprogress: ^0.2 + qrcode: ^1.5 + sortablejs: ^1 + universal-cookie: ^6 + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + + '@vueuse/metadata@10.11.0': + resolution: {integrity: sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==} + + '@vueuse/shared@10.11.0': + resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==} + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -1314,6 +1790,9 @@ packages: ajv@8.16.0: resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} + algoliasearch@4.24.0: + resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -1425,6 +1904,9 @@ packages: binary-search@1.3.6: resolution: {integrity: sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==} + birpc@0.2.17: + resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -1453,6 +1935,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -1497,6 +1984,9 @@ packages: caniuse-lite@1.0.30001620: resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} + caniuse-lite@1.0.30001642: + resolution: {integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==} + chai@5.1.1: resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} engines: {node: '>=12'} @@ -1621,6 +2111,9 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} @@ -1647,6 +2140,10 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + core-js@3.37.1: resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==} @@ -1674,10 +2171,17 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + cz-conventional-changelog@3.3.0: resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} engines: {node: '>= 10'} @@ -1765,10 +2269,16 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + detect-file@1.0.0: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} engines: {node: '>=0.10.0'} @@ -1817,6 +2327,9 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -1829,6 +2342,9 @@ packages: electron-to-chromium@1.4.774: resolution: {integrity: sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==} + electron-to-chromium@1.4.829: + resolution: {integrity: sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==} + emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -2117,6 +2633,10 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-xml-parser@4.4.0: + resolution: {integrity: sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==} + hasBin: true + fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} @@ -2168,6 +2688,9 @@ packages: flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -2332,6 +2855,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -2377,6 +2904,9 @@ packages: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} @@ -2603,6 +3133,10 @@ packages: is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -2723,6 +3257,9 @@ packages: '@types/node': '>=18' typescript: '>=5.0.4' + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + langchain@0.2.10: resolution: {integrity: sha512-i0fC+RlX/6w6HKPWL3N5zrhrkijvpe2Xu4t/qbWzq4uFf8WBfPwmNFom3RtO2RatuPnHLm8mViU6nw8YBDiVwA==} engines: {node: '>=18'} @@ -2914,6 +3451,9 @@ packages: linkify-it@3.0.3: resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + lint-staged@15.2.7: resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} engines: {node: '>=18.12.0'} @@ -2927,6 +3467,10 @@ packages: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -3022,17 +3566,33 @@ packages: magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + mark.js@8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + + markdown-it-container@4.0.0: + resolution: {integrity: sha512-HaNccxUH0l7BNGYbFbjmGpf5aLHAMTinqRZQAEQbMr2cdD3z91Q6kIo1oUn1CQndkT03jat6ckrdRYuwwqLlQw==} + markdown-it@12.3.2: resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} hasBin: true + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + matcher@3.0.0: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} @@ -3101,6 +3661,12 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minisearch@7.0.1: + resolution: {integrity: sha512-xLeX/AwTJLzgBF2/bdUI7MEePwXtzaLExkRwu8YFGfLDwSe06KYkplqPodLANsqvfc5Ks/r5ItFUSjIp7+9xtw==} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -3119,6 +3685,13 @@ packages: ml-tree-similarity@1.0.0: resolution: {integrity: sha512-XJUyYqjSuUQkNQHMscr6tcjldsOoAekxADTplt40QKfwW6nd++1wHWV9AArl0Zvw/TIHgNaZZNvr8QGvE8wLRg==} + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -3161,6 +3734,9 @@ packages: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -3227,6 +3803,9 @@ packages: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} + ofetch@1.3.4: + resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -3370,6 +3949,9 @@ packages: pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} @@ -3390,6 +3972,9 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + pkg-types@1.1.3: + resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + playwright-core@1.45.1: resolution: {integrity: sha512-LF4CUUtrUu2TCpDw4mcrAIuYrEjVDfT1cHbJMfwnE2+1b8PZcFzPNgvZCvq2JfQ4aTjRCCHw5EJ2tmr2NSzdPg==} engines: {node: '>=18'} @@ -3431,6 +4016,9 @@ packages: resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} engines: {node: ^10 || ^12 || >=14} + preact@10.22.1: + resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} + prebuild-install@7.1.1: resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} engines: {node: '>=10'} @@ -3456,6 +4044,10 @@ packages: pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -3594,6 +4186,9 @@ packages: sax@1.3.0: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + search-insights@2.15.0: + resolution: {integrity: sha512-ch2sPCUDD4sbPQdknVl9ALSi9H7VyoeVbsxznYz6QV55jJ8CI3EtwpO1i84keN4+hF5IeHWIeGvc08530JkVXQ==} + semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} @@ -3637,6 +4232,9 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shiki@1.10.3: + resolution: {integrity: sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ==} + side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -3656,6 +4254,10 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -3687,6 +4289,10 @@ packages: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -3774,6 +4380,9 @@ packages: resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} engines: {node: '>=14.16'} + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -3782,6 +4391,10 @@ packages: summary@2.1.0: resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==} + superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3802,6 +4415,9 @@ packages: resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -3865,6 +4481,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -3968,9 +4588,18 @@ packages: uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unconfig@0.3.13: + resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==} + underscore@1.13.6: resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} @@ -3989,12 +4618,30 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unocss@0.61.5: + resolution: {integrity: sha512-BScwlqXW9KHQLKIKtXmwWmMb4Ihoryb7uIgmS+HSqmCN58eqNA73vAo3cZ97xtO+RFdauqgGKP5wD6ShQUvqnQ==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.61.5 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + update-browserslist-db@1.0.16: resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -4049,7 +4696,19 @@ packages: terser: optional: true - vitest@2.0.3: + vitepress@1.3.1: + resolution: {integrity: sha512-soZDpg2rRVJNIM/IYMNDPPr+zTHDA5RbLDHAxacRu+Q9iZ2GwSR0QSUlLs+aEZTkG0SOX1dc8RmUYwyuxK8dfQ==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4 + postcss: ^8 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + + vitest@2.0.3: resolution: {integrity: sha512-o3HRvU93q6qZK4rI2JrhKyZMMuxg/JRt30E6qeQs6ueaiz5hr1cPj+Sk2kATgQzMMqsa2DiNI0TIK++1ULx8Jw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -4089,6 +4748,25 @@ packages: vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vue-demi@0.14.8: + resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue@3.4.32: + resolution: {integrity: sha512-9mCGIAi/CAq7GtaLLLp2J92pEic+HArstG+pq6F+H7+/jB9a0Z7576n4Bh4k79/50L1cKMIhZC3MC0iGpl+1IA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -4227,11 +4905,135 @@ snapshots: '@aashutoshrathi/word-wrap@1.2.6': {} + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.15.0)': + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.15.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.15.0)': + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + search-insights: 2.15.0 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@algolia/client-search': 4.24.0 + algoliasearch: 4.24.0 + + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': + dependencies: + '@algolia/client-search': 4.24.0 + algoliasearch: 4.24.0 + + '@algolia/cache-browser-local-storage@4.24.0': + dependencies: + '@algolia/cache-common': 4.24.0 + + '@algolia/cache-common@4.24.0': {} + + '@algolia/cache-in-memory@4.24.0': + dependencies: + '@algolia/cache-common': 4.24.0 + + '@algolia/client-account@4.24.0': + dependencies: + '@algolia/client-common': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/client-analytics@4.24.0': + dependencies: + '@algolia/client-common': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/client-common@4.24.0': + dependencies: + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/client-personalization@4.24.0': + dependencies: + '@algolia/client-common': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/client-search@4.24.0': + dependencies: + '@algolia/client-common': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/logger-common@4.24.0': {} + + '@algolia/logger-console@4.24.0': + dependencies: + '@algolia/logger-common': 4.24.0 + + '@algolia/recommend@4.24.0': + dependencies: + '@algolia/cache-browser-local-storage': 4.24.0 + '@algolia/cache-common': 4.24.0 + '@algolia/cache-in-memory': 4.24.0 + '@algolia/client-common': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/logger-console': 4.24.0 + '@algolia/requester-browser-xhr': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/requester-node-http': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/requester-browser-xhr@4.24.0': + dependencies: + '@algolia/requester-common': 4.24.0 + + '@algolia/requester-common@4.24.0': {} + + '@algolia/requester-node-http@4.24.0': + dependencies: + '@algolia/requester-common': 4.24.0 + + '@algolia/transporter@4.24.0': + dependencies: + '@algolia/cache-common': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@antfu/install-pkg@0.1.1': + dependencies: + execa: 5.1.1 + find-up: 5.0.0 + + '@antfu/utils@0.7.10': {} + + '@anthropic-ai/sdk@0.22.0': + dependencies: + '@types/node': 18.19.39 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + web-streams-polyfill: 3.3.3 + transitivePeerDependencies: + - encoding + '@atao60/fse-cli@0.1.9': dependencies: '@babel/runtime': 7.24.7 @@ -4338,6 +5140,8 @@ snapshots: '@babel/compat-data@7.24.7': {} + '@babel/compat-data@7.24.9': {} + '@babel/core@7.24.7': dependencies: '@ampproject/remapping': 2.3.0 @@ -4358,6 +5162,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.24.9': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helpers': 7.24.8 + '@babel/parser': 7.24.8 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + convert-source-map: 2.0.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.24.10': + dependencies: + '@babel/types': 7.24.9 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + '@babel/generator@7.24.7': dependencies: '@babel/types': 7.24.7 @@ -4365,6 +5196,10 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 + '@babel/helper-annotate-as-pure@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/helper-compilation-targets@7.24.7': dependencies: '@babel/compat-data': 7.24.7 @@ -4373,6 +5208,29 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.24.8': + dependencies: + '@babel/compat-data': 7.24.9 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-environment-visitor@7.24.7': dependencies: '@babel/types': 7.24.7 @@ -4386,6 +5244,13 @@ snapshots: dependencies: '@babel/types': 7.24.7 + '@babel/helper-member-expression-to-functions@7.24.8': + dependencies: + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-imports@7.24.7': dependencies: '@babel/traverse': 7.24.7 @@ -4404,6 +5269,32 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.24.7': + dependencies: + '@babel/types': 7.24.7 + + '@babel/helper-plugin-utils@7.24.8': {} + + '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-simple-access@7.24.7': dependencies: '@babel/traverse': 7.24.7 @@ -4411,21 +5302,37 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-split-export-declaration@7.24.7': dependencies: '@babel/types': 7.24.7 '@babel/helper-string-parser@7.24.7': {} + '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-validator-identifier@7.24.7': {} '@babel/helper-validator-option@7.24.7': {} + '@babel/helper-validator-option@7.24.8': {} + '@babel/helpers@7.24.7': dependencies: '@babel/template': 7.24.7 '@babel/types': 7.24.7 + '@babel/helpers@7.24.8': + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.9 + '@babel/highlight@7.24.7': dependencies: '@babel/helper-validator-identifier': 7.24.7 @@ -4437,6 +5344,50 @@ snapshots: dependencies: '@babel/types': 7.24.7 + '@babel/parser@7.24.8': + dependencies: + '@babel/types': 7.24.9 + + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + '@babel/runtime@7.24.7': dependencies: regenerator-runtime: 0.14.1 @@ -4462,12 +5413,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.24.8': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 + debug: 4.3.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.24.7': dependencies: '@babel/helper-string-parser': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + '@babel/types@7.24.9': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + '@commitlint/cli@19.3.0(@types/node@20.14.11)(typescript@5.4.5)': dependencies: '@commitlint/format': 19.3.0 @@ -4593,6 +5565,30 @@ snapshots: '@types/conventional-commits-parser': 5.0.0 chalk: 5.3.0 + '@docsearch/css@3.6.1': {} + + '@docsearch/js@3.6.1(@algolia/client-search@4.24.0)(search-insights@2.15.0)': + dependencies: + '@docsearch/react': 3.6.1(@algolia/client-search@4.24.0)(search-insights@2.15.0) + preact: 10.22.1 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + + '@docsearch/react@3.6.1(@algolia/client-search@4.24.0)(search-insights@2.15.0)': + dependencies: + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.15.0) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@docsearch/css': 3.6.1 + algoliasearch: 4.24.0 + optionalDependencies: + search-insights: 2.15.0 + transitivePeerDependencies: + - '@algolia/client-search' + '@esbuild/aix-ppc64@0.20.2': optional: true @@ -4838,7 +5834,7 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@ianvs/prettier-plugin-sort-imports@4.3.1(@vue/compiler-sfc@3.4.31)(prettier@3.3.3)': + '@ianvs/prettier-plugin-sort-imports@4.3.1(@vue/compiler-sfc@3.4.32)(prettier@3.3.3)': dependencies: '@babel/core': 7.24.7 '@babel/generator': 7.24.7 @@ -4848,7 +5844,33 @@ snapshots: prettier: 3.3.3 semver: 7.6.2 optionalDependencies: - '@vue/compiler-sfc': 3.4.31 + '@vue/compiler-sfc': 3.4.32 + transitivePeerDependencies: + - supports-color + + '@iconify-json/bx@1.1.10': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/fluent-emoji@1.1.18': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/logos@1.1.43': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify/types@2.0.0': {} + + '@iconify/utils@2.1.25': + dependencies: + '@antfu/install-pkg': 0.1.1 + '@antfu/utils': 0.7.10 + '@iconify/types': 2.0.0 + debug: 4.3.5 + kolorist: 1.8.0 + local-pkg: 0.5.0 + mlly: 1.7.1 transitivePeerDependencies: - supports-color @@ -4880,13 +5902,25 @@ snapshots: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@langchain/core@0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3)': + '@langchain/anthropic@0.2.6(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3)': + dependencies: + '@anthropic-ai/sdk': 0.22.0 + '@langchain/core': 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) + fast-xml-parser: 4.4.0 + zod: 3.23.8 + zod-to-json-schema: 3.22.5(zod@3.23.8) + transitivePeerDependencies: + - encoding + - langchain + - openai + + '@langchain/core@0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3)': dependencies: ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.12 - langsmith: 0.1.36(@langchain/core@0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3))(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) + langsmith: 0.1.36(@langchain/core@0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3))(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) ml-distance: 4.0.1 mustache: 4.2.0 p-queue: 6.6.2 @@ -4898,9 +5932,9 @@ snapshots: - langchain - openai - '@langchain/openai@0.2.4(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))': + '@langchain/openai@0.2.4(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))': dependencies: - '@langchain/core': 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) + '@langchain/core': 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) js-tiktoken: 1.0.12 openai: 4.52.3 zod: 3.23.8 @@ -4909,9 +5943,9 @@ snapshots: - encoding - langchain - '@langchain/textsplitters@0.0.3(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3)': + '@langchain/textsplitters@0.0.3(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3)': dependencies: - '@langchain/core': 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) + '@langchain/core': 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) js-tiktoken: 1.0.12 transitivePeerDependencies: - langchain @@ -4934,6 +5968,16 @@ snapshots: '@pkgr/core@0.1.1': {} + '@polka/url@1.0.0-next.25': {} + + '@rollup/pluginutils@5.1.0(rollup@4.18.1)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.18.1 + '@rollup/rollup-android-arm-eabi@4.17.2': optional: true @@ -5032,6 +6076,14 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} + '@shikijs/core@1.10.3': + dependencies: + '@types/hast': 3.0.4 + + '@shikijs/transformers@1.10.3': + dependencies: + shiki: 1.10.3 + '@sindresorhus/merge-streams@4.0.0': {} '@snyk/github-codeowners@1.1.0': @@ -5059,6 +6111,10 @@ snapshots: '@types/global-agent@2.1.3': {} + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.2 + '@types/json-schema@7.0.15': optional: true @@ -5068,6 +6124,15 @@ snapshots: dependencies: '@types/node': 20.14.11 + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.1': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdurl@2.0.0': {} + '@types/node-fetch@2.6.11': dependencies: '@types/node': 20.14.11 @@ -5085,10 +6150,14 @@ snapshots: '@types/shell-quote@1.7.5': {} + '@types/unist@3.0.2': {} + '@types/uuid@9.0.8': {} '@types/vscode@1.82.0': {} + '@types/web-bluetooth@0.0.20': {} + '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 @@ -5172,6 +6241,164 @@ snapshots: '@ungap/structured-clone@1.2.0': {} + '@unocss/astro@0.61.5(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11))': + dependencies: + '@unocss/core': 0.61.5 + '@unocss/reset': 0.61.5 + '@unocss/vite': 0.61.5(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)) + optionalDependencies: + vite: 5.3.4(@types/node@20.14.11) + transitivePeerDependencies: + - rollup + + '@unocss/cli@0.61.5(rollup@4.18.1)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + '@unocss/config': 0.61.5 + '@unocss/core': 0.61.5 + '@unocss/preset-uno': 0.61.5 + cac: 6.7.14 + chokidar: 3.6.0 + colorette: 2.0.20 + consola: 3.2.3 + fast-glob: 3.3.2 + magic-string: 0.30.10 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + transitivePeerDependencies: + - rollup + + '@unocss/config@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + unconfig: 0.3.13 + + '@unocss/core@0.61.5': {} + + '@unocss/extractor-arbitrary-variants@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + + '@unocss/inspector@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + '@unocss/rule-utils': 0.61.5 + gzip-size: 6.0.0 + sirv: 2.0.4 + + '@unocss/postcss@0.61.5(postcss@8.4.39)': + dependencies: + '@unocss/config': 0.61.5 + '@unocss/core': 0.61.5 + '@unocss/rule-utils': 0.61.5 + css-tree: 2.3.1 + fast-glob: 3.3.2 + magic-string: 0.30.10 + postcss: 8.4.39 + + '@unocss/preset-attributify@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + + '@unocss/preset-icons@0.61.5': + dependencies: + '@iconify/utils': 2.1.25 + '@unocss/core': 0.61.5 + ofetch: 1.3.4 + transitivePeerDependencies: + - supports-color + + '@unocss/preset-mini@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + '@unocss/extractor-arbitrary-variants': 0.61.5 + '@unocss/rule-utils': 0.61.5 + + '@unocss/preset-tagify@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + + '@unocss/preset-typography@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + '@unocss/preset-mini': 0.61.5 + + '@unocss/preset-uno@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + '@unocss/preset-mini': 0.61.5 + '@unocss/preset-wind': 0.61.5 + '@unocss/rule-utils': 0.61.5 + + '@unocss/preset-web-fonts@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + ofetch: 1.3.4 + + '@unocss/preset-wind@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + '@unocss/preset-mini': 0.61.5 + '@unocss/rule-utils': 0.61.5 + + '@unocss/reset@0.61.5': {} + + '@unocss/rule-utils@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + magic-string: 0.30.10 + + '@unocss/scope@0.61.5': {} + + '@unocss/transformer-attributify-jsx-babel@0.61.5': + dependencies: + '@babel/core': 7.24.9 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.9) + '@unocss/core': 0.61.5 + transitivePeerDependencies: + - supports-color + + '@unocss/transformer-attributify-jsx@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + + '@unocss/transformer-compile-class@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + + '@unocss/transformer-directives@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + '@unocss/rule-utils': 0.61.5 + css-tree: 2.3.1 + + '@unocss/transformer-variant-group@0.61.5': + dependencies: + '@unocss/core': 0.61.5 + + '@unocss/vite@0.61.5(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + '@unocss/config': 0.61.5 + '@unocss/core': 0.61.5 + '@unocss/inspector': 0.61.5 + '@unocss/scope': 0.61.5 + '@unocss/transformer-directives': 0.61.5 + chokidar: 3.6.0 + fast-glob: 3.3.2 + magic-string: 0.30.10 + vite: 5.3.4(@types/node@20.14.11) + transitivePeerDependencies: + - rollup + + '@vitejs/plugin-vue@5.0.5(vite@5.3.4(@types/node@20.14.11))(vue@3.4.32(typescript@5.4.5))': + dependencies: + vite: 5.3.4(@types/node@20.14.11) + vue: 3.4.32(typescript@5.4.5) + '@vitest/expect@2.0.3': dependencies: '@vitest/spy': 2.0.3 @@ -5275,42 +6502,109 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/compiler-core@3.4.31': + '@vue/compiler-core@3.4.32': dependencies: '@babel/parser': 7.24.7 - '@vue/shared': 3.4.31 + '@vue/shared': 3.4.32 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - optional: true - '@vue/compiler-dom@3.4.31': + '@vue/compiler-dom@3.4.32': dependencies: - '@vue/compiler-core': 3.4.31 - '@vue/shared': 3.4.31 - optional: true + '@vue/compiler-core': 3.4.32 + '@vue/shared': 3.4.32 - '@vue/compiler-sfc@3.4.31': + '@vue/compiler-sfc@3.4.32': dependencies: '@babel/parser': 7.24.7 - '@vue/compiler-core': 3.4.31 - '@vue/compiler-dom': 3.4.31 - '@vue/compiler-ssr': 3.4.31 - '@vue/shared': 3.4.31 + '@vue/compiler-core': 3.4.32 + '@vue/compiler-dom': 3.4.32 + '@vue/compiler-ssr': 3.4.32 + '@vue/shared': 3.4.32 estree-walker: 2.0.2 magic-string: 0.30.10 postcss: 8.4.39 source-map-js: 1.2.0 - optional: true - '@vue/compiler-ssr@3.4.31': + '@vue/compiler-ssr@3.4.32': dependencies: - '@vue/compiler-dom': 3.4.31 - '@vue/shared': 3.4.31 - optional: true + '@vue/compiler-dom': 3.4.32 + '@vue/shared': 3.4.32 - '@vue/shared@3.4.31': - optional: true + '@vue/devtools-api@7.3.6': + dependencies: + '@vue/devtools-kit': 7.3.6 + + '@vue/devtools-kit@7.3.6': + dependencies: + '@vue/devtools-shared': 7.3.6 + birpc: 0.2.17 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.1 + + '@vue/devtools-shared@7.3.6': + dependencies: + rfdc: 1.4.1 + + '@vue/reactivity@3.4.32': + dependencies: + '@vue/shared': 3.4.32 + + '@vue/runtime-core@3.4.32': + dependencies: + '@vue/reactivity': 3.4.32 + '@vue/shared': 3.4.32 + + '@vue/runtime-dom@3.4.32': + dependencies: + '@vue/reactivity': 3.4.32 + '@vue/runtime-core': 3.4.32 + '@vue/shared': 3.4.32 + csstype: 3.1.3 + + '@vue/server-renderer@3.4.32(vue@3.4.32(typescript@5.4.5))': + dependencies: + '@vue/compiler-ssr': 3.4.32 + '@vue/shared': 3.4.32 + vue: 3.4.32(typescript@5.4.5) + + '@vue/shared@3.4.31': {} + + '@vue/shared@3.4.32': {} + + '@vueuse/core@10.11.0(vue@3.4.32(typescript@5.4.5))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.0 + '@vueuse/shared': 10.11.0(vue@3.4.32(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.32(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/integrations@10.11.0(focus-trap@7.5.4)(vue@3.4.32(typescript@5.4.5))': + dependencies: + '@vueuse/core': 10.11.0(vue@3.4.32(typescript@5.4.5)) + '@vueuse/shared': 10.11.0(vue@3.4.32(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.32(typescript@5.4.5)) + optionalDependencies: + focus-trap: 7.5.4 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@10.11.0': {} + + '@vueuse/shared@10.11.0(vue@3.4.32(typescript@5.4.5))': + dependencies: + vue-demi: 0.14.8(vue@3.4.32(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue JSONStream@1.3.5: dependencies: @@ -5356,6 +6650,24 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 + algoliasearch@4.24.0: + dependencies: + '@algolia/cache-browser-local-storage': 4.24.0 + '@algolia/cache-common': 4.24.0 + '@algolia/cache-in-memory': 4.24.0 + '@algolia/client-account': 4.24.0 + '@algolia/client-analytics': 4.24.0 + '@algolia/client-common': 4.24.0 + '@algolia/client-personalization': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/logger-console': 4.24.0 + '@algolia/recommend': 4.24.0 + '@algolia/requester-browser-xhr': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/requester-node-http': 4.24.0 + '@algolia/transporter': 4.24.0 + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -5468,6 +6780,8 @@ snapshots: binary-search@1.3.6: {} + birpc@0.2.17: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -5502,6 +6816,13 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.0) + browserslist@4.23.2: + dependencies: + caniuse-lite: 1.0.30001642 + electron-to-chromium: 1.4.829 + node-releases: 2.0.14 + update-browserslist-db: 1.1.0(browserslist@4.23.2) + buffer-crc32@0.2.13: {} buffer-equal-constant-time@1.0.1: {} @@ -5542,6 +6863,8 @@ snapshots: caniuse-lite@1.0.30001620: {} + caniuse-lite@1.0.30001642: {} + chai@5.1.1: dependencies: assertion-error: 2.0.1 @@ -5685,6 +7008,8 @@ snapshots: concat-map@0.0.1: {} + confbox@0.1.7: {} + confusing-browser-globals@1.0.11: {} consola@3.2.3: {} @@ -5708,6 +7033,10 @@ snapshots: convert-source-map@2.0.0: {} + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + core-js@3.37.1: {} cosmiconfig-typescript-loader@5.0.0(@types/node@20.14.11)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): @@ -5740,8 +7069,15 @@ snapshots: domutils: 3.1.0 nth-check: 2.1.1 + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + css-what@6.1.0: {} + csstype@3.1.3: {} + cz-conventional-changelog@3.3.0(@types/node@20.14.11)(typescript@5.4.5): dependencies: chalk: 2.4.2 @@ -5828,8 +7164,12 @@ snapshots: has-property-descriptors: 1.0.1 object-keys: 1.1.1 + defu@6.1.4: {} + delayed-stream@1.0.0: {} + destr@2.0.3: {} + detect-file@1.0.0: {} detect-indent@6.1.0: {} @@ -5875,6 +7215,8 @@ snapshots: dotenv@16.4.5: {} + duplexer@0.1.2: {} + eastasianwidth@0.2.0: {} easy-table@1.2.0: @@ -5889,6 +7231,8 @@ snapshots: electron-to-chromium@1.4.774: {} + electron-to-chromium@1.4.829: {} + emoji-regex@10.3.0: {} emoji-regex@8.0.0: {} @@ -6264,8 +7608,7 @@ snapshots: estraverse@5.3.0: {} - estree-walker@2.0.2: - optional: true + estree-walker@2.0.2: {} estree-walker@3.0.3: dependencies: @@ -6349,6 +7692,10 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-xml-parser@4.4.0: + dependencies: + strnum: 1.0.5 + fastq@1.15.0: dependencies: reusify: 1.0.4 @@ -6410,6 +7757,10 @@ snapshots: flatted@3.2.9: {} + focus-trap@7.5.4: + dependencies: + tabbable: 6.2.0 + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -6608,6 +7959,10 @@ snapshots: graphemer@1.4.0: {} + gzip-size@6.0.0: + dependencies: + duplexer: 0.1.2 + has-bigints@1.0.2: {} has-flag@3.0.0: {} @@ -6644,6 +7999,8 @@ snapshots: dependencies: parse-passwd: 1.0.0 + hookable@5.5.3: {} + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 @@ -6859,6 +8216,8 @@ snapshots: dependencies: call-bind: 1.0.7 + is-what@4.1.16: {} + is-windows@1.0.2: {} is-wsl@2.2.0: @@ -6995,17 +8354,19 @@ snapshots: zod: 3.23.8 zod-validation-error: 3.3.0(zod@3.23.8) - langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1): + kolorist@1.8.0: {} + + langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1): dependencies: - '@langchain/core': 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) - '@langchain/openai': 0.2.4(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1)) - '@langchain/textsplitters': 0.0.3(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) + '@langchain/core': 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) + '@langchain/openai': 0.2.4(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1)) + '@langchain/textsplitters': 0.0.3(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) binary-extensions: 2.2.0 js-tiktoken: 1.0.12 js-yaml: 4.1.0 jsonpointer: 5.0.1 langchainhub: 0.0.11 - langsmith: 0.1.36(@langchain/core@0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3))(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) + langsmith: 0.1.36(@langchain/core@0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3))(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) ml-distance: 4.0.1 openapi-types: 12.1.3 p-retry: 4.6.2 @@ -7015,6 +8376,7 @@ snapshots: zod-to-json-schema: 3.22.5(zod@3.23.8) optionalDependencies: cheerio: 1.0.0-rc.12 + fast-xml-parser: 4.4.0 ignore: 5.3.1 playwright: 1.45.1 transitivePeerDependencies: @@ -7023,7 +8385,7 @@ snapshots: langchainhub@0.0.11: {} - langsmith@0.1.36(@langchain/core@0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3))(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3): + langsmith@0.1.36(@langchain/core@0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3))(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3): dependencies: '@types/uuid': 9.0.8 commander: 10.0.1 @@ -7031,8 +8393,8 @@ snapshots: p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) - langchain: 0.2.10(cheerio@1.0.0-rc.12)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1) + '@langchain/core': 0.2.17(langchain@0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1))(openai@4.52.3) + langchain: 0.2.10(cheerio@1.0.0-rc.12)(fast-xml-parser@4.4.0)(ignore@5.3.1)(openai@4.52.3)(playwright@1.45.1) openai: 4.52.3 leven@3.1.0: {} @@ -7050,6 +8412,10 @@ snapshots: dependencies: uc.micro: 1.0.6 + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + lint-staged@15.2.7: dependencies: chalk: 5.3.0 @@ -7076,6 +8442,11 @@ snapshots: load-tsconfig@0.2.5: {} + local-pkg@0.5.0: + dependencies: + mlly: 1.7.1 + pkg-types: 1.1.3 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -7155,6 +8526,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + mark.js@8.11.1: {} + + markdown-it-container@4.0.0: {} + markdown-it@12.3.2: dependencies: argparse: 2.0.1 @@ -7163,12 +8538,25 @@ snapshots: mdurl: 1.0.1 uc.micro: 1.0.6 + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + matcher@3.0.0: dependencies: escape-string-regexp: 4.0.0 + mdn-data@2.0.30: {} + mdurl@1.0.1: {} + mdurl@2.0.0: {} + meow@12.1.1: {} merge-stream@2.0.0: {} @@ -7220,6 +8608,10 @@ snapshots: minipass@7.1.2: {} + minisearch@7.0.1: {} + + mitt@3.0.1: {} + mkdirp-classic@0.5.3: optional: true @@ -7244,6 +8636,15 @@ snapshots: binary-search: 1.3.6 num-sort: 2.1.0 + mlly@1.7.1: + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.1.3 + ufo: 1.5.4 + + mrmime@2.0.0: {} + ms@2.1.2: {} ms@2.1.3: {} @@ -7277,6 +8678,8 @@ snapshots: node-domexception@1.0.0: {} + node-fetch-native@1.6.4: {} + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 @@ -7341,6 +8744,12 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 + ofetch@1.3.4: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -7493,6 +8902,8 @@ snapshots: pend@1.2.0: {} + perfect-debounce@1.0.0: {} + picocolors@1.0.1: {} picomatch@2.3.1: {} @@ -7503,6 +8914,12 @@ snapshots: pirates@4.0.6: {} + pkg-types@1.1.3: + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + playwright-core@1.45.1: optional: true @@ -7532,6 +8949,8 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 + preact@10.22.1: {} + prebuild-install@7.1.1: dependencies: detect-libc: 2.0.2 @@ -7566,6 +8985,8 @@ snapshots: once: 1.4.0 optional: true + punycode.js@2.3.1: {} + punycode@2.3.1: {} qs@6.11.2: @@ -7737,6 +9158,8 @@ snapshots: sax@1.3.0: {} + search-insights@2.15.0: {} + semver-compare@1.0.0: {} semver@5.7.2: {} @@ -7780,6 +9203,11 @@ snapshots: shell-quote@1.8.1: {} + shiki@1.10.3: + dependencies: + '@shikijs/core': 1.10.3 + '@types/hast': 3.0.4 + side-channel@1.0.4: dependencies: call-bind: 1.0.7 @@ -7802,6 +9230,12 @@ snapshots: simple-concat: 1.0.1 optional: true + sirv@2.0.4: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + slash@3.0.0: {} slice-ansi@5.0.0: @@ -7829,6 +9263,8 @@ snapshots: dependencies: whatwg-url: 7.1.0 + speakingurl@14.0.1: {} + split2@4.2.0: {} sprintf-js@1.1.3: {} @@ -7907,6 +9343,8 @@ snapshots: strip-json-comments@5.0.1: {} + strnum@1.0.5: {} + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -7919,6 +9357,10 @@ snapshots: summary@2.1.0: {} + superjson@2.2.1: + dependencies: + copy-anything: 3.0.5 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -7939,6 +9381,8 @@ snapshots: '@pkgr/core': 0.1.1 tslib: 2.6.2 + tabbable@6.2.0: {} + tapable@2.2.1: {} tar-fs@2.1.1: @@ -7999,6 +9443,8 @@ snapshots: dependencies: is-number: 7.0.0 + totalist@3.0.1: {} + tr46@0.0.3: {} tr46@1.0.1: @@ -8116,6 +9562,10 @@ snapshots: uc.micro@1.0.6: {} + uc.micro@2.1.0: {} + + ufo@1.5.4: {} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 @@ -8123,6 +9573,12 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + unconfig@0.3.13: + dependencies: + '@antfu/utils': 0.7.10 + defu: 6.1.4 + jiti: 1.21.6 + underscore@1.13.6: {} undici-types@5.26.5: {} @@ -8133,12 +9589,47 @@ snapshots: universalify@2.0.1: {} + unocss@0.61.5(postcss@8.4.39)(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)): + dependencies: + '@unocss/astro': 0.61.5(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)) + '@unocss/cli': 0.61.5(rollup@4.18.1) + '@unocss/core': 0.61.5 + '@unocss/extractor-arbitrary-variants': 0.61.5 + '@unocss/postcss': 0.61.5(postcss@8.4.39) + '@unocss/preset-attributify': 0.61.5 + '@unocss/preset-icons': 0.61.5 + '@unocss/preset-mini': 0.61.5 + '@unocss/preset-tagify': 0.61.5 + '@unocss/preset-typography': 0.61.5 + '@unocss/preset-uno': 0.61.5 + '@unocss/preset-web-fonts': 0.61.5 + '@unocss/preset-wind': 0.61.5 + '@unocss/reset': 0.61.5 + '@unocss/transformer-attributify-jsx': 0.61.5 + '@unocss/transformer-attributify-jsx-babel': 0.61.5 + '@unocss/transformer-compile-class': 0.61.5 + '@unocss/transformer-directives': 0.61.5 + '@unocss/transformer-variant-group': 0.61.5 + '@unocss/vite': 0.61.5(rollup@4.18.1)(vite@5.3.4(@types/node@20.14.11)) + optionalDependencies: + vite: 5.3.4(@types/node@20.14.11) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + update-browserslist-db@1.0.16(browserslist@4.23.0): dependencies: browserslist: 4.23.0 escalade: 3.1.2 picocolors: 1.0.1 + update-browserslist-db@1.1.0(browserslist@4.23.2): + dependencies: + browserslist: 4.23.2 + escalade: 3.1.2 + picocolors: 1.0.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -8179,6 +9670,53 @@ snapshots: '@types/node': 20.14.11 fsevents: 2.3.3 + vitepress@1.3.1(@algolia/client-search@4.24.0)(@types/node@20.14.11)(postcss@8.4.39)(search-insights@2.15.0)(typescript@5.4.5): + dependencies: + '@docsearch/css': 3.6.1 + '@docsearch/js': 3.6.1(@algolia/client-search@4.24.0)(search-insights@2.15.0) + '@shikijs/core': 1.10.3 + '@shikijs/transformers': 1.10.3 + '@types/markdown-it': 14.1.1 + '@vitejs/plugin-vue': 5.0.5(vite@5.3.4(@types/node@20.14.11))(vue@3.4.32(typescript@5.4.5)) + '@vue/devtools-api': 7.3.6 + '@vue/shared': 3.4.31 + '@vueuse/core': 10.11.0(vue@3.4.32(typescript@5.4.5)) + '@vueuse/integrations': 10.11.0(focus-trap@7.5.4)(vue@3.4.32(typescript@5.4.5)) + focus-trap: 7.5.4 + mark.js: 8.11.1 + minisearch: 7.0.1 + shiki: 1.10.3 + vite: 5.3.4(@types/node@20.14.11) + vue: 3.4.32(typescript@5.4.5) + optionalDependencies: + postcss: 8.4.39 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + vitest@2.0.3(@types/node@20.14.11): dependencies: '@ampproject/remapping': 2.3.0 @@ -8227,6 +9765,20 @@ snapshots: vscode-uri@3.0.8: {} + vue-demi@0.14.8(vue@3.4.32(typescript@5.4.5)): + dependencies: + vue: 3.4.32(typescript@5.4.5) + + vue@3.4.32(typescript@5.4.5): + dependencies: + '@vue/compiler-dom': 3.4.32 + '@vue/compiler-sfc': 3.4.32 + '@vue/runtime-dom': 3.4.32 + '@vue/server-renderer': 3.4.32(vue@3.4.32(typescript@5.4.5)) + '@vue/shared': 3.4.32 + optionalDependencies: + typescript: 5.4.5 + wcwidth@1.0.1: dependencies: defaults: 1.0.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b6e39cd..d0bf04c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ packages: - playground - examples/* + - website diff --git a/src/ai/helpers.ts b/src/ai/helpers.ts index 114ab02..a20709d 100644 --- a/src/ai/helpers.ts +++ b/src/ai/helpers.ts @@ -2,6 +2,7 @@ import type { BaseChatModel } from '@langchain/core/language_models/chat_models' import { AzureOpenAIModelProvider } from './model-providers/azure-openai' import type { BaseModelProvider } from './model-providers/base' +import { AnthropicModelProvider } from './model-providers/claude' import { OpenAIModelProvider } from './model-providers/openai' import { parseModelBaseUrl, type ModelUrlType } from './parse-model-base-url' @@ -10,7 +11,8 @@ export const getCurrentModelProvider = async () => { const urlTypeProviderMap = { openai: OpenAIModelProvider, - 'azure-openai': AzureOpenAIModelProvider + 'azure-openai': AzureOpenAIModelProvider, + anthropic: AnthropicModelProvider } satisfies Record> return urlTypeProviderMap[urlType] || OpenAIModelProvider diff --git a/src/ai/model-providers/claude.ts b/src/ai/model-providers/claude.ts new file mode 100644 index 0000000..dfe938b --- /dev/null +++ b/src/ai/model-providers/claude.ts @@ -0,0 +1,32 @@ +import { getConfigKey } from '@/config' +import { getContext } from '@/context' +import { ChatAnthropic } from '@langchain/anthropic' +import * as vscode from 'vscode' + +import { parseModelBaseUrl } from '../parse-model-base-url' +import { BaseModelProvider } from './base' + +export class AnthropicModelProvider extends BaseModelProvider { + async createModel() { + const isDev = getContext().extensionMode !== vscode.ExtensionMode.Production + + // anthropic@https://api.anthropic.com + const { url: openaiBaseUrl } = await parseModelBaseUrl() + const openaiKey = await getConfigKey('openaiKey') + const openaiModel = await getConfigKey('openaiModel') + + const model = new ChatAnthropic({ + apiKey: openaiKey, + anthropicApiUrl: openaiBaseUrl, + clientOptions: { + fetch + }, + model: openaiModel, + temperature: 0.95, // never use 1.0, some models do not support it + maxRetries: 3, + verbose: isDev + }) + + return model + } +} diff --git a/src/ai/parse-model-base-url.ts b/src/ai/parse-model-base-url.ts index c1ffd50..a8d9669 100644 --- a/src/ai/parse-model-base-url.ts +++ b/src/ai/parse-model-base-url.ts @@ -2,7 +2,7 @@ import { getConfigKey } from '@/config' import { t } from '@/i18n' -export type ModelUrlType = 'openai' | 'azure-openai' +export type ModelUrlType = 'openai' | 'azure-openai' | 'anthropic' export const parseModelBaseUrl = async (): Promise<{ urlType: ModelUrlType url: string @@ -19,7 +19,8 @@ export const parseModelBaseUrl = async (): Promise<{ let url = '' // Use regexp to parse the urlType - const regex = /^(openai|azure-openai|copilot)?@?(https?:\/\/[^\s]+)?$/ + const regex = + /^(openai|azure-openai|anthropic|copilot)?@?(https?:\/\/[^\s]+)?$/ const match = baseUrl.trim().match(regex) if (match) { diff --git a/website/.vitepress/config/en.ts b/website/.vitepress/config/en.ts new file mode 100644 index 0000000..d61897c --- /dev/null +++ b/website/.vitepress/config/en.ts @@ -0,0 +1,162 @@ +import { createRequire } from 'module' +import type { DefaultTheme } from 'vitepress' +import { defineConfig } from 'vitepress' + +const require = createRequire(import.meta.url) +const pkg = require('../../package.json') + +export const en = defineConfig({ + lang: 'en-US', + description: + 'Mastering Any Code In VSCode: One-click commenting and language conversion. 💪', + themeConfig: { + footer: { + message: 'Released under the MIT License.', + copyright: 'Copyright © 2024-present Nicepkg' + }, + nav: nav(), + sidebar: sidebar(), + editLink: { + pattern: 'https://github.com/nicepkg/aide/edit/master/website/:path', + text: 'Edit this page on GitHub' + } + } +}) + +function nav(): DefaultTheme.NavItem[] { + return [ + { + text: 'Guide', + link: '/guide/index', + activeMatch: '/guide/' + }, + { + text: 'Development', + items: [ + { + text: 'Install' + ' ' + pkg.version, + link: 'https://marketplace.visualstudio.com/items?itemName=nicepkg.aide-pro' + }, + { + text: 'Changelog', + link: 'https://github.com/nicepkg/aide/blob/master/CHANGELOG.md' + }, + { + text: 'Contributing', + link: 'https://github.com/nicepkg/aide/blob/master/CONTRIBUTING.md' + } + ] + } + ] +} + +function sidebar(): DefaultTheme.Sidebar { + return { + '/guide/': [ + { + text: '🚀   Getting Started', + collapsed: false, + base: '/guide/getting-started', + items: [ + { text: 'Introduction', link: '/' }, + { text: 'Installation', link: '/installation' }, + { + text: 'Customize Shortcuts', + link: '/customize-shortcuts' + }, + { + text: 'Customize Configuration', + link: '/customize-configuration' + }, + { text: 'FAQ', link: '/faq' } + ] + }, + { + text: '✨   Features', + collapsed: false, + base: '/guide/features', + items: [ + { + text: 'Code Viewer Helper', + link: '/code-viewer-helper' + }, + { + text: 'Code Convert', + link: '/code-convert' + }, + { + text: 'Smart Paste', + link: '/smart-paste' + }, + { + text: 'Copy Multiple Files As Prompt', + link: '/copy-as-prompt' + }, + { + text: 'Rename Variable', + link: '/rename-variable' + }, + { text: 'Ask AI With Custom Command', link: '/ask-ai' } + ] + }, + { + text: '🛠   Configuration', + collapsed: true, + base: '/guide/configuration', + items: [ + { text: 'aide.openaiKey', link: '/openai-key' }, + { + text: 'aide.openaiModel', + link: '/openai-model' + }, + { + text: 'aide.openaiBaseUrl', + link: '/openai-base-url' + }, + { + text: 'aide.codeViewerHelperPrompt', + link: '/code-viewer-helper-prompt' + }, + { + text: 'aide.convertLanguagePairs', + link: '/convert-language-pairs' + }, + { + text: 'aide.autoRememberConvertLanguagePairs', + link: '/auto-remember-convert-language-pairs' + }, + { text: 'aide.aiPrompt', link: '/ai-prompt' }, + { + text: 'aide.ignorePatterns', + link: '/ignore-patterns' + }, + { + text: 'aide.respectGitIgnore', + link: '/respect-git-ignore' + }, + { text: 'aide.aiCommand', link: '/ai-command' }, + { + text: 'aide.aiCommandCopyBeforeRun', + link: '/ai-command-copy-before-run' + } + ] + }, + { + text: '🌱   Use Another LLM', + collapsed: true, + base: '/guide/use-another-llm', + items: [ + { text: 'Anthropic', link: '/anthropic' }, + { text: 'Azure', link: '/azure' }, + { text: 'DeepSeek', link: '/deepseek' }, + { text: 'Google', link: '/google' }, + { text: 'LocalAI', link: '/local-ai' }, + { text: 'Ollama', link: '/ollama' }, + { text: 'OpenAI', link: '/openai' }, + { text: 'Qwen', link: '/qwen' }, + { text: 'Zhipu', link: '/zhipu' } + ] + } + ] + } +} diff --git a/website/.vitepress/config/index.ts b/website/.vitepress/config/index.ts new file mode 100644 index 0000000..3e999a5 --- /dev/null +++ b/website/.vitepress/config/index.ts @@ -0,0 +1,13 @@ +import { defineConfig } from 'vitepress' + +import { en } from './en' +import { shared } from './shared' +import { zh } from './zh' + +export default defineConfig({ + ...shared, + locales: { + root: { label: 'English', ...en }, + zh: { label: '简体中文', ...zh } + } +}) diff --git a/website/.vitepress/config/shared.ts b/website/.vitepress/config/shared.ts new file mode 100644 index 0000000..765d1f8 --- /dev/null +++ b/website/.vitepress/config/shared.ts @@ -0,0 +1,81 @@ +import Unocss from 'unocss/vite' +import { defineConfig } from 'vitepress' + +import { search as zhSearch } from './zh' + +export const shared = defineConfig({ + title: 'Aide', + + rewrites: { + 'en/:rest*': ':rest*' + }, + + lastUpdated: true, + cleanUrls: true, + metaChunk: true, + + markdown: { + lineNumbers: false + }, + + sitemap: { + hostname: 'https://aide.nicepkg.cn', + transformItems(items) { + return items.filter(item => !item.url.includes('migration')) + } + }, + + head: [ + ['link', { rel: 'icon', type: 'image/svg+xml', href: '/logo-mini.svg' }], + ['link', { rel: 'icon', type: 'image/png', href: '/logo-mini.png' }], + ['meta', { name: 'theme-color', content: '#8c6bef' }], + ['meta', { property: 'og:type', content: 'website' }], + ['meta', { property: 'og:locale', content: 'en' }], + [ + 'meta', + { + property: 'og:title', + content: 'Aide | Mastering Any Code In VSCode' + } + ], + ['meta', { property: 'og:site_name', content: 'Aide' }], + [ + 'meta', + { + property: 'og:image', + content: 'https://aide.nicepkg.cn/og-cover.png' + } + ], + ['meta', { property: 'og:url', content: 'https://aide.nicepkg.cn/' }] + ], + + themeConfig: { + logo: { src: '/logo-mini.svg', width: 24, height: 24 }, + + socialLinks: [{ icon: 'github', link: 'https://github.com/nicepkg/aide' }], + + // search: { + // provider: 'algolia', + // options: { + // appId: 'xxx', + // apiKey: 'xxx', + // indexName: 'aide', + // locales: { + // ...zhSearch + // } + // } + // } + + search: { + provider: 'local' + } + }, + + vite: { + plugins: [ + Unocss({ + configFile: '../../uno.config.ts' + }) + ] + } +}) diff --git a/website/.vitepress/config/zh.ts b/website/.vitepress/config/zh.ts new file mode 100644 index 0000000..560d200 --- /dev/null +++ b/website/.vitepress/config/zh.ts @@ -0,0 +1,239 @@ +import { createRequire } from 'module' +import type { DefaultTheme } from 'vitepress' +import { defineConfig } from 'vitepress' + +const require = createRequire(import.meta.url) +const pkg = require('../../package.json') + +export const zh = defineConfig({ + lang: 'zh-Hans', + description: '在 VSCode 里掌握任何屎山代码:一键注释和语言转换。💪', + themeConfig: { + footer: { + message: '基于 MIT 许可发布', + copyright: `Copyright © 2024-present Nicepkg` + }, + nav: nav(), + sidebar: sidebar(), + editLink: { + pattern: 'https://github.com/nicepkg/aide/edit/master/website/:path', + text: '在 GitHub 上编辑此页面' + }, + docFooter: { + prev: '上一页', + next: '下一页' + }, + outline: { + label: '页面导航' + }, + + lastUpdated: { + text: '最后更新于', + formatOptions: { + dateStyle: 'short', + timeStyle: 'medium' + } + }, + + langMenuLabel: '多语言', + returnToTopLabel: '回到顶部', + sidebarMenuLabel: '菜单', + darkModeSwitchLabel: '主题', + lightModeSwitchTitle: '切换到浅色模式', + darkModeSwitchTitle: '切换到深色模式' + } +}) + +function nav(): DefaultTheme.NavItem[] { + return [ + { + text: '指南', + link: '/zh/guide/index', + activeMatch: '/zh/guide/' + }, + { + text: '开发', + items: [ + { + text: '安装' + ' ' + pkg.version, + link: 'https://marketplace.visualstudio.com/items?itemName=nicepkg.aide-pro' + }, + { + text: '更新日志', + link: 'https://github.com/nicepkg/aide/blob/master/CHANGELOG.md' + }, + { + text: '贡献指南', + link: 'https://github.com/nicepkg/aide/blob/master/CONTRIBUTING.md' + } + ] + } + ] +} + +function sidebar(): DefaultTheme.Sidebar { + return { + '/zh/guide/': [ + { + text: '🚀   快速开始', + collapsed: false, + base: '/zh/guide/getting-started', + items: [ + { text: '简介', link: '/' }, + { + text: '安装', + link: '/installation' + }, + { + text: '自定义快捷键', + link: '/customize-shortcuts' + }, + { + text: '自定义配置', + link: '/customize-configuration' + }, + { text: '常见问题解答', link: '/faq' } + ] + }, + { + text: '✨   功能', + collapsed: false, + base: '/zh/guide/features', + items: [ + { + text: '智能代码查看器助手', + link: '/code-viewer-helper' + }, + { + text: '智能代码转换', + link: '/code-convert' + }, + { + text: '智能粘贴', + link: '/smart-paste' + }, + { + text: '批量复制文件为 AI 提示词', + link: '/copy-as-prompt' + }, + { + text: '智能重命名变量', + link: '/rename-variable' + }, + { + text: '自定义命令提问 AI', + link: '/ask-ai' + } + ] + }, + { + text: '🛠   配置', + collapsed: true, + base: '/zh/guide/configuration', + items: [ + { + text: 'aide.openaiKey', + link: '/openai-key' + }, + { + text: 'aide.openaiModel', + link: '/openai-model' + }, + { + text: 'aide.openaiBaseUrl', + link: '/openai-base-url' + }, + { + text: 'aide.codeViewerHelperPrompt', + link: '/code-viewer-helper-prompt' + }, + { + text: 'aide.convertLanguagePairs', + link: '/convert-language-pairs' + }, + { + text: 'aide.autoRememberConvertLanguagePairs', + link: '/auto-remember-convert-language-pairs' + }, + { text: 'aide.aiPrompt', link: '/ai-prompt' }, + { + text: 'aide.ignorePatterns', + link: '/ignore-patterns' + }, + { + text: 'aide.respectGitIgnore', + link: '/respect-git-ignore' + }, + { + text: 'aide.aiCommand', + link: '/ai-command' + }, + { + text: 'aide.aiCommandCopyBeforeRun', + link: '/ai-command-copy-before-run' + } + ] + }, + { + text: '🌱   使用其他大语言模型', + collapsed: true, + base: '/zh/guide/use-another-llm', + items: [ + { text: 'Anthropic', link: '/anthropic' }, + { text: 'Azure', link: '/azure' }, + { text: 'DeepSeek', link: '/deepseek' }, + { text: '谷歌', link: '/google' }, + { text: 'LocalAI', link: '/local-ai' }, + { text: 'Ollama', link: '/ollama' }, + { text: 'OpenAI', link: '/openai' }, + { text: '通义千问', link: '/qwen' }, + { text: '智谱', link: '/zhipu' } + ] + } + ] + } +} + +export const search: DefaultTheme.AlgoliaSearchOptions['locales'] = { + zh: { + placeholder: '搜索文档', + translations: { + button: { + buttonText: '搜索文档', + buttonAriaLabel: '搜索文档' + }, + modal: { + searchBox: { + resetButtonTitle: '清除查询条件', + resetButtonAriaLabel: '清除查询条件', + cancelButtonText: '取消', + cancelButtonAriaLabel: '取消' + }, + startScreen: { + recentSearchesTitle: '搜索历史', + noRecentSearchesText: '没有搜索历史', + saveRecentSearchButtonTitle: '保存至搜索历史', + removeRecentSearchButtonTitle: '从搜索历史中移除', + favoriteSearchesTitle: '收藏', + removeFavoriteSearchButtonTitle: '从收藏中移除' + }, + errorScreen: { + titleText: '无法获取结果', + helpText: '你可能需要检查你的网络连接' + }, + footer: { + selectText: '选择', + navigateText: '切换', + closeText: '关闭', + searchByText: '搜索提供者' + }, + noResultsScreen: { + noResultsText: '无法找到相关结果', + suggestedQueryText: '你可以尝试查询', + reportMissingResultsText: '你认为该查询应该有结果?', + reportMissingResultsLinkText: '点击反馈' + } + } + } + } +} diff --git a/website/.vitepress/integrations.ts b/website/.vitepress/integrations.ts new file mode 100644 index 0000000..b05d651 --- /dev/null +++ b/website/.vitepress/integrations.ts @@ -0,0 +1,29 @@ +export interface Integration { + icon: string + name: string + link: string + target?: string + secondary?: string +} + +// @unocss-include + +export const integrations: Integration[] = [ + { + name: 'Vue', + link: '/guide/getting-started/integrations/vue', + icon: 'i-logos-vue' + }, + { + name: 'Nuxt', + link: '/guide/getting-started/integrations/nuxt', + icon: 'i-logos-nuxt-icon' + }, + { + name: 'TailWind', + secondary: 'Upvote Issue', + target: '_blank', + link: 'https://github.com/jd-solanki/anu/issues/128', + icon: 'i-logos-tailwindcss-icon' + } +] diff --git a/website/.vitepress/shim.d.ts b/website/.vitepress/shim.d.ts new file mode 100644 index 0000000..2b97bd9 --- /dev/null +++ b/website/.vitepress/shim.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/website/.vitepress/theme/index.ts b/website/.vitepress/theme/index.ts new file mode 100644 index 0000000..e3170f3 --- /dev/null +++ b/website/.vitepress/theme/index.ts @@ -0,0 +1,10 @@ +import DefaultTheme from 'vitepress/theme' +import type { App } from 'vue' + +import 'uno.css' +import './style.css' + +export default { + extends: DefaultTheme, + enhanceApp({ app }: { app: App }) {} +} diff --git a/website/.vitepress/theme/style.css b/website/.vitepress/theme/style.css new file mode 100644 index 0000000..536d469 --- /dev/null +++ b/website/.vitepress/theme/style.css @@ -0,0 +1,17 @@ +/* Styles adjusting VitePress according to theme */ +:root { + --vp-c-brand-1: #8c6bef; + --vp-c-brand-2: #7a55e8; + --vp-c-brand-3: #6940e0; + --vp-c-brand-soft: rgba(140, 107, 239, 0.14); + + /* We need this because menu component has 51 index which overlaps on navbar on scroll */ + /* --vp-z-index-nav: 52; */ + + --vp-code-scrollbar-thumb-bg: hsl(0, 0%, 40%); + --vp-code-line-height: 1.9; +} + +:root.dark { + --vp-code-scrollbar-thumb-bg: hsl(0, 0%, 25%); +} diff --git a/website/en/guide/configuration/ai-command-copy-before-run.md b/website/en/guide/configuration/ai-command-copy-before-run.md new file mode 100644 index 0000000..e567738 --- /dev/null +++ b/website/en/guide/configuration/ai-command-copy-before-run.md @@ -0,0 +1,11 @@ +# aide.aiCommandCopyBeforeRun + +This configuration allows you to customize whether to copy the AI command before execution. + +- **Default value:** + + ```json + { + "aide.aiCommandCopyBeforeRun": true + } + ``` diff --git a/website/en/guide/configuration/ai-command.md b/website/en/guide/configuration/ai-command.md new file mode 100644 index 0000000..808b419 --- /dev/null +++ b/website/en/guide/configuration/ai-command.md @@ -0,0 +1,26 @@ +# aide.aiCommand + +This configuration allows you to customize the template for executing AI commands. Templates can include several placeholders: + +**Template Parameters:** + +| Parameter | Description | Output Example | +| ---------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `#{filesRelativePath}` | Placeholder for file paths | `"./src/index.ts" "./src/utils.ts"` | +| `#{filesFullPath}` | Placeholder for full paths | `"/project/src/index.ts" "/project/src/utils.ts"` | +| `#{question}` | Placeholder for user query | `"What is the purpose of this code?" ` | +| `#{content}` | Placeholder for file content |
File: example.js
\`\`\`js
const bar = "hello, aide";
console.log(bar);
\`\`\`
| + +**Usage Example:** + +- **Default Template:** + + By default, the template is blank, and you'll need to provide a custom template. + +- **Example:** + + It is recommended to use the [aider (a highly regarded command-line AI tool)](https://github.com/paul-gauthier/aider) command to ask AI questions about the selected files: + + ```plaintext + aider #{filesRelativePath} + ``` diff --git a/website/en/guide/configuration/ai-prompt.md b/website/en/guide/configuration/ai-prompt.md new file mode 100644 index 0000000..88a4729 --- /dev/null +++ b/website/en/guide/configuration/ai-prompt.md @@ -0,0 +1,24 @@ +# aide.aiPrompt + +This configuration allows you to customize the template for AI prompts when batch copying files. The template can include some placeholders: + +**Template Parameters:** + +| Parameter | Description | Output Example | +| ------------ | --------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `#{content}` | Placeholder for full file content |
File: example.js
\`\`\`js
const bar = "hello, aide";
console.log(bar);
\`\`\`
| + +**Usage Example:** + +- **Default Template:** + + ```plaintext + #{content} + ``` + +- **Example:** + ```plaintext + Here is the code snippet: + #{content} + Please answer the following question: + ``` diff --git a/website/en/guide/configuration/auto-remember-convert-language-pairs.md b/website/en/guide/configuration/auto-remember-convert-language-pairs.md new file mode 100644 index 0000000..d955323 --- /dev/null +++ b/website/en/guide/configuration/auto-remember-convert-language-pairs.md @@ -0,0 +1,3 @@ +# aide.autoRememberConvertLanguagePairs + +This configuration allows you to customize whether to automatically remember the language mapping for code conversion. The default value is `true`. diff --git a/website/en/guide/configuration/code-viewer-helper-prompt.md b/website/en/guide/configuration/code-viewer-helper-prompt.md new file mode 100644 index 0000000..d20c4a6 --- /dev/null +++ b/website/en/guide/configuration/code-viewer-helper-prompt.md @@ -0,0 +1,32 @@ +# aide.codeViewerHelperPrompt + +This configuration allows you to customize the AI prompt template for the code viewer assistant. The template can include some placeholders: + +**Template Parameters:** + +| Parameter | Description | Output Example | +| ------------------- | ------------------------ | ------------------------------------------------------------------------------------------ | +| `#{sourceLanguage}` | Source code language | `javascript` | +| `#{locale}` | User's language/locale | `en` | +| `#{content}` | Full content of the file |
const bar = "hello, aide";
console.log(bar);
| + +**Usage Examples:** + +- **Default Template:** + + ```plaintext + You are a programming language commentator. + You need to help me add comments to #{sourceLanguage} code as much as possible to make it readable for beginners. + Do not change the original code, just add as detailed comments as possible, because my purpose is only to understand and read. + Please use my native language #{locale} as the commenting language. + Please do not reply with any text other than the code, and do not use markdown syntax. + Here is the code you need to comment on: + #{content} + ``` + +- **Example:** + + ```plaintext + Provide detailed comments for the following #{sourceLanguage} code, using #{locale}: + #{content} + ``` diff --git a/website/en/guide/configuration/convert-language-pairs.md b/website/en/guide/configuration/convert-language-pairs.md new file mode 100644 index 0000000..ab1ebf8 --- /dev/null +++ b/website/en/guide/configuration/convert-language-pairs.md @@ -0,0 +1,96 @@ +# aide.convertLanguagePairs + +This configuration allows you to customize the language mapping for code conversion. The mapping should be in the form of `sourceLanguage: targetLanguage`. + +By default, the editor will remember your language mapping in the current project's `.vscode/settings.json` file, under the `aide.convertLanguagePairs` configuration. You can modify or add new language mappings here, for example: + +```json +{ + //other settings... + "aide.convertLanguagePairs": { + "javascript": "python", // Convert javascript to python + "json": "yaml" // Convert json to yaml + } +} +``` + +Your language names should follow the [VSCode Language Identifiers](https://code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers). Here are some VSCode language identifiers you might need: + +::: details List of VSCode Language Identifiers + +- abap +- bat +- bibtex +- clojure +- coffeescript +- c +- cpp +- csharp +- dockercompose +- css +- cuda-cpp +- d +- pascal +- diff +- dockerfile +- erlang +- fsharp +- git-commit +- git-rebase +- go +- groovy +- handlebars +- haml +- haskell +- html +- ini +- java +- javascript +- javascriptreact +- json +- jsonc +- julia +- latex +- less +- lua +- makefile +- markdown +- objective-c +- objective-cpp +- ocaml +- perl +- perl6 +- php +- plaintext +- powershell +- jade +- pug +- python +- r +- razor +- ruby +- rust +- scss +- sass +- shaderlab +- shellscript +- slim +- sql +- stylus +- svelte +- swift +- typescript +- typescriptreact +- tex +- vb +- vue +- vue-html +- xml +- xsl +- yaml + +::: + +::: tip +If you can't find your language in the list, you can freely customize your language identifier. However, this means you might not get syntax highlighting, that's all. +::: diff --git a/website/en/guide/configuration/ignore-patterns.md b/website/en/guide/configuration/ignore-patterns.md new file mode 100644 index 0000000..2179116 --- /dev/null +++ b/website/en/guide/configuration/ignore-patterns.md @@ -0,0 +1,39 @@ +# aide.ignorePatterns + +This configuration allows you to customize file exclusion rules. It supports [glob](https://github.com/isaacs/node-glob) patterns. + +- **Default value:** + + ```json + { + "aide.ignorePatterns": [ + "**/node_modules/**", + "**/.git/**", + "**/__pycache__/**", + "**/.Python/**", + "**/.DS_Store/**", + "**/.cache/**", + "**/.next/**", + "**/.nuxt/**", + "**/.out/**", + "**/dist/**", + "**/.serverless/**", + "**/.parcel-cache/**" + ] + } + ``` + +- **Usage example:** + + For instance, to exclude the `node_modules`, `.git`, `dist`, and `build` folders from AI suggestions, you can update the settings as follows: + + ```json + { + "aide.ignorePatterns": [ + "**/node_modules/**", + "**/.git/**", + "**/dist/**", + "**/build/**" + ] + } + ``` diff --git a/website/en/guide/configuration/openai-base-url.md b/website/en/guide/configuration/openai-base-url.md new file mode 100644 index 0000000..bc9aeb4 --- /dev/null +++ b/website/en/guide/configuration/openai-base-url.md @@ -0,0 +1,11 @@ +# aide.openaiBaseUrl + +This configuration allows you to customize the base URL of the OpenAI API. + +- **Default value:** + + ```json + { + "aide.openaiBaseUrl": "https://api.openai.com/v1" + } + ``` diff --git a/website/en/guide/configuration/openai-key.md b/website/en/guide/configuration/openai-key.md new file mode 100644 index 0000000..5b52c17 --- /dev/null +++ b/website/en/guide/configuration/openai-key.md @@ -0,0 +1,11 @@ +# aide.openaiKey + +This configuration allows you to customize the OpenAI API key. You can obtain your API key from the [OpenAI website](https://platform.openai.com). + +- **Default value:** + + ```json + { + "aide.openaiKey": "" + } + ``` diff --git a/website/en/guide/configuration/openai-model.md b/website/en/guide/configuration/openai-model.md new file mode 100644 index 0000000..9baf5f7 --- /dev/null +++ b/website/en/guide/configuration/openai-model.md @@ -0,0 +1,11 @@ +# aide.openaiModel + +This configuration allows you to customize the [OpenAI model](https://platform.openai.com/docs/models) used for AI interactions. + +- **Default Value:** + + ```json + { + "aide.openaiModel": "gpt-4o" + } + ``` diff --git a/website/en/guide/configuration/respect-git-ignore.md b/website/en/guide/configuration/respect-git-ignore.md new file mode 100644 index 0000000..1ecbf91 --- /dev/null +++ b/website/en/guide/configuration/respect-git-ignore.md @@ -0,0 +1,3 @@ +# aide.respectGitIgnore + +This configuration allows you to customize whether to respect the `.gitignore` file to exclude files. The default is `true`. diff --git a/website/en/guide/features/ask-ai.md b/website/en/guide/features/ask-ai.md new file mode 100644 index 0000000..6c86825 --- /dev/null +++ b/website/en/guide/features/ask-ai.md @@ -0,0 +1,21 @@ +# Ask AI With Custom Command + +Command Name: `aide.askAI` + +Prepare and execute a custom AI command based on the selected file and user input. + +**Usage:** + +- Select a file or folder in the explorer. +- Right-click and select `✨ Aide: Ask AI`. +- Follow the prompt to enter your question. + +**Related Configuration:** + +- You can customize the AI command by modifying the [`aide.aiCommand`](../configuration/ai-command.md) configuration. + +- You can control whether to copy the AI command before execution by modifying the [`aide.aiCommandCopyBeforeRun`](../configuration/ai-command-copy-before-run.md) configuration. + +- You can ignore specific files or folders by modifying the [`aide.ignorePatterns`](../configuration/ignore-patterns.md) configuration. + +- You can control whether to ignore files or folders specified in the `.gitignore` file by modifying the [`aide.respectGitIgnore`](../configuration/respect-git-ignore.md) configuration. diff --git a/website/en/guide/features/code-convert.md b/website/en/guide/features/code-convert.md new file mode 100644 index 0000000..41960b2 --- /dev/null +++ b/website/en/guide/features/code-convert.md @@ -0,0 +1,20 @@ +# Code Convert + +Command Name: `aide.codeConvert` + +Use AI to convert an entire file or selected code from one programming language to another. Supports any language. Most languages support highlighting. + +**Usage:** + +- Select the code in the editor. +- Click the paper icon at the top right or right-click and select `✨ Aide: Code Convert`. + +::: tip +If the output is interrupted, you can click the original paper icon or right-click and select `✨ Aide: Code Convert` to continue. +::: + +**Related Configuration:** + +- By default, the editor will remember your language mappings in the current project's `.vscode/settings.json` file under the [`aide.convertLanguagePairs`](../configuration/convert-language-pairs.md) configuration, so you don't need to select the languages again next time you convert. + +- You can control whether to automatically remember language mappings by modifying the [`aide.autoRememberConvertLanguagePairs`](../configuration/auto-remember-convert-language-pairs.md) configuration. diff --git a/website/en/guide/features/code-viewer-helper.md b/website/en/guide/features/code-viewer-helper.md new file mode 100644 index 0000000..0ead5ad --- /dev/null +++ b/website/en/guide/features/code-viewer-helper.md @@ -0,0 +1,18 @@ +# Code Viewer Helper + +Command Name: `aide.codeViewerHelper` + +Use AI to add comments to the entire file or selected code to make it easier to read. + +**Usage:** + +- Select the code in the editor. +- Click the book icon in the upper right corner or right-click and select `✨ Aide: Code Viewer Helper`. + +::: tip +If the output is interrupted, you can click the original book icon or right-click and select `✨ Aide: Code Viewer Helper` to continue. +::: + +**Related Configuration:** + +- You can customize the corresponding AI prompt template by configuring [`aide.codeViewerHelperPrompt`](../configuration/code-viewer-helper-prompt.md). diff --git a/website/en/guide/features/copy-as-prompt.md b/website/en/guide/features/copy-as-prompt.md new file mode 100644 index 0000000..bb0ef5d --- /dev/null +++ b/website/en/guide/features/copy-as-prompt.md @@ -0,0 +1,18 @@ +# Copy Multiple Files As AI Prompt + +Command Name: `aide.copyAsPrompt` + +Copies the content of the selected files to the clipboard and formats it as AI interaction prompts. + +**Usage:** + +- Select files or folders in the explorer. +- Right-click and select `✨ Aide: Copy as AI Prompt`. + +**Related Configuration:** + +- You can customize the AI prompt template by configuring [`aide.aiPrompt`](../configuration/ai-prompt.md). + +- You can ignore specific files or folders by modifying the [`aide.ignorePatterns`](../configuration/ignore-patterns.md) configuration. + +- You can control whether to ignore files or folders specified in the `.gitignore` file by modifying the [`aide.respectGitIgnore`](../configuration/respect-git-ignore.md) configuration. diff --git a/website/en/guide/features/rename-variable.md b/website/en/guide/features/rename-variable.md new file mode 100644 index 0000000..790f80f --- /dev/null +++ b/website/en/guide/features/rename-variable.md @@ -0,0 +1,15 @@ +# Rename Variable + +Command Name: `aide.renameVariable` + +Use AI to provide several possible variable name suggestions along with explanations to help you rename variables more efficiently. + +**Usage:** + +- Select the variable in the editor. +- Right-click and choose `✨ Aide: Rename Variable`. +- Choose a suggested variable name. + +::: warning +This feature requires the AI model to support the `function_call` feature. +::: diff --git a/website/en/guide/features/smart-paste.md b/website/en/guide/features/smart-paste.md new file mode 100644 index 0000000..ad4063e --- /dev/null +++ b/website/en/guide/features/smart-paste.md @@ -0,0 +1,74 @@ +# Smart Paste + +Command Name: `aide.smartPaste` + +Utilizes AI to intelligently recognize code in the clipboard, format it, and then paste it into the current editor. This feature can significantly enhance development efficiency, especially when dealing with code conversions across different languages or frameworks. + +**Usage:** + +- Copy code from somewhere else to the clipboard. +- Place the cursor at the desired location in the editor. (This position will affect the paste result) +- Right-click and select `✨ Aide: Smart Paste`. + +::: warning +This feature requires AI model support for `function_call` capability. +::: + +::: tip + +`Aide` will intelligently interpret your intention, automatically recognizing and converting the content without additional configuration. For example: + +- If you copy a `JSON` and paste it into a `TypeScript` file, `Aide` will automatically convert it into a `TypeScript` type definition. + +- If you copy some `Tailwind CSS` code and paste it into a `Flutter Dart` file, it will automatically convert it into a `Flutter Widget`. + +- You can also copy a `Python` function and paste it into a `Rust` file, and `Aide` will automatically convert it into a `Rust` function. + +Of course, its functionalities are not limited to these examples. Feel free to explore more use cases. + +::: + +**Examples:** + +- **From `JSON` to `TypeScript` Type** + +Suppose you have the following `JSON` data: + +```json +{ + "name": "John", + "age": 30, + "isAdmin": true +} +``` + +Copy it to the clipboard, then use the `Smart Paste` feature in a `TypeScript` file, and `Aide` will automatically convert it into a `TypeScript` type definition: + +```typescript +type User = { + name: string + age: number + isAdmin: boolean +} +``` + +- **From `Tailwind CSS` to `Flutter Widget`** + +Suppose you have the following `Tailwind CSS` code: + +```html +
Hello, World!
+``` + +Copy it to the clipboard, then use the `Smart Paste` feature in a `Flutter Dart` file, and `Aide` will automatically convert it into a `Flutter Widget`: + +```dart +Container( + color: Colors.blue, + padding: EdgeInsets.all(16), + child: Text( + 'Hello, World!', + style: TextStyle(color: Colors.white), + ), +) +``` diff --git a/website/en/guide/getting-started/customize-configuration.md b/website/en/guide/getting-started/customize-configuration.md new file mode 100644 index 0000000..dc3f8d3 --- /dev/null +++ b/website/en/guide/getting-started/customize-configuration.md @@ -0,0 +1,10 @@ +# Customize Configuration + +To customize the configuration of `Aide` and adjust it according to your workflow, follow these steps to access the configuration area: + +1. Open the settings editor: + + - Press `Ctrl+,` (Windows/Linux) or `Cmd+,` (macOS) + - Alternatively, click the gear icon at the bottom left corner of the window to open the settings menu. Select "Settings" from the dropdown menu. + +2. In the settings window, type `aide` in the search bar at the top. Now you should see all `Aide` specific settings in the main panel. diff --git a/website/en/guide/getting-started/customize-shortcuts.md b/website/en/guide/getting-started/customize-shortcuts.md new file mode 100644 index 0000000..176b9ed --- /dev/null +++ b/website/en/guide/getting-started/customize-shortcuts.md @@ -0,0 +1,59 @@ +# Customize Shortcuts + +You can customize the keyboard shortcuts for the commands of this extension to streamline your workflow. Follow these steps to set your preferred shortcuts: + +1. Open the Keyboard Shortcuts editor: + + - Press `Ctrl+K Ctrl+S` (Windows/Linux) or `Cmd+K Cmd+S` (Mac) + - Alternatively, go to `File > Preferences > Keyboard Shortcuts` + +2. In the Keyboard Shortcuts editor, search for the command you want to customize: + + - `Aide: Copy As AI Prompt` + - `Aide: Ask AI` + - `Aide: Code Convert` + - `Aide: Code Viewer Helper` + - `Aide: Rename Variable` + - `Aide: Smart Paste` + - ...and possibly more + +3. Click the plus icon next to the command you want to assign a shortcut to. + +4. Press the desired key combination for your new shortcut. + +5. If there is a conflict with an existing shortcut, `VSCode` will notify you. You can choose to overwrite the existing shortcut or try another combination. + +Here are the default commands you can customize: + +- `aide.copyAsPrompt`: Copy as AI Prompt +- `aide.askAI`: Ask AI +- `aide.codeConvert`: Code Convert +- `aide.codeViewerHelper`: Code Viewer Helper +- `aide.renameVariable`: Rename Variable +- `aide.smartPaste`: Smart Paste +- ...and possibly more, you can find the corresponding commands in each feature documentation. + +**Example:** + +To set `Ctrl+Shift+A` (Windows/Linux) or `Cmd+Shift+A` (Mac) for the `Ask AI` command: + +1. Search for `Aide: Ask AI` in the Keyboard Shortcuts editor +2. Click the plus icon next to the `aide.askAI` command +3. Press `Ctrl+Shift+A` or `Cmd+Shift+A` +4. The new shortcut will be saved automatically + +Repeat this process for any other commands you wish to customize. + +Note: If you prefer to edit the `keybindings.json` file directly, you can add the following entry: + +```json +{ + "key": "ctrl+shift+a", + "command": "aide.askAI", + "when": "editorTextFocus" +} +``` + +Replace `"ctrl+shift+a"` with your desired key combination and `"aide.askAI"` with the command you want to assign. + +By customizing these shortcuts, you can quickly access the features of the extension and boost your productivity in `VSCode`. diff --git a/website/en/guide/getting-started/faq.md b/website/en/guide/getting-started/faq.md new file mode 100644 index 0000000..68de5f2 --- /dev/null +++ b/website/en/guide/getting-started/faq.md @@ -0,0 +1,78 @@ +# FAQ + +## Connection Timeout or No Response from File + +**Problem Description**: Users using proxies or located in mainland China may encounter connection timeout errors. + +**Solution**: + +1. **Check Network Proxy Configuration**: + + - Use command terminal to test if `openai.com` (or other API Base URL) can be pinged. + - Command example: `ping openai.com`. + - Note: Being able to access the website via a browser doesn't necessarily mean the command terminal can, you may need to set the proxy for the terminal separately. + - Set environment variable `HTTPS_PROXY`: + - Example: `http://127.0.0.1:7890` (If using `clash` proxy, the default port is `7890`). + - For `clash` users, make sure the `TUN` feature is enabled. + +2. **Perform the Following Operations**: + - Confirm the proxy configuration is correct, and restart the proxy tool if necessary. + - Try changing the proxy or check the network connection. + - Use an API Base URL that can be accessed properly. + +For more details, see [GitHub Issue #17](https://github.com/nicepkg/aide/issues/17). + +## Exceeding AI Model Context Limit + +**Problem Description**: The AI model has a character limit for context, exceeding it may cause processing failures. + +**Solution**: + +1. **Process Partial Text**: + + - Most features allow users to select part of the text, then right-click to call the AI function, thus reducing the number of characters. + +2. **Process in Batches**: + + - Split the text into smaller segments and process them separately. + +3. **Switch Model**: + - Use an AI model that supports a larger context. + +## Unable to Use Configured Third-Party `API Base URL` + +**Problem Description**: After configuring a third-party [`API Base URL`](../configuration/openai-base-url.md), the AI functionality cannot be used properly. + +**Solution**: + +1. **Check the `API Base URL`**: + + - Verify that the configured `API Base URL` is correct. + - The default `API Base URL` is `https://api.openai.com/v1`. + - Try adding or removing `/v1` in the URL to ensure correct configuration. + +2. **Confirm API Compliance with `OpenAI` Interface Specification**: + + - Ask the provider if their API complies with `OpenAI`'s interface specification. + +3. **Check if `API Base URL` and AI model support `function_call` feature**: + - Some functionalities use the `function_call` feature, which might not be supported by some third-party large language models. + +## Command 'aide.xxxx' Not Found + +**Problem Description**: When using `Aide` functionality, it prompts `Command 'aide.xxxx' not found`. + +**Solution**: + +1. **Check if your VSCode version is greater than v1.82.0**: + + - `Aide` requires `VSCode` version greater than `v1.82.0`. + +2. **Check if `Aide` is installed correctly and is the latest version**: + + - Open the extension sidebar in `VSCode`, search for `Aide`, and ensure the latest version is installed. + +3. **If the above methods do not work**: + + - Try restarting `VSCode`. + - If the issue persists, try reinstalling `Aide`. diff --git a/website/en/guide/getting-started/index.md b/website/en/guide/getting-started/index.md new file mode 100644 index 0000000..b0b1252 --- /dev/null +++ b/website/en/guide/getting-started/index.md @@ -0,0 +1,46 @@ +# Introduction + +## Why Choose `Aide`? + +- **😩 Are you suffering from reading through the messy code left by your predecessors?** + + ✅ `Aide` can add detailed comments to your code with one click, outputting to a temporary file for you to review, thereby improving code readability. + +- **🆕 Are you learning a new language or reading a project in an unfamiliar language and wish to understand the new code in a familiar language?** + + ✅ `Aide` can convert code into a familiar language with one click, outputting to a temporary file so you can immediately understand its logic. + +- **📋 Do you have to manually copy multiple file codes and paste them into an AI website for questions every time?** + + ✅ `Aide` allows you to batch copy multiple files or folders with one click, saving you a lot of time. + +- **🤔 Are you always dissatisfied with your variable names?** + + ✅ `Aide` can use AI to provide variable name suggestions and explanations, allowing you to choose the best practice variable names and make your code more standardized. + +- **🔄 Do you often need to convert code from one format to another before pasting it into your project?** + + ✅ `Aide` can intelligently recognize code in the clipboard and guess your intent for smart pasting. For example, if you copy a `JSON` and paste it into a `TypeScript` file, it will automatically convert it to a `TypeScript` type. Or if you copy `Tailwind CSS` code and paste it into a `Flutter Dart` file, it will automatically convert it to a `Flutter Widget`, saving you a lot of time. + +- **⌨️ When using command line tools similar to [`aider`](https://github.com/paul-gauthier/aider), do you dislike entering file paths one by one?** + + ✅ `Aide` allows you to customize AI command execution templates, passing selected file paths to the AI command, significantly saving your time. + +## Differences Between `Aide` and `Copilot/Codeium/AmazonQ` + +- **🚫 No Redundant Features**: We won't create a sidebar for AI chat, nor will we provide AI auto-completion features, because these are already offered by other tools. We only provide features that we can do better. `Aide` is a supplement, not a replacement. + +- **⚡ Focus on Efficiency and Practicality**: `Aide` focuses on providing more efficient AI features and more practical interaction methods. Each feature is deeply thought out and designed by the author to ensure a good user experience. + +- **❌ No Poor-Performing Features**: `Aide` will not offer features with poor performance, such as embedding an entire project into an AI and asking it questions. Such features usually perform poorly, so we won't offer them. + +- **🔓 Open Source**: `Aide` is open source, allowing you to freely view the source code. + +- **🛠️ Customizable**: `Aide` allows you to customize the AI model and even use local models. + +## Quick Navigation + +- [Features](../features/code-viewer-helper.md) +- [Configuration](../configuration/openai-key.md) +- [Using Other Large Language Models](../use-another-llm/anthropic.md) +- [FAQ](./faq.md) diff --git a/website/en/guide/getting-started/installation.md b/website/en/guide/getting-started/installation.md new file mode 100644 index 0000000..905546e --- /dev/null +++ b/website/en/guide/getting-started/installation.md @@ -0,0 +1,15 @@ +# Installation + +1. Open [`VSCode`](https://code.visualstudio.com/) +2. Click on the sidebar to enter Extensions (or use `Ctrl+Shift+X`) +3. Search for [`Aide`](https://marketplace.visualstudio.com/items?itemName=nicepkg.aide-pro) +4. Click Install + +::: tip +Please use `VSCode` version >= `1.82.0`. + +If you like this extension, please give it a `⭐️⭐️⭐️⭐️⭐️` rating 😊 This will motivate us to keep improving. + +If you encounter any issues, first check the [FAQ](./faq.md). If you still have questions, please [submit an issue](https://github.com/nicepkg/aide/issues). + +::: diff --git a/website/en/guide/use-another-llm/anthropic.md b/website/en/guide/use-another-llm/anthropic.md new file mode 100644 index 0000000..5d71e02 --- /dev/null +++ b/website/en/guide/use-another-llm/anthropic.md @@ -0,0 +1,37 @@ +# Anthropic + +This guide introduces how to configure and use the `Anthropic Claude` model in `Aide`. + +You can find more detailed information in the [Anthropic Claude Official Reference Documentation](https://docs.anthropic.com/en/docs/quickstart). + +### API Base URL Configuration + +You need to configure [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) to `anthropic@https://api.anthropic.com` + +::: tip Note + +Since the `Anthropic` interface is not compatible with the `OpenAI` interface specification, you need to add `anthropic@` as a prefix in the URL. This is a very important configuration, so please ensure it is set correctly. + +::: + +### API Key Configuration + +You need to configure [`aide.openaiKey`](../configuration/openai-key.md) as your `Anthropic Claude` API Key. + +### Model Configuration + +You need to configure [`aide.openaiModel`](../configuration/openai-model.md) to the `Anthropic Claude` model. We recommend using the `claude-3-5-sonnet-20240620` model. For more models, please refer to the [Model List Documentation](https://docs.anthropic.com/en/docs/about-claude/models). + +### Example Configuration File + +Below is a complete configuration example: + +```json +{ + "aide.openaiBaseUrl": "anthropic@https://api.anthropic.com", + "aide.openaiKey": "your-anthropic-api-key", + "aide.openaiModel": "claude-3-5-sonnet-20240620" +} +``` + +Make sure to replace `"your-anthropic-api-key"` with your actual API Key. diff --git a/website/en/guide/use-another-llm/azure.md b/website/en/guide/use-another-llm/azure.md new file mode 100644 index 0000000..5479013 --- /dev/null +++ b/website/en/guide/use-another-llm/azure.md @@ -0,0 +1,48 @@ +# Azure + +## OpenAI + +This guide introduces how to configure and use the `Azure OpenAI` service in `Aide`. + +You can find more detailed information in the [Azure OpenAI Official Reference Documentation](https://learn.microsoft.com/en-us/azure/ai-services/openai/quickstart?tabs=command-line%2Cpython-new&pivots=programming-language-javascript). + +### API Base URL Configuration + +You need to configure [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) to `azure-openai@https://{Endpoint}/openai/deployments/{Deployment}?api-version={ApiVersion}` + +::: tip Note + +Since the `Azure OpenAI` interface is not compatible with the `OpenAI` interface specification, you need to add `azure-openai@` as a prefix in the URL. This is a very important configuration, so please ensure it is set correctly. + +- `Endpoint` is your `Azure OpenAI` deployment domain. +- `Deployment` is your `Azure OpenAI` deployment ID. +- `ApiVersion` is your `Azure OpenAI` API version. + +For example, if your `Azure OpenAI` deployment domain is `westeurope.api.microsoft.com`, deployment ID is `gpt-4o-xxx`, and API version is `2024-07-15`, then your `API Base URL` would be: + +`azure-openai@https://westeurope.api.microsoft.com/openai/deployments/gpt-4o-xxx?api-version=2024-07-15`. + +::: + +### API Key Configuration + +You need to configure [`aide.openaiKey`](../configuration/openai-key.md) as your `Azure OpenAI` API Key. + +For detailed steps on how to obtain the API Key, please refer to the official reference documentation mentioned above. + +### Model Configuration + +When using `Azure OpenAI`, there is no need to configure [`aide.openaiModel`](../configuration/openai-model.md). + +### Example Configuration File + +Below is a complete configuration example: + +```json +{ + "aide.openaiBaseUrl": "azure-openai@https://westeurope.api.microsoft.com/openai/deployments/gpt-4o-xxx?api-version=2024-07-15", + "aide.openaiKey": "your-azure-api-key" +} +``` + +Make sure to replace `"your-azure-api-key"` with your actual API Key. diff --git a/website/en/guide/use-another-llm/deepseek.md b/website/en/guide/use-another-llm/deepseek.md new file mode 100644 index 0000000..0c41afb --- /dev/null +++ b/website/en/guide/use-another-llm/deepseek.md @@ -0,0 +1,31 @@ +# Deepseek + +This guide introduces how to configure and use the `Deepseek` model in `Aide`. + +You can find more detailed information in the [Deepseek Official Reference Documentation](https://platform.deepseek.com/api-docs/). + +### API Base URL Configuration + +You need to configure [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) to `https://api.deepseek.com/v1` + +### API Key Configuration + +You need to configure [`aide.openaiKey`](../configuration/openai-key.md) as your `Deepseek` API Key. + +### Model Configuration + +You need to configure [`aide.openaiModel`](../configuration/openai-model.md) to the `Deepseek` model. We recommend using the `deepseek-coder` model. For more models, please refer to the official reference documentation above. + +### Example Configuration File + +Below is a complete configuration example: + +```json +{ + "aide.openaiBaseUrl": "https://api.deepseek.com/v1", + "aide.openaiKey": "your-deepseek-api-key", + "aide.openaiModel": "deepseek-coder" +} +``` + +Make sure to replace `"your-deepseek-api-key"` with your actual API Key. diff --git a/website/en/guide/use-another-llm/google.md b/website/en/guide/use-another-llm/google.md new file mode 100644 index 0000000..d6be974 --- /dev/null +++ b/website/en/guide/use-another-llm/google.md @@ -0,0 +1,46 @@ +# Google + +## Gemini + +This guide introduces how to configure and use the `Google Gemini` model in `Aide`. + +You can find more detailed information in the [Google Gemini Official Reference Documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/call-gemini-using-openai-library). + +### API Base URL Configuration + +You need to configure [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) to `https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT}/locations/{LOCATION}/endpoints/openapi` + +::: tip Note + +- `Location` is the geographic location of your `Google Cloud` project, such as `us-central1`. +- `Project` is the name of your `Google Cloud` project. + +For example, if your `Google Cloud` project name is `my-project` and the geographic location is `us-central1`, then your API Base URL would be: + +`https://us-central1-aiplatform.googleapis.com/v1beta1/projects/my-project/locations/us-central1/endpoints/openapi`. + +::: + +### API Key Configuration + +You need to configure [`aide.openaiKey`](../configuration/openai-key.md) as your `Google Gemini` API Key. + +For detailed steps to obtain the API Key, please refer to the official reference documentation mentioned above. + +### Model Configuration + +You need to configure [`aide.openaiModel`](../configuration/openai-model.md) to the `Google Gemini` model. We recommend using the `google/gemini-1.5-flash-001` model. For more models, please refer to the official reference documentation mentioned above. + +### Example Configuration File + +Below is a complete configuration example: + +```json +{ + "aide.openaiBaseUrl": "https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT}/locations/{LOCATION}/endpoints/openapi", + "aide.openaiKey": "your-google-gemini-api-key", + "aide.openaiModel": "google/gemini-1.5-flash-001" +} +``` + +Make sure to replace `"your-google-gemini-api-key"` with your actual API Key, and fill in your specific location information and project name in `{LOCATION}` and `{PROJECT}`. diff --git a/website/en/guide/use-another-llm/local-ai.md b/website/en/guide/use-another-llm/local-ai.md new file mode 100644 index 0000000..6e07764 --- /dev/null +++ b/website/en/guide/use-another-llm/local-ai.md @@ -0,0 +1,42 @@ +# LocalAI + +[LocalAI](https://localai.io) is an open-source `Docker` image that allows running open-source models locally, supporting most open-source models. Compared to [Ollama](./ollama.md), it is more suitable for deployment on LAN servers for small groups. + +This guide introduces how to configure and use the `LocalAI` model in `Aide`. + +You can find more detailed information in the [LocalAI Official Documentation](https://localai.io). + +### Installing LocalAI + +Before using `LocalAI`, please ensure you have referred to the [LocalAI Official Documentation](https://localai.io) to install and run the `Docker` image. + +### API Base URL Configuration + +You need to configure [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) to `http://localhost:8080/v1` (assuming your service is running on port 8080). + +### API Key Configuration + +You can configure [`aide.openaiKey`](../configuration/openai-key.md) with any value. For example, you can enter `sk-LocalAI`. + +### Model Configuration + +You need to configure [`aide.openaiModel`](../configuration/openai-model.md) to the `LocalAI` model. We recommend using the `llama3-instruct` model. For more models, please refer to the [Supported Models List](https://localai.io/models/#list-models). + +### Example Configuration File + +Below is a complete configuration example: + +```json +{ + "aide.openaiBaseUrl": "http://localhost:8080/v1", + "aide.openaiKey": "sk-LocalAI", + "aide.openaiModel": "llama3-instruct" +} +``` + +### Related Links + +- [LocalAI GitHub Repository](https://github.com/mudler/LocalAI) +- [Installation Guide](https://github.com/mudler/LocalAI#-install-docker) +- [Official Documentation](https://localai.io) +- [Supported Models List](https://localai.io/models/#list-models) diff --git a/website/en/guide/use-another-llm/ollama.md b/website/en/guide/use-another-llm/ollama.md new file mode 100644 index 0000000..3eeac80 --- /dev/null +++ b/website/en/guide/use-another-llm/ollama.md @@ -0,0 +1,43 @@ +# Ollama + +[Ollama](https://ollama.com) is an open-source client for running open-source models offline locally. It supports all computer platforms and most open-source models. + +This guide introduces how to configure and use the `Ollama` model in `Aide`. + +You can find more detailed information in the [Ollama Official Documentation](https://ollama.com/blog/openai-compatibility). + +### Install Ollama + +Before using `Ollama`, please ensure you have downloaded and installed the client from the [Ollama Official Website](https://ollama.com). You can download it from [this link](https://ollama.com/download). For more information, please refer to the [Ollama Open-Source Repository](https://github.com/ollama/ollama). + +### API Base URL Configuration + +You need to configure [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) to `http://localhost:11434/v1` + +### API Key Configuration + +You can configure [`aide.openaiKey`](../configuration/openai-key.md) with any value. For example, you can use `sk-ollama`. + +### Model Configuration + +You need to configure [`aide.openaiModel`](../configuration/openai-model.md) to the `Ollama` model. We recommend using the `gemma2` model. For more models, please refer to the [Supported Models List](https://ollama.com/library). + +### Example Configuration File + +Below is a complete configuration example: + +```json +{ + "aide.openaiBaseUrl": "http://localhost:11434/v1", + "aide.openaiKey": "sk-ollama", + "aide.openaiModel": "gemma2" +} +``` + +### Related Links + +- [Ollama Official Website](https://ollama.com) +- [Download Link](https://ollama.com/download) +- [Open-Source Repository](https://github.com/ollama/ollama) +- [Supported Models List](https://ollama.com/library) +- [Official Documentation](https://ollama.com/blog/openai-compatibility) diff --git a/website/en/guide/use-another-llm/openai.md b/website/en/guide/use-another-llm/openai.md new file mode 100644 index 0000000..a18bebb --- /dev/null +++ b/website/en/guide/use-another-llm/openai.md @@ -0,0 +1,45 @@ +# OpenAI + +[OpenAI](https://platform.openai.com) provides a variety of advanced AI models that can be applied to various natural language processing tasks. + +This guide introduces how to configure and use the `OpenAI` model in `Aide`. + +You can find more detailed information in the [official documentation](https://platform.openai.com/docs/quickstart). + +### API Base URL Configuration + +You need to configure [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) to `https://api.openai.com/v1` + +### API Key Configuration + +You need to configure [`aide.openaiKey`](../configuration/openai-key.md) as your `OpenAI` API Key. You can [create a key on the official website](https://platform.openai.com/account/api-keys) + +::: tip + +Obtaining an `OpenAI` key requires binding a foreign credit card, and any model usage comes with a fee. If you are unable to obtain one, we recommend using other large language models or third-party proxies. + +::: + +### Model Configuration + +You need to configure [`aide.openaiModel`](../configuration/openai-model.md) to the `OpenAI` model. We recommend using the `gpt-4o` model. For more models, please refer to the [Supported Models List](https://platform.openai.com/docs/models). + +### Example Configuration File + +Below is a complete configuration example: + +```json +{ + "aide.openaiBaseUrl": "https://api.openai.com/v1", + "aide.openaiKey": "your-openai-api-key", + "aide.openaiModel": "gpt-4o" +} +``` + +Make sure to replace `"your-openai-api-key"` with your actual API Key. + +### Related Links + +- [Supported Models List](https://platform.openai.com/docs/models) +- [Official Documentation](https://platform.openai.com/docs/quickstart) +- [Create Key on Official Website](https://platform.openai.com/account/api-keys) diff --git a/website/en/guide/use-another-llm/qwen.md b/website/en/guide/use-another-llm/qwen.md new file mode 100644 index 0000000..66b86ef --- /dev/null +++ b/website/en/guide/use-another-llm/qwen.md @@ -0,0 +1,31 @@ +# Qwen + +This guide introduces how to configure and use the `Qwen` model in `Aide`. + +You can find more detailed information in the [Qwen Official Reference Documentation](https://help.aliyun.com/zh/dashscope/developer-reference/compatibility-of-openai-with-dashscope). + +### API Base URL Configuration + +You need to configure [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) to `https://dashscope.aliyuncs.com/compatible-mode/v1`. + +### API Key Configuration + +You need to configure [`aide.openaiKey`](../configuration/openai-key.md) as your `Qwen` API Key. + +### Model Configuration + +You need to configure [`aide.openaiModel`](../configuration/openai-model.md) to the `Qwen` model. We recommend using the `qwen-long` model. For more models, please refer to the official reference documentation mentioned above. + +### Example Configuration File + +Below is a complete configuration example: + +```json +{ + "aide.openaiBaseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "aide.openaiKey": "your-qwen-api-key", + "aide.openaiModel": "qwen-long" +} +``` + +Make sure to replace `"your-qwen-api-key"` with your actual API Key. diff --git a/website/en/guide/use-another-llm/zhipu.md b/website/en/guide/use-another-llm/zhipu.md new file mode 100644 index 0000000..22e627b --- /dev/null +++ b/website/en/guide/use-another-llm/zhipu.md @@ -0,0 +1,31 @@ +# Zhipu + +This guide introduces how to configure and use the `Zhipu` model in `Aide`. + +You can find more detailed information in the [Zhipu Official Reference Documentation](https://bigmodel.cn/dev/api#openai_sdk). + +### API Base URL Configuration + +You need to configure [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) to `https://open.bigmodel.cn/api/paas/v4` + +### API Key Configuration + +You need to configure [`aide.openaiKey`](../configuration/openai-key.md) as your `Zhipu` API Key. + +### Model Configuration + +You need to configure [`aide.openaiModel`](../configuration/openai-model.md) to the `Zhipu` model. We recommend using the `glm-4` model. For more models, please refer to the official reference documentation mentioned above. + +### Example Configuration File + +Below is a complete configuration example: + +```json +{ + "aide.openaiBaseUrl": "https://open.bigmodel.cn/api/paas/v4", + "aide.openaiKey": "your-zhipu-api-key", + "aide.openaiModel": "glm-4" +} +``` + +Make sure to replace `"your-zhipu-api-key"` with your actual API Key. diff --git a/website/en/index.md b/website/en/index.md new file mode 100644 index 0000000..96a57a9 --- /dev/null +++ b/website/en/index.md @@ -0,0 +1,48 @@ +--- +layout: home + +title: Aide +titleTemplate: Mastering Any Code In VSCode + +hero: + name: Aide + image: /logo.svg + text: 'Mastering Any Code In VSCode 💪' + tagline: 'One-click commenting and language conversion.' + actions: + - theme: brand + text: Get Started + link: /guide/getting-started/ + - theme: alt + text: Install + link: /guide/getting-started/installation + - theme: alt + text: Why Aide? + link: /guide/getting-started/#why-aide +--- + +
+ +
+ + diff --git a/website/package.json b/website/package.json new file mode 100644 index 0000000..b24576c --- /dev/null +++ b/website/package.json @@ -0,0 +1,34 @@ +{ + "name": "aide-doc", + "version": "1.0.0", + "description": "", + "main": "index.js", + "type": "module", + "private": true, + "scripts": { + "dev": "vitepress dev", + "build": "vitepress build", + "preview": "vitepress preview", + "serve": "vitepress serve" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@iconify-json/bx": "^1.1.10", + "@iconify-json/fluent-emoji": "^1.1.18", + "@iconify-json/logos": "^1.1.43", + "@unocss/preset-icons": "^0.61.5", + "@unocss/preset-uno": "0.61.5", + "@unocss/preset-web-fonts": "^0.61.5", + "markdown-it": "^14.1.0", + "markdown-it-container": "^4.0.0", + "unocss": "^0.61.5", + "vitepress": "1.3.1", + "zod": "3.23.8" + }, + "dependencies": { + "@vueuse/core": "10.11.0", + "vue": "3.4.32" + } +} diff --git a/website/public/logo-mini.png b/website/public/logo-mini.png new file mode 100644 index 0000000..357b48c Binary files /dev/null and b/website/public/logo-mini.png differ diff --git a/website/public/logo-mini.svg b/website/public/logo-mini.svg new file mode 100644 index 0000000..c8d5f34 --- /dev/null +++ b/website/public/logo-mini.svg @@ -0,0 +1 @@ + diff --git a/website/public/logo.svg b/website/public/logo.svg new file mode 100644 index 0000000..c8d5f34 --- /dev/null +++ b/website/public/logo.svg @@ -0,0 +1 @@ + diff --git a/website/public/og-cover.png b/website/public/og-cover.png new file mode 100644 index 0000000..12630c9 Binary files /dev/null and b/website/public/og-cover.png differ diff --git a/website/tsconfig.json b/website/tsconfig.json new file mode 100644 index 0000000..fe25379 --- /dev/null +++ b/website/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "node", + "jsx": "preserve", + "lib": ["esnext", "dom", "dom.iterable", "scripthost"] + } +} diff --git a/website/uno.config.ts b/website/uno.config.ts new file mode 100644 index 0000000..5282ab0 --- /dev/null +++ b/website/uno.config.ts @@ -0,0 +1,26 @@ +import { + defineConfig, + presetIcons, + presetUno, + presetWebFonts, + transformerDirectives, + transformerVariantGroup +} from 'unocss' + +export default defineConfig({ + presets: [ + presetUno(), + presetIcons({ + scale: 1.2, + unit: 'em' + }), + presetWebFonts({ + fonts: { + sans: 'Inter', + mono: 'Jet Brains Mono' + } + }) + ], + transformers: [transformerVariantGroup(), transformerDirectives()], + include: ['./**/*.vue', './**/*.md'] +}) diff --git a/website/zh/guide/configuration/ai-command-copy-before-run.md b/website/zh/guide/configuration/ai-command-copy-before-run.md new file mode 100644 index 0000000..1f0051c --- /dev/null +++ b/website/zh/guide/configuration/ai-command-copy-before-run.md @@ -0,0 +1,11 @@ +# aide.aiCommandCopyBeforeRun + +此配置允许你自定义在执行之前是否复制 AI 命令。 + +- **默认值:** + + ```json + { + "aide.aiCommandCopyBeforeRun": true + } + ``` diff --git a/website/zh/guide/configuration/ai-command.md b/website/zh/guide/configuration/ai-command.md new file mode 100644 index 0000000..9059457 --- /dev/null +++ b/website/zh/guide/configuration/ai-command.md @@ -0,0 +1,26 @@ +# aide.aiCommand + +此配置允许你自定义 AI 命令执行的模板。模板可以包括一些占位符: + +**模板参数:** + +| 参数 | 描述 | 输出示例 | +| ---------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `#{filesRelativePath}` | 文件相对路径占位符 | `"./src/index.ts" "./src/utils.ts"` | +| `#{filesFullPath}` | 文件完整路径占位符 | `"/project/src/index.ts" "/project/src/utils.ts"` | +| `#{question}` | 用户输入问题的占位符 | `"What is the purpose of this code?" ` | +| `#{content}` | 文件的完整内容占位符 |
File: example.js
\`\`\`js
const bar = "hello, aide";
console.log(bar);
\`\`\`
| + +**使用示例:** + +- **默认模板:** + + 默认情况下,模板为空白,你需要提供一个自定义模板。 + +- **示例:** + + 推荐使用 [aider (一个广受好评的命令行 AI 工具)](https://github.com/paul-gauthier/aider) 命令来询问 AI 关于所选文件的问题: + + ```plaintext + aider #{filesRelativePath} + ``` diff --git a/website/zh/guide/configuration/ai-prompt.md b/website/zh/guide/configuration/ai-prompt.md new file mode 100644 index 0000000..9276c7a --- /dev/null +++ b/website/zh/guide/configuration/ai-prompt.md @@ -0,0 +1,24 @@ +# aide.aiPrompt + +此配置允许你自定义批量复制文件时 AI 提示词的模板。模板可以包括一些占位符: + +**模板参数:** + +| 参数 | 描述 | 输出示例 | +| ------------ | -------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `#{content}` | 文件的完整内容占位符 |
File: example.js
\`\`\`js
const bar = "hello, aide";
console.log(bar);
\`\`\`
| + +**使用示例:** + +- **默认模板:** + + ```plaintext + #{content} + ``` + +- **示例:** + ```plaintext + Here is the code snippet: + #{content} + Please answer the following question: + ``` diff --git a/website/zh/guide/configuration/auto-remember-convert-language-pairs.md b/website/zh/guide/configuration/auto-remember-convert-language-pairs.md new file mode 100644 index 0000000..2d73e47 --- /dev/null +++ b/website/zh/guide/configuration/auto-remember-convert-language-pairs.md @@ -0,0 +1,3 @@ +# aide.autoRememberConvertLanguagePairs + +此配置允许你自定义是否自动记住代码转换的语言映射。默认为 `true`。 diff --git a/website/zh/guide/configuration/code-viewer-helper-prompt.md b/website/zh/guide/configuration/code-viewer-helper-prompt.md new file mode 100644 index 0000000..7943bae --- /dev/null +++ b/website/zh/guide/configuration/code-viewer-helper-prompt.md @@ -0,0 +1,32 @@ +# aide.codeViewerHelperPrompt + +此配置允许你自定义代码查看助手 AI 提示词模板。模板可以包括一些占位符: + +**模板参数:** + +| 参数 | 描述 | 输出示例 | +| ------------------- | --------------------- | ------------------------------------------------------------------------------------------ | +| `#{sourceLanguage}` | 源代码语言占位符 | `javascript` | +| `#{locale}` | 用户的语言/区域占位符 | `en` | +| `#{content}` | 文件的完整内容占位符 |
const bar = "hello, aide";
console.log(bar);
| + +**使用示例:** + +- **默认模板:** + + ```plaintext + You are a programming language commentator. + You need to help me add comments to #{sourceLanguage} code as much as possible to make it readable for beginners. + Do not change the original code, just add as detailed comments as possible, because my purpose is only to understand and read. + Please use my native language #{locale} as the commenting language. + Please do not reply with any text other than the code, and do not use markdown syntax. + Here is the code you need to comment on: + #{content} + ``` + +- **示例:** + + ```plaintext + Provide detailed comments for the following #{sourceLanguage} code, using #{locale}: + #{content} + ``` diff --git a/website/zh/guide/configuration/convert-language-pairs.md b/website/zh/guide/configuration/convert-language-pairs.md new file mode 100644 index 0000000..1c501fa --- /dev/null +++ b/website/zh/guide/configuration/convert-language-pairs.md @@ -0,0 +1,96 @@ +# aide.convertLanguagePairs + +此配置允许你自定义代码转换的语言映射。映射应采用 `sourceLanguage: targetLanguage` 的形式。 + +默认情况下,编辑器会在当前项目 `.vscode/settings.json` 文件中记住你的语言映射,位于 `aide.convertLanguagePairs` 配置下。你可以在这里修改或添加新的语言映射,例如: + +```json +{ + //其他设置... + "aide.convertLanguagePairs": { + "javascript": "python", // 将 javascript 转换为 python + "json": "yaml" // 将 json 转换为 yaml + } +} +``` + +你的语言名称应遵循 [VSCode 语言标识符](https://code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers),以下是一些你可能需要的 VSCode 语言标识符: + +::: details VSCode 语言标识符列表 + +- abap +- bat +- bibtex +- clojure +- coffeescript +- c +- cpp +- csharp +- dockercompose +- css +- cuda-cpp +- d +- pascal +- diff +- dockerfile +- erlang +- fsharp +- git-commit +- git-rebase +- go +- groovy +- handlebars +- haml +- haskell +- html +- ini +- java +- javascript +- javascriptreact +- json +- jsonc +- julia +- latex +- less +- lua +- makefile +- markdown +- objective-c +- objective-cpp +- ocaml +- perl +- perl6 +- php +- plaintext +- powershell +- jade +- pug +- python +- r +- razor +- ruby +- rust +- scss +- sass +- shaderlab +- shellscript +- slim +- sql +- stylus +- svelte +- swift +- typescript +- typescriptreact +- tex +- vb +- vue +- vue-html +- xml +- xsl +- yaml + +::: + +::: tip 提示 +如果在列表中找不到你的语言,你可以随意自定义你的语言标识符。但是这意味着你可能无法获得语法高亮,仅此而已。 +::: diff --git a/website/zh/guide/configuration/ignore-patterns.md b/website/zh/guide/configuration/ignore-patterns.md new file mode 100644 index 0000000..34010eb --- /dev/null +++ b/website/zh/guide/configuration/ignore-patterns.md @@ -0,0 +1,39 @@ +# aide.ignorePatterns + +此配置允许你自定义文件排除规则。支持 [glob](https://github.com/isaacs/node-glob) 规则。 + +- **默认值:** + + ```json + { + "aide.ignorePatterns": [ + "**/node_modules/**", + "**/.git/**", + "**/__pycache__/**", + "**/.Python/**", + "**/.DS_Store/**", + "**/.cache/**", + "**/.next/**", + "**/.nuxt/**", + "**/.out/**", + "**/dist/**", + "**/.serverless/**", + "**/.parcel-cache/**" + ] + } + ``` + +- **使用示例:** + + 例如,要从 AI 提示中排除 `node_modules`、`.git`、`dist` 和 `build` 文件夹,可以更新设置如下: + + ```json + { + "aide.ignorePatterns": [ + "**/node_modules/**", + "**/.git/**", + "**/dist/**", + "**/build/**" + ] + } + ``` diff --git a/website/zh/guide/configuration/openai-base-url.md b/website/zh/guide/configuration/openai-base-url.md new file mode 100644 index 0000000..7e63686 --- /dev/null +++ b/website/zh/guide/configuration/openai-base-url.md @@ -0,0 +1,11 @@ +# aide.openaiBaseUrl + +此配置允许您自定义 OpenAI API 的基础 URL。 + +- **默认值:** + + ```json + { + "aide.openaiBaseUrl": "https://api.openai.com/v1" + } + ``` diff --git a/website/zh/guide/configuration/openai-key.md b/website/zh/guide/configuration/openai-key.md new file mode 100644 index 0000000..51ab4dc --- /dev/null +++ b/website/zh/guide/configuration/openai-key.md @@ -0,0 +1,11 @@ +# aide.openaiKey + +此配置允许您自定义 OpenAI API 密钥。您可以从 [OpenAI 网站](https://platform.openai.com) 获取您的 API 密钥。 + +- **默认值:** + + ```json + { + "aide.openaiKey": "" + } + ``` diff --git a/website/zh/guide/configuration/openai-model.md b/website/zh/guide/configuration/openai-model.md new file mode 100644 index 0000000..b25aa98 --- /dev/null +++ b/website/zh/guide/configuration/openai-model.md @@ -0,0 +1,11 @@ +# aide.openaiModel + +此配置允许您自定义用于 AI 交互的 [OpenAI 模型](https://platform.openai.com/docs/models)。 + +- **默认值:** + + ```json + { + "aide.openaiModel": "gpt-4o" + } + ``` diff --git a/website/zh/guide/configuration/respect-git-ignore.md b/website/zh/guide/configuration/respect-git-ignore.md new file mode 100644 index 0000000..0cf9c47 --- /dev/null +++ b/website/zh/guide/configuration/respect-git-ignore.md @@ -0,0 +1,3 @@ +# aide.respectGitIgnore + +此配置允许您自定义是否尊重`.gitignore` 文件以排除文件。默认为 `true`。 diff --git a/website/zh/guide/features/ask-ai.md b/website/zh/guide/features/ask-ai.md new file mode 100644 index 0000000..542962f --- /dev/null +++ b/website/zh/guide/features/ask-ai.md @@ -0,0 +1,21 @@ +# 自定义命令提问 AI + +命令名称: `aide.askAI` + +基于选定的文件和用户输入准备并执行自定义 AI 命令。 + +**使用方法:** + +- 在资源管理器中选择文件或文件夹。 +- 右键选择 `✨ Aide: 问 AI`。 +- 按提示输入您的问题。 + +**相关配置:** + +- 你可以通过修改 [`aide.aiCommand`](../configuration/ai-command.md) 配置来自定义 AI 命令。 + +- 你可以通过修改 [`aide.aiCommandCopyBeforeRun`](../configuration/ai-command-copy-before-run.md) 配置来控制是否在执行之前复制 AI 命令。 + +- 你可以通过修改 [`aide.ignorePatterns`](../configuration/ignore-patterns.md) 配置来忽略特定文件或文件夹。 + +- 你可以通过修改 [`aide.respectGitIgnore`](../configuration/respect-git-ignore.md) 配置来控制是否忽略 `.gitignore` 文件中指定的文件或文件夹。 diff --git a/website/zh/guide/features/code-convert.md b/website/zh/guide/features/code-convert.md new file mode 100644 index 0000000..dcd1149 --- /dev/null +++ b/website/zh/guide/features/code-convert.md @@ -0,0 +1,20 @@ +# 智能代码转换 + +命令名称: `aide.codeConvert` + +使用 AI 将整个文件或选定的代码从一种编程语言转换为另一种。支持任何语言。大部份语言支持高亮。 + +**使用方法:** + +- 在编辑器中选择代码。 +- 点击右上角的纸张图标或右键选择 `✨ Aide: 代码转换`。 + +::: tip 提示 +如果输出中断,可以点击原来的纸张图标或右键选择 `✨ Aide: 代码转换`以便继续。 +::: + +**相关配置:** + +- 默认情况下,编辑器会在当前项目 `.vscode/settings.json` 文件中记住你的语言映射,位于 [`aide.convertLanguagePairs`](../configuration/convert-language-pairs.md) 配置下, 以便下次转换对应的语言时不需要再次选择。 + +- 你可以通过修改 [`aide.autoRememberConvertLanguagePairs`](../configuration/auto-remember-convert-language-pairs.md) 配置来控制是否自动记住语言映射。 diff --git a/website/zh/guide/features/code-viewer-helper.md b/website/zh/guide/features/code-viewer-helper.md new file mode 100644 index 0000000..64b5391 --- /dev/null +++ b/website/zh/guide/features/code-viewer-helper.md @@ -0,0 +1,18 @@ +# 智能代码查看器助手 + +命令名称: `aide.codeViewerHelper` + +使用 AI 为整个文件或选定的代码添加注释,使其易于阅读。 + +**使用方法:** + +- 在编辑器中选择代码。 +- 点击右上角的书本图标或右键选择 `✨ Aide: 代码查看器助手`。 + +::: tip 提示 +如果输出中断,可以点击原来的书本图标或右键选择 `✨ Aide: 代码查看器助手`以便继续。 +::: + +**相关配置:** + +- 你可以通过配置 [`aide.codeViewerHelperPrompt`](../configuration/code-viewer-helper-prompt.md) 来自定义对应的 AI 提示词模板。 diff --git a/website/zh/guide/features/copy-as-prompt.md b/website/zh/guide/features/copy-as-prompt.md new file mode 100644 index 0000000..5b5ec7e --- /dev/null +++ b/website/zh/guide/features/copy-as-prompt.md @@ -0,0 +1,18 @@ +# 批量复制文件为 AI 提示词 + +命令名称: `aide.copyAsPrompt` + +将选定文件的内容复制到剪贴板,并格式化为 AI 交互提示。 + +**使用方法:** + +- 在资源管理器中选择文件或文件夹。 +- 右键选择 `✨ Aide: 复制为 AI 提示词`。 + +**相关配置:** + +- 你可以通过配置 [`aide.aiPrompt`](../configuration/ai-prompt.md) 来自定义 AI 提示词模板。 + +- 你可以通过修改 [`aide.ignorePatterns`](../configuration/ignore-patterns.md) 配置来忽略特定文件或文件夹。 + +- 你可以通过修改 [`aide.respectGitIgnore`](../configuration/respect-git-ignore.md) 配置来控制是否忽略 `.gitignore` 文件中指定的文件或文件夹。 diff --git a/website/zh/guide/features/rename-variable.md b/website/zh/guide/features/rename-variable.md new file mode 100644 index 0000000..1b361cc --- /dev/null +++ b/website/zh/guide/features/rename-variable.md @@ -0,0 +1,15 @@ +# 智能重命名变量 + +命令名称: `aide.renameVariable` + +使用 AI 给出几个可能的变量名建议以及解释,帮助您更快地重命名变量。 + +**使用方法:** + +- 在编辑器中选择变量。 +- 点击右键选择 `✨ Aide: 重命名变量`。 +- 选择一个建议的变量名。 + +::: warning 警告 +该功能需要 AI 模型支持 `function_call` 功能 +::: diff --git a/website/zh/guide/features/smart-paste.md b/website/zh/guide/features/smart-paste.md new file mode 100644 index 0000000..7fe7483 --- /dev/null +++ b/website/zh/guide/features/smart-paste.md @@ -0,0 +1,74 @@ +# 智能粘贴 + +命令名称:`aide.smartPaste` + +使用 AI 智能识别剪贴板里的代码并进行格式转换,然后粘贴到当前编辑器中。此功能可以显著提高开发效率,特别是在处理跨语言或跨框架的代码转换时。 + +**使用方法:** + +- 从其他地方复制代码到剪贴板。 +- 鼠标放在编辑器中想要粘贴的位置。(这个位置会影响粘贴结果) +- 右键菜单选择 `✨ Aide: 智能粘贴`。 + +::: warning 警告 +该功能需要 AI 模型支持 `function_call` 功能 +::: + +::: tip 提示 + +`Aide` 会智能洞察你的内心,自动识别并进行转换,无需额外配置。例如: + +- 如果你复制了一个 `JSON` 粘贴到 `TypeScript` 文件里,`Aide` 会自动将其转换成 `TypeScript` 类型定义。 + +- 如果你复制了 `Tailwind CSS` 代码粘贴到 `Flutter Dart` 文件里,它会自动转换成 `Flutter Widget`。 + +- 你也可以复制一个 `Python` 函数粘贴到 `Rust` 文件里,`Aide` 会自动将其转换成 `Rust` 函数。 + +当然,它功能远不止于此,你可以自行探索更多的用途。 + +::: + +**使用示例:** + +- **从 `JSON` 到 `TypeScript` 类型** + +假设你有以下的 `JSON` 数据: + +```json +{ + "name": "John", + "age": 30, + "isAdmin": true +} +``` + +将其复制到剪贴板,然后在 `TypeScript` 文件中使用 `智能粘贴` 功能,`Aide` 会自动将其转换为 `TypeScript` 类型定义: + +```typescript +type User = { + name: string + age: number + isAdmin: boolean +} +``` + +- **从 `Tailwind CSS` 到 `Flutter Widget`** + +假设你有以下的 `Tailwind CSS` 代码: + +```html +
Hello, World!
+``` + +将其复制到剪贴板,然后在 `Flutter Dart` 文件中使用 `智能粘贴` 功能,`Aide` 会自动将其转换为 `Flutter Widget`: + +```dart +Container( + color: Colors.blue, + padding: EdgeInsets.all(16), + child: Text( + 'Hello, World!', + style: TextStyle(color: Colors.white), + ), +) +``` diff --git a/website/zh/guide/getting-started/customize-configuration.md b/website/zh/guide/getting-started/customize-configuration.md new file mode 100644 index 0000000..901fb5c --- /dev/null +++ b/website/zh/guide/getting-started/customize-configuration.md @@ -0,0 +1,10 @@ +# 自定义配置 + +要自定义 `Aide` 的配置并根据你的工作流程进行调整,请按照以下步骤访问其配置区域: + +1. 打开设置编辑器: + + - 按 `Ctrl+,`(Windows/Linux)或 `Cmd+,`(macOS) + - 或者点击窗口左下角的齿轮图标打开设置菜单。从下拉菜单中选择“设置” + +2. 在设置窗口中,在顶部的搜索栏输入 `aide`。现在你应该可以在主面板中看到所有 `Aide` 特定的设置。 diff --git a/website/zh/guide/getting-started/customize-shortcuts.md b/website/zh/guide/getting-started/customize-shortcuts.md new file mode 100644 index 0000000..8771f6f --- /dev/null +++ b/website/zh/guide/getting-started/customize-shortcuts.md @@ -0,0 +1,59 @@ +# 自定义快捷键 + +你可以自定义此扩展的命令的键盘快捷键以简化你的工作流程。按照以下步骤设置你喜欢的快捷键: + +1. 打开键盘快捷键编辑器: + + - 按 `Ctrl+K Ctrl+S`(Windows/Linux)或 `Cmd+K Cmd+S`(Mac) + - 或者转到 `文件 > 首选项 > 键盘快捷键` + +2. 在键盘快捷键编辑器中,搜索你想要自定义的命令: + + - `Aide: 复制为 AI 提示词` + - `Aide: 问 AI` + - `Aide: 代码转换` + - `Aide: 代码查看器助手` + - `Aide: 重命名变量` + - `Aide: 智能粘贴` + - ...也许更多 + +3. 点击你想要分配快捷键的命令旁边的加号图标。 + +4. 按下你新快捷键的所需组合。 + +5. 如果与现有快捷键冲突,`VSCode` 会通知你。你可以选择覆盖现有快捷键或尝试其他组合。 + +以下是你可以自定义的默认命令: + +- `aide.copyAsPrompt`: 复制为 AI 提示词 +- `aide.askAI`: 问 AI +- `aide.codeConvert`: 代码转换 +- `aide.codeViewerHelper`: 代码查看器助手 +- `aide.renameVariable`: 重命名变量 +- `aide.smartPaste`: 智能粘贴 +- ...也许更多,你可以在每个功能文档里找到对应的命令。 + +**示例:** + +为 `Ask AI` 命令设置 `Ctrl+Shift+A`(Windows/Linux)或 `Cmd+Shift+A`(Mac): + +1. 在键盘快捷键编辑器中搜索 `Aide: Ask AI` +2. 点击 `aide.askAI` 命令旁边的加号图标 +3. 按下 `Ctrl+Shift+A` 或 `Cmd+Shift+A` +4. 新快捷键会自动保存 + +对你希望自定义的任何其他命令重复此过程。 + +注意:如果你更喜欢直接编辑 `keybindings.json` 文件,可以添加如下条目: + +```json +{ + "key": "ctrl+shift+a", + "command": "aide.askAI", + "when": "editorTextFocus" +} +``` + +将 `"ctrl+shift+a"` 替换为你想要的键组合,将 `"aide.askAI"` 替换为你想要分配的命令。 + +通过自定义这些快捷键,你可以快速访问扩展的功能,提高你在 `VSCode` 中的生产力。 diff --git a/website/zh/guide/getting-started/faq.md b/website/zh/guide/getting-started/faq.md new file mode 100644 index 0000000..3004b3f --- /dev/null +++ b/website/zh/guide/getting-started/faq.md @@ -0,0 +1,78 @@ +# 常见问题解答 + +## 连接超时或文件无响应 + +**问题描述**:使用代理的用户或位于中国大陆的用户可能会遇到连接超时错误。 + +**解决方案**: + +1. **检查网络代理配置**: + + - 使用命令终端测试能否 `ping` 通 `openai.com`(或其他 API Base URL)。 + - 命令示例:`ping openai.com`。 + - 注意:浏览器能访问网站并不意味着命令终端也可以,可能需要单独为终端设置代理。 + - 设置环境变量 `HTTPS_PROXY`: + - 示例:`http://127.0.0.1:7890`(若使用 `clash` 代理,默认端口为 `7890`)。 + - 对于 `clash` 用户,请确保启用了 `TUN` 功能。 + +2. **执行以下操作**: + - 确认代理配置正确,如有需要可重启代理工具。 + - 尝试更换代理或检查网络连接。 + - 使用可正常访问的 API Base URL。 + +详细信息请参阅 [GitHub Issue #17](https://github.com/nicepkg/aide/issues/17)。 + +## 超出 AI 模型上下文限制 + +**问题描述**:AI 模型对上下文的字符数有限制,超出可能导致处理失败。 + +**解决方案**: + +1. **部分文本处理**: + + - 多数功能允许用户选中部分文本后右键调用 AI 功能,以减少字符数。 + +2. **分批处理**: + + - 将文本分割成小段分别处理。 + +3. **切换模型**: + - 选用支持更大上下文的 AI 模型。 + +## 配置了第三方 `API Base URL` 无法使用 + +**问题描述**:配置了第三方 [`API Base URL`](../configuration/openai-base-url.md) 后,AI 功能无法正常使用。 + +**解决方案**: + +1. **检查 `API Base URL`**: + + - 确认配置的 `API Base URL` 是否正确。 + - 默认 `API Base URL` 为 `https://api.openai.com/v1`。 + - 尝试在 URL 中添加或去掉 `/v1`,以确保正确配置。 + +2. **确认 API 符合 `OpenAI` 接口规范**: + + - 询问供应商是否其 API 符合 `OpenAI` 的接口规范。 + +3. **检查 `API Base URL` 和 AI 模型是否支持 `function_call` 功能**: + - 某些功能使用了 `function_call` 功能,部分第三方大语言模型可能不支持该功能。 + +## Command 'aide.xxxx' Not Found + +**问题描述**:在使用 `Aide` 功能时,提示 `Command 'aide.xxxx' not found`。 + +**解决方案**: + +1. **检查你的 VSCode 版本是否大于 v1.82.0**: + + - `Aide` 需要 `VSCode` 版本大于 `v1.82.0`。 + +2. **检查 `Aide` 是否已正确安装最新版**: + + - 打开 `VSCode` 的扩展侧边栏,搜索 `Aide`,确保已安装最新版。 + +3. **如果以上方法无效**: + + - 请尝试重启 `VSCode`。 + - 如果问题仍然存在,请尝试重新安装 `Aide`。 diff --git a/website/zh/guide/getting-started/index.md b/website/zh/guide/getting-started/index.md new file mode 100644 index 0000000..c5a524f --- /dev/null +++ b/website/zh/guide/getting-started/index.md @@ -0,0 +1,46 @@ +# 简介 + +## 为什么选择 `Aide`? + +- **😩 你是否在阅读前任留下的混乱代码时痛苦不堪?** + + ✅ `Aide` 可以一键为你添加详细注释,输出到临时文件给你看,提升代码可读性。 + +- **🆕 你在学习新语言或阅读不熟悉的语言项目时,是否希望能用熟悉的语言来理解新代码?** + + ✅ `Aide` 可以一键将代码转换为你熟悉的语言,输出到临时文件上给你看,让你立马理解其中的逻辑。 + +- **📋 你是否每次都要手动复制多个文件代码粘贴到浏览器里的 AI 网站提问?** + + ✅ `Aide` 可以批量一键复制多个文件或文件夹里的代码。大大节省你的时间。 + +- **🤔 你是否总是对自己的变量名不满意?** + + ✅ `Aide` 可以使用 AI 提供变量名建议和解释,让你选择最佳实践的变量名字。让你的代码更加规范。 + +- **🔄 你是否经常需要将某种格式的代码转换成另一种格式,再粘贴到项目中?** + + ✅ `Aide` 可以智能识别剪贴板里的代码并猜测你的意图进行智能粘贴。例如,你复制了一个 `JSON` 粘贴到 `TypeScript` 文件里,它会自动转换成 `TypeScript` 类型。或者你复制了 `Tailwind CSS` 代码粘贴到 `Flutter Dart` 文件里,它会自动转换成 `Flutter Widget`。大大节省你的时间。 + +- **⌨️ 你是否在使用类似 [`aider`](https://github.com/paul-gauthier/aider) 的命令行工具时,不希望一个个输入文件路径?** + + ✅ `Aide` 允许你自定义 AI 命令执行的模板,将选中的文件路径传递给 AI 命令。大大节省你的时间。 + +## `Aide` 与 `Copilot/Codeium/AmazonQ` 的区别 + +- **🚫 不做已有的功能**:我们不会创建一个侧边栏来进行 AI 聊天,也不会提供 AI 自动补全功能,因为这些功能它们已经提供。我们只会做那些我们能做得更好的功能。`Aide` 是它们的补充,而不是替代品。 + +- **⚡ 只做高效实用的功能**:`Aide` 专注于提供更高效的 AI 功能和更实用的交互方式。每个功能都经过作者深入的思考和设计,确保使用体验良好。 + +- **❌ 不做效果差的功能**:`Aide` 不会提供效果差的功能,例如将整个项目嵌入到 AI 中并向其提问。这样的功能效果通常很差,所以我们不会提供。 + +- **🔓 开源**:`Aide` 是开源的,你可以自由查看源代码。 + +- **🛠️ 自定义**:`Aide` 允许你自定义 AI 模型,甚至可以使用本地模型。 + +## 快速导航 + +- [功能](../features/code-viewer-helper.md) +- [配置](../configuration/openai-key.md) +- [使用其他大语言模型](../use-another-llm/anthropic.md) +- [常见问题解答](./faq.md) diff --git a/website/zh/guide/getting-started/installation.md b/website/zh/guide/getting-started/installation.md new file mode 100644 index 0000000..3b4231d --- /dev/null +++ b/website/zh/guide/getting-started/installation.md @@ -0,0 +1,15 @@ +# 安装 + +1. 打开 [`VSCode`](https://code.visualstudio.com/) +2. 点击侧边栏进入扩展 (或者 `Ctrl+Shift+X`) +3. 搜索 [`Aide`](https://marketplace.visualstudio.com/items?itemName=nicepkg.aide-pro) +4. 点击安装 + +::: tip 提示 +请使用 `VSCode` >= `1.82.0` 版本。 + +如果你喜欢这个扩展,请给它一个 `⭐️⭐️⭐️⭐️⭐️` 好评 😊 这会激励我们继续改进。 + +遇到问题,先查看[常见问题解答](./faq.md),如果还有问题,请[提交 issue](https://github.com/nicepkg/aide/issues) + +::: diff --git a/website/zh/guide/use-another-llm/anthropic.md b/website/zh/guide/use-another-llm/anthropic.md new file mode 100644 index 0000000..06fa326 --- /dev/null +++ b/website/zh/guide/use-another-llm/anthropic.md @@ -0,0 +1,37 @@ +# Anthropic + +本指南介绍如何在 `Aide` 中配置和使用 `Anthropic Claude` 模型。 + +您可以在 [Anthropic Claude 官方参考文档](https://docs.anthropic.com/en/docs/quickstart) 获取更多详细信息。 + +### API Base URL 配置 + +您需要配置 [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) 为 `anthropic@https://api.anthropic.com` + +::: tip 提示 + +`Anthropic` 接口因为不兼容 `OpenAI` 的接口规范,所以需要在 URL 前加上 `anthropic@` 作为标记。这是非常重要的配置,请务必确保正确设置。 + +::: + +### API Key 配置 + +您需要配置 [`aide.openaiKey`](../configuration/openai-key.md) 为您的 `Anthropic Claude` API Key。 + +### 模型配置 + +你需要配置 [`aide.openaiModel`](../configuration/openai-model.md) 为 `Anthropic Claude` 模型,我们推荐使用 `claude-3-5-sonnet-20240620` 模型。更多模型请参考 [模型列表文档](https://docs.anthropic.com/en/docs/about-claude/models)。 + +### 示例配置文件 + +以下是一个完整的配置示例: + +```json +{ + "aide.openaiBaseUrl": "anthropic@https://api.anthropic.com", + "aide.openaiKey": "your-anthropic-api-key", + "aide.openaiModel": "claude-3-5-sonnet-20240620" +} +``` + +确保将 `"your-anthropic-api-key"` 替换为您实际的 API Key。 diff --git a/website/zh/guide/use-another-llm/azure.md b/website/zh/guide/use-another-llm/azure.md new file mode 100644 index 0000000..b7543bd --- /dev/null +++ b/website/zh/guide/use-another-llm/azure.md @@ -0,0 +1,48 @@ +# Azure + +## OpenAI + +本指南介绍如何在 `Aide` 中配置和使用 `Azure OpenAI` 服务。 + +您可以在 [Azure OpenAI 官方参考文档](https://learn.microsoft.com/en-us/azure/ai-services/openai/quickstart?tabs=command-line%2Cpython-new&pivots=programming-language-javascript) 获取更多详细信息。 + +### API Base URL 配置 + +您需要配置 [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) 为 `azure-openai@https://{Endpoint}/openai/deployments/{Deployment}?api-version={ApiVersion}` + +::: tip 提示 + +`Azure OpenAI` 接口因为不兼容 `OpenAI` 的接口规范,所以需要在 URL 前加上 `azure-openai@` 作为标记。这是非常重要的配置,请务必确保正确设置。 + +- `Endpoint` 是你的 `Azure OpenAI` 的部署域名。 +- `Deployment` 是你的 `Azure OpenAI` 的部署 ID。 +- `ApiVersion` 是你的 `Azure OpenAI` 的 API 版本。 + +举例子,如果你的 `Azure OpenAI` 的部署域名是 `westeurope.api.microsoft.com`,部署 ID 是 `gpt-4o-xxx`,API 版本是 `2024-07-15`,那么你的 `API Base URL` 就是: + +`azure-openai@https://westeurope.api.microsoft.com/openai/deployments/gpt-4o-xxx?api-version=2024-07-15`。 + +::: + +### API Key 配置 + +您需要配置 [`aide.openaiKey`](../configuration/openai-key.md) 为您的 `Azure OpenAI` API Key。 + +获取 API Key 的详细步骤请参考上面的官方参考文档。 + +### 模型配置 + +使用 `Azure OpenAI` 时,无需配置 [`aide.openaiModel`](../configuration/openai-model.md)。 + +### 示例配置文件 + +以下是一个完整的配置示例: + +```json +{ + "aide.openaiBaseUrl": "azure-openai@https://westeurope.api.microsoft.com/openai/deployments/gpt-4o-xxx?api-version=2024-07-15", + "aide.openaiKey": "your-azure-api-key" +} +``` + +确保将 `"your-azure-api-key"` 替换为您实际的 API Key。 diff --git a/website/zh/guide/use-another-llm/deepseek.md b/website/zh/guide/use-another-llm/deepseek.md new file mode 100644 index 0000000..77c9868 --- /dev/null +++ b/website/zh/guide/use-another-llm/deepseek.md @@ -0,0 +1,31 @@ +# Deepseek + +本指南介绍如何在 `Aide` 中配置和使用 `Deepseek` 模型。 + +您可以在 [Deepseek 官方参考文档](https://platform.deepseek.com/api-docs/) 获取更多详细信息。 + +### API Base URL 配置 + +您需要配置 [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) 为 `https://api.deepseek.com/v1` + +### API Key 配置 + +您需要配置 [`aide.openaiKey`](../configuration/openai-key.md) 为您的 `Deepseek` API Key。 + +### 模型配置 + +你需要配置 [`aide.openaiModel`](../configuration/openai-model.md) 为 `Deepseek` 模型,我们推荐使用 `deepseek-coder` 模型。更多模型请参考上面的官方参考文档。 + +### 示例配置文件 + +以下是一个完整的配置示例: + +```json +{ + "aide.openaiBaseUrl": "https://api.deepseek.com/v1", + "aide.openaiKey": "your-deepseek-api-key", + "aide.openaiModel": "deepseek-coder" +} +``` + +确保将 `"your-deepseek-api-key"` 替换为您实际的 API Key。 diff --git a/website/zh/guide/use-another-llm/google.md b/website/zh/guide/use-another-llm/google.md new file mode 100644 index 0000000..9a0e30f --- /dev/null +++ b/website/zh/guide/use-another-llm/google.md @@ -0,0 +1,46 @@ +# Google + +## Gemini + +本指南介绍如何在 `Aide` 中配置和使用 `Google Gemini` 模型。 + +您可以在 [Google Gemini 官方参考文档](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/call-gemini-using-openai-library) 获取更多详细信息。 + +### API Base URL 配置 + +您需要配置 [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) 为 `https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT}/locations/{LOCATION}/endpoints/openapi` + +::: tip 提示 + +- `Location` 是你的 `Google Cloud` 项目的地理位置,例如 `us-central1`。 +- `Project` 是你的 `Google Cloud` 项目名称。 + +举例子,如果你的 `Google Cloud` 项目名称是 `my-project`,地理位置是 `us-central1`,那么你的 API Base URL 就是: + +`https://us-central1-aiplatform.googleapis.com/v1beta1/projects/my-project/locations/us-central1/endpoints/openapi`。 + +::: + +### API Key 配置 + +您需要配置 [`aide.openaiKey`](../configuration/openai-key.md) 为您的 `Google Gemini` API Key。 + +获取 API Key 的详细步骤请参考上面的官方参考文档。 + +### 模型配置 + +你需要配置 [`aide.openaiModel`](../configuration/openai-model.md) 为 `Google Gemini` 模型,我们推荐使用 `google/gemini-1.5-flash-001` 模型。更多模型请参考上面的官方参考文档。 + +### 示例配置文件 + +以下是一个完整的配置示例: + +```json +{ + "aide.openaiBaseUrl": "https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT}/locations/{LOCATION}/endpoints/openapi", + "aide.openaiKey": "your-google-gemini-api-key", + "aide.openaiModel": "google/gemini-1.5-flash-001" +} +``` + +确保将 `"your-google-gemini-api-key"` 替换为您实际的 API Key,并在 `{LOCATION}` 和 `{PROJECT}` 中填入您的具体位置信息和项目名称。 diff --git a/website/zh/guide/use-another-llm/local-ai.md b/website/zh/guide/use-another-llm/local-ai.md new file mode 100644 index 0000000..fe04f3c --- /dev/null +++ b/website/zh/guide/use-another-llm/local-ai.md @@ -0,0 +1,42 @@ +# LocalAI + +[LocalAI](https://localai.io) 是一个本地运行开源模型的开源 `Docker` 镜像,支持大部份开源模型。相对于 [Ollama](./ollama.md),它更适合部署到局域网服务器供小团体使用。 + +本指南介绍如何在 `Aide` 中配置和使用 `LocalAI` 模型。 + +您可以在 [LocalAI 官网文档](https://localai.io) 获取更多详细信息。 + +### 安装 LocalAI + +在使用 `LocalAI` 之前,请确保已参考 [LocalAI 官网文档](https://localai.io) 安装并运行 `Docker` 镜像。 + +### API Base URL 配置 + +您需要配置 [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) 为 `http://localhost:8080/v1`(假设您的服务运行在 8080 端口) + +### API Key 配置 + +您可以随意填写以配置 [`aide.openaiKey`](../configuration/openai-key.md)。例如,填入 `sk-LocalAI`。 + +### 模型配置 + +您需要配置 [`aide.openaiModel`](../configuration/openai-model.md) 为 `LocalAI` 模型,我们推荐使用 `llama3-instruct` 模型。更多模型请参考 [支持的模型列表](https://localai.io/models/#list-models)。 + +### 示例配置文件 + +以下是一个完整的配置示例: + +```json +{ + "aide.openaiBaseUrl": "http://localhost:8080/v1", + "aide.openaiKey": "sk-LocalAI", + "aide.openaiModel": "llama3-instruct" +} +``` + +### 相关链接 + +- [LocalAI GitHub 仓库](https://github.com/mudler/LocalAI) +- [下载安装地址](https://github.com/mudler/LocalAI#-install-docker) +- [官网文档](https://localai.io) +- [支持的模型列表](https://localai.io/models/#list-models) diff --git a/website/zh/guide/use-another-llm/ollama.md b/website/zh/guide/use-another-llm/ollama.md new file mode 100644 index 0000000..8284f16 --- /dev/null +++ b/website/zh/guide/use-another-llm/ollama.md @@ -0,0 +1,43 @@ +# Ollama + +[Ollama](https://ollama.com) 是一个本地离线运行开源模型的开源客户端,它支持所有电脑平台,支持大部份开源模型。 + +本指南介绍如何在 `Aide` 中配置和使用 `Ollama` 模型。 + +您可以在 [Ollama 官网文档](https://ollama.com/blog/openai-compatibility) 获取更多详细信息。 + +### 安装 Ollama + +在使用 `Ollama` 之前,请确保已从 [Ollama 官方网站](https://ollama.com) 下载并安装客户端。您可以从[此链接](https://ollama.com/download)进行下载。更多信息请参考[Ollama 开源地址](https://github.com/ollama/ollama)。 + +### API Base URL 配置 + +您需要配置 [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) 为 `http://localhost:11434/v1` + +### API Key 配置 + +你可以随便填以配置 [`aide.openaiKey`](../configuration/openai-key.md)。比如填个 `sk-ollama`。 + +### 模型配置 + +你需要配置 [`aide.openaiModel`](../configuration/openai-model.md) 为 `Ollama` 模型,我们推荐使用 `gemma2` 模型。更多模型请参考 [支持的模型列表](https://ollama.com/library)。 + +### 示例配置文件 + +以下是一个完整的配置示例: + +```json +{ + "aide.openaiBaseUrl": "http://localhost:11434/v1", + "aide.openaiKey": "sk-ollama", + "aide.openaiModel": "gemma2" +} +``` + +### 相关链接 + +- [Ollama 官网](https://ollama.com) +- [下载安装地址](https://ollama.com/download) +- [开源地址](https://github.com/ollama/ollama) +- [支持的模型列表](https://ollama.com/library) +- [官网文档](https://ollama.com/blog/openai-compatibility) diff --git a/website/zh/guide/use-another-llm/openai.md b/website/zh/guide/use-another-llm/openai.md new file mode 100644 index 0000000..6eaba85 --- /dev/null +++ b/website/zh/guide/use-another-llm/openai.md @@ -0,0 +1,45 @@ +# OpenAI + +[OpenAI](https://platform.openai.com) 提供了多种先进的AI模型,可以应用于各种自然语言处理任务。 + +本指南介绍如何在 `Aide` 中配置和使用 `OpenAI` 模型。 + +您可以在[官网文档](https://platform.openai.com/docs/quickstart)获取更多详细信息。 + +### API Base URL 配置 + +您需要配置 [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) 为 `https://api.openai.com/v1` + +### API Key 配置 + +您需要配置 [`aide.openaiKey`](../configuration/openai-key.md) 为您的 `OpenAI` API Key。你可以在 [官网创建 Key](https://platform.openai.com/account/api-keys) + +::: tip + +获取 `OpenAI` Key 需要绑定国外的信用卡,并且任何模型都是收费的。如果您无法获取,建议您使用其他大语言模型,或者第三方转发商。 + +::: + +### 模型配置 + +你需要配置 [`aide.openaiModel`](../configuration/openai-model.md) 为 `OpenAI` 模型。我们推荐使用 `gpt-4o` 模型。更多模型请参考 [支持的模型列表](https://platform.openai.com/docs/models)。 + +### 示例配置文件 + +以下是一个完整的配置示例: + +```json +{ + "aide.openaiBaseUrl": "https://api.openai.com/v1", + "aide.openaiKey": "your-openai-api-key", + "aide.openaiModel": "gpt-4o" +} +``` + +确保将 `"your-openai-api-key"` 替换为您实际的 API Key。 + +### 相关链接 + +- [支持的模型列表](https://platform.openai.com/docs/models) +- [官网文档](https://platform.openai.com/docs/quickstart) +- [官网 Key 创建地址](https://platform.openai.com/account/api-keys) diff --git a/website/zh/guide/use-another-llm/qwen.md b/website/zh/guide/use-another-llm/qwen.md new file mode 100644 index 0000000..d3c7e41 --- /dev/null +++ b/website/zh/guide/use-another-llm/qwen.md @@ -0,0 +1,31 @@ +# 通义千问 + +本指南介绍如何在 `Aide` 中配置和使用`通义千问`模型。 + +您可以在 [通义千问官方参考文档](https://help.aliyun.com/zh/dashscope/developer-reference/compatibility-of-openai-with-dashscope) 获取更多详细信息 + +### API Base URL 配置 + +您需要配置 [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) 为 `https://dashscope.aliyuncs.com/compatible-mode/v1` + +### API Key 配置 + +您需要配置 [`aide.openaiKey`](../configuration/openai-key.md) 为您的 `通义千问` API Key。 + +### 模型配置 + +你需要配置 [`aide.openaiModel`](../configuration/openai-model.md) 为 `通义千问` 模型,我们推荐使用 `qwen-long` 模型。更多模型请参考上面的官方参考文档。 + +### 示例配置文件 + +以下是一个完整的配置示例: + +```json +{ + "aide.openaiBaseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "aide.openaiKey": "your-qwen-api-key", + "aide.openaiModel": "qwen-long" +} +``` + +确保将 `"your-qwen-api-key"` 替换为您实际的 API Key。 diff --git a/website/zh/guide/use-another-llm/zhipu.md b/website/zh/guide/use-another-llm/zhipu.md new file mode 100644 index 0000000..239ad45 --- /dev/null +++ b/website/zh/guide/use-another-llm/zhipu.md @@ -0,0 +1,31 @@ +# 智谱 + +本指南介绍如何在 `Aide` 中配置和使用 `智谱` 模型。 + +您可以在 [智谱官方参考文档](https://bigmodel.cn/dev/api#openai_sdk) 获取更多详细信息。 + +### API Base URL 配置 + +您需要配置 [`aide.openaiBaseUrl`](../configuration/openai-base-url.md) 为 `https://open.bigmodel.cn/api/paas/v4` + +### API Key 配置 + +您需要配置 [`aide.openaiKey`](../configuration/openai-key.md) 为您的 `智谱` API Key。 + +### 模型配置 + +你需要配置 [`aide.openaiModel`](../configuration/openai-model.md) 为 `智谱` 模型,我们推荐使用 `glm-4` 模型。更多模型请参考上面的官方参考文档。 + +### 示例配置文件 + +以下是一个完整的配置示例: + +```json +{ + "aide.openaiBaseUrl": "https://open.bigmodel.cn/api/paas/v4", + "aide.openaiKey": "your-zhipu-api-key", + "aide.openaiModel": "glm-4" +} +``` + +确保将 `"your-zhipu-api-key"` 替换为您实际的 API Key。 diff --git a/website/zh/index.md b/website/zh/index.md new file mode 100644 index 0000000..ef54e88 --- /dev/null +++ b/website/zh/index.md @@ -0,0 +1,48 @@ +--- +layout: home + +title: Aide +titleTemplate: 在 VSCode 里掌握任何屎山代码 + +hero: + name: Aide + image: /logo.svg + text: '在 VSCode 里掌握任何屎山代码 💪' + tagline: '一键注释和语言转换。' + actions: + - theme: brand + text: 快速开始 + link: /zh/guide/getting-started/ + - theme: alt + text: 安装 + link: /zh/guide/getting-started/installation + - theme: alt + text: 为什么选 Aide? + link: /zh/guide/getting-started/#为什么选择-aide +--- + +
+ +
+ +