diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 5820f940..0d6bcd97 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -63,7 +63,15 @@ export default defineConfig({ }, { text: 'Agent', - items: [{ text: 'Friday', link: '/agent/friday' }], + items: [ + { text: 'Friday', link: '/agent/friday' }, + { text: 'Reasoning', link: '/agent/Reasoning' }, + { text: 'MCP', link: '/agent/MCP' }, + { + text: 'Long-Term Memory', + link: '/agent/LongTermMemory', + }, + ], }, ], }, @@ -117,6 +125,15 @@ export default defineConfig({ text: '智能体', items: [ { text: 'Friday', link: '/zh_CN/agent/friday' }, + { + text: '思考模式', + link: '/zh_CN/agent/Reasoning', + }, + { text: 'MCP', link: '/zh_CN/agent/MCP' }, + { + text: '长期记忆', + link: '/zh_CN/agent/LongTermMemory', + }, ], }, ], diff --git a/docs/tutorial/en/agent/LongTermMemory.md b/docs/tutorial/en/agent/LongTermMemory.md new file mode 100644 index 00000000..3f05848a --- /dev/null +++ b/docs/tutorial/en/agent/LongTermMemory.md @@ -0,0 +1,14 @@ +# Long-Term Memory + +Friday supports storing memories in a local database to enable long-term memory. + +## How to Set Up Long-Term Memory + +In the settings interface, click to enable long-term memory, and fill in the Embedding model and vector database related settings +![Long-Term Memory Settings Interface](assets/memory_config.png) + +## Database Selection + +- The system has default configuration for Qdrant. Simply choose whether to save to disk, fill in the memory storage address, and you can use long-term memory. +- If you need to use other vector databases to store memories, please select the corresponding database provider and fill in the required parameters. Friday implements long-term memory based on the mem0 library. You can find the corresponding file in the configs/vector_stores folder of the mem0 library to view the specific parameters required for each database. + ![Long-Term Memory Other Providers](assets/memory_provider.png) diff --git a/docs/tutorial/en/agent/MCP.md b/docs/tutorial/en/agent/MCP.md new file mode 100644 index 00000000..6d7685ae --- /dev/null +++ b/docs/tutorial/en/agent/MCP.md @@ -0,0 +1,20 @@ +# MCP Server Management + +Friday supports dynamic management of MCP servers: + +- Add and remove MCP servers +- Enable and disable specific MCP servers at any time +- Support both remote and local MCP server types + +## Adding MCP Servers + +1. Click the MCP button on the right side of the Friday chat interface to open the MCP server management interface + ![MCP Configuration Button](assets/mcp_button.png) + +2. Write the MCP server configuration and click Save + ![MCP Configuration Interface](assets/mcp_config.png) + +## Enabling and Disabling MCP Servers + +During usage, you can enable or disable specific MCP servers through this switch +![MCP Switch Button](assets/mcp_switch.png) diff --git a/docs/tutorial/en/agent/Reasoning.md b/docs/tutorial/en/agent/Reasoning.md new file mode 100644 index 00000000..ab8c6c67 --- /dev/null +++ b/docs/tutorial/en/agent/Reasoning.md @@ -0,0 +1,53 @@ +# Reasoning Mode + +Friday supports enabling model reasoning mode and displaying the model's reasoning process. + +![Reasoning Mode Display](assets/reasoning_show.png) + +## How to Enable Reasoning Mode + +If the model supports reasoning mode, Friday enables it by passing parameters when calling the model API. The parameters supported by different model providers are as follows: + +| Model Provider | Parameter Name | Available Values | Description | +| ------------------------------- | ------------------ | --------------------------------------------------- | --------------------------------------------------- | +| **OpenAI** (o1/o3) | `reasoning_effort` | `low` / `medium` / `high` | Controls thinking depth, default is medium | +| **Anthropic** (Claude 3.7+) | `thinking` | `{"type": "enabled", "budget_tokens": 1024-128000}` | Extended thinking mode, requires token budget | +| **Gemini** (3.0+) | `thinking_config` | `{"thinking_level": "low/medium/high"}` | Controls reasoning level, high activates Deep Think | +| **Ollama** (DeepSeek R1/Qwen 3) | `think` | `true` / `false` | Enable/disable reasoning mode | +| **DashScope** (Qwen) | `enable_thinking` | `true` / `false` | Only supports streaming output | + +## Configuration Examples + +All reasoning mode parameters are passed through **`generate_kwargs`**: + +### DashScope (Alibaba Cloud) + +![DashScope Parameter Configuration](../../zh_CN/agent/assets/dashscope.png) + +> **Note**: For non-streaming calls, you must set `enable_thinking=False`, otherwise an error will occur + +### OpenAI + +![OpenAI Parameter Configuration](../../zh_CN/agent/assets/openai.png) + +### Anthropic (Claude) + +![Anthropic Parameter Configuration](../../zh_CN/agent/assets/anthropic.png) + +### Google Gemini + +![Gemini Parameter Configuration](../../zh_CN/agent/assets/gemini.png) + +> **Note**: Gemini 2.5 uses `thinking_budget` parameter (integer value), while Gemini 3+ uses `thinking_level` + +### Ollama + +![Ollama Parameter Configuration](../../zh_CN/agent/assets/ollama.png) + +## Parameter Selection Recommendations + +| Task Type | Recommended Level | Description | +| ------------------------------------------------------------------------------ | ----------------- | ----------------------------------- | +| Simple Tasks (translation, classification, data extraction) | `low` | Fast response, low cost | +| Daily Development (code generation, content writing, debugging) | `medium` | Balance performance and cost | +| Complex Reasoning (mathematical proofs, scientific analysis, algorithm design) | `high` | Deep reasoning, high-quality output | diff --git a/docs/tutorial/en/agent/assets/mcp_button.png b/docs/tutorial/en/agent/assets/mcp_button.png new file mode 100644 index 00000000..540da6c9 Binary files /dev/null and b/docs/tutorial/en/agent/assets/mcp_button.png differ diff --git a/docs/tutorial/en/agent/assets/mcp_config.png b/docs/tutorial/en/agent/assets/mcp_config.png new file mode 100644 index 00000000..159bbda0 Binary files /dev/null and b/docs/tutorial/en/agent/assets/mcp_config.png differ diff --git a/docs/tutorial/en/agent/assets/mcp_switch.png b/docs/tutorial/en/agent/assets/mcp_switch.png new file mode 100644 index 00000000..df7bb289 Binary files /dev/null and b/docs/tutorial/en/agent/assets/mcp_switch.png differ diff --git a/docs/tutorial/en/agent/assets/memory_config.png b/docs/tutorial/en/agent/assets/memory_config.png new file mode 100644 index 00000000..bfe5fbaa Binary files /dev/null and b/docs/tutorial/en/agent/assets/memory_config.png differ diff --git a/docs/tutorial/en/agent/assets/memory_provider.png b/docs/tutorial/en/agent/assets/memory_provider.png new file mode 100644 index 00000000..10f6c636 Binary files /dev/null and b/docs/tutorial/en/agent/assets/memory_provider.png differ diff --git a/docs/tutorial/en/agent/assets/reasoning_show.png b/docs/tutorial/en/agent/assets/reasoning_show.png new file mode 100644 index 00000000..89b8eca5 Binary files /dev/null and b/docs/tutorial/en/agent/assets/reasoning_show.png differ diff --git a/docs/tutorial/en/agent/friday.md b/docs/tutorial/en/agent/friday.md index 81b492dd..c18eb735 100644 --- a/docs/tutorial/en/agent/friday.md +++ b/docs/tutorial/en/agent/friday.md @@ -43,7 +43,7 @@ We are continuously integrating more features into Friday. The current and upcom - [x] Support meta tool - [x] Support realtime steering/interruption - [x] Support state/Session management +- [x] Support long-term memory +- [x] Support user to add MCP server dynamically - [ ] 🚧 Support planning and plan visualization -- [ ] 🚧 Support long-term memory - [ ] Support anthropic agent skill -- [ ] Support user to add MCP server dynamically diff --git a/docs/tutorial/zh_CN/agent/LongTermMemory.md b/docs/tutorial/zh_CN/agent/LongTermMemory.md new file mode 100644 index 00000000..151ae411 --- /dev/null +++ b/docs/tutorial/zh_CN/agent/LongTermMemory.md @@ -0,0 +1,14 @@ +# 长期记忆 + +Friday支持将记忆存储于本地数据库以实现长期记忆。 + +## 如何设置长期记忆 + +在设置界面点击启用长期记忆,填写Embedding模型以及向量数据库相关设置 +![长期记忆 设置界面](assets/memory_config.png) + +## 数据库选择 + +- 系统对Qdrant进行了默认配置,选择是否保存磁盘,填写记忆存储地址即可使用长期记忆。 +- 如需使用其他向量数据库存储记忆,请选择对应的数据库提供者,并填写相应参数进行使用。Friday基于mem0库实现长期记忆,可以于mem0库中的configs/vector_stores文件夹找到对应文件查看具体数据库所需参数。 + ![长期记忆 其他提供者](assets/memory_provider.png) diff --git a/docs/tutorial/zh_CN/agent/MCP.md b/docs/tutorial/zh_CN/agent/MCP.md new file mode 100644 index 00000000..6f2aacf9 --- /dev/null +++ b/docs/tutorial/zh_CN/agent/MCP.md @@ -0,0 +1,20 @@ +# MCP 服务器管理 + +Friday支持用户动态管理 MCP 服务器 + +- 可以添加及删除 MCP 服务器 +- 可以随时开启和关闭指定 MCP 服务器 +- 支持远程和本地两种类型 MCP 服务器 + +## 添加 MCP 服务器 + +1.在Friday对话界面有边框点击MCP按钮打开MCP服务器管理界面 +![MCP 配置按钮](assets/mcp_button.png) + +2.写 MCP 服务器配置,点击保存即可 +![MCP 配置界面](assets/mcp_config.png) + +## 开启及关闭 MCP 服务器 + +在使用过程中,可以通过此开关开启及关闭指定 MCP 服务器 +![MCP 开关按钮](assets/mcp_switch.png) diff --git a/docs/tutorial/zh_CN/agent/Reasoning.md b/docs/tutorial/zh_CN/agent/Reasoning.md new file mode 100644 index 00000000..8f9f0bd9 --- /dev/null +++ b/docs/tutorial/zh_CN/agent/Reasoning.md @@ -0,0 +1,53 @@ +# 思考模式 + +Friday 支持开启模型思考模式,并将模型思考内容进行展示。 + +![思考模式展示](assets/reasoning_show.png) + +## 如何开启思考模式 + +如果模型支持思考模式,Friday 通过在调用模型 API 时传入参数以开启模型思考模式。不同模型提供者所支持的参数如下: + +| 模型提供者 | 参数名 | 可选值 | 说明 | +| ------------------------------- | ------------------ | --------------------------------------------------- | ---------------------------------- | +| **OpenAI** (o1/o3) | `reasoning_effort` | `low` / `medium` / `high` | 控制思考深度,默认 medium | +| **Anthropic** (Claude 3.7+) | `thinking` | `{"type": "enabled", "budget_tokens": 1024-128000}` | 扩展思考模式,需指定 token 预算 | +| **Gemini** (3.0+) | `thinking_config` | `{"thinking_level": "low/medium/high"}` | 控制思考级别,high 激活 Deep Think | +| **Ollama** (DeepSeek R1/Qwen 3) | `think` | `true` / `false` | 开启/关闭思考模式 | +| **DashScope** (通义千问) | `enable_thinking` | `true` / `false` | 仅支持流式输出 | + +## 配置示例 + +所有思考模式相关参数都通过 **`generate_kwargs`** 传递: + +### DashScope (阿里云) + +![dashscope 参数配置](assets/dashscope.png) + +> **注意**: 非流式调用时必须设置 `enable_thinking=False`,否则会报错 + +### OpenAI + +![openai 参数配置](assets/openai.png) + +### Anthropic (Claude) + +![anthropic 参数配置](assets/anthropic.png) + +### Google Gemini + +![gemini 参数配置](assets/gemini.png) + +> **注意**: Gemini 2.5 版本使用 `thinking_budget` 参数(整数值),Gemini 3+ 版本使用 `thinking_level` + +### Ollama + +![ollama 参数配置](assets/ollama.png) + +## 参数选择建议 + +| 任务类型 | 推荐等级 | 说明 | +| ---------------------------------------- | -------- | -------------------- | +| 简单任务(翻译、分类、数据提取) | `low` | 快速响应,低成本 | +| 日常开发(代码生成、内容写作、调试) | `medium` | 平衡性能与成本 | +| 复杂推理(数学证明、科学分析、算法设计) | `high` | 深度推理,高质量输出 | diff --git a/docs/tutorial/zh_CN/agent/assets/anthropic.png b/docs/tutorial/zh_CN/agent/assets/anthropic.png new file mode 100644 index 00000000..a751f080 Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/anthropic.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/dashscope.png b/docs/tutorial/zh_CN/agent/assets/dashscope.png new file mode 100644 index 00000000..46d0690b Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/dashscope.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/gemini.png b/docs/tutorial/zh_CN/agent/assets/gemini.png new file mode 100644 index 00000000..85e40794 Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/gemini.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/mcp_button.png b/docs/tutorial/zh_CN/agent/assets/mcp_button.png new file mode 100644 index 00000000..62454ee9 Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/mcp_button.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/mcp_config.png b/docs/tutorial/zh_CN/agent/assets/mcp_config.png new file mode 100644 index 00000000..d2c2f8f1 Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/mcp_config.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/mcp_switch.png b/docs/tutorial/zh_CN/agent/assets/mcp_switch.png new file mode 100644 index 00000000..2059d43c Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/mcp_switch.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/memory_config.png b/docs/tutorial/zh_CN/agent/assets/memory_config.png new file mode 100644 index 00000000..12691591 Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/memory_config.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/memory_provider.png b/docs/tutorial/zh_CN/agent/assets/memory_provider.png new file mode 100644 index 00000000..841ef51e Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/memory_provider.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/ollama.png b/docs/tutorial/zh_CN/agent/assets/ollama.png new file mode 100644 index 00000000..11437a4f Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/ollama.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/openai.png b/docs/tutorial/zh_CN/agent/assets/openai.png new file mode 100644 index 00000000..7a8ad178 Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/openai.png differ diff --git a/docs/tutorial/zh_CN/agent/assets/reasoning_show.png b/docs/tutorial/zh_CN/agent/assets/reasoning_show.png new file mode 100644 index 00000000..b56bf1e5 Binary files /dev/null and b/docs/tutorial/zh_CN/agent/assets/reasoning_show.png differ diff --git a/docs/tutorial/zh_CN/agent/friday.md b/docs/tutorial/zh_CN/agent/friday.md index 6c132f30..a42fc846 100644 --- a/docs/tutorial/zh_CN/agent/friday.md +++ b/docs/tutorial/zh_CN/agent/friday.md @@ -42,7 +42,7 @@ packages/ - [x] 支持元工具(meta tool) - [x] 支持实时操控/中断 - [x] 支持状态/会话管理 +- [x] 支持长期记忆 +- [x] 支持用户动态添加 MCP 服务器 - [ ] 🚧 支持规划和规划可视化 -- [ ] 🚧 支持长期记忆 - [ ] 支持 Anthropic 智能体技能 -- [ ] 支持用户动态添加 MCP 服务器 diff --git a/package-lock.json b/package-lock.json index 2af3c5ee..ba87cdbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -279,6 +279,7 @@ "integrity": "sha512-hfpCIukPuwkrlwsYfJEWdU5R5bduBHEq2uuPcqmgPgNq5MSjmiNIzRuzxGZZgiBKcre6gZT00DR7G1AFn//wiQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@algolia/client-common": "5.46.3", "@algolia/requester-browser-xhr": "5.46.3", @@ -436,6 +437,7 @@ "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", "license": "MIT", + "peer": true, "dependencies": { "@ant-design/colors": "^7.0.0", "@ant-design/icons-svg": "^4.4.0", @@ -515,6 +517,7 @@ "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", @@ -932,7 +935,6 @@ "os": [ "aix" ], - "peer": true, "engines": { "node": ">=18" } @@ -950,7 +952,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -968,7 +969,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -986,7 +986,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -1004,7 +1003,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } @@ -1022,7 +1020,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } @@ -1040,7 +1037,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1058,7 +1054,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1076,7 +1071,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1094,7 +1088,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1112,7 +1105,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1130,7 +1122,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1148,7 +1139,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1166,7 +1156,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1184,7 +1173,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1202,7 +1190,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1220,7 +1207,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1238,7 +1224,6 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1256,7 +1241,6 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1274,7 +1258,6 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1292,7 +1275,6 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1310,7 +1292,6 @@ "os": [ "openharmony" ], - "peer": true, "engines": { "node": ">=18" } @@ -1328,7 +1309,6 @@ "os": [ "sunos" ], - "peer": true, "engines": { "node": ">=18" } @@ -1346,7 +1326,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -1364,7 +1343,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -1382,7 +1360,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -3189,6 +3166,7 @@ "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.24.13.tgz", "integrity": "sha512-ONTr14s7LFIjx2VRFLuOpagL76sM/HPy6/OhdBfq6UukINmTIs6+aFN0GgcR0aXQHFDXQ7f/fel0o/SO05Htdg==", "license": "Apache-2.0", + "peer": true, "dependencies": { "lodash": "^4.17.21", "lodash-es": "^4.17.21", @@ -3208,6 +3186,7 @@ "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.24.13.tgz", "integrity": "sha512-rNF8tDxIwTtXzz5O/U23QU73nlhgQNYJ+Sv5BAwQOIyhIE2Z3S5tUiSVMwZHt0julkv/Ryfwi+qsD4FiE5rOuw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "json-schema-merge-allof": "^0.8.1", "jsonpointer": "^5.0.1", @@ -3893,6 +3872,7 @@ "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -4249,6 +4229,7 @@ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.17.tgz", "integrity": "sha512-PGc2u9KLwohDUSchjW9MZqeDQJfJDON7y4W7REdNBgiFKxQy+Pf7eGjiFWEj5xPqKzAeHYdAb62IWI1a9UJyGQ==", "license": "MIT", + "peer": true, "dependencies": { "@tanstack/query-core": "5.90.17" }, @@ -4268,6 +4249,7 @@ "https://trpc.io/sponsor" ], "license": "MIT", + "peer": true, "peerDependencies": { "@trpc/server": "11.8.1", "typescript": ">=5.7.2" @@ -4298,6 +4280,7 @@ "https://trpc.io/sponsor" ], "license": "MIT", + "peer": true, "peerDependencies": { "typescript": ">=5.7.2" } @@ -4653,6 +4636,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.8.tgz", "integrity": "sha512-3MbSL37jEchWZz2p2mjntRZtPt837ij10ApxKfgmXCTuHWagYg7iA5bqPw6C8BMPfwidlvfPI/fxOc42HLhcyg==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -4663,6 +4647,7 @@ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "devOptional": true, "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -4773,6 +4758,7 @@ "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.53.0", "@typescript-eslint/types": "8.53.0", @@ -5330,6 +5316,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "devOptional": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5418,6 +5405,7 @@ "integrity": "sha512-n/NdPglzmkcNYZfIT3Fo8pnDR/lKiK1kZ1Yaa315UoLyHymADhWw15+bzN5gBxrCA8KyeNu0JJD6mLtTov43lQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@algolia/abtesting": "1.12.3", "@algolia/client-abtesting": "5.46.3", @@ -5479,6 +5467,7 @@ "resolved": "https://registry.npmjs.org/antd/-/antd-5.29.3.tgz", "integrity": "sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==", "license": "MIT", + "peer": true, "dependencies": { "@ant-design/colors": "^7.2.1", "@ant-design/cssinjs": "^1.23.0", @@ -6036,6 +6025,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -6862,7 +6852,8 @@ "version": "1.11.19", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/debug": { "version": "4.4.3", @@ -7558,6 +7549,7 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -8107,6 +8099,7 @@ "integrity": "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "tabbable": "^6.4.0" } @@ -8804,6 +8797,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.28.4" }, @@ -9708,7 +9702,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9730,7 +9723,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9752,7 +9744,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9774,7 +9765,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9796,7 +9786,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9818,7 +9807,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9840,7 +9828,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9862,7 +9849,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9884,7 +9870,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9906,7 +9891,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -9928,7 +9912,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -11707,6 +11690,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -12593,6 +12577,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -13178,6 +13163,7 @@ "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -14750,6 +14736,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15167,6 +15154,7 @@ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -15871,6 +15859,7 @@ "integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.26", "@vue/compiler-sfc": "3.5.26", @@ -16245,6 +16234,7 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" }