diff --git a/docs/shotscreen/home.png b/docs/shotscreen/home.png index 5224b3a..7d35203 100644 Binary files a/docs/shotscreen/home.png and b/docs/shotscreen/home.png differ diff --git a/electron/main/services/eko-service.ts b/electron/main/services/eko-service.ts index 34570e6..4f8db80 100644 --- a/electron/main/services/eko-service.ts +++ b/electron/main/services/eko-service.ts @@ -3,6 +3,7 @@ import { BrowserAgent, FileAgent } from "@jarvis-agent/electron"; import type { EkoResult } from "@jarvis-agent/core/types"; import { BrowserWindow, WebContentsView, app } from "electron"; import path from "node:path"; +import fs from "node:fs"; import { randomUUID } from "node:crypto"; import { ConfigManager } from "../utils/config-manager"; import type { HumanRequestMessage, HumanResponseMessage, HumanInteractionContext } from "../../../src/models/human-interaction"; @@ -12,7 +13,7 @@ export class EkoService { private mainWindow: BrowserWindow; private detailView: WebContentsView; private mcpClient!: SimpleSseMcpClient; - private agents!: any[]; + private browserAgent: BrowserAgent | null = null; // Store pending human interaction requests private pendingHumanRequests = new Map => { const result = await this.requestHumanInteraction(agentContext, { interactType: 'select', prompt, selectOptions: options, - selectMultiple: multiple + selectMultiple: multiple ?? false }); return Array.isArray(result) ? result : []; }, @@ -142,31 +144,63 @@ export class EkoService { }; } - private initializeEko() { - const configManager = ConfigManager.getInstance(); - const llms: LLMs = configManager.getLLMsConfig(); - const agentConfig = configManager.getAgentConfig(); - - const appPath = app.isPackaged + /** + * Get base work path for file storage + */ + private getBaseWorkPath(): string { + return app.isPackaged ? path.join(app.getPath('userData'), 'static') : path.join(process.cwd(), 'public', 'static'); + } - this.mcpClient = new SimpleSseMcpClient("http://localhost:5173/api/mcp/sse"); - this.agents = []; + /** + * Get task-specific work path with unique taskId + */ + private getTaskWorkPath(taskId: string): string { + return path.join(this.getBaseWorkPath(), taskId); + } - if (agentConfig.browserAgent.enabled) { - this.agents.push( - new BrowserAgent(this.detailView, this.mcpClient, agentConfig.browserAgent.customPrompt) - ); + /** + * Create Eko instance for a specific task with unique work directory + */ + private createEkoForTask(taskId: string): Eko { + const configManager = ConfigManager.getInstance(); + const llms: LLMs = configManager.getLLMsConfig(); + const agentConfig = configManager.getAgentConfig(); + const agents: any[] = []; + + // Reuse BrowserAgent (no file storage involved) + if (this.browserAgent) { + agents.push(this.browserAgent); } + // Create FileAgent with task-specific work directory if (agentConfig.fileAgent.enabled) { - this.agents.push( - new FileAgent(this.detailView, appPath, this.mcpClient, agentConfig.fileAgent.customPrompt) + const taskWorkPath = this.getTaskWorkPath(taskId); + fs.mkdirSync(taskWorkPath, { recursive: true }); + agents.push( + new FileAgent(this.detailView, taskWorkPath, this.mcpClient, agentConfig.fileAgent.customPrompt) ); } - this.eko = new Eko({ llms, agents: this.agents, callback: this.createCallback() }); + return new Eko({ llms, agents, callback: this.createCallback() }); + } + + private initializeEko() { + const configManager = ConfigManager.getInstance(); + const llms: LLMs = configManager.getLLMsConfig(); + const agentConfig = configManager.getAgentConfig(); + + this.mcpClient = new SimpleSseMcpClient("http://localhost:5173/api/mcp/sse"); + + // Only create BrowserAgent once (no file storage involved) + if (agentConfig.browserAgent.enabled) { + this.browserAgent = new BrowserAgent(this.detailView, this.mcpClient, agentConfig.browserAgent.customPrompt); + } + + // Create default Eko instance with only BrowserAgent for restore/modify scenarios + const defaultAgents = this.browserAgent ? [this.browserAgent] : []; + this.eko = new Eko({ llms, agents: defaultAgents, callback: this.createCallback() }); } /** @@ -187,8 +221,18 @@ export class EkoService { const configManager = ConfigManager.getInstance(); const llms: LLMs = configManager.getLLMsConfig(); + const agentConfig = configManager.getAgentConfig(); - this.eko = new Eko({ llms, agents: this.agents, callback: this.createCallback() }); + // Recreate BrowserAgent with new config + if (agentConfig.browserAgent.enabled) { + this.browserAgent = new BrowserAgent(this.detailView, this.mcpClient, agentConfig.browserAgent.customPrompt); + } else { + this.browserAgent = null; + } + + // Create default Eko instance + const defaultAgents = this.browserAgent ? [this.browserAgent] : []; + this.eko = new Eko({ llms, agents: defaultAgents, callback: this.createCallback() }); if (this.mainWindow && !this.mainWindow.isDestroyed()) { this.mainWindow.webContents.send('eko-config-reloaded', { @@ -199,14 +243,15 @@ export class EkoService { } async run(message: string): Promise { - if (!this.eko) { - console.error('[EkoService] Eko service not initialized'); - this.sendErrorToFrontend('Eko service not initialized'); - return null; - } - try { - return await this.eko.run(message); + // Generate unique taskId for this execution + const taskId = randomUUID(); + + // Create Eko instance with task-specific work directory + this.eko = this.createEkoForTask(taskId); + + // Execute with the specified taskId + return await this.eko.run(message, taskId); } catch (error: any) { console.error('[EkoService] Run error:', error); this.sendErrorToFrontend(error?.message || 'Unknown error occurred', error); @@ -325,12 +370,12 @@ export class EkoService { chainPlanRequest?: any, chainPlanResult?: string ): Promise { - if (!this.eko) { - console.error('[EkoService] Eko service not initialized'); - return null; - } - try { + const taskId = workflow.taskId; + + // Create Eko instance with task-specific work directory for restored task + this.eko = this.createEkoForTask(taskId); + const context = await this.eko.initContext(workflow, contextParams); if (chainPlanRequest && chainPlanResult) { @@ -338,7 +383,7 @@ export class EkoService { context.chain.planResult = chainPlanResult; } - return workflow.taskId; + return taskId; } catch (error: any) { console.error('[EkoService] Failed to restore task:', error); return null; diff --git a/package.json b/package.json index aa3af2d..a5ecc1d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ai-browser", - "version": "0.0.12", + "version": "0.0.13", "description": "DeepFundAI Browser - AI-Powered Intelligent Browser", "author": "Shuai Liu ", "license": "MIT", @@ -30,7 +30,7 @@ "@ant-design/cssinjs": "^1.23.0", "@ant-design/icons": "5.x", "@jarvis-agent/core": "^0.1.5", - "@jarvis-agent/electron": "^0.1.10", + "@jarvis-agent/electron": "^0.1.11", "@jest/globals": "^30.1.2", "@react-spring/web": "^10.0.1", "antd": "^5.26.5", @@ -48,9 +48,9 @@ "immer": "^10.2.0", "json-schema": "^0.4.0", "microsoft-cognitiveservices-speech-sdk": "^1.45.0", - "next": "15.4.1", - "react": "19.1.0", - "react-dom": "19.1.0", + "next": "15.4.8", + "react": "19.1.2", + "react-dom": "19.1.2", "react-i18next": "^16.2.3", "react-icons": "^5.5.0", "react-markdown": "^10.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a4f2edb..f629f4e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,25 +10,25 @@ importers: dependencies: '@ant-design/cssinjs': specifier: ^1.23.0 - version: 1.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.24.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) '@ant-design/icons': specifier: 5.x - version: 5.6.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.6.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) '@jarvis-agent/core': specifier: ^0.1.5 version: 0.1.5(ai@5.0.76(zod@4.1.12)) '@jarvis-agent/electron': - specifier: ^0.1.10 - version: 0.1.10(ai@5.0.76(zod@4.1.12))(electron@33.4.11) + specifier: ^0.1.11 + version: 0.1.11(ai@5.0.76(zod@4.1.12))(electron@33.4.11) '@jest/globals': specifier: ^30.1.2 version: 30.2.0 '@react-spring/web': specifier: ^10.0.1 - version: 10.0.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 10.0.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) antd: specifier: ^5.26.5 - version: 5.27.5(date-fns@4.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.27.5(date-fns@4.1.0)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -49,7 +49,7 @@ importers: version: 6.6.2 framer-motion: specifier: ^12.23.18 - version: 12.23.24(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 12.23.24(react-dom@19.1.2(react@19.1.2))(react@19.1.2) glob: specifier: 11.0.2 version: 11.0.2 @@ -72,26 +72,26 @@ importers: specifier: ^1.45.0 version: 1.46.0 next: - specifier: 15.4.1 - version: 15.4.1(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: 15.4.8 + version: 15.4.8(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) react: - specifier: 19.1.0 - version: 19.1.0 + specifier: 19.1.2 + version: 19.1.2 react-dom: - specifier: 19.1.0 - version: 19.1.0(react@19.1.0) + specifier: 19.1.2 + version: 19.1.2(react@19.1.2) react-i18next: specifier: ^16.2.3 - version: 16.2.3(i18next@25.6.0(typescript@5.9.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3) + version: 16.2.3(i18next@25.6.0(typescript@5.9.3))(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(typescript@5.9.3) react-icons: specifier: ^5.5.0 - version: 5.5.0(react@19.1.0) + version: 5.5.0(react@19.1.2) react-markdown: specifier: ^10.1.0 - version: 10.1.0(@types/react@19.2.2)(react@19.1.0) + version: 10.1.0(@types/react@19.2.2)(react@19.1.2) react-simple-typewriter: specifier: ^5.0.1 - version: 5.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) tailwind-merge: specifier: ^3.3.1 version: 3.3.1 @@ -106,7 +106,7 @@ importers: version: 0.1.1(zod@4.1.12) zustand: specifier: ^5.0.8 - version: 5.0.8(@types/react@19.2.2)(immer@10.2.0)(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0)) + version: 5.0.8(@types/react@19.2.2)(immer@10.2.0)(react@19.1.2)(use-sync-external-store@1.6.0(react@19.1.2)) devDependencies: '@electron-toolkit/preload': specifier: ^3.0.2 @@ -907,8 +907,8 @@ packages: '@jarvis-agent/core@0.1.5': resolution: {integrity: sha512-8YYwey+pzrTTcNO4JTmYTg9X77w6iEJO936wCJIZeFCN8kOTlwYw9c6LT7BHnmHOILhNjeVmgs4dHoPbdgBQcQ==} - '@jarvis-agent/electron@0.1.10': - resolution: {integrity: sha512-KPiBUmvBpJdDDQDA/ObvxMTcU7Ji08DUTnS7DczolVhgKRPoL7F0VAshMAFopdHG/zhg78mVKHipyTtFnl8emQ==} + '@jarvis-agent/electron@0.1.11': + resolution: {integrity: sha512-Z1EWIEnAslipnUGWvao8XLKfLwgL2KOj9Sg6GoWW4J3Ze38DB5HvZnBTEJTV4dblGsnpX93iK/v9jGwmrqgpfw==} peerDependencies: electron: '>=20.0.0' @@ -1053,60 +1053,60 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@next/env@15.4.1': - resolution: {integrity: sha512-DXQwFGAE2VH+f2TJsKepRXpODPU+scf5fDbKOME8MMyeyswe4XwgRdiiIYmBfkXU+2ssliLYznajTrOQdnLR5A==} + '@next/env@15.4.8': + resolution: {integrity: sha512-LydLa2MDI1NMrOFSkO54mTc8iIHSttj6R6dthITky9ylXV2gCGi0bHQjVCtLGRshdRPjyh2kXbxJukDtBWQZtQ==} '@next/eslint-plugin-next@15.4.1': resolution: {integrity: sha512-lQnHUxN7mMksK7IxgKDIXNMWFOBmksVrjamMEURXiYfo7zgsc30lnU8u4y/MJktSh+nB80ktTQeQbWdQO6c8Ow==} - '@next/swc-darwin-arm64@15.4.1': - resolution: {integrity: sha512-L+81yMsiHq82VRXS2RVq6OgDwjvA4kDksGU8hfiDHEXP+ncKIUhUsadAVB+MRIp2FErs/5hpXR0u2eluWPAhig==} + '@next/swc-darwin-arm64@15.4.8': + resolution: {integrity: sha512-Pf6zXp7yyQEn7sqMxur6+kYcywx5up1J849psyET7/8pG2gQTVMjU3NzgIt8SeEP5to3If/SaWmaA6H6ysBr1A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.4.1': - resolution: {integrity: sha512-jfz1RXu6SzL14lFl05/MNkcN35lTLMJWPbqt7Xaj35+ZWAX342aePIJrN6xBdGeKl6jPXJm0Yqo3Xvh3Gpo3Uw==} + '@next/swc-darwin-x64@15.4.8': + resolution: {integrity: sha512-xla6AOfz68a6kq3gRQccWEvFC/VRGJmA/QuSLENSO7CZX5WIEkSz7r1FdXUjtGCQ1c2M+ndUAH7opdfLK1PQbw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.4.1': - resolution: {integrity: sha512-k0tOFn3dsnkaGfs6iQz8Ms6f1CyQe4GacXF979sL8PNQxjYS1swx9VsOyUQYaPoGV8nAZ7OX8cYaeiXGq9ahPQ==} + '@next/swc-linux-arm64-gnu@15.4.8': + resolution: {integrity: sha512-y3fmp+1Px/SJD+5ntve5QLZnGLycsxsVPkTzAc3zUiXYSOlTPqT8ynfmt6tt4fSo1tAhDPmryXpYKEAcoAPDJw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@15.4.1': - resolution: {integrity: sha512-4ogGQ/3qDzbbK3IwV88ltihHFbQVq6Qr+uEapzXHXBH1KsVBZOB50sn6BWHPcFjwSoMX2Tj9eH/fZvQnSIgc3g==} + '@next/swc-linux-arm64-musl@15.4.8': + resolution: {integrity: sha512-DX/L8VHzrr1CfwaVjBQr3GWCqNNFgyWJbeQ10Lx/phzbQo3JNAxUok1DZ8JHRGcL6PgMRgj6HylnLNndxn4Z6A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@15.4.1': - resolution: {integrity: sha512-Jj0Rfw3wIgp+eahMz/tOGwlcYYEFjlBPKU7NqoOkTX0LY45i5W0WcDpgiDWSLrN8KFQq/LW7fZq46gxGCiOYlQ==} + '@next/swc-linux-x64-gnu@15.4.8': + resolution: {integrity: sha512-9fLAAXKAL3xEIFdKdzG5rUSvSiZTLLTCc6JKq1z04DR4zY7DbAPcRvNm3K1inVhTiQCs19ZRAgUerHiVKMZZIA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@15.4.1': - resolution: {integrity: sha512-9WlEZfnw1vFqkWsTMzZDgNL7AUI1aiBHi0S2m8jvycPyCq/fbZjtE/nDkhJRYbSjXbtRHYLDBlmP95kpjEmJbw==} + '@next/swc-linux-x64-musl@15.4.8': + resolution: {integrity: sha512-s45V7nfb5g7dbS7JK6XZDcapicVrMMvX2uYgOHP16QuKH/JA285oy6HcxlKqwUNaFY/UC6EvQ8QZUOo19cBKSA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@15.4.1': - resolution: {integrity: sha512-WodRbZ9g6CQLRZsG3gtrA9w7Qfa9BwDzhFVdlI6sV0OCPq9JrOrJSp9/ioLsezbV8w9RCJ8v55uzJuJ5RgWLZg==} + '@next/swc-win32-arm64-msvc@15.4.8': + resolution: {integrity: sha512-KjgeQyOAq7t/HzAJcWPGA8X+4WY03uSCZ2Ekk98S9OgCFsb6lfBE3dbUzUuEQAN2THbwYgFfxX2yFTCMm8Kehw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.4.1': - resolution: {integrity: sha512-y+wTBxelk2xiNofmDOVU7O5WxTHcvOoL3srOM0kxTzKDjQ57kPU0tpnPJ/BWrRnsOwXEv0+3QSbGR7hY4n9LkQ==} + '@next/swc-win32-x64-msvc@15.4.8': + resolution: {integrity: sha512-Exsmf/+42fWVnLMaZHzshukTBxZrSwuuLKFvqhGHJ+mC1AokqieLY/XzAl3jc/CqhXLqLY3RRjkKJ9YnLPcRWg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -4035,8 +4035,8 @@ packages: resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} - next@15.4.1: - resolution: {integrity: sha512-eNKB1q8C7o9zXF8+jgJs2CzSLIU3T6bQtX6DcTnCq1sIR1CJ0GlSyRs1BubQi3/JgCnr9Vr+rS5mOMI38FFyQw==} + next@15.4.8: + resolution: {integrity: sha512-jwOXTz/bo0Pvlf20FSb6VXVeWRssA2vbvq9SdrOPEg9x8E1B27C2rQtvriAn600o9hH61kjrVRexEffv3JybuA==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -4551,10 +4551,10 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - react-dom@19.1.0: - resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + react-dom@19.1.2: + resolution: {integrity: sha512-dEoydsCp50i7kS1xHOmPXq4zQYoGWedUsvqv9H6zdif2r7yLHygyfP9qou71TulRN0d6ng9EbRVsQhSqfUc19g==} peerDependencies: - react: ^19.1.0 + react: ^19.1.2 react-i18next@16.2.3: resolution: {integrity: sha512-O0t2zvmIz7nHWKNfIL+O/NTIbpTaOPY0vZov779hegbep3IZ+xcqkeVPKWBSXwzdkiv77q8zmq9toKIUys1x3A==} @@ -4596,8 +4596,8 @@ packages: react: '>=18.0.0' react-dom: '>=18.0.0' - react@19.1.0: - resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + react@19.1.2: + resolution: {integrity: sha512-MdWVitvLbQULD+4DP8GYjZUrepGW7d+GQkNVqJEzNxE+e9WIa4egVFE/RDfVb1u9u/Jw7dNMmPB4IqxzbFYJ0w==} engines: {node: '>=0.10.0'} read-binary-file-arch@1.0.6: @@ -5537,24 +5537,24 @@ snapshots: dependencies: '@ant-design/fast-color': 2.0.6 - '@ant-design/cssinjs-utils@1.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@ant-design/cssinjs-utils@1.1.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: - '@ant-design/cssinjs': 1.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@ant-design/cssinjs': 1.24.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) '@babel/runtime': 7.28.4 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - '@ant-design/cssinjs@1.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@ant-design/cssinjs@1.24.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: '@babel/runtime': 7.28.4 '@emotion/hash': 0.8.0 '@emotion/unitless': 0.7.5 classnames: 2.5.1 csstype: 3.1.3 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) stylis: 4.3.6 '@ant-design/fast-color@2.0.6': @@ -5563,22 +5563,22 @@ snapshots: '@ant-design/icons-svg@4.4.2': {} - '@ant-design/icons@5.6.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@ant-design/icons@5.6.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: '@ant-design/colors': 7.2.1 '@ant-design/icons-svg': 4.4.2 '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - '@ant-design/react-slick@1.1.2(react@19.1.0)': + '@ant-design/react-slick@1.1.2(react@19.1.2)': dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 json2mq: 0.2.0 - react: 19.1.0 + react: 19.1.2 resize-observer-polyfill: 1.5.1 throttle-debounce: 5.0.2 @@ -6306,7 +6306,7 @@ snapshots: transitivePeerDependencies: - ai - '@jarvis-agent/electron@0.1.10(ai@5.0.76(zod@4.1.12))(electron@33.4.11)': + '@jarvis-agent/electron@0.1.11(ai@5.0.76(zod@4.1.12))(electron@33.4.11)': dependencies: '@jarvis-agent/core': 0.1.5(ai@5.0.76(zod@4.1.12)) electron: 33.4.11 @@ -6601,34 +6601,34 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@next/env@15.4.1': {} + '@next/env@15.4.8': {} '@next/eslint-plugin-next@15.4.1': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@15.4.1': + '@next/swc-darwin-arm64@15.4.8': optional: true - '@next/swc-darwin-x64@15.4.1': + '@next/swc-darwin-x64@15.4.8': optional: true - '@next/swc-linux-arm64-gnu@15.4.1': + '@next/swc-linux-arm64-gnu@15.4.8': optional: true - '@next/swc-linux-arm64-musl@15.4.1': + '@next/swc-linux-arm64-musl@15.4.8': optional: true - '@next/swc-linux-x64-gnu@15.4.1': + '@next/swc-linux-x64-gnu@15.4.8': optional: true - '@next/swc-linux-x64-musl@15.4.1': + '@next/swc-linux-x64-musl@15.4.8': optional: true - '@next/swc-win32-arm64-msvc@15.4.1': + '@next/swc-win32-arm64-msvc@15.4.8': optional: true - '@next/swc-win32-x64-msvc@15.4.1': + '@next/swc-win32-x64-msvc@15.4.8': optional: true '@nodelib/fs.scandir@2.1.5': @@ -6671,101 +6671,101 @@ snapshots: dependencies: '@babel/runtime': 7.28.4 - '@rc-component/color-picker@2.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@rc-component/color-picker@2.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: '@ant-design/fast-color': 2.0.6 '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - '@rc-component/context@1.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@rc-component/context@1.4.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: '@babel/runtime': 7.28.4 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) '@rc-component/mini-decimal@1.1.0': dependencies: '@babel/runtime': 7.28.4 - '@rc-component/mutate-observer@1.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@rc-component/mutate-observer@1.1.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - '@rc-component/portal@1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@rc-component/portal@1.1.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - '@rc-component/qrcode@1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@rc-component/qrcode@1.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - '@rc-component/tour@1.15.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@rc-component/tour@1.15.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: '@babel/runtime': 7.28.4 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/trigger': 2.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/portal': 1.1.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@rc-component/trigger': 2.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - '@rc-component/trigger@2.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@rc-component/trigger@2.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: '@babel/runtime': 7.28.4 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/portal': 1.1.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-resize-observer: 1.4.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - '@react-spring/animated@10.0.3(react@19.1.0)': + '@react-spring/animated@10.0.3(react@19.1.2)': dependencies: - '@react-spring/shared': 10.0.3(react@19.1.0) + '@react-spring/shared': 10.0.3(react@19.1.2) '@react-spring/types': 10.0.3 - react: 19.1.0 + react: 19.1.2 - '@react-spring/core@10.0.3(react@19.1.0)': + '@react-spring/core@10.0.3(react@19.1.2)': dependencies: - '@react-spring/animated': 10.0.3(react@19.1.0) - '@react-spring/shared': 10.0.3(react@19.1.0) + '@react-spring/animated': 10.0.3(react@19.1.2) + '@react-spring/shared': 10.0.3(react@19.1.2) '@react-spring/types': 10.0.3 - react: 19.1.0 + react: 19.1.2 '@react-spring/rafz@10.0.3': {} - '@react-spring/shared@10.0.3(react@19.1.0)': + '@react-spring/shared@10.0.3(react@19.1.2)': dependencies: '@react-spring/rafz': 10.0.3 '@react-spring/types': 10.0.3 - react: 19.1.0 + react: 19.1.2 '@react-spring/types@10.0.3': {} - '@react-spring/web@10.0.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@react-spring/web@10.0.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': dependencies: - '@react-spring/animated': 10.0.3(react@19.1.0) - '@react-spring/core': 10.0.3(react@19.1.0) - '@react-spring/shared': 10.0.3(react@19.1.0) + '@react-spring/animated': 10.0.3(react@19.1.2) + '@react-spring/core': 10.0.3(react@19.1.2) + '@react-spring/shared': 10.0.3(react@19.1.2) '@react-spring/types': 10.0.3 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) '@rollup/rollup-android-arm-eabi@4.52.5': optional: true @@ -7347,57 +7347,57 @@ snapshots: ansi-styles@6.2.3: {} - antd@5.27.5(date-fns@4.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + antd@5.27.5(date-fns@4.1.0)(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@ant-design/colors': 7.2.1 - '@ant-design/cssinjs': 1.24.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@ant-design/cssinjs-utils': 1.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@ant-design/cssinjs': 1.24.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@ant-design/cssinjs-utils': 1.1.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) '@ant-design/fast-color': 2.0.6 - '@ant-design/icons': 5.6.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@ant-design/react-slick': 1.1.2(react@19.1.0) + '@ant-design/icons': 5.6.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@ant-design/react-slick': 1.1.2(react@19.1.2) '@babel/runtime': 7.28.4 - '@rc-component/color-picker': 2.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/mutate-observer': 1.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/qrcode': 1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/tour': 1.15.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rc-component/trigger': 2.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/color-picker': 2.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@rc-component/mutate-observer': 1.1.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@rc-component/qrcode': 1.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@rc-component/tour': 1.15.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@rc-component/trigger': 2.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 copy-to-clipboard: 3.3.3 dayjs: 1.11.18 - rc-cascader: 3.34.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-checkbox: 3.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-collapse: 3.9.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-dialog: 9.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-drawer: 7.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-dropdown: 4.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-field-form: 2.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-image: 7.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-input: 1.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-input-number: 9.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-mentions: 2.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-menu: 9.16.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-notification: 5.6.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-pagination: 5.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-picker: 4.11.3(date-fns@4.1.0)(dayjs@1.11.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-progress: 4.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-rate: 2.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-segmented: 2.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-select: 14.16.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-slider: 11.1.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-steps: 6.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-switch: 4.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-table: 7.54.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tabs: 15.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-textarea: 1.10.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tooltip: 6.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tree: 5.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tree-select: 5.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-upload: 4.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-cascader: 3.34.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-checkbox: 3.5.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-collapse: 3.9.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-dialog: 9.6.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-drawer: 7.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-dropdown: 4.2.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-field-form: 2.7.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-image: 7.12.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-input: 1.8.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-input-number: 9.5.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-mentions: 2.20.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-menu: 9.16.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-notification: 5.6.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-pagination: 5.1.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-picker: 4.11.3(date-fns@4.1.0)(dayjs@1.11.18)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-progress: 4.0.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-rate: 2.13.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-resize-observer: 1.4.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-segmented: 2.7.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-select: 14.16.8(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-slider: 11.1.9(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-steps: 6.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-switch: 4.1.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-table: 7.54.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-tabs: 15.7.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-textarea: 1.10.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-tooltip: 6.4.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-tree: 5.13.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-tree-select: 5.27.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-upload: 4.9.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) scroll-into-view-if-needed: 3.1.0 throttle-debounce: 5.0.2 transitivePeerDependencies: @@ -8795,14 +8795,14 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 - framer-motion@12.23.24(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + framer-motion@12.23.24(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: motion-dom: 12.23.23 motion-utils: 12.23.6 tslib: 2.8.1 optionalDependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) fs-constants@1.0.0: {} @@ -10384,24 +10384,24 @@ snapshots: negotiator@0.6.4: {} - next@15.4.1(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.4.8(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: - '@next/env': 15.4.1 + '@next/env': 15.4.8 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001751 postcss: 8.4.31 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - styled-jsx: 5.1.6(@babel/core@7.28.4)(react@19.1.0) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) + styled-jsx: 5.1.6(@babel/core@7.28.4)(react@19.1.2) optionalDependencies: - '@next/swc-darwin-arm64': 15.4.1 - '@next/swc-darwin-x64': 15.4.1 - '@next/swc-linux-arm64-gnu': 15.4.1 - '@next/swc-linux-arm64-musl': 15.4.1 - '@next/swc-linux-x64-gnu': 15.4.1 - '@next/swc-linux-x64-musl': 15.4.1 - '@next/swc-win32-arm64-msvc': 15.4.1 - '@next/swc-win32-x64-msvc': 15.4.1 + '@next/swc-darwin-arm64': 15.4.8 + '@next/swc-darwin-x64': 15.4.8 + '@next/swc-linux-arm64-gnu': 15.4.8 + '@next/swc-linux-arm64-musl': 15.4.8 + '@next/swc-linux-x64-gnu': 15.4.8 + '@next/swc-linux-x64-musl': 15.4.8 + '@next/swc-win32-arm64-msvc': 15.4.8 + '@next/swc-win32-x64-msvc': 15.4.8 '@opentelemetry/api': 1.9.0 sharp: 0.34.4 transitivePeerDependencies: @@ -10703,351 +10703,351 @@ snapshots: quick-lru@5.1.1: {} - rc-cascader@3.34.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-cascader@3.34.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-select: 14.16.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tree: 5.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-select: 14.16.8(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-tree: 5.13.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-checkbox@3.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-checkbox@3.5.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-collapse@3.9.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-collapse@3.9.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-dialog@9.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-dialog@9.6.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/portal': 1.1.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-drawer@7.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-drawer@7.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/portal': 1.1.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-dropdown@4.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-dropdown@4.2.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/trigger': 2.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/trigger': 2.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-field-form@2.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-field-form@2.7.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 '@rc-component/async-validator': 5.0.4 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-image@7.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-image@7.12.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/portal': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/portal': 1.1.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-dialog: 9.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-dialog: 9.6.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-input-number@9.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-input-number@9.5.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 '@rc-component/mini-decimal': 1.1.0 classnames: 2.5.1 - rc-input: 1.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-input: 1.8.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-input@1.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-input@1.8.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-mentions@2.20.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-mentions@2.20.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/trigger': 2.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/trigger': 2.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-input: 1.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-menu: 9.16.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-textarea: 1.10.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-input: 1.8.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-menu: 9.16.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-textarea: 1.10.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-menu@9.16.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-menu@9.16.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/trigger': 2.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/trigger': 2.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-overflow: 1.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-overflow: 1.5.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-motion@2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-motion@2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-notification@5.6.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-notification@5.6.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-overflow@1.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-overflow@1.5.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-resize-observer: 1.4.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-pagination@5.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-pagination@5.1.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-picker@4.11.3(date-fns@4.1.0)(dayjs@1.11.18)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-picker@4.11.3(date-fns@4.1.0)(dayjs@1.11.18)(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/trigger': 2.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/trigger': 2.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-overflow: 1.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-overflow: 1.5.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-resize-observer: 1.4.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) optionalDependencies: date-fns: 4.1.0 dayjs: 1.11.18 - rc-progress@4.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-progress@4.0.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-rate@2.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-rate@2.13.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-resize-observer@1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-resize-observer@1.4.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) resize-observer-polyfill: 1.5.1 - rc-segmented@2.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-segmented@2.7.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-select@14.16.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-select@14.16.8(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/trigger': 2.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/trigger': 2.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-overflow: 1.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-virtual-list: 3.19.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-overflow: 1.5.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-virtual-list: 3.19.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-slider@11.1.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-slider@11.1.9(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-steps@6.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-steps@6.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-switch@4.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-switch@4.1.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-table@7.54.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-table@7.54.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/context': 1.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/context': 1.4.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-virtual-list: 3.19.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-resize-observer: 1.4.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-virtual-list: 3.19.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-tabs@15.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-tabs@15.7.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-dropdown: 4.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-menu: 9.16.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-dropdown: 4.2.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-menu: 9.16.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-resize-observer: 1.4.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-textarea@1.10.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-textarea@1.10.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-input: 1.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-input: 1.8.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-resize-observer: 1.4.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-tooltip@6.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-tooltip@6.4.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - '@rc-component/trigger': 2.3.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rc-component/trigger': 2.3.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2) classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-tree-select@5.27.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-tree-select@5.27.0(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-select: 14.16.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-tree: 5.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-select: 14.16.8(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-tree: 5.13.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-tree@5.13.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-tree@5.13.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-virtual-list: 3.19.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-motion: 2.9.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-virtual-list: 3.19.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-upload@4.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-upload@4.9.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - rc-util@5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-util@5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) react-is: 18.3.1 - rc-virtual-list@3.19.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + rc-virtual-list@3.19.2(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: '@babel/runtime': 7.28.4 classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + rc-resize-observer: 1.4.3(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + rc-util: 5.44.4(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - react-dom@19.1.0(react@19.1.0): + react-dom@19.1.2(react@19.1.2): dependencies: - react: 19.1.0 + react: 19.1.2 scheduler: 0.26.0 - react-i18next@16.2.3(i18next@25.6.0(typescript@5.9.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.9.3): + react-i18next@16.2.3(i18next@25.6.0(typescript@5.9.3))(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.4 html-parse-stringify: 3.0.1 i18next: 25.6.0(typescript@5.9.3) - react: 19.1.0 - use-sync-external-store: 1.6.0(react@19.1.0) + react: 19.1.2 + use-sync-external-store: 1.6.0(react@19.1.2) optionalDependencies: - react-dom: 19.1.0(react@19.1.0) + react-dom: 19.1.2(react@19.1.2) typescript: 5.9.3 - react-icons@5.5.0(react@19.1.0): + react-icons@5.5.0(react@19.1.2): dependencies: - react: 19.1.0 + react: 19.1.2 react-is@16.13.1: {} react-is@18.3.1: {} - react-markdown@10.1.0(@types/react@19.2.2)(react@19.1.0): + react-markdown@10.1.0(@types/react@19.2.2)(react@19.1.2): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -11056,7 +11056,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 mdast-util-to-hast: 13.2.0 - react: 19.1.0 + react: 19.1.2 remark-parse: 11.0.0 remark-rehype: 11.1.2 unified: 11.0.5 @@ -11065,12 +11065,12 @@ snapshots: transitivePeerDependencies: - supports-color - react-simple-typewriter@5.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-simple-typewriter@5.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2): dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 19.1.2 + react-dom: 19.1.2(react@19.1.2) - react@19.1.0: {} + react@19.1.2: {} read-binary-file-arch@1.0.6: dependencies: @@ -11569,10 +11569,10 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.6(@babel/core@7.28.4)(react@19.1.0): + styled-jsx@5.1.6(@babel/core@7.28.4)(react@19.1.2): dependencies: client-only: 0.0.1 - react: 19.1.0 + react: 19.1.2 optionalDependencies: '@babel/core': 7.28.4 @@ -11856,9 +11856,9 @@ snapshots: dependencies: punycode: 2.3.1 - use-sync-external-store@1.6.0(react@19.1.0): + use-sync-external-store@1.6.0(react@19.1.2): dependencies: - react: 19.1.0 + react: 19.1.2 utf8-byte-length@1.0.5: {} @@ -12047,11 +12047,11 @@ snapshots: zod@4.1.12: {} - zustand@5.0.8(@types/react@19.2.2)(immer@10.2.0)(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0)): + zustand@5.0.8(@types/react@19.2.2)(immer@10.2.0)(react@19.1.2)(use-sync-external-store@1.6.0(react@19.1.2)): optionalDependencies: '@types/react': 19.2.2 immer: 10.2.0 - react: 19.1.0 - use-sync-external-store: 1.6.0(react@19.1.0) + react: 19.1.2 + use-sync-external-store: 1.6.0(react@19.1.2) zwitch@2.0.4: {} diff --git a/src/components/chat/HistoryPlaybackControl.tsx b/src/components/chat/HistoryPlaybackControl.tsx deleted file mode 100644 index c5a9ea6..0000000 --- a/src/components/chat/HistoryPlaybackControl.tsx +++ /dev/null @@ -1,233 +0,0 @@ -import React from 'react'; -import { Button, Slider, Select, Space, Tooltip, Popover } from 'antd'; -import { - CaretRightOutlined, - PauseOutlined, - StepBackwardOutlined, - StepForwardOutlined, - ReloadOutlined, - SettingOutlined -} from '@ant-design/icons'; -import { PlaybackState, PlaybackSpeed } from '@/hooks/useHistoryPlayback'; -import { useTranslation } from 'react-i18next'; - -interface HistoryPlaybackControlProps { - playbackState: PlaybackState; - currentIndex: number; - totalMessages: number; - speed: PlaybackSpeed; - progress: number; - onPlay: () => void; - onPause: () => void; - onRestart: () => void; - onStepForward: () => void; - onStepBackward: () => void; - onSpeedChange: (speed: PlaybackSpeed) => void; - onProgressChange: (index: number) => void; -} - -/** - * History playback control panel - * Provides playback controls like play/pause, speed adjustment, and progress seeking - */ -export const HistoryPlaybackControl: React.FC = ({ - playbackState, - currentIndex, - totalMessages, - speed, - progress, - onPlay, - onPause, - onRestart, - onStepForward, - onStepBackward, - onSpeedChange, - onProgressChange, -}) => { - const { t } = useTranslation('playback'); - - const isPlaying = playbackState === 'playing'; - const isCompleted = playbackState === 'completed'; - const isIdle = playbackState === 'idle'; - - // Speed options - const speedOptions = [ - { label: '0.5x', value: 0.5 }, - { label: '1x', value: 1 }, - { label: '2x', value: 2 }, - { label: '5x', value: 5 }, - { label: '10x', value: 10 }, - ]; - - // Handle slider change - const handleSliderChange = (value: number) => { - // Convert progress (0-100) to message index - const targetIndex = Math.round((value / 100) * (totalMessages - 1)); - onProgressChange(targetIndex); - }; - - // Get current message count display - const messageCountDisplay = `${Math.max(0, currentIndex + 1)} / ${totalMessages}`; - - return ( -
-
- {/* Progress bar */} -
- - {messageCountDisplay} - - `${value}%`, - }} - className="flex-1" - styles={{ - track: { - background: 'linear-gradient(90deg, #5E31D8 0%, #8B5CF6 100%)', - }, - rail: { - background: 'rgba(255, 255, 255, 0.1)', - }, - }} - /> - - {progress}% - -
- - {/* Control buttons */} -
- - {/* Step backward */} - -