@jingyi0605/codingns4dsh 0.2.1-beta.11 → 0.2.1-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +7 -5
- package/README.md +9 -5
- package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts +1 -1
- package/data/build/dist/bootstrap/index.d.ts +1 -1
- package/data/build/dist/client/account-bar.d.ts.map +1 -1
- package/data/build/dist/client/account-bar.js +24 -70
- package/data/build/dist/client/account-bar.js.map +1 -1
- package/data/build/dist/client/adapter-catalog-watch.d.ts +1 -1
- package/data/build/dist/client/adapter-catalog-watch.d.ts.map +1 -1
- package/data/build/dist/client/adapter-catalog-watch.js +2 -2
- package/data/build/dist/client/adapter-catalog-watch.js.map +1 -1
- package/data/build/dist/client/bundle.js +35978 -21117
- package/data/build/dist/client/bundle.js.map +1 -1
- package/data/build/dist/client/cli-management-dialog.d.ts +21 -0
- package/data/build/dist/client/cli-management-dialog.d.ts.map +1 -0
- package/data/build/dist/client/cli-management-dialog.js +215 -0
- package/data/build/dist/client/cli-management-dialog.js.map +1 -0
- package/data/build/dist/client/cli-management-terminal.d.ts +9 -0
- package/data/build/dist/client/cli-management-terminal.d.ts.map +1 -0
- package/data/build/dist/client/cli-management-terminal.js +30 -0
- package/data/build/dist/client/cli-management-terminal.js.map +1 -0
- package/data/build/dist/client/cli-settings-dialog.d.ts +9 -0
- package/data/build/dist/client/cli-settings-dialog.d.ts.map +1 -0
- package/data/build/dist/client/cli-settings-dialog.js +45 -0
- package/data/build/dist/client/cli-settings-dialog.js.map +1 -0
- package/data/build/dist/client/cli-settings-rpc.js +1 -1
- package/data/build/dist/client/cli-settings-rpc.js.map +1 -1
- package/data/build/dist/client/cli-slots.d.ts +7 -2
- package/data/build/dist/client/cli-slots.d.ts.map +1 -1
- package/data/build/dist/client/cli-slots.js +44 -12
- package/data/build/dist/client/cli-slots.js.map +1 -1
- package/data/build/dist/client/client.assistant-configuration-view.js +5 -5
- package/data/build/dist/client/client.assistant-configuration-view.js.map +1 -1
- package/data/build/dist/client/client.editor-engine.js +4 -1
- package/data/build/dist/client/client.editor-engine.js.map +1 -1
- package/data/build/dist/client/client.moss-voice-output.js +0 -166
- package/data/build/dist/client/client.moss-voice-output.js.map +1 -1
- package/data/build/dist/client/client.native-workspace-store.js +4 -4
- package/data/build/dist/client/client.native-workspace-store.js.map +1 -1
- package/data/build/dist/client/client.primitives-adapter.js +53 -0
- package/data/build/dist/client/client.primitives-adapter.js.map +1 -1
- package/data/build/dist/client/client.react-dom.js +166 -0
- package/data/build/dist/client/client.react-dom.js.map +1 -1
- package/data/build/dist/client/client.session-translation.js +25 -1
- package/data/build/dist/client/client.session-translation.js.map +1 -1
- package/data/build/dist/client/client.transport.js +503 -42
- package/data/build/dist/client/client.transport.js.map +1 -1
- package/data/build/dist/client/conversation-translation-settings.d.ts +11 -0
- package/data/build/dist/client/conversation-translation-settings.d.ts.map +1 -0
- package/data/build/dist/client/conversation-translation-settings.js +54 -0
- package/data/build/dist/client/conversation-translation-settings.js.map +1 -0
- package/data/build/dist/client/desktop-assistant.js +967 -479
- package/data/build/dist/client/editor-engine.d.ts +1 -1
- package/data/build/dist/client/editor-engine.d.ts.map +1 -1
- package/data/build/dist/client/editor-engine.js +4 -1
- package/data/build/dist/client/editor-engine.js.map +1 -1
- package/data/build/dist/client/features/cli-adapters.d.ts +3 -1
- package/data/build/dist/client/features/cli-adapters.d.ts.map +1 -1
- package/data/build/dist/client/features/cli-adapters.js +182 -106
- package/data/build/dist/client/features/cli-adapters.js.map +1 -1
- package/data/build/dist/client/features/file-management.d.ts.map +1 -1
- package/data/build/dist/client/features/file-management.js +2 -0
- package/data/build/dist/client/features/file-management.js.map +1 -1
- package/data/build/dist/client/features/index.d.ts.map +1 -1
- package/data/build/dist/client/features/index.js +2 -0
- package/data/build/dist/client/features/index.js.map +1 -1
- package/data/build/dist/client/features/peer-host.d.ts.map +1 -1
- package/data/build/dist/client/features/peer-host.js +3 -0
- package/data/build/dist/client/features/peer-host.js.map +1 -1
- package/data/build/dist/client/features/quick-apps.d.ts +3 -0
- package/data/build/dist/client/features/quick-apps.d.ts.map +1 -0
- package/data/build/dist/client/features/quick-apps.js +14 -0
- package/data/build/dist/client/features/quick-apps.js.map +1 -0
- package/data/build/dist/client/features/session-translation.d.ts.map +1 -1
- package/data/build/dist/client/features/session-translation.js +7 -1
- package/data/build/dist/client/features/session-translation.js.map +1 -1
- package/data/build/dist/client/html-workspace-files.d.ts +4 -0
- package/data/build/dist/client/html-workspace-files.d.ts.map +1 -0
- package/data/build/dist/client/html-workspace-files.js +114 -0
- package/data/build/dist/client/html-workspace-files.js.map +1 -0
- package/data/build/dist/client/locale.d.ts.map +1 -1
- package/data/build/dist/client/locale.js +6 -0
- package/data/build/dist/client/locale.js.map +1 -1
- package/data/build/dist/client/locales/cliManagement.d.ts +3 -0
- package/data/build/dist/client/locales/cliManagement.d.ts.map +1 -0
- package/data/build/dist/client/locales/cliManagement.js +139 -0
- package/data/build/dist/client/locales/cliManagement.js.map +1 -0
- package/data/build/dist/client/locales/fileWorkspace.d.ts.map +1 -1
- package/data/build/dist/client/locales/fileWorkspace.js +4 -0
- package/data/build/dist/client/locales/fileWorkspace.js.map +1 -1
- package/data/build/dist/client/locales/panels.d.ts.map +1 -1
- package/data/build/dist/client/locales/panels.js +46 -0
- package/data/build/dist/client/locales/panels.js.map +1 -1
- package/data/build/dist/client/locales/quickApps.d.ts +130 -0
- package/data/build/dist/client/locales/quickApps.d.ts.map +1 -0
- package/data/build/dist/client/locales/quickApps.js +150 -0
- package/data/build/dist/client/locales/quickApps.js.map +1 -0
- package/data/build/dist/client/native-model-translation-menu.d.ts.map +1 -1
- package/data/build/dist/client/native-model-translation-menu.js +3 -1
- package/data/build/dist/client/native-model-translation-menu.js.map +1 -1
- package/data/build/dist/client/quick-apps/client.d.ts +29 -0
- package/data/build/dist/client/quick-apps/client.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/client.js +68 -0
- package/data/build/dist/client/quick-apps/client.js.map +1 -0
- package/data/build/dist/client/quick-apps/document.d.ts +26 -0
- package/data/build/dist/client/quick-apps/document.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/document.js +110 -0
- package/data/build/dist/client/quick-apps/document.js.map +1 -0
- package/data/build/dist/client/quick-apps/file-picker.d.ts +14 -0
- package/data/build/dist/client/quick-apps/file-picker.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/file-picker.js +51 -0
- package/data/build/dist/client/quick-apps/file-picker.js.map +1 -0
- package/data/build/dist/client/quick-apps/launcher.d.ts +7 -0
- package/data/build/dist/client/quick-apps/launcher.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/launcher.js +252 -0
- package/data/build/dist/client/quick-apps/launcher.js.map +1 -0
- package/data/build/dist/client/quick-apps/presentation.d.ts +16 -0
- package/data/build/dist/client/quick-apps/presentation.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/presentation.js +31 -0
- package/data/build/dist/client/quick-apps/presentation.js.map +1 -0
- package/data/build/dist/client/quick-apps/reorder-animation.d.ts +6 -0
- package/data/build/dist/client/quick-apps/reorder-animation.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/reorder-animation.js +50 -0
- package/data/build/dist/client/quick-apps/reorder-animation.js.map +1 -0
- package/data/build/dist/client/quick-apps/reorder.d.ts +26 -0
- package/data/build/dist/client/quick-apps/reorder.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/reorder.js +128 -0
- package/data/build/dist/client/quick-apps/reorder.js.map +1 -0
- package/data/build/dist/client/quick-apps/styles.d.ts +3 -0
- package/data/build/dist/client/quick-apps/styles.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/styles.js +143 -0
- package/data/build/dist/client/quick-apps/styles.js.map +1 -0
- package/data/build/dist/client/quick-apps/ui.d.ts +20 -0
- package/data/build/dist/client/quick-apps/ui.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/ui.js +21 -0
- package/data/build/dist/client/quick-apps/ui.js.map +1 -0
- package/data/build/dist/client/quick-apps/viewer.d.ts +16 -0
- package/data/build/dist/client/quick-apps/viewer.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/viewer.js +155 -0
- package/data/build/dist/client/quick-apps/viewer.js.map +1 -0
- package/data/build/dist/client/quick-apps/workspace-picker.d.ts +19 -0
- package/data/build/dist/client/quick-apps/workspace-picker.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/workspace-picker.js +30 -0
- package/data/build/dist/client/quick-apps/workspace-picker.js.map +1 -0
- package/data/build/dist/client/session-translation-chat.d.ts +10 -4
- package/data/build/dist/client/session-translation-chat.d.ts.map +1 -1
- package/data/build/dist/client/session-translation-chat.js +154 -52
- package/data/build/dist/client/session-translation-chat.js.map +1 -1
- package/data/build/dist/client/session-translation-pending-dom.d.ts +1 -1
- package/data/build/dist/client/session-translation-pending-dom.d.ts.map +1 -1
- package/data/build/dist/client/session-translation-pending-dom.js +4 -4
- package/data/build/dist/client/session-translation-pending-dom.js.map +1 -1
- package/data/build/dist/client/session-translation-retry.d.ts +16 -0
- package/data/build/dist/client/session-translation-retry.d.ts.map +1 -0
- package/data/build/dist/client/session-translation-retry.js +66 -0
- package/data/build/dist/client/session-translation-retry.js.map +1 -0
- package/data/build/dist/client/session-translation-rules.d.ts +13 -0
- package/data/build/dist/client/session-translation-rules.d.ts.map +1 -0
- package/data/build/dist/client/session-translation-rules.js +58 -0
- package/data/build/dist/client/session-translation-rules.js.map +1 -0
- package/data/build/dist/client/sidebar-footer-style.d.ts +13 -0
- package/data/build/dist/client/sidebar-footer-style.d.ts.map +1 -0
- package/data/build/dist/client/sidebar-footer-style.js +54 -0
- package/data/build/dist/client/sidebar-footer-style.js.map +1 -0
- package/data/build/dist/client/style.css +276 -276
- package/data/build/dist/client/terminal/model.d.ts.map +1 -1
- package/data/build/dist/client/terminal/model.js +2 -1
- package/data/build/dist/client/terminal/model.js.map +1 -1
- package/data/build/dist/dsh-capabilities/client/composer-slot-selectors.d.ts +4 -0
- package/data/build/dist/dsh-capabilities/client/composer-slot-selectors.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/composer-slot-selectors.js +8 -0
- package/data/build/dist/dsh-capabilities/client/composer-slot-selectors.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.js +4 -13
- package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.js.map +1 -1
- package/data/build/dist/dsh-capabilities/client/interaction-text-dom.js +1 -1
- package/data/build/dist/dsh-capabilities/client/interaction-text-dom.js.map +1 -1
- package/data/build/dist/dsh-capabilities/client/message-presentation-adapter.d.ts +19 -0
- package/data/build/dist/dsh-capabilities/client/message-presentation-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/message-presentation-adapter.js +39 -0
- package/data/build/dist/dsh-capabilities/client/message-presentation-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts +18 -0
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.js +21 -0
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.js.map +1 -1
- package/data/build/dist/dsh-capabilities/client/quick-app-footer-adapter.d.ts +18 -0
- package/data/build/dist/dsh-capabilities/client/quick-app-footer-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/quick-app-footer-adapter.js +11 -0
- package/data/build/dist/dsh-capabilities/client/quick-app-footer-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.d.ts +8 -0
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js +100 -0
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/sidebar-footer-icon-adapter.d.ts +3 -0
- package/data/build/dist/dsh-capabilities/client/sidebar-footer-icon-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/sidebar-footer-icon-adapter.js +22 -0
- package/data/build/dist/dsh-capabilities/client/sidebar-footer-icon-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.d.ts +2 -0
- package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.js +28 -0
- package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.js.map +1 -1
- package/data/build/dist/dsh-capabilities/host/connection-peer-adapter.d.ts +10 -0
- package/data/build/dist/dsh-capabilities/host/connection-peer-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/connection-peer-adapter.js +34 -0
- package/data/build/dist/dsh-capabilities/host/connection-peer-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/native-dispatch-adapter.d.ts +21 -0
- package/data/build/dist/dsh-capabilities/host/native-dispatch-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/native-dispatch-adapter.js +11 -0
- package/data/build/dist/dsh-capabilities/host/native-dispatch-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-credentials.d.ts +11 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-credentials.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-credentials.js +97 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-credentials.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-https-provider.d.ts +36 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-https-provider.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-https-provider.js +164 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-https-provider.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-lan-ports.d.ts +44 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-lan-ports.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-lan-ports.js +240 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-lan-ports.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-origin-adapter.d.ts +37 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-origin-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-origin-adapter.js +35 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-origin-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-adapter.d.ts +13 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-adapter.js +30 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-provider.d.ts +21 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-provider.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-provider.js +132 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-provider.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-transport.d.ts +10 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-transport.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-transport.js +33 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-transport.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-activation-adapter.d.ts +17 -0
- package/data/build/dist/dsh-capabilities/host/session-activation-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-activation-adapter.js +37 -0
- package/data/build/dist/dsh-capabilities/host/session-activation-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.d.ts +17 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.js +45 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-performance-adapter.d.ts +7 -0
- package/data/build/dist/dsh-capabilities/host/session-performance-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-performance-adapter.js +18 -0
- package/data/build/dist/dsh-capabilities/host/session-performance-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.d.ts +28 -0
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.js +31 -0
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/workspace-directory-adapter.d.ts +13 -0
- package/data/build/dist/dsh-capabilities/host/workspace-directory-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/workspace-directory-adapter.js +24 -0
- package/data/build/dist/dsh-capabilities/host/workspace-directory-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/matrix.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.js +19 -5
- package/data/build/dist/dsh-capabilities/matrix.js.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.d.ts +1 -0
- package/data/build/dist/dsh-capabilities/routes.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.js +41 -5
- package/data/build/dist/dsh-capabilities/routes.js.map +1 -1
- package/data/build/dist/dsh-capabilities/types.d.ts +1 -1
- package/data/build/dist/dsh-capabilities/types.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/types.js.map +1 -1
- package/data/build/dist/host/cli-adapters/antigravity-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/antigravity-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/attachment-utils.d.ts +4 -3
- package/data/build/dist/host/cli-adapters/attachment-utils.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/attachment-utils.js +9 -8
- package/data/build/dist/host/cli-adapters/attachment-utils.js.map +1 -1
- package/data/build/dist/host/cli-adapters/binary-detection.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/binary-detection.js +7 -3
- package/data/build/dist/host/cli-adapters/binary-detection.js.map +1 -1
- package/data/build/dist/host/cli-adapters/claude-driver.d.ts +1 -0
- package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/claude-driver.js +180 -21
- package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/codex-driver.d.ts +18 -0
- package/data/build/dist/host/cli-adapters/codex-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/codex-driver.js +97 -5
- package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/codex-performance-projection.d.ts +91 -0
- package/data/build/dist/host/cli-adapters/codex-performance-projection.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/codex-performance-projection.js +8 -0
- package/data/build/dist/host/cli-adapters/codex-performance-projection.js.map +1 -0
- package/data/build/dist/host/cli-adapters/codex-performance.d.ts +16 -0
- package/data/build/dist/host/cli-adapters/codex-performance.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/codex-performance.js +81 -0
- package/data/build/dist/host/cli-adapters/codex-performance.js.map +1 -0
- package/data/build/dist/host/cli-adapters/command-code-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/driver.d.ts +2 -0
- package/data/build/dist/host/cli-adapters/driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts +2 -0
- package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-message-projector.js +28 -7
- package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.d.ts +2 -0
- package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.js +186 -71
- package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
- package/data/build/dist/host/cli-adapters/gemini-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/gemini-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-driver.d.ts +3 -0
- package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-driver.js +277 -53
- package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-performance-projection.d.ts +123 -0
- package/data/build/dist/host/cli-adapters/grok-performance-projection.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/grok-performance-projection.js +47 -0
- package/data/build/dist/host/cli-adapters/grok-performance-projection.js.map +1 -0
- package/data/build/dist/host/cli-adapters/grok-usage.d.ts +45 -0
- package/data/build/dist/host/cli-adapters/grok-usage.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/grok-usage.js +197 -0
- package/data/build/dist/host/cli-adapters/grok-usage.js.map +1 -0
- package/data/build/dist/host/cli-adapters/kimi-driver.js +2 -2
- package/data/build/dist/host/cli-adapters/kimi-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/management-installation.d.ts +5 -0
- package/data/build/dist/host/cli-adapters/management-installation.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/management-installation.js +131 -0
- package/data/build/dist/host/cli-adapters/management-installation.js.map +1 -0
- package/data/build/dist/host/cli-adapters/management-methods.d.ts +32 -0
- package/data/build/dist/host/cli-adapters/management-methods.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/management-methods.js +135 -0
- package/data/build/dist/host/cli-adapters/management-methods.js.map +1 -0
- package/data/build/dist/host/cli-adapters/management-process.d.ts +7 -0
- package/data/build/dist/host/cli-adapters/management-process.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/management-process.js +51 -0
- package/data/build/dist/host/cli-adapters/management-process.js.map +1 -0
- package/data/build/dist/host/cli-adapters/management.d.ts +32 -0
- package/data/build/dist/host/cli-adapters/management.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/management.js +172 -0
- package/data/build/dist/host/cli-adapters/management.js.map +1 -0
- package/data/build/dist/host/cli-adapters/mcode-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/mcode-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/model-catalog.d.ts +1 -0
- package/data/build/dist/host/cli-adapters/model-catalog.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/model-catalog.js +62 -0
- package/data/build/dist/host/cli-adapters/model-catalog.js.map +1 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.js +2 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -1
- package/data/build/dist/host/cli-adapters/opencode-driver.d.ts +22 -0
- package/data/build/dist/host/cli-adapters/opencode-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/opencode-driver.js +105 -17
- package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/pi-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/process-utils.d.ts +2 -0
- package/data/build/dist/host/cli-adapters/process-utils.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/process-utils.js +16 -11
- package/data/build/dist/host/cli-adapters/process-utils.js.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.d.ts +3 -0
- package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.js +56 -21
- package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
- package/data/build/dist/host/cli-adapters/session-performance-projection.d.ts +74 -0
- package/data/build/dist/host/cli-adapters/session-performance-projection.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/session-performance-projection.js +83 -0
- package/data/build/dist/host/cli-adapters/session-performance-projection.js.map +1 -0
- package/data/build/dist/host/cli-adapters/stream-normalizer.d.ts +3 -1
- package/data/build/dist/host/cli-adapters/stream-normalizer.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/stream-normalizer.js +2 -0
- package/data/build/dist/host/cli-adapters/stream-normalizer.js.map +1 -1
- package/data/build/dist/host/cli-adapters/update-check.d.ts +34 -0
- package/data/build/dist/host/cli-adapters/update-check.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/update-check.js +263 -0
- package/data/build/dist/host/cli-adapters/update-check.js.map +1 -0
- package/data/build/dist/host/cli-adapters/zcode-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/zcode-driver.js.map +1 -1
- package/data/build/dist/host/features/file-management.d.ts.map +1 -1
- package/data/build/dist/host/features/file-management.js +8 -0
- package/data/build/dist/host/features/file-management.js.map +1 -1
- package/data/build/dist/host/features/global-voice-rpc.d.ts.map +1 -1
- package/data/build/dist/host/features/global-voice-rpc.js +2 -3
- package/data/build/dist/host/features/global-voice-rpc.js.map +1 -1
- package/data/build/dist/host/features/index.d.ts.map +1 -1
- package/data/build/dist/host/features/index.js +2 -0
- package/data/build/dist/host/features/index.js.map +1 -1
- package/data/build/dist/host/features/lan-access-dsh.js +1 -1
- package/data/build/dist/host/features/lan-access-dsh.js.map +1 -1
- package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
- package/data/build/dist/host/features/peer-host.js +13 -6
- package/data/build/dist/host/features/peer-host.js.map +1 -1
- package/data/build/dist/host/features/quick-apps.d.ts +4 -0
- package/data/build/dist/host/features/quick-apps.d.ts.map +1 -0
- package/data/build/dist/host/features/quick-apps.js +158 -0
- package/data/build/dist/host/features/quick-apps.js.map +1 -0
- package/data/build/dist/host/features/session-prompt-translation.d.ts +10 -0
- package/data/build/dist/host/features/session-prompt-translation.d.ts.map +1 -0
- package/data/build/dist/host/features/session-prompt-translation.js +198 -0
- package/data/build/dist/host/features/session-prompt-translation.js.map +1 -0
- package/data/build/dist/host/features/session-translation-protection.d.ts +12 -1
- package/data/build/dist/host/features/session-translation-protection.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation-protection.js +44 -5
- package/data/build/dist/host/features/session-translation-protection.js.map +1 -1
- package/data/build/dist/host/features/session-translation-recovery.d.ts +21 -0
- package/data/build/dist/host/features/session-translation-recovery.d.ts.map +1 -0
- package/data/build/dist/host/features/session-translation-recovery.js +125 -0
- package/data/build/dist/host/features/session-translation-recovery.js.map +1 -0
- package/data/build/dist/host/features/session-translation-service.d.ts +8 -2
- package/data/build/dist/host/features/session-translation-service.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation-service.js +69 -19
- package/data/build/dist/host/features/session-translation-service.js.map +1 -1
- package/data/build/dist/host/features/session-translation.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation.js +4 -1
- package/data/build/dist/host/features/session-translation.js.map +1 -1
- package/data/build/dist/host/features/types.d.ts +10 -0
- package/data/build/dist/host/features/types.d.ts.map +1 -1
- package/data/build/dist/host/html-workspace-files.d.ts +3 -0
- package/data/build/dist/host/html-workspace-files.d.ts.map +1 -0
- package/data/build/dist/host/html-workspace-files.js +135 -0
- package/data/build/dist/host/html-workspace-files.js.map +1 -0
- package/data/build/dist/host/index.d.ts.map +1 -1
- package/data/build/dist/host/index.js +27 -2
- package/data/build/dist/host/index.js.map +1 -1
- package/data/build/dist/host/lan-access-dsh.d.ts +5 -1
- package/data/build/dist/host/lan-access-dsh.d.ts.map +1 -1
- package/data/build/dist/host/lan-access-dsh.js +43 -2
- package/data/build/dist/host/lan-access-dsh.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.d.ts +2 -2
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.js +10 -9
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.d.ts +3 -3
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.js +26 -14
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/quick-app-gateway.d.ts +5 -0
- package/data/build/dist/host/modules/peer-host/quick-app-gateway.d.ts.map +1 -0
- package/data/build/dist/host/modules/peer-host/quick-app-gateway.js +27 -0
- package/data/build/dist/host/modules/peer-host/quick-app-gateway.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/browse.d.ts +5 -0
- package/data/build/dist/host/modules/quick-apps/browse.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/browse.js +37 -0
- package/data/build/dist/host/modules/quick-apps/browse.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/code-revision.d.ts +4 -0
- package/data/build/dist/host/modules/quick-apps/code-revision.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/code-revision.js +39 -0
- package/data/build/dist/host/modules/quick-apps/code-revision.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/documents.d.ts +14 -0
- package/data/build/dist/host/modules/quick-apps/documents.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/documents.js +87 -0
- package/data/build/dist/host/modules/quick-apps/documents.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/errors.d.ts +8 -0
- package/data/build/dist/host/modules/quick-apps/errors.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/errors.js +15 -0
- package/data/build/dist/host/modules/quick-apps/errors.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/file-api.d.ts +30 -0
- package/data/build/dist/host/modules/quick-apps/file-api.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/file-api.js +149 -0
- package/data/build/dist/host/modules/quick-apps/file-api.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/launches.d.ts +35 -0
- package/data/build/dist/host/modules/quick-apps/launches.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/launches.js +80 -0
- package/data/build/dist/host/modules/quick-apps/launches.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/paths.d.ts +14 -0
- package/data/build/dist/host/modules/quick-apps/paths.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/paths.js +72 -0
- package/data/build/dist/host/modules/quick-apps/paths.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/registry.d.ts +30 -0
- package/data/build/dist/host/modules/quick-apps/registry.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/registry.js +186 -0
- package/data/build/dist/host/modules/quick-apps/registry.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/remote.d.ts +38 -0
- package/data/build/dist/host/modules/quick-apps/remote.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/remote.js +237 -0
- package/data/build/dist/host/modules/quick-apps/remote.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/service.d.ts +27 -0
- package/data/build/dist/host/modules/quick-apps/service.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/service.js +170 -0
- package/data/build/dist/host/modules/quick-apps/service.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/static-handler.d.ts +8 -0
- package/data/build/dist/host/modules/quick-apps/static-handler.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/static-handler.js +181 -0
- package/data/build/dist/host/modules/quick-apps/static-handler.js.map +1 -0
- package/data/build/dist/host/native-session-bridge.d.ts +7 -1
- package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
- package/data/build/dist/host/native-session-bridge.js +8 -13
- package/data/build/dist/host/native-session-bridge.js.map +1 -1
- package/data/build/dist/host/rpc.d.ts.map +1 -1
- package/data/build/dist/host/rpc.js +21 -10
- package/data/build/dist/host/rpc.js.map +1 -1
- package/data/build/dist/host/settings.d.ts.map +1 -1
- package/data/build/dist/host/settings.js +18 -1
- package/data/build/dist/host/settings.js.map +1 -1
- package/data/build/dist/host/workspace-file-mutations.d.ts +2 -0
- package/data/build/dist/host/workspace-file-mutations.d.ts.map +1 -0
- package/data/build/dist/host/workspace-file-mutations.js +15 -0
- package/data/build/dist/host/workspace-file-mutations.js.map +1 -0
- package/data/build/dist/shared/attachment-prompts.d.ts +11 -0
- package/data/build/dist/shared/attachment-prompts.d.ts.map +1 -0
- package/data/build/dist/shared/attachment-prompts.js +17 -0
- package/data/build/dist/shared/attachment-prompts.js.map +1 -0
- package/data/build/dist/shared/codex-performance.d.ts +3 -0
- package/data/build/dist/shared/codex-performance.d.ts.map +1 -0
- package/data/build/dist/shared/codex-performance.js +2 -0
- package/data/build/dist/shared/codex-performance.js.map +1 -0
- package/data/build/dist/shared/contracts/cli-adapter.d.ts +33 -1
- package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/cli-management.d.ts +29 -0
- package/data/build/dist/shared/contracts/cli-management.d.ts.map +1 -0
- package/data/build/dist/shared/contracts/cli-management.js +2 -0
- package/data/build/dist/shared/contracts/cli-management.js.map +1 -0
- package/data/build/dist/shared/contracts/config.d.ts +2 -0
- package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/config.js.map +1 -1
- package/data/build/dist/shared/contracts/errors.d.ts +2 -2
- package/data/build/dist/shared/contracts/quick-apps.d.ts +68 -0
- package/data/build/dist/shared/contracts/quick-apps.d.ts.map +1 -0
- package/data/build/dist/shared/contracts/quick-apps.js +4 -0
- package/data/build/dist/shared/contracts/quick-apps.js.map +1 -0
- package/data/build/dist/shared/contracts/session-translation.d.ts +20 -2
- package/data/build/dist/shared/contracts/session-translation.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/session-translation.js +24 -0
- package/data/build/dist/shared/contracts/session-translation.js.map +1 -1
- package/data/build/dist/shared/contracts/version.d.ts +4 -4
- package/data/build/dist/shared/contracts/version.js +3 -3
- package/data/build/dist/shared/peer-host-http-routes.d.ts +4 -0
- package/data/build/dist/shared/peer-host-http-routes.d.ts.map +1 -1
- package/data/build/dist/shared/peer-host-http-routes.js +4 -0
- package/data/build/dist/shared/peer-host-http-routes.js.map +1 -1
- package/data/build/dist/shared/quick-app-proxy-path.d.ts +6 -0
- package/data/build/dist/shared/quick-app-proxy-path.d.ts.map +1 -0
- package/data/build/dist/shared/quick-app-proxy-path.js +18 -0
- package/data/build/dist/shared/quick-app-proxy-path.js.map +1 -0
- package/data/build/dist/shared/quick-apps-bootstrap-locale.d.ts +7 -0
- package/data/build/dist/shared/quick-apps-bootstrap-locale.d.ts.map +1 -0
- package/data/build/dist/shared/quick-apps-bootstrap-locale.js +10 -0
- package/data/build/dist/shared/quick-apps-bootstrap-locale.js.map +1 -0
- package/data/build/dist/shared/request-performance.d.ts +15 -0
- package/data/build/dist/shared/request-performance.d.ts.map +1 -0
- package/data/build/dist/shared/request-performance.js +3 -0
- package/data/build/dist/shared/request-performance.js.map +1 -0
- package/package.json +35 -34
- package/profile/README.md +2 -2
- package/profile/package.json +3 -3
- package/profile/version.json +3 -3
- package/version.json +3 -3
|
@@ -7811,7 +7811,7 @@
|
|
|
7811
7811
|
* 只放该域新增的键;合并与命名空间注册由 ../locale.ts 统一完成。
|
|
7812
7812
|
* 规范见 docs/开发规范/20260930-前端文案国际化规范.md。
|
|
7813
7813
|
*/
|
|
7814
|
-
const en$
|
|
7814
|
+
const en$16 = {
|
|
7815
7815
|
"debug.title": "Debug",
|
|
7816
7816
|
"debug.guideDescription": "Start workspace commands, check ports, and open services",
|
|
7817
7817
|
"debug.readingWorkspace": "Reading workspace…",
|
|
@@ -7889,7 +7889,7 @@
|
|
|
7889
7889
|
"feature.debug.label": "Workspace debugging",
|
|
7890
7890
|
"feature.debug.description": "Launch terminals and check services"
|
|
7891
7891
|
};
|
|
7892
|
-
const zh$
|
|
7892
|
+
const zh$16 = {
|
|
7893
7893
|
"debug.title": "调试",
|
|
7894
7894
|
"debug.guideDescription": "启动工作区命令、检查端口并访问服务",
|
|
7895
7895
|
"debug.readingWorkspace": "正在读取工作区…",
|
|
@@ -7970,7 +7970,7 @@
|
|
|
7970
7970
|
//#endregion
|
|
7971
7971
|
//#region src/client/locales/assistantDebug.ts
|
|
7972
7972
|
/** 全局助理调试页词典;状态名与 JSON 只在明确的调试区域展示。 */
|
|
7973
|
-
const zh$
|
|
7973
|
+
const zh$15 = {
|
|
7974
7974
|
"assistant.debug.open": "全局项目状态调试",
|
|
7975
7975
|
"assistant.debug.title": "全局助理管理状态调试",
|
|
7976
7976
|
"assistant.debug.description": "独立检查工作区范围、会话状态和文字指令,无需启动语音。",
|
|
@@ -8150,7 +8150,7 @@
|
|
|
8150
8150
|
"assistant.debug.analysisState.cancelled": "总结已停止,原始索引材料已保留",
|
|
8151
8151
|
"assistant.debug.rawEvidence": "以下是原始会话摘录,作为总结证据保留,不是 LLM 生成的进展判断。"
|
|
8152
8152
|
};
|
|
8153
|
-
const en$
|
|
8153
|
+
const en$15 = {
|
|
8154
8154
|
"assistant.debug.open": "Global project state debug",
|
|
8155
8155
|
"assistant.debug.title": "Global assistant management debug",
|
|
8156
8156
|
"assistant.debug.description": "Inspect workspace scope, session state and text commands without starting voice.",
|
|
@@ -8332,7 +8332,7 @@
|
|
|
8332
8332
|
};
|
|
8333
8333
|
//#endregion
|
|
8334
8334
|
//#region src/client/locales/assistantAvatar.ts
|
|
8335
|
-
const en$
|
|
8335
|
+
const en$14 = {
|
|
8336
8336
|
"avatar.portraitTitle": "Avatar",
|
|
8337
8337
|
"avatar.portraitEdit": "Adjust avatar",
|
|
8338
8338
|
"avatar.portraitLocalHint": "Saved in this browser for this character; conversation and sidebar avatars update together.",
|
|
@@ -8468,7 +8468,7 @@
|
|
|
8468
8468
|
"avatar.desktopFallback": "Desktop companion unavailable; showing inside this window.",
|
|
8469
8469
|
"avatar.dragHint": "Drag to move; click to open the assistant."
|
|
8470
8470
|
};
|
|
8471
|
-
const zh$
|
|
8471
|
+
const zh$14 = {
|
|
8472
8472
|
"avatar.portraitTitle": "头像",
|
|
8473
8473
|
"avatar.portraitEdit": "微调头像",
|
|
8474
8474
|
"avatar.portraitLocalHint": "按形象保存在当前浏览器,对话与侧栏头像同步更新。",
|
|
@@ -8612,7 +8612,9 @@
|
|
|
8612
8612
|
* 只放该域新增的键;合并与命名空间注册由 ../locale.ts 统一完成。
|
|
8613
8613
|
* 规范见 docs/开发规范/20260930-前端文案国际化规范.md。
|
|
8614
8614
|
*/
|
|
8615
|
-
const en$
|
|
8615
|
+
const en$13 = {
|
|
8616
|
+
"htmlFiles.confirmConnect": "Allow this HTML page to read, save, and delete files in these locations?\n\nPage: {path}\n\n{scopes}\n\nAccess lasts until this preview is closed or reloaded.",
|
|
8617
|
+
"htmlFiles.cancelled": "Workspace file connection cancelled.",
|
|
8616
8618
|
"fileMenu.expandFolder": "Expand folder",
|
|
8617
8619
|
"fileMenu.openFile": "Open file",
|
|
8618
8620
|
"fileMenu.download": "Download file",
|
|
@@ -8681,7 +8683,9 @@
|
|
|
8681
8683
|
"pwaPrompt.dismiss": "Not now",
|
|
8682
8684
|
"pwaPrompt.iosHint": "Tap \"Share\" then \"Add to Home Screen\" to install."
|
|
8683
8685
|
};
|
|
8684
|
-
const zh$
|
|
8686
|
+
const zh$13 = {
|
|
8687
|
+
"htmlFiles.confirmConnect": "允许此 HTML 页面读取、保存和删除以下位置中的文件吗?\n\n页面:{path}\n\n{scopes}\n\n授权在关闭或重新加载预览后失效。",
|
|
8688
|
+
"htmlFiles.cancelled": "已取消工作区文件连接。",
|
|
8685
8689
|
"fileMenu.expandFolder": "展开文件夹",
|
|
8686
8690
|
"fileMenu.openFile": "打开文件",
|
|
8687
8691
|
"fileMenu.download": "下载文件",
|
|
@@ -8758,7 +8762,7 @@
|
|
|
8758
8762
|
* 只放该域新增的键;合并与命名空间注册由 ../locale.ts 统一完成。
|
|
8759
8763
|
* 规范见 docs/开发规范/20260930-前端文案国际化规范.md。
|
|
8760
8764
|
*/
|
|
8761
|
-
const en$
|
|
8765
|
+
const en$12 = {
|
|
8762
8766
|
"feature.gitManagement.label": "Git repository management",
|
|
8763
8767
|
"feature.gitManagement.description": "View changes and manage commits",
|
|
8764
8768
|
"git.tabTitle": "Git",
|
|
@@ -8866,7 +8870,7 @@
|
|
|
8866
8870
|
"git.unknownTime": "Unknown time",
|
|
8867
8871
|
"git.dateLabel": "{month}/{day}"
|
|
8868
8872
|
};
|
|
8869
|
-
const zh$
|
|
8873
|
+
const zh$12 = {
|
|
8870
8874
|
"feature.gitManagement.label": "Git 仓库管理",
|
|
8871
8875
|
"feature.gitManagement.description": "查看改动并管理提交",
|
|
8872
8876
|
"git.tabTitle": "Git",
|
|
@@ -8982,7 +8986,7 @@
|
|
|
8982
8986
|
* 只放该域新增的键;合并与命名空间注册由 ../locale.ts 统一完成。
|
|
8983
8987
|
* 规范见 docs/开发规范/20260930-前端文案国际化规范.md。
|
|
8984
8988
|
*/
|
|
8985
|
-
const en$
|
|
8989
|
+
const en$11 = {
|
|
8986
8990
|
"common.listSeparator": ", ",
|
|
8987
8991
|
"settings.unknownVersion": "Unknown version",
|
|
8988
8992
|
"settings.maintenanceDisabled": "This module is disabled by maintenance policy; the setting will not start it.",
|
|
@@ -8991,6 +8995,12 @@
|
|
|
8991
8995
|
"cli.adapterDisabled": "{name} disabled",
|
|
8992
8996
|
"cli.translationConversation": "Translate conversation",
|
|
8993
8997
|
"cli.translationConversationToggle": "Toggle conversation translation",
|
|
8998
|
+
"cli.translationSettings": "Conversation translation settings",
|
|
8999
|
+
"cli.translationSettingsClose": "Close",
|
|
9000
|
+
"cli.translationSettingsDescription": "Choose which messages to translate for {agent}. These options are saved separately for each agent and apply to its conversations with translation enabled.",
|
|
9001
|
+
"cli.translationUserMessages": "Translate user messages",
|
|
9002
|
+
"cli.translationThinkingMessages": "Translate AI thinking messages",
|
|
9003
|
+
"cli.translationAssistantMessages": "Translate AI final messages",
|
|
8994
9004
|
"lan.fieldListenPort": "listen port",
|
|
8995
9005
|
"lan.fieldDshPort": "DSH local port",
|
|
8996
9006
|
"lan.fieldMustBeNumber": "{field} must be a number",
|
|
@@ -9003,6 +9013,17 @@
|
|
|
9003
9013
|
"translation.outputTitle": "Translate the AI’s reasoning and final messages into the language specified below",
|
|
9004
9014
|
"translation.outputLanguage": "Reply language",
|
|
9005
9015
|
"translation.modelTitle": "Translation model pool",
|
|
9016
|
+
"translation.rulesTitle": "Translation rules",
|
|
9017
|
+
"translation.rulesHelp": "Rules apply to input, reasoning, and replies, including text already in the target language. They take priority over the default translation prompts.",
|
|
9018
|
+
"translation.rulesEmpty": "No custom rules. The default translation prompts apply.",
|
|
9019
|
+
"translation.ruleAdd": "Add rule",
|
|
9020
|
+
"translation.ruleEdit": "Edit rule {number}",
|
|
9021
|
+
"translation.ruleRemove": "Remove rule {number}",
|
|
9022
|
+
"translation.ruleText": "Rule instructions",
|
|
9023
|
+
"translation.rulePlaceholder": "For example: Keep product names in their original language.",
|
|
9024
|
+
"translation.ruleSave": "Save rule",
|
|
9025
|
+
"translation.ruleSaving": "Saving…",
|
|
9026
|
+
"translation.ruleCancel": "Cancel",
|
|
9006
9027
|
"translation.modelFollowDefault": "Use the default DSH model",
|
|
9007
9028
|
"translation.modelResetTitle": "Use the default DSH model?",
|
|
9008
9029
|
"translation.modelResetHelp": "This will clear all {count} models and their priority order from the pool, then follow the default DSH model. Continue?",
|
|
@@ -9034,6 +9055,12 @@
|
|
|
9034
9055
|
"translation.statusTranslating": "Translating…",
|
|
9035
9056
|
"translation.progressHelp": "Preparing and translating your message. The translation result will be available when this finishes.",
|
|
9036
9057
|
"translation.statusFailed": "Translation failed; original kept",
|
|
9058
|
+
"translation.retry": "Retry translation",
|
|
9059
|
+
"translation.sendDirectly": "Send directly",
|
|
9060
|
+
"translation.cancelSending": "Cancel sending",
|
|
9061
|
+
"translation.inputFailedTitle": "Message translation failed",
|
|
9062
|
+
"translation.inputFailedHelp": "Your message has not been sent. Choose how to continue.",
|
|
9063
|
+
"translation.decisionFailed": "Could not apply your choice. Please try again.",
|
|
9037
9064
|
"translation.statusNotNeeded": "Already in the target language; translation skipped",
|
|
9038
9065
|
"translation.detectedLanguage": "Detected language",
|
|
9039
9066
|
"translation.modelNotUsed": "Not used; translation was unnecessary",
|
|
@@ -9060,7 +9087,7 @@
|
|
|
9060
9087
|
"translation.adapter.cursor": "Cursor",
|
|
9061
9088
|
"translation.adapter.kiro": "Kiro"
|
|
9062
9089
|
};
|
|
9063
|
-
const zh$
|
|
9090
|
+
const zh$11 = {
|
|
9064
9091
|
"common.listSeparator": "、",
|
|
9065
9092
|
"settings.unknownVersion": "未知版本",
|
|
9066
9093
|
"settings.maintenanceDisabled": "该模块当前由维护策略停用,设置不会启动它。",
|
|
@@ -9069,6 +9096,12 @@
|
|
|
9069
9096
|
"cli.adapterDisabled": "已停用 {name}",
|
|
9070
9097
|
"cli.translationConversation": "翻译对话",
|
|
9071
9098
|
"cli.translationConversationToggle": "切换对话翻译",
|
|
9099
|
+
"cli.translationSettings": "对话翻译设置",
|
|
9100
|
+
"cli.translationSettingsClose": "关闭",
|
|
9101
|
+
"cli.translationSettingsDescription": "选择 {agent} 需要翻译的消息类型。选项按 Agent 独立保存,应用于该 Agent 已开启对话翻译的会话。",
|
|
9102
|
+
"cli.translationUserMessages": "翻译用户消息",
|
|
9103
|
+
"cli.translationThinkingMessages": "翻译 AI 思考消息",
|
|
9104
|
+
"cli.translationAssistantMessages": "翻译 AI 正式消息",
|
|
9072
9105
|
"lan.fieldListenPort": "监听端口",
|
|
9073
9106
|
"lan.fieldDshPort": "DSH 本地端口",
|
|
9074
9107
|
"lan.fieldMustBeNumber": "{field} 必须是数字",
|
|
@@ -9081,6 +9114,17 @@
|
|
|
9081
9114
|
"translation.outputTitle": "AI的思考内容和正式消息翻译为以下指定语言",
|
|
9082
9115
|
"translation.outputLanguage": "回复语言",
|
|
9083
9116
|
"translation.modelTitle": "翻译模型池",
|
|
9117
|
+
"translation.rulesTitle": "翻译规则",
|
|
9118
|
+
"translation.rulesHelp": "规则适用于输入、思考和回复,包括已经是目标语言的文本。规则的优先级高于默认翻译提示词。",
|
|
9119
|
+
"translation.rulesEmpty": "尚未添加自定义规则,使用默认翻译提示词。",
|
|
9120
|
+
"translation.ruleAdd": "添加规则",
|
|
9121
|
+
"translation.ruleEdit": "编辑规则 {number}",
|
|
9122
|
+
"translation.ruleRemove": "移除规则 {number}",
|
|
9123
|
+
"translation.ruleText": "规则内容",
|
|
9124
|
+
"translation.rulePlaceholder": "例如:产品名称保留原文,不进行翻译。",
|
|
9125
|
+
"translation.ruleSave": "保存规则",
|
|
9126
|
+
"translation.ruleSaving": "正在保存…",
|
|
9127
|
+
"translation.ruleCancel": "取消",
|
|
9084
9128
|
"translation.modelFollowDefault": "跟随 DSH 默认模型",
|
|
9085
9129
|
"translation.modelResetTitle": "确认跟随 DSH 默认模型?",
|
|
9086
9130
|
"translation.modelResetHelp": "这将清空模型池中的全部 {count} 个模型及其优先级顺序,并改为跟随 DSH 默认模型。是否继续?",
|
|
@@ -9112,6 +9156,12 @@
|
|
|
9112
9156
|
"translation.statusTranslating": "正在翻译…",
|
|
9113
9157
|
"translation.progressHelp": "正在准备并翻译消息,完成后可查看翻译结果。",
|
|
9114
9158
|
"translation.statusFailed": "翻译失败,已保留原文",
|
|
9159
|
+
"translation.retry": "重试翻译",
|
|
9160
|
+
"translation.sendDirectly": "直接发送",
|
|
9161
|
+
"translation.cancelSending": "取消发送",
|
|
9162
|
+
"translation.inputFailedTitle": "消息翻译失败",
|
|
9163
|
+
"translation.inputFailedHelp": "消息尚未发送,请选择如何继续。",
|
|
9164
|
+
"translation.decisionFailed": "未能应用你的选择,请重试。",
|
|
9115
9165
|
"translation.statusNotNeeded": "原文已是目标语言,无需翻译",
|
|
9116
9166
|
"translation.detectedLanguage": "检测到的语言",
|
|
9117
9167
|
"translation.modelNotUsed": "未调用,原文无需翻译",
|
|
@@ -9146,7 +9196,7 @@
|
|
|
9146
9196
|
* 只放该域新增的键;合并与命名空间注册由 ../locale.ts 统一完成。
|
|
9147
9197
|
* 规范见 docs/开发规范/20260930-前端文案国际化规范.md。
|
|
9148
9198
|
*/
|
|
9149
|
-
const en$
|
|
9199
|
+
const en$10 = {
|
|
9150
9200
|
"feature.peerHost.label": "Manage other DSH Hosts",
|
|
9151
9201
|
"feature.peerHost.description": "Aggregate sessions from multiple Hosts",
|
|
9152
9202
|
"peerHost.panelTitle": "Manage other DSH Hosts",
|
|
@@ -9226,7 +9276,7 @@
|
|
|
9226
9276
|
"peerHost.stateActive": "The preboot shim has taken over the page Transport; the native Connection of this page keeps reusing the same instance.",
|
|
9227
9277
|
"peerHost.statePending": "The preboot shim is installed with CodingNS; it takes effect as soon as PeerHost is enabled, and native workspaces read the aggregate Transport directly."
|
|
9228
9278
|
};
|
|
9229
|
-
const zh$
|
|
9279
|
+
const zh$10 = {
|
|
9230
9280
|
"feature.peerHost.label": "管理其他 DSH Host",
|
|
9231
9281
|
"feature.peerHost.description": "聚合多个 Host 会话",
|
|
9232
9282
|
"peerHost.panelTitle": "管理其他 DSH Host",
|
|
@@ -9314,7 +9364,7 @@
|
|
|
9314
9364
|
* 只放该域新增的键;合并与命名空间注册由 ../locale.ts 统一完成。
|
|
9315
9365
|
* 规范见 docs/开发规范/20260930-前端文案国际化规范.md。
|
|
9316
9366
|
*/
|
|
9317
|
-
const en$
|
|
9367
|
+
const en$9 = {
|
|
9318
9368
|
"peerHostWorkspace.tabLocal": "Local folders",
|
|
9319
9369
|
"peerHostWorkspace.tabRemote": "Remote HOST",
|
|
9320
9370
|
"peerHostWorkspace.sourceLabel": "Workspace source",
|
|
@@ -9360,7 +9410,7 @@
|
|
|
9360
9410
|
"peerHostWorkspace.hintNotReady": "“{host}” is currently “{status}”; finish connecting it in the management panel first.",
|
|
9361
9411
|
"peerHostWorkspace.manageHosts": "Manage other DSH Hosts"
|
|
9362
9412
|
};
|
|
9363
|
-
const zh$
|
|
9413
|
+
const zh$9 = {
|
|
9364
9414
|
"peerHostWorkspace.tabLocal": "本机文件夹",
|
|
9365
9415
|
"peerHostWorkspace.tabRemote": "远程 HOST",
|
|
9366
9416
|
"peerHostWorkspace.sourceLabel": "工作区来源",
|
|
@@ -9414,7 +9464,7 @@
|
|
|
9414
9464
|
* 只放该域新增的键;合并与命名空间注册由 ../locale.ts 统一完成。
|
|
9415
9465
|
* 规范见 docs/开发规范/20260930-前端文案国际化规范.md。
|
|
9416
9466
|
*/
|
|
9417
|
-
const en$
|
|
9467
|
+
const en$8 = {
|
|
9418
9468
|
"terminalShare.title": "Share terminal output to a conversation",
|
|
9419
9469
|
"terminalShare.menuTitle": "Share to a conversation",
|
|
9420
9470
|
"terminalShare.more": "More conversations",
|
|
@@ -9487,7 +9537,7 @@
|
|
|
9487
9537
|
"loginProtection.errorTimeoutRange": "The session timeout must be between 60 and 604800 seconds",
|
|
9488
9538
|
"loginProtection.errorScopesRequired": "Select at least one scope"
|
|
9489
9539
|
};
|
|
9490
|
-
const zh$
|
|
9540
|
+
const zh$8 = {
|
|
9491
9541
|
"terminalShare.title": "分享终端输出至会话",
|
|
9492
9542
|
"terminalShare.menuTitle": "分享至会话",
|
|
9493
9543
|
"terminalShare.more": "更多会话",
|
|
@@ -9568,7 +9618,7 @@
|
|
|
9568
9618
|
* 只放该域新增的键;合并与命名空间注册由 ../locale.ts 统一完成。
|
|
9569
9619
|
* 规范见 docs/开发规范/20260930-前端文案国际化规范.md。
|
|
9570
9620
|
*/
|
|
9571
|
-
const en$
|
|
9621
|
+
const en$7 = {
|
|
9572
9622
|
"usage.r4StatsPeriod": "Account usage · UTC",
|
|
9573
9623
|
"usage.r4TodayIoTokens": "Input + output tokens today",
|
|
9574
9624
|
"usage.r4WeekRequests": "Requests · last 7 days",
|
|
@@ -9700,7 +9750,7 @@
|
|
|
9700
9750
|
"accountBar.relay": "Relay",
|
|
9701
9751
|
"accountBar.direct": "Direct"
|
|
9702
9752
|
};
|
|
9703
|
-
const zh$
|
|
9753
|
+
const zh$7 = {
|
|
9704
9754
|
"usage.r4StatsPeriod": "账户用量 · UTC",
|
|
9705
9755
|
"usage.r4TodayIoTokens": "今日输入与输出 Token",
|
|
9706
9756
|
"usage.r4WeekRequests": "近 7 天请求数",
|
|
@@ -9834,7 +9884,7 @@
|
|
|
9834
9884
|
};
|
|
9835
9885
|
//#endregion
|
|
9836
9886
|
//#region src/client/locales/voiceModels.ts
|
|
9837
|
-
const en$
|
|
9887
|
+
const en$6 = {
|
|
9838
9888
|
"voice.models.prepared": "Model resources are ready. Save the configuration to use this recognition model.",
|
|
9839
9889
|
"voice.settings.input": "Speech input",
|
|
9840
9890
|
"voice.settings.output": "Speech output",
|
|
@@ -9877,7 +9927,7 @@
|
|
|
9877
9927
|
"voice.models.localHint": "Models are stored on this Host. Verification tests model loading and recognition without using your microphone.",
|
|
9878
9928
|
"voice.models.close": "Close"
|
|
9879
9929
|
};
|
|
9880
|
-
const zh$
|
|
9930
|
+
const zh$6 = {
|
|
9881
9931
|
"voice.models.prepared": "模型资源已准备好,保存配置后使用此识别模型。",
|
|
9882
9932
|
"voice.settings.input": "语音输入",
|
|
9883
9933
|
"voice.settings.output": "语音输出",
|
|
@@ -9923,7 +9973,7 @@
|
|
|
9923
9973
|
//#endregion
|
|
9924
9974
|
//#region src/client/locales/assistantTts.ts
|
|
9925
9975
|
/** 独立音色面板词典;官方名称保留原文,元数据标签随界面语言翻译。 */
|
|
9926
|
-
const en$
|
|
9976
|
+
const en$5 = {
|
|
9927
9977
|
"tts.wizardPrepareResources": "Prepare voice resources",
|
|
9928
9978
|
"tts.wizardDraftReady": "Voice resources are ready. Configuration changes apply after saving.",
|
|
9929
9979
|
"tts.prepare": "Prepare MOSS resources",
|
|
@@ -10000,7 +10050,7 @@
|
|
|
10000
10050
|
"tts.saveParameters": "Save speech controls",
|
|
10001
10051
|
"tts.resetParameters": "Restore and save defaults"
|
|
10002
10052
|
};
|
|
10003
|
-
const zh$
|
|
10053
|
+
const zh$5 = {
|
|
10004
10054
|
"tts.wizardPrepareResources": "准备语音资源",
|
|
10005
10055
|
"tts.wizardDraftReady": "语音资源已就绪,配置保存后生效。",
|
|
10006
10056
|
"tts.prepare": "准备 MOSS 资源",
|
|
@@ -10080,7 +10130,7 @@
|
|
|
10080
10130
|
//#endregion
|
|
10081
10131
|
//#region src/client/locales/assistantWorkbench.ts
|
|
10082
10132
|
/** 生命周期工作台文案;高级资源管理复用原有词典。 */
|
|
10083
|
-
const zh$
|
|
10133
|
+
const zh$4 = {
|
|
10084
10134
|
"awb.notifications.title": "会话提醒",
|
|
10085
10135
|
"awb.notifications.hint": "在悬浮助理旁显示提醒,查看会话后标记已读。",
|
|
10086
10136
|
"awb.notifications.enabled": "启用会话提醒",
|
|
@@ -10248,7 +10298,7 @@
|
|
|
10248
10298
|
"awb.prompts": "提示词",
|
|
10249
10299
|
"awb.unavailableSelection": "原选择暂不可用:{id}"
|
|
10250
10300
|
};
|
|
10251
|
-
const en$
|
|
10301
|
+
const en$4 = {
|
|
10252
10302
|
"awb.notifications.title": "Session notices",
|
|
10253
10303
|
"awb.notifications.hint": "Show notices beside the floating assistant. Viewing a session marks its notice as read.",
|
|
10254
10304
|
"awb.notifications.enabled": "Enable session notices",
|
|
@@ -10426,7 +10476,7 @@
|
|
|
10426
10476
|
* 注册仍使用同一份 zh/en。
|
|
10427
10477
|
* 规范见 docs/开发规范/20260930-前端文案国际化规范.md。
|
|
10428
10478
|
*/
|
|
10429
|
-
const zh$
|
|
10479
|
+
const zh$3 = {
|
|
10430
10480
|
"subagentCollapsed.inactive.one": "已停止 {count} 个子智能体",
|
|
10431
10481
|
"subagentCollapsed.inactive.other": "已停止 {count} 个子智能体",
|
|
10432
10482
|
"subagentCollapsed.inactive.expand": "展开已停止的子智能体",
|
|
@@ -10469,7 +10519,7 @@
|
|
|
10469
10519
|
"subagentCollapsed.open.sidebar": "在侧边栏打开",
|
|
10470
10520
|
"subagentCollapsed.open.sidebar.aria": "在侧边栏打开 {label}"
|
|
10471
10521
|
};
|
|
10472
|
-
const en$
|
|
10522
|
+
const en$3 = {
|
|
10473
10523
|
"subagentCollapsed.inactive.one": "{count} stopped subagent",
|
|
10474
10524
|
"subagentCollapsed.inactive.other": "{count} stopped subagents",
|
|
10475
10525
|
"subagentCollapsed.inactive.expand": "Show stopped subagents",
|
|
@@ -10513,6 +10563,413 @@
|
|
|
10513
10563
|
"subagentCollapsed.open.sidebar.aria": "Open {label} in sidebar"
|
|
10514
10564
|
};
|
|
10515
10565
|
//#endregion
|
|
10566
|
+
//#region src/shared/quick-apps-bootstrap-locale.ts
|
|
10567
|
+
/** Shared by the client dictionary and the isolated credential landing page. */
|
|
10568
|
+
const quickAppBootstrapEn = {
|
|
10569
|
+
"quickApps.opening": "Opening application…",
|
|
10570
|
+
"quickApps.bootstrapFailed": "Application access could not be established. Reopen it from Quick Apps and check browser cookie settings."
|
|
10571
|
+
};
|
|
10572
|
+
const quickAppBootstrapZh = {
|
|
10573
|
+
"quickApps.opening": "正在打开应用…",
|
|
10574
|
+
"quickApps.bootstrapFailed": "无法建立应用访问,请从快捷应用重新打开并检查浏览器 Cookie 设置。"
|
|
10575
|
+
};
|
|
10576
|
+
//#endregion
|
|
10577
|
+
//#region src/client/locales/quickApps.ts
|
|
10578
|
+
const en$2 = {
|
|
10579
|
+
"quickApps.sandboxPreview": "Workspace preview. Browser storage and URLs starting with / may not work in this view.",
|
|
10580
|
+
"quickApps.runtime.not-configured": "This Host does not provide workspace HTML previews. Update its CodingNS plugin and reopen the shortcut.",
|
|
10581
|
+
"quickApps.runtime.config-invalid": "The Host’s HTML hosting configuration or TLS certificate is invalid.",
|
|
10582
|
+
"quickApps.runtime.lan-stopped": "Start LAN access on the owning Host to open this HTML app.",
|
|
10583
|
+
"quickApps.runtime.ui-not-allowed": "This DSH address is not enabled in the Host’s HTML hosting configuration.",
|
|
10584
|
+
"quickApps.runtime.ports-exhausted": "The reserved app ports have all been used. Extend the Host’s app port range; previously used ports cannot be reassigned.",
|
|
10585
|
+
"quickApps.runtime.ports-busy": "The available app ports are currently in use. Try again after they are released.",
|
|
10586
|
+
"quickApps.workspaceAccessHelp": "Saving lets this app read, create, update and delete files in {workspace}. Hidden files, credentials and other workspaces stay protected.",
|
|
10587
|
+
"quickApps.saveWorkspaceAccess": "Save and allow workspace access",
|
|
10588
|
+
"quickApps.workspaceAccessHostUpdate": "This Host needs an update to support workspace access. The shortcut was saved without enabling it.",
|
|
10589
|
+
"quickApps.workspaceAccessUnavailable": "Update the owning Host to support workspace access. The shortcut was not changed.",
|
|
10590
|
+
"quickApps.markdown": "Markdown",
|
|
10591
|
+
"quickApps.source": "Source",
|
|
10592
|
+
"quickApps.viewMode": "View as",
|
|
10593
|
+
"quickApps.markdownUnavailable": "Native Markdown preview is unavailable in this DSH version. Showing source.",
|
|
10594
|
+
"quickApps.maximize": "Maximize viewer",
|
|
10595
|
+
"quickApps.restore": "Restore viewer",
|
|
10596
|
+
"quickApps.loadingDocument": "Loading…",
|
|
10597
|
+
"quickApps.documentEditor": "Document editor",
|
|
10598
|
+
"quickApps.editorFailed": "The editor could not load.",
|
|
10599
|
+
"quickApps.copyCode": "Copy code",
|
|
10600
|
+
"quickApps.copied": "Copied",
|
|
10601
|
+
"quickApps.code": "Code",
|
|
10602
|
+
"quickApps.footnotes": "Footnotes",
|
|
10603
|
+
"quickApps.unwrapText": "Disable wrapping",
|
|
10604
|
+
"quickApps.imagesUnavailable": "Some images are unavailable or outside this document folder.",
|
|
10605
|
+
"quickApps.documentHome": "Back to entry document",
|
|
10606
|
+
"quickApps.documentLinkDenied": "This link is outside the document folder or uses an unsupported path.",
|
|
10607
|
+
"quickApps.documentHostUpdate": "Update the owning Host plugin to enable document operations. This document remains viewable.",
|
|
10608
|
+
"quickApps.documentConflict": "The file changed on the Host. Your draft is preserved. Copy your changes before reloading the latest file.",
|
|
10609
|
+
"quickApps.documentAccessExpired": "Document access has ended or is unavailable. Your draft is preserved; copy it before closing and reopening the shortcut.",
|
|
10610
|
+
"quickApps.documentSaved": "Saved to the workspace.",
|
|
10611
|
+
"quickApps.unsaved": "Unsaved changes",
|
|
10612
|
+
"quickApps.allowEditing": "Allow editing",
|
|
10613
|
+
"quickApps.allowEditingHelp": "Allow changes to {path}? This approval applies only to this file and ends when you close the viewer.",
|
|
10614
|
+
"quickApps.discardTitle": "Unsaved changes",
|
|
10615
|
+
"quickApps.discard": "Discard changes",
|
|
10616
|
+
"quickApps.discardHelp": "Your changes to {path} have not been saved. Discard them and continue?",
|
|
10617
|
+
"quickApps.viewerTools": "Viewer controls",
|
|
10618
|
+
"quickApps.wrapText": "Wrap text",
|
|
10619
|
+
"quickApps.reloadView": "Reload",
|
|
10620
|
+
"quickApps.entryAddress": "Application entry address",
|
|
10621
|
+
"quickApps.noWorkspaces": "No managed workspaces available",
|
|
10622
|
+
"quickApps.browse": "Browse…",
|
|
10623
|
+
"quickApps.chooseFile": "Choose a workspace file",
|
|
10624
|
+
"quickApps.useFile": "Use this file",
|
|
10625
|
+
"quickApps.currentFolder": "Current folder",
|
|
10626
|
+
"quickApps.parentFolder": "Go to parent folder",
|
|
10627
|
+
"quickApps.refreshFiles": "Refresh",
|
|
10628
|
+
"quickApps.loadingFiles": "Loading files…",
|
|
10629
|
+
"quickApps.emptyFolder": "This folder has no selectable files or folders.",
|
|
10630
|
+
"quickApps.filesTruncated": "Only the first part of this folder is shown. You can enter the file path directly.",
|
|
10631
|
+
"quickApps.selectFileHint": "Open a folder, then select an HTML application or text document.",
|
|
10632
|
+
"quickApps.browseUnavailable": "File browsing is unavailable on this Host. You can still enter a workspace-relative file path.",
|
|
10633
|
+
"quickApps.browseHostUpdateRequired": "This Host does not support file browsing. Update or reload its CodingNS plugin, then refresh this page. You can still enter a workspace-relative file path.",
|
|
10634
|
+
...quickAppBootstrapEn,
|
|
10635
|
+
"quickApps.manage": "Edit shortcuts",
|
|
10636
|
+
"quickApps.done": "Done",
|
|
10637
|
+
"quickApps.editShortcut": "Edit shortcut",
|
|
10638
|
+
"quickApps.collapseBar": "Collapse Quick Apps",
|
|
10639
|
+
"quickApps.expandBar": "Restore Quick Apps",
|
|
10640
|
+
"quickApps.removeNamed": "Remove {title}",
|
|
10641
|
+
"quickApps.reorderHelp": "Drag to reorder, or use Alt + arrow keys.",
|
|
10642
|
+
"quickApps.reordered": "Shortcut order saved.",
|
|
10643
|
+
"quickApps.manageHelp": "Choose a shortcut to edit its source, permissions or remove it.",
|
|
10644
|
+
"quickApps.openNamed": "Open {title}",
|
|
10645
|
+
"quickApps.editNamed": "Edit {title}",
|
|
10646
|
+
"quickApps.count": "Shortcuts: {count}",
|
|
10647
|
+
"quickApps.loading": "Loading shortcuts…",
|
|
10648
|
+
"quickApps.retry": "Try again",
|
|
10649
|
+
"quickApps.emptyTitle": "Your workspace, one click away",
|
|
10650
|
+
"quickApps.advanced": "Advanced options",
|
|
10651
|
+
"quickApps.accessAndRemoval": "Access and shortcut management",
|
|
10652
|
+
"quickApps.titleHelp": "Leave blank to use the file or application folder name.",
|
|
10653
|
+
"quickApps.entryHelp": "Choose a file or enter its path within the workspace.",
|
|
10654
|
+
"quickApps.entryPlaceholder": "apps/calendar/index.html",
|
|
10655
|
+
"quickApps.entryRequired": "Enter an application or document file path.",
|
|
10656
|
+
"quickApps.orderInvalid": "Use a whole number for the list order.",
|
|
10657
|
+
"quickApps.saved": "Shortcut saved.",
|
|
10658
|
+
"quickApps.revoked": "File access revoked. Existing launches have closed.",
|
|
10659
|
+
"quickApps.saveBeforeAccess": "Save your changes before managing access or removing this shortcut.",
|
|
10660
|
+
"quickApps.conflict": "This shortcut changed elsewhere. Your edits are still here; reopen the shortcut to load the latest version.",
|
|
10661
|
+
"quickApps.order": "List order",
|
|
10662
|
+
"quickApps.mounts": "Additional resource folders (optional)",
|
|
10663
|
+
"quickApps.mount.urlPrefix": "App URL path",
|
|
10664
|
+
"quickApps.mount.workspacePath": "Workspace folder",
|
|
10665
|
+
"quickApps.addMount": "Add resource folder",
|
|
10666
|
+
"quickApps.removeMount": "Remove resource folder",
|
|
10667
|
+
"quickApps.title": "Quick Apps",
|
|
10668
|
+
"quickApps.description": "Open workspace HTML applications and text documents without a conversation.",
|
|
10669
|
+
"quickApps.close": "Close Quick Apps",
|
|
10670
|
+
"quickApps.back": "Back to shortcuts",
|
|
10671
|
+
"quickApps.application": "Workspace application",
|
|
10672
|
+
"quickApps.add": "Add shortcut",
|
|
10673
|
+
"quickApps.open": "Open",
|
|
10674
|
+
"quickApps.edit": "Edit",
|
|
10675
|
+
"quickApps.remove": "Remove shortcut",
|
|
10676
|
+
"quickApps.permissions": "File permissions",
|
|
10677
|
+
"quickApps.revoke": "Revoke access",
|
|
10678
|
+
"quickApps.save": "Save",
|
|
10679
|
+
"quickApps.cancel": "Cancel",
|
|
10680
|
+
"quickApps.titleField": "Title",
|
|
10681
|
+
"quickApps.entryPath": "Entry file",
|
|
10682
|
+
"quickApps.documentRoot": "Application folder",
|
|
10683
|
+
"quickApps.workspace": "Workspace",
|
|
10684
|
+
"quickApps.chooseWorkspace": "Choose a managed workspace",
|
|
10685
|
+
"quickApps.localHost": "This Host",
|
|
10686
|
+
"quickApps.kind": "Open as",
|
|
10687
|
+
"quickApps.html": "HTML application",
|
|
10688
|
+
"quickApps.text": "Text document",
|
|
10689
|
+
"quickApps.spa": "Use the entry page for application navigation",
|
|
10690
|
+
"quickApps.pathHelp": "Enter workspace-relative paths. Use a dedicated application folder; an empty folder path selects the workspace root.",
|
|
10691
|
+
"quickApps.empty": "No shortcuts yet. In edit mode, add an HTML application or text document from a managed workspace.",
|
|
10692
|
+
"quickApps.removeHelp": "Removing a shortcut leaves its source files intact.",
|
|
10693
|
+
"quickApps.permissionHelp": "Optional file access for the next launch. Enter comma-separated workspace-relative folders; leave blank to deny. Approvals expire when the Host restarts or the shortcut or application code changes. Saving closes existing launches.",
|
|
10694
|
+
"quickApps.permission.read": "Read folders",
|
|
10695
|
+
"quickApps.permission.write": "Create and update folders",
|
|
10696
|
+
"quickApps.permission.delete": "Delete files in folders",
|
|
10697
|
+
"quickApps.permissionsSaved": "Permissions saved for the next launch.",
|
|
10698
|
+
"quickApps.unavailable": "HTML preview is unavailable on this Host connection. Update the owning Host plugin and reopen the shortcut.",
|
|
10699
|
+
"quickApps.status.unsupported-runtime": "HTML preview is unavailable on this Host connection.",
|
|
10700
|
+
"quickApps.status.disconnected-host": "The owning Host has no supported Quick Apps connection.",
|
|
10701
|
+
"quickApps.status.unsupported-connection": "This PeerHost relay cannot open Quick Apps. Use a direct connection to the owning Host.",
|
|
10702
|
+
"quickApps.status.missing-workspace": "The original workspace is unavailable.",
|
|
10703
|
+
"quickApps.status.missing-file": "The entry file or application folder is missing or cannot be accessed."
|
|
10704
|
+
};
|
|
10705
|
+
const zh$2 = {
|
|
10706
|
+
"quickApps.sandboxPreview": "工作区预览:浏览器存储和以 / 开头的网址可能无法在此视图中使用。",
|
|
10707
|
+
"quickApps.runtime.not-configured": "此主机尚不支持工作区 HTML 预览,请更新其 CodingNS 插件后重新打开快捷方式。",
|
|
10708
|
+
"quickApps.runtime.config-invalid": "主机的 HTML 托管配置或 TLS 证书无效。",
|
|
10709
|
+
"quickApps.runtime.lan-stopped": "请先在所属主机启动局域网访问,再打开此 HTML 应用。",
|
|
10710
|
+
"quickApps.runtime.ui-not-allowed": "主机的 HTML 托管配置尚未启用当前 DSH 地址。",
|
|
10711
|
+
"quickApps.runtime.ports-exhausted": "预留的应用端口已全部使用,请扩展主机的应用端口范围;已用端口不能重新分配。",
|
|
10712
|
+
"quickApps.runtime.ports-busy": "可用的应用端口正被占用,请在端口释放后重试。",
|
|
10713
|
+
"quickApps.workspaceAccessHelp": "保存后,此应用可读取、新建、修改和删除 {workspace} 中的文件。隐藏文件、凭据和其他工作区仍受保护。",
|
|
10714
|
+
"quickApps.saveWorkspaceAccess": "保存并允许访问工作区",
|
|
10715
|
+
"quickApps.workspaceAccessHostUpdate": "所属主机需要更新才能支持工作区访问。快捷方式已保存,但尚未启用此权限。",
|
|
10716
|
+
"quickApps.workspaceAccessUnavailable": "请更新所属主机以支持工作区访问。快捷方式未更改。",
|
|
10717
|
+
"quickApps.markdown": "Markdown",
|
|
10718
|
+
"quickApps.source": "源码",
|
|
10719
|
+
"quickApps.viewMode": "查看方式",
|
|
10720
|
+
"quickApps.markdownUnavailable": "当前 DSH 版本不支持原生 Markdown 预览,已显示源码。",
|
|
10721
|
+
"quickApps.maximize": "最大化查看器",
|
|
10722
|
+
"quickApps.restore": "还原查看器",
|
|
10723
|
+
"quickApps.loadingDocument": "正在加载…",
|
|
10724
|
+
"quickApps.documentEditor": "文档编辑器",
|
|
10725
|
+
"quickApps.editorFailed": "编辑器加载失败。",
|
|
10726
|
+
"quickApps.copyCode": "复制代码",
|
|
10727
|
+
"quickApps.copied": "已复制",
|
|
10728
|
+
"quickApps.code": "代码",
|
|
10729
|
+
"quickApps.footnotes": "脚注",
|
|
10730
|
+
"quickApps.unwrapText": "关闭自动换行",
|
|
10731
|
+
"quickApps.imagesUnavailable": "部分图片不可用或位于文档目录之外。",
|
|
10732
|
+
"quickApps.documentHome": "返回入口文档",
|
|
10733
|
+
"quickApps.documentLinkDenied": "链接位于文档目录之外或使用了不支持的路径。",
|
|
10734
|
+
"quickApps.documentHostUpdate": "请更新所属主机插件以启用文档操作,当前文档仍可查看。",
|
|
10735
|
+
"quickApps.documentConflict": "主机上的文件已更改,你的草稿仍然保留。请先复制修改内容,再重新加载最新文件。",
|
|
10736
|
+
"quickApps.documentAccessExpired": "文档访问已结束或不可用,草稿仍然保留。请先复制草稿,再关闭并重新打开快捷方式。",
|
|
10737
|
+
"quickApps.documentSaved": "已保存到工作区。",
|
|
10738
|
+
"quickApps.unsaved": "有未保存的修改",
|
|
10739
|
+
"quickApps.allowEditing": "允许编辑",
|
|
10740
|
+
"quickApps.allowEditingHelp": "允许修改 {path} 吗?本次授权仅适用于此文件,关闭查看器后失效。",
|
|
10741
|
+
"quickApps.discardTitle": "有未保存的修改",
|
|
10742
|
+
"quickApps.discard": "放弃修改",
|
|
10743
|
+
"quickApps.discardHelp": "对 {path} 的修改尚未保存。是否放弃修改并继续?",
|
|
10744
|
+
"quickApps.viewerTools": "查看器工具",
|
|
10745
|
+
"quickApps.wrapText": "自动换行",
|
|
10746
|
+
"quickApps.reloadView": "重新加载",
|
|
10747
|
+
"quickApps.entryAddress": "应用入口地址",
|
|
10748
|
+
"quickApps.noWorkspaces": "暂无可用的受管工作区",
|
|
10749
|
+
"quickApps.browse": "浏览…",
|
|
10750
|
+
"quickApps.chooseFile": "选择工作区文件",
|
|
10751
|
+
"quickApps.useFile": "使用此文件",
|
|
10752
|
+
"quickApps.currentFolder": "当前目录",
|
|
10753
|
+
"quickApps.parentFolder": "返回上级目录",
|
|
10754
|
+
"quickApps.refreshFiles": "刷新",
|
|
10755
|
+
"quickApps.loadingFiles": "正在加载文件…",
|
|
10756
|
+
"quickApps.emptyFolder": "此目录没有可选择的文件或文件夹。",
|
|
10757
|
+
"quickApps.filesTruncated": "当前仅显示部分内容,也可直接填写文件路径。",
|
|
10758
|
+
"quickApps.selectFileHint": "打开文件夹,再选择 HTML 应用或文本文档。",
|
|
10759
|
+
"quickApps.browseUnavailable": "此主机暂不支持文件浏览,仍可填写相对于工作区的文件路径。",
|
|
10760
|
+
"quickApps.browseHostUpdateRequired": "此主机尚不支持文件浏览。请更新或重新加载该主机的 CodingNS 插件后刷新页面,也可直接填写相对于工作区的文件路径。",
|
|
10761
|
+
...quickAppBootstrapZh,
|
|
10762
|
+
"quickApps.manage": "编辑快捷应用",
|
|
10763
|
+
"quickApps.done": "完成",
|
|
10764
|
+
"quickApps.editShortcut": "编辑快捷方式",
|
|
10765
|
+
"quickApps.collapseBar": "收起快捷应用",
|
|
10766
|
+
"quickApps.expandBar": "展开快捷应用",
|
|
10767
|
+
"quickApps.removeNamed": "移除{title}",
|
|
10768
|
+
"quickApps.reorderHelp": "拖动调整顺序,或使用 Alt + 方向键。",
|
|
10769
|
+
"quickApps.reordered": "快捷应用顺序已保存。",
|
|
10770
|
+
"quickApps.manageHelp": "选择快捷应用,修改来源、设置权限或移除快捷方式。",
|
|
10771
|
+
"quickApps.openNamed": "打开{title}",
|
|
10772
|
+
"quickApps.editNamed": "编辑{title}",
|
|
10773
|
+
"quickApps.count": "{count} 个快捷应用",
|
|
10774
|
+
"quickApps.loading": "正在加载快捷应用…",
|
|
10775
|
+
"quickApps.retry": "重试",
|
|
10776
|
+
"quickApps.emptyTitle": "一键打开工作区里的应用与文档",
|
|
10777
|
+
"quickApps.advanced": "高级选项",
|
|
10778
|
+
"quickApps.accessAndRemoval": "访问与快捷方式管理",
|
|
10779
|
+
"quickApps.titleHelp": "留空则使用文件名或应用目录名。",
|
|
10780
|
+
"quickApps.entryHelp": "选择文件,或填写它在工作区内的路径。",
|
|
10781
|
+
"quickApps.entryPlaceholder": "apps/calendar/index.html",
|
|
10782
|
+
"quickApps.entryRequired": "请填写应用或文档的文件路径。",
|
|
10783
|
+
"quickApps.orderInvalid": "列表顺序请填写整数。",
|
|
10784
|
+
"quickApps.saved": "快捷方式已保存。",
|
|
10785
|
+
"quickApps.revoked": "文件访问权限已撤销,已打开的应用已关闭。",
|
|
10786
|
+
"quickApps.saveBeforeAccess": "请先保存修改,再管理访问权限或移除此快捷方式。",
|
|
10787
|
+
"quickApps.conflict": "此快捷方式已在其他位置更新。你的修改仍保留在此处,重新打开快捷方式可加载最新版本。",
|
|
10788
|
+
"quickApps.order": "列表顺序",
|
|
10789
|
+
"quickApps.mounts": "附加资源目录(可选)",
|
|
10790
|
+
"quickApps.mount.urlPrefix": "应用网址路径",
|
|
10791
|
+
"quickApps.mount.workspacePath": "工作区目录",
|
|
10792
|
+
"quickApps.addMount": "添加资源目录",
|
|
10793
|
+
"quickApps.removeMount": "移除资源目录",
|
|
10794
|
+
"quickApps.title": "快捷应用",
|
|
10795
|
+
"quickApps.description": "无需打开会话,即可访问工作区内的 HTML 应用和文本文档。",
|
|
10796
|
+
"quickApps.close": "关闭快捷应用",
|
|
10797
|
+
"quickApps.back": "返回快捷列表",
|
|
10798
|
+
"quickApps.application": "工作区应用",
|
|
10799
|
+
"quickApps.add": "添加快捷方式",
|
|
10800
|
+
"quickApps.open": "打开",
|
|
10801
|
+
"quickApps.edit": "编辑",
|
|
10802
|
+
"quickApps.remove": "移除快捷方式",
|
|
10803
|
+
"quickApps.permissions": "文件权限",
|
|
10804
|
+
"quickApps.revoke": "撤销访问",
|
|
10805
|
+
"quickApps.save": "保存",
|
|
10806
|
+
"quickApps.cancel": "取消",
|
|
10807
|
+
"quickApps.titleField": "名称",
|
|
10808
|
+
"quickApps.entryPath": "入口文件",
|
|
10809
|
+
"quickApps.documentRoot": "应用目录",
|
|
10810
|
+
"quickApps.workspace": "工作区",
|
|
10811
|
+
"quickApps.chooseWorkspace": "选择受管工作区",
|
|
10812
|
+
"quickApps.localHost": "当前主机",
|
|
10813
|
+
"quickApps.kind": "打开方式",
|
|
10814
|
+
"quickApps.html": "HTML 应用",
|
|
10815
|
+
"quickApps.text": "文本文档",
|
|
10816
|
+
"quickApps.spa": "应用内导航使用入口页面",
|
|
10817
|
+
"quickApps.pathHelp": "填写相对于工作区的路径。建议使用专用应用目录;目录留空表示工作区根目录。",
|
|
10818
|
+
"quickApps.empty": "还没有快捷方式。可在编辑模式下从受管工作区添加 HTML 应用或文本文档。",
|
|
10819
|
+
"quickApps.removeHelp": "移除快捷方式不会删除源文件。",
|
|
10820
|
+
"quickApps.permissionHelp": "为下次打开应用设置可选文件权限。填写相对于工作区的目录,以逗号分隔;留空表示禁止。主机重启、快捷方式或应用代码变更后需要重新授权。保存会关闭现有应用。",
|
|
10821
|
+
"quickApps.permission.read": "允许读取的目录",
|
|
10822
|
+
"quickApps.permission.write": "允许创建和更新的目录",
|
|
10823
|
+
"quickApps.permission.delete": "允许删除文件的目录",
|
|
10824
|
+
"quickApps.permissionsSaved": "已保存下次打开应用时使用的权限。",
|
|
10825
|
+
"quickApps.unavailable": "当前主机连接暂不支持 HTML 预览,请更新所属主机插件后重新打开快捷方式。",
|
|
10826
|
+
"quickApps.status.unsupported-runtime": "当前主机连接暂不支持 HTML 预览。",
|
|
10827
|
+
"quickApps.status.disconnected-host": "所属主机暂不支持快捷应用连接。",
|
|
10828
|
+
"quickApps.status.unsupported-connection": "此 PeerHost 中转连接无法打开快捷应用,请使用直连方式连接所属主机。",
|
|
10829
|
+
"quickApps.status.missing-workspace": "原工作区不可用。",
|
|
10830
|
+
"quickApps.status.missing-file": "入口文件或应用目录不存在或无法访问。"
|
|
10831
|
+
};
|
|
10832
|
+
//#endregion
|
|
10833
|
+
//#region src/client/locales/cliManagement.ts
|
|
10834
|
+
const en$1 = {
|
|
10835
|
+
"cli.manage.reasonLabel.application-managed": "Check in app",
|
|
10836
|
+
"cli.manage.reasonLabel.unknown-version": "Version unknown",
|
|
10837
|
+
"cli.manage.reasonLabel.legacy-distribution": "Legacy distribution",
|
|
10838
|
+
"cli.manage.reasonLabel.no-release-source": "No verified feed",
|
|
10839
|
+
"cli.manage.reasonLabel.incomparable-version": "Different release channel",
|
|
10840
|
+
"cli.manage.reason.application-managed": "This Agent is managed by its application. No comparable runtime release feed is verified; use the application’s Check for Updates.",
|
|
10841
|
+
"cli.manage.reason.unknown-version": "The installed version could not be identified. Re-detect the Agent before comparing releases.",
|
|
10842
|
+
"cli.manage.reason.legacy-distribution": "This legacy distribution has no comparable current release feed. See the official migration guide.",
|
|
10843
|
+
"cli.manage.reason.no-release-source": "No verified release feed is available for this installation and platform. See the official guide.",
|
|
10844
|
+
"cli.manage.reason.incomparable-version": "The installed and published versions use different release channels and cannot be compared safely.",
|
|
10845
|
+
"cli.manage.availableInApp": "Version {version} is available. Complete the update in {name}.",
|
|
10846
|
+
"cli.manage.updateInApp": "Update in app",
|
|
10847
|
+
"cli.manage.open": "Manage external Agents",
|
|
10848
|
+
"cli.manage.listTitle": "External Agents",
|
|
10849
|
+
"cli.manage.details": "Details",
|
|
10850
|
+
"cli.manage.methodUnknown": "No supported automatic updater was identified for this installation. Re-detect to retry, or follow the official guide below.",
|
|
10851
|
+
"cli.manage.hostUnsupported": "This Host has not loaded update checking. Reload the Host with the current plugin, then refresh this list.",
|
|
10852
|
+
"cli.manage.state.unchecked": "Not checked",
|
|
10853
|
+
"cli.manage.state.checking": "Checking…",
|
|
10854
|
+
"cli.manage.state.current": "Up to date",
|
|
10855
|
+
"cli.manage.state.unavailable": "Check manually",
|
|
10856
|
+
"cli.manage.state.error": "Check failed",
|
|
10857
|
+
"cli.manage.failure.timeout": "Release check timed out. Refresh to retry.",
|
|
10858
|
+
"cli.manage.failure.network": "Could not reach the release source. Check the Host network and refresh.",
|
|
10859
|
+
"cli.manage.failure.http": "The release source returned HTTP {status}. Refresh to retry.",
|
|
10860
|
+
"cli.manage.failure.invalid-response": "The release source returned invalid metadata. Use the official guide.",
|
|
10861
|
+
"cli.manage.install": "Install",
|
|
10862
|
+
"cli.manage.update": "Update",
|
|
10863
|
+
"cli.manage.unchecked": "Use Refresh to check for updates",
|
|
10864
|
+
"cli.manage.checking": "Checking for updates…",
|
|
10865
|
+
"cli.manage.available": "Update available: {version}",
|
|
10866
|
+
"cli.manage.current": "No newer release found",
|
|
10867
|
+
"cli.manage.unavailable": "No comparable release found. Check the official update guide.",
|
|
10868
|
+
"cli.manage.error": "Update check failed. Refresh to retry.",
|
|
10869
|
+
"cli.manage.title": "{action} {name}",
|
|
10870
|
+
"cli.manage.host": "Target Host: {name} ({platform})",
|
|
10871
|
+
"cli.manage.loading": "Checking the Agent and official methods…",
|
|
10872
|
+
"cli.manage.review": "Review the command and prerequisites. It runs on this Host with your user account. Updates may require restarting Agent sessions.",
|
|
10873
|
+
"cli.manage.source": "Official installation and update guide",
|
|
10874
|
+
"cli.manage.run": "Run {action}",
|
|
10875
|
+
"cli.manage.running": "Running…",
|
|
10876
|
+
"cli.manage.result.running": "{action} in progress",
|
|
10877
|
+
"cli.manage.result.succeeded": "{action} completed",
|
|
10878
|
+
"cli.manage.result.failed": "{action} failed",
|
|
10879
|
+
"cli.manage.result.cancelled": "{action} cancelled",
|
|
10880
|
+
"cli.manage.log.running": "Live",
|
|
10881
|
+
"cli.manage.log.succeeded": "Completed",
|
|
10882
|
+
"cli.manage.log.failed": "Failed",
|
|
10883
|
+
"cli.manage.log.cancelled": "Cancelled",
|
|
10884
|
+
"cli.manage.waitingOutput": "Waiting for output…",
|
|
10885
|
+
"cli.manage.emptyOutput": "The command produced no output.",
|
|
10886
|
+
"cli.manage.latestOutput": "Jump to latest ↓",
|
|
10887
|
+
"cli.manage.catalog.refreshing": "Refreshing the Agent list…",
|
|
10888
|
+
"cli.manage.catalog.refreshed": "Agent list refreshed with the detected version.",
|
|
10889
|
+
"cli.manage.catalog.failed": "The update succeeded, but the Agent list could not be refreshed.",
|
|
10890
|
+
"cli.manage.refreshList": "Refresh list",
|
|
10891
|
+
"cli.manage.succeeded": "Command completed. Detected version: {version}",
|
|
10892
|
+
"cli.manage.failed": "The operation failed.",
|
|
10893
|
+
"cli.manage.cancelled": "The operation was cancelled.",
|
|
10894
|
+
"cli.manage.cancel": "Cancel operation",
|
|
10895
|
+
"cli.manage.close": "Close",
|
|
10896
|
+
"cli.manage.redetect": "Re-detect installation",
|
|
10897
|
+
"cli.manage.output": "Command output",
|
|
10898
|
+
"cli.manage.background": "You can close this dialog and return to this Agent to see the result.",
|
|
10899
|
+
"cli.manage.otherBusy": "Another Agent operation is running on this Host: {name}",
|
|
10900
|
+
"cli.manage.retryStatus": "Retry status",
|
|
10901
|
+
"cli.manage.reviewAgain": "Review another operation"
|
|
10902
|
+
};
|
|
10903
|
+
const zh$1 = {
|
|
10904
|
+
"cli.manage.reasonLabel.application-managed": "在应用中检查",
|
|
10905
|
+
"cli.manage.reasonLabel.unknown-version": "版本未知",
|
|
10906
|
+
"cli.manage.reasonLabel.legacy-distribution": "旧版发行包",
|
|
10907
|
+
"cli.manage.reasonLabel.no-release-source": "暂无可用版本源",
|
|
10908
|
+
"cli.manage.reasonLabel.incomparable-version": "版本通道不同",
|
|
10909
|
+
"cli.manage.reason.application-managed": "此 Agent 由所属应用管理,尚未验证可比较的运行时版本源,请使用应用内的“检查更新”。",
|
|
10910
|
+
"cli.manage.reason.unknown-version": "无法识别已安装版本,请重新检测 Agent 后再比较版本。",
|
|
10911
|
+
"cli.manage.reason.legacy-distribution": "此旧版发行包没有可比较的当前版本源,请查看官方迁移指南。",
|
|
10912
|
+
"cli.manage.reason.no-release-source": "此安装和平台尚无经过验证的版本源,请查看官方指南。",
|
|
10913
|
+
"cli.manage.reason.incomparable-version": "已安装版本与发布版本属于不同通道,无法可靠比较。",
|
|
10914
|
+
"cli.manage.availableInApp": "发现版本 {version},请在 {name} 中完成更新。",
|
|
10915
|
+
"cli.manage.updateInApp": "在应用中更新",
|
|
10916
|
+
"cli.manage.open": "管理外部 Agent",
|
|
10917
|
+
"cli.manage.listTitle": "外部 Agent",
|
|
10918
|
+
"cli.manage.details": "详情",
|
|
10919
|
+
"cli.manage.methodUnknown": "未能识别此安装的自动更新方式。可重新检测重试,或查看下方官方指南。",
|
|
10920
|
+
"cli.manage.hostUnsupported": "此主机尚未加载更新检查功能。请让主机加载当前插件后,再刷新列表。",
|
|
10921
|
+
"cli.manage.state.unchecked": "未检查更新",
|
|
10922
|
+
"cli.manage.state.checking": "检查中…",
|
|
10923
|
+
"cli.manage.state.current": "已是最新",
|
|
10924
|
+
"cli.manage.state.unavailable": "需手动检查",
|
|
10925
|
+
"cli.manage.state.error": "检查失败",
|
|
10926
|
+
"cli.manage.failure.timeout": "版本检查超时,请刷新重试。",
|
|
10927
|
+
"cli.manage.failure.network": "无法连接版本来源,请检查主机网络后刷新。",
|
|
10928
|
+
"cli.manage.failure.http": "版本来源返回 HTTP {status},请刷新重试。",
|
|
10929
|
+
"cli.manage.failure.invalid-response": "版本来源返回的数据无效,请查看官方指南。",
|
|
10930
|
+
"cli.manage.install": "安装",
|
|
10931
|
+
"cli.manage.update": "更新",
|
|
10932
|
+
"cli.manage.unchecked": "点击刷新检查更新",
|
|
10933
|
+
"cli.manage.checking": "正在检查更新…",
|
|
10934
|
+
"cli.manage.available": "有新版本:{version}",
|
|
10935
|
+
"cli.manage.current": "未发现更新版本",
|
|
10936
|
+
"cli.manage.unavailable": "未找到可比较的版本,请查看官方更新指南。",
|
|
10937
|
+
"cli.manage.error": "检查更新失败,请刷新重试。",
|
|
10938
|
+
"cli.manage.title": "{action} {name}",
|
|
10939
|
+
"cli.manage.host": "目标主机:{name}({platform})",
|
|
10940
|
+
"cli.manage.loading": "正在检查 Agent 和官方安装方式…",
|
|
10941
|
+
"cli.manage.review": "请核对命令和前置要求。命令将以当前用户在此主机上执行,更新后可能需要重新开启 Agent 会话。",
|
|
10942
|
+
"cli.manage.source": "官方安装与更新指南",
|
|
10943
|
+
"cli.manage.run": "执行{action}",
|
|
10944
|
+
"cli.manage.running": "正在执行…",
|
|
10945
|
+
"cli.manage.result.running": "正在{action}",
|
|
10946
|
+
"cli.manage.result.succeeded": "{action}成功",
|
|
10947
|
+
"cli.manage.result.failed": "{action}失败",
|
|
10948
|
+
"cli.manage.result.cancelled": "已取消{action}",
|
|
10949
|
+
"cli.manage.log.running": "实时输出",
|
|
10950
|
+
"cli.manage.log.succeeded": "已完成",
|
|
10951
|
+
"cli.manage.log.failed": "失败",
|
|
10952
|
+
"cli.manage.log.cancelled": "已取消",
|
|
10953
|
+
"cli.manage.waitingOutput": "等待命令输出…",
|
|
10954
|
+
"cli.manage.emptyOutput": "命令未产生输出。",
|
|
10955
|
+
"cli.manage.latestOutput": "跳至最新 ↓",
|
|
10956
|
+
"cli.manage.catalog.refreshing": "正在刷新 Agent 列表…",
|
|
10957
|
+
"cli.manage.catalog.refreshed": "Agent 列表已刷新,当前显示检测到的新版本。",
|
|
10958
|
+
"cli.manage.catalog.failed": "更新已成功,但 Agent 列表刷新失败。",
|
|
10959
|
+
"cli.manage.refreshList": "刷新列表",
|
|
10960
|
+
"cli.manage.succeeded": "命令已完成,检测到版本:{version}",
|
|
10961
|
+
"cli.manage.failed": "操作失败。",
|
|
10962
|
+
"cli.manage.cancelled": "操作已取消。",
|
|
10963
|
+
"cli.manage.cancel": "取消操作",
|
|
10964
|
+
"cli.manage.close": "关闭",
|
|
10965
|
+
"cli.manage.redetect": "重新检测安装",
|
|
10966
|
+
"cli.manage.output": "命令输出",
|
|
10967
|
+
"cli.manage.background": "可以关闭此窗口,稍后再次打开此 Agent 查看结果。",
|
|
10968
|
+
"cli.manage.otherBusy": "此主机上的另一个 Agent 操作正在执行:{name}",
|
|
10969
|
+
"cli.manage.retryStatus": "重新查询状态",
|
|
10970
|
+
"cli.manage.reviewAgain": "查看新的操作"
|
|
10971
|
+
};
|
|
10972
|
+
//#endregion
|
|
10516
10973
|
//#region src/client/locale.ts
|
|
10517
10974
|
/** Codingns4DSH 自有词典命名空间。词典缺少的语言由 DSH 自动回退到英文。 */
|
|
10518
10975
|
const CODINGNS_LOCALE_NS = "codingns";
|
|
@@ -11416,36 +11873,40 @@
|
|
|
11416
11873
|
};
|
|
11417
11874
|
({
|
|
11418
11875
|
...CORE_EN,
|
|
11876
|
+
...en$14,
|
|
11877
|
+
...en$15,
|
|
11419
11878
|
...en$12,
|
|
11420
|
-
...en$
|
|
11879
|
+
...en$16,
|
|
11421
11880
|
...en$10,
|
|
11422
|
-
...en$
|
|
11423
|
-
...en$8,
|
|
11881
|
+
...en$9,
|
|
11424
11882
|
...en$7,
|
|
11883
|
+
...en$6,
|
|
11425
11884
|
...en$5,
|
|
11426
11885
|
...en$4,
|
|
11886
|
+
...en$13,
|
|
11887
|
+
...en$8,
|
|
11888
|
+
...en$11,
|
|
11427
11889
|
...en$3,
|
|
11428
11890
|
...en$2,
|
|
11429
|
-
...en$11,
|
|
11430
|
-
...en$6,
|
|
11431
|
-
...en$9,
|
|
11432
11891
|
...en$1
|
|
11433
11892
|
});
|
|
11434
11893
|
const zh = {
|
|
11435
11894
|
...CORE_ZH,
|
|
11895
|
+
...zh$14,
|
|
11896
|
+
...zh$15,
|
|
11436
11897
|
...zh$12,
|
|
11437
|
-
...zh$
|
|
11898
|
+
...zh$16,
|
|
11438
11899
|
...zh$10,
|
|
11439
|
-
...zh$
|
|
11440
|
-
...zh$8,
|
|
11900
|
+
...zh$9,
|
|
11441
11901
|
...zh$7,
|
|
11902
|
+
...zh$6,
|
|
11442
11903
|
...zh$5,
|
|
11443
11904
|
...zh$4,
|
|
11905
|
+
...zh$13,
|
|
11906
|
+
...zh$8,
|
|
11907
|
+
...zh$11,
|
|
11444
11908
|
...zh$3,
|
|
11445
11909
|
...zh$2,
|
|
11446
|
-
...zh$11,
|
|
11447
|
-
...zh$6,
|
|
11448
|
-
...zh$9,
|
|
11449
11910
|
...zh$1
|
|
11450
11911
|
};
|
|
11451
11912
|
/** 非 React 注册回调使用的翻译函数。 */
|
|
@@ -11602,84 +12063,77 @@
|
|
|
11602
12063
|
return n;
|
|
11603
12064
|
}
|
|
11604
12065
|
//#endregion
|
|
11605
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
12066
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/TextShimmer.module.css
|
|
11606
12067
|
var TextShimmer_module_default = {
|
|
11607
|
-
"content": "
|
|
11608
|
-
"decoration": "
|
|
11609
|
-
"dsh-row-shimmer-highlight": "
|
|
11610
|
-
"dsh-row-shimmer-sweep": "
|
|
11611
|
-
"highlight": "
|
|
11612
|
-
"root": "
|
|
11613
|
-
"sweep": "
|
|
11614
|
-
"text": "
|
|
12068
|
+
"content": "JPqLFa_content",
|
|
12069
|
+
"decoration": "JPqLFa_decoration",
|
|
12070
|
+
"dsh-row-shimmer-highlight": "JPqLFa_dsh-row-shimmer-highlight",
|
|
12071
|
+
"dsh-row-shimmer-sweep": "JPqLFa_dsh-row-shimmer-sweep",
|
|
12072
|
+
"highlight": "JPqLFa_highlight",
|
|
12073
|
+
"root": "JPqLFa_root",
|
|
12074
|
+
"sweep": "JPqLFa_sweep",
|
|
12075
|
+
"text": "JPqLFa_text"
|
|
11615
12076
|
};
|
|
11616
12077
|
//#endregion
|
|
11617
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
12078
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/DisclosureRow.module.css
|
|
11618
12079
|
var DisclosureRow_module_default = {
|
|
11619
|
-
"chevronHover": "
|
|
11620
|
-
"header": "
|
|
11621
|
-
"iconIdle": "
|
|
11622
|
-
"leading": "
|
|
11623
|
-
"root": "
|
|
11624
|
-
"row": "
|
|
11625
|
-
"title": "
|
|
12080
|
+
"chevronHover": "HRTIjW_chevronHover",
|
|
12081
|
+
"header": "HRTIjW_header",
|
|
12082
|
+
"iconIdle": "HRTIjW_iconIdle",
|
|
12083
|
+
"leading": "HRTIjW_leading",
|
|
12084
|
+
"root": "HRTIjW_root",
|
|
12085
|
+
"row": "HRTIjW_row",
|
|
12086
|
+
"title": "HRTIjW_title"
|
|
11626
12087
|
};
|
|
11627
12088
|
//#endregion
|
|
11628
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
12089
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Button.module.css
|
|
11629
12090
|
var Button_module_default = {
|
|
11630
|
-
"button": "
|
|
11631
|
-
"ghost": "
|
|
11632
|
-
"icon": "
|
|
11633
|
-
"md": "
|
|
11634
|
-
"outline": "
|
|
11635
|
-
"primary": "
|
|
11636
|
-
"sm": "
|
|
11637
|
-
"toolbar": "
|
|
12091
|
+
"button": "qwxocG_button",
|
|
12092
|
+
"ghost": "qwxocG_ghost",
|
|
12093
|
+
"icon": "qwxocG_icon",
|
|
12094
|
+
"md": "qwxocG_md",
|
|
12095
|
+
"outline": "qwxocG_outline",
|
|
12096
|
+
"primary": "qwxocG_primary",
|
|
12097
|
+
"sm": "qwxocG_sm",
|
|
12098
|
+
"toolbar": "qwxocG_toolbar"
|
|
11638
12099
|
};
|
|
11639
12100
|
//#endregion
|
|
11640
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
12101
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Input.module.css
|
|
11641
12102
|
var Input_module_default = {
|
|
11642
|
-
"icon": "
|
|
11643
|
-
"input": "
|
|
11644
|
-
"wrap": "
|
|
12103
|
+
"icon": "Z9tYSa_icon",
|
|
12104
|
+
"input": "Z9tYSa_input",
|
|
12105
|
+
"wrap": "Z9tYSa_wrap"
|
|
11645
12106
|
};
|
|
11646
12107
|
//#endregion
|
|
11647
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
12108
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/ShortcutKeys.module.css
|
|
11648
12109
|
var import_react_dom = require_react_dom();
|
|
11649
12110
|
var ShortcutKeys_module_default = {
|
|
11650
|
-
"joined": "
|
|
11651
|
-
"key": "
|
|
11652
|
-
"keys": "
|
|
11653
|
-
"separator": "
|
|
11654
|
-
"tooltip": "
|
|
12111
|
+
"joined": "QXraKa_joined",
|
|
12112
|
+
"key": "QXraKa_key",
|
|
12113
|
+
"keys": "QXraKa_keys",
|
|
12114
|
+
"separator": "QXraKa_separator",
|
|
12115
|
+
"tooltip": "QXraKa_tooltip"
|
|
11655
12116
|
};
|
|
11656
12117
|
//#endregion
|
|
11657
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
12118
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/MenuSurface.module.css
|
|
11658
12119
|
var MenuSurface_module_default = {
|
|
11659
|
-
"backing": "
|
|
11660
|
-
"compact": "
|
|
11661
|
-
"material": "
|
|
11662
|
-
"surface": "
|
|
11663
|
-
};
|
|
11664
|
-
//#endregion
|
|
11665
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.2_@deepseek-ai+cordis@4.0.4/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Tooltip.module.css
|
|
11666
|
-
var Tooltip_module_default = {
|
|
11667
|
-
"bubble": "hMkNvq_bubble",
|
|
11668
|
-
"label": "hMkNvq_label",
|
|
11669
|
-
"tooltip-in": "hMkNvq_tooltip-in"
|
|
12120
|
+
"backing": "UijD9G_backing",
|
|
12121
|
+
"compact": "UijD9G_compact",
|
|
12122
|
+
"material": "UijD9G_material",
|
|
12123
|
+
"surface": "UijD9G_surface"
|
|
11670
12124
|
};
|
|
11671
12125
|
//#endregion
|
|
11672
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
12126
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/HoverCard.module.css
|
|
11673
12127
|
var HoverCard_module_default = {
|
|
11674
|
-
"card": "
|
|
11675
|
-
"copied": "
|
|
11676
|
-
"copyable": "
|
|
11677
|
-
"feedback": "
|
|
11678
|
-
"inline": "
|
|
11679
|
-
"media": "
|
|
11680
|
-
"preview": "
|
|
11681
|
-
"root": "
|
|
11682
|
-
"status": "
|
|
12128
|
+
"card": "wtRhtW_card",
|
|
12129
|
+
"copied": "wtRhtW_copied",
|
|
12130
|
+
"copyable": "wtRhtW_copyable",
|
|
12131
|
+
"feedback": "wtRhtW_feedback",
|
|
12132
|
+
"inline": "wtRhtW_inline",
|
|
12133
|
+
"media": "wtRhtW_media",
|
|
12134
|
+
"preview": "wtRhtW_preview",
|
|
12135
|
+
"root": "wtRhtW_root",
|
|
12136
|
+
"status": "wtRhtW_status"
|
|
11683
12137
|
};
|
|
11684
12138
|
//#endregion
|
|
11685
12139
|
//#region node_modules/.pnpm/simple-icons@16.31.0/node_modules/simple-icons/index.mjs
|
|
@@ -12043,19 +12497,26 @@
|
|
|
12043
12497
|
hex: "0084FF"
|
|
12044
12498
|
};
|
|
12045
12499
|
//#endregion
|
|
12046
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
12500
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/MarkdownText.module.css
|
|
12047
12501
|
var MarkdownText_module_default = {
|
|
12048
|
-
"compact": "
|
|
12049
|
-
"fileLink": "
|
|
12050
|
-
"fileMention": "
|
|
12051
|
-
"image": "
|
|
12052
|
-
"imageAlt": "
|
|
12053
|
-
"imageButton": "
|
|
12054
|
-
"linkIcon": "
|
|
12055
|
-
"markdown": "
|
|
12056
|
-
"previewName": "
|
|
12057
|
-
"tableFill": "
|
|
12058
|
-
"tableScroll": "
|
|
12502
|
+
"compact": "JW1tIq_compact",
|
|
12503
|
+
"fileLink": "JW1tIq_fileLink",
|
|
12504
|
+
"fileMention": "JW1tIq_fileMention",
|
|
12505
|
+
"image": "JW1tIq_image",
|
|
12506
|
+
"imageAlt": "JW1tIq_imageAlt",
|
|
12507
|
+
"imageButton": "JW1tIq_imageButton",
|
|
12508
|
+
"linkIcon": "JW1tIq_linkIcon",
|
|
12509
|
+
"markdown": "JW1tIq_markdown",
|
|
12510
|
+
"previewName": "JW1tIq_previewName",
|
|
12511
|
+
"tableFill": "JW1tIq_tableFill",
|
|
12512
|
+
"tableScroll": "JW1tIq_tableScroll"
|
|
12513
|
+
};
|
|
12514
|
+
//#endregion
|
|
12515
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Tooltip.module.css
|
|
12516
|
+
var Tooltip_module_default = {
|
|
12517
|
+
"bubble": "PhTCOW_bubble",
|
|
12518
|
+
"label": "PhTCOW_label",
|
|
12519
|
+
"tooltip-in": "PhTCOW_tooltip-in"
|
|
12059
12520
|
};
|
|
12060
12521
|
//#endregion
|
|
12061
12522
|
//#region node_modules/.pnpm/@shikijs+types@4.5.0/node_modules/@shikijs/types/dist/index.mjs
|
|
@@ -22614,7 +23075,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
22614
23075
|
json_default = [lang$72];
|
|
22615
23076
|
}));
|
|
22616
23077
|
//#endregion
|
|
22617
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-util-code-language@0.2.1-alpha.
|
|
23078
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-util-code-language@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-util-code-language/lib/index.js
|
|
22618
23079
|
init_typescript();
|
|
22619
23080
|
init_shellscript();
|
|
22620
23081
|
init_json();
|
|
@@ -23255,15 +23716,15 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
23255
23716
|
};
|
|
23256
23717
|
})))();
|
|
23257
23718
|
var CodeCard_module_default = {
|
|
23258
|
-
"action": "
|
|
23259
|
-
"actions": "
|
|
23260
|
-
"body": "
|
|
23261
|
-
"card": "
|
|
23262
|
-
"header": "
|
|
23263
|
-
"heading": "
|
|
23264
|
-
"language": "
|
|
23265
|
-
"status": "
|
|
23266
|
-
"title": "
|
|
23719
|
+
"action": "YsOdSa_action",
|
|
23720
|
+
"actions": "YsOdSa_actions",
|
|
23721
|
+
"body": "YsOdSa_body",
|
|
23722
|
+
"card": "YsOdSa_card",
|
|
23723
|
+
"header": "YsOdSa_header",
|
|
23724
|
+
"heading": "YsOdSa_heading",
|
|
23725
|
+
"language": "YsOdSa_language",
|
|
23726
|
+
"status": "YsOdSa_status",
|
|
23727
|
+
"title": "YsOdSa_title"
|
|
23267
23728
|
};
|
|
23268
23729
|
//#endregion
|
|
23269
23730
|
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/base.js
|
|
@@ -23780,17 +24241,17 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
23780
24241
|
};
|
|
23781
24242
|
new ArrayDiff();
|
|
23782
24243
|
//#endregion
|
|
23783
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
24244
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/DiffBlock.module.css
|
|
23784
24245
|
var DiffBlock_module_default = {
|
|
23785
|
-
"add": "
|
|
23786
|
-
"block": "
|
|
23787
|
-
"body": "
|
|
23788
|
-
"context": "
|
|
23789
|
-
"del": "
|
|
23790
|
-
"expand": "
|
|
23791
|
-
"gap": "
|
|
23792
|
-
"line": "
|
|
23793
|
-
"path": "
|
|
24246
|
+
"add": "L2QO-G_add",
|
|
24247
|
+
"block": "L2QO-G_block",
|
|
24248
|
+
"body": "L2QO-G_body",
|
|
24249
|
+
"context": "L2QO-G_context",
|
|
24250
|
+
"del": "L2QO-G_del",
|
|
24251
|
+
"expand": "L2QO-G_expand",
|
|
24252
|
+
"gap": "L2QO-G_gap",
|
|
24253
|
+
"line": "L2QO-G_line",
|
|
24254
|
+
"path": "L2QO-G_path"
|
|
23794
24255
|
};
|
|
23795
24256
|
//#endregion
|
|
23796
24257
|
//#region node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
|
|
@@ -63516,35 +63977,35 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
63516
63977
|
chunkString: "chunkString"
|
|
63517
63978
|
};
|
|
63518
63979
|
//#endregion
|
|
63519
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
63980
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/CodeBlock.module.css
|
|
63520
63981
|
var CodeBlock_module_default = {
|
|
63521
|
-
"action": "
|
|
63522
|
-
"banner": "
|
|
63523
|
-
"bannerWrap": "
|
|
63524
|
-
"block": "
|
|
63525
|
-
"card": "
|
|
63526
|
-
"content": "
|
|
63527
|
-
"copyButton": "
|
|
63528
|
-
"infostring": "
|
|
63529
|
-
"numbered": "
|
|
63530
|
-
"plain": "
|
|
63531
|
-
"shiki": "
|
|
63982
|
+
"action": "DPs2Ha_action",
|
|
63983
|
+
"banner": "DPs2Ha_banner",
|
|
63984
|
+
"bannerWrap": "DPs2Ha_bannerWrap",
|
|
63985
|
+
"block": "DPs2Ha_block",
|
|
63986
|
+
"card": "DPs2Ha_card",
|
|
63987
|
+
"content": "DPs2Ha_content",
|
|
63988
|
+
"copyButton": "DPs2Ha_copyButton",
|
|
63989
|
+
"infostring": "DPs2Ha_infostring",
|
|
63990
|
+
"numbered": "DPs2Ha_numbered",
|
|
63991
|
+
"plain": "DPs2Ha_plain",
|
|
63992
|
+
"shiki": "DPs2Ha_shiki"
|
|
63532
63993
|
};
|
|
63533
63994
|
//#endregion
|
|
63534
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
63995
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/ImageLightbox.module.css
|
|
63535
63996
|
var ImageLightbox_module_default = {
|
|
63536
|
-
"backdrop": "
|
|
63537
|
-
"close": "
|
|
63538
|
-
"image": "
|
|
63539
|
-
"mask": "
|
|
63540
|
-
"stage": "
|
|
63997
|
+
"backdrop": "D0cLTG_backdrop",
|
|
63998
|
+
"close": "D0cLTG_close",
|
|
63999
|
+
"image": "D0cLTG_image",
|
|
64000
|
+
"mask": "D0cLTG_mask",
|
|
64001
|
+
"stage": "D0cLTG_stage"
|
|
63541
64002
|
};
|
|
63542
64003
|
//#endregion
|
|
63543
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
64004
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/ImagePreview.module.css
|
|
63544
64005
|
var ImagePreview_module_default = {
|
|
63545
|
-
"frame": "
|
|
63546
|
-
"image": "
|
|
63547
|
-
"status": "
|
|
64006
|
+
"frame": "FtSukG_frame",
|
|
64007
|
+
"image": "FtSukG_image",
|
|
64008
|
+
"status": "FtSukG_status"
|
|
63548
64009
|
};
|
|
63549
64010
|
//#endregion
|
|
63550
64011
|
//#region node_modules/.pnpm/@shikijs+langs@4.5.0/node_modules/@shikijs/langs/dist/python.mjs
|
|
@@ -64277,7 +64738,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
64277
64738
|
groovy_default = [lang];
|
|
64278
64739
|
}));
|
|
64279
64740
|
//#endregion
|
|
64280
|
-
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.
|
|
64741
|
+
//#region node_modules/.pnpm/@deepseek-ai+dsh-client-ui-primitives@0.2.1-alpha.3_@deepseek-ai+cordis@4.0.5-alpha.2/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/index.js
|
|
64281
64742
|
init_typescript();
|
|
64282
64743
|
init_shellscript();
|
|
64283
64744
|
init_json();
|
|
@@ -64856,317 +65317,8 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
64856
65317
|
el.remove();
|
|
64857
65318
|
}
|
|
64858
65319
|
}
|
|
64859
|
-
/**
|
|
64860
|
-
|
|
64861
|
-
* Tooltips follow the last input; rings follow navigation or a key followed by
|
|
64862
|
-
* focus on a different control. Modifiers and refocusing alone keep rings silent.
|
|
64863
|
-
* Module-level listeners live for the document lifetime; Node imports are inert.
|
|
64864
|
-
*/
|
|
64865
|
-
/** Modality values published on the document element. */
|
|
64866
|
-
const INPUT_MODALITY = {
|
|
64867
|
-
pointer: "pointer",
|
|
64868
|
-
keyboard: "keyboard"
|
|
64869
|
-
};
|
|
64870
|
-
/** Attribute carrying whether focus navigation last owned focus. */
|
|
64871
|
-
const INPUT_MODALITY_ATTRIBUTE = "data-input-modality";
|
|
64872
|
-
const FOCUS_NAVIGATION = /* @__PURE__ */ new Set([
|
|
64873
|
-
"Tab",
|
|
64874
|
-
"Home",
|
|
64875
|
-
"End",
|
|
64876
|
-
"PageUp",
|
|
64877
|
-
"PageDown"
|
|
64878
|
-
]);
|
|
64879
|
-
let pointer = false;
|
|
64880
|
-
let pointerOwnsFocus = false;
|
|
64881
|
-
let keyFocusOrigin;
|
|
64882
|
-
function publish() {
|
|
64883
|
-
document.documentElement.setAttribute(INPUT_MODALITY_ATTRIBUTE, pointerOwnsFocus ? INPUT_MODALITY.pointer : INPUT_MODALITY.keyboard);
|
|
64884
|
-
}
|
|
64885
|
-
/**
|
|
64886
|
-
* Whether the last input came from a pointer, independently of ring visibility.
|
|
64887
|
-
* @returns True after pointer input; false after any key.
|
|
64888
|
-
*/
|
|
64889
|
-
function pointerModality() {
|
|
64890
|
-
return pointer;
|
|
64891
|
-
}
|
|
64892
|
-
if (typeof window !== "undefined") {
|
|
64893
|
-
window.addEventListener("pointerdown", () => {
|
|
64894
|
-
pointer = true;
|
|
64895
|
-
pointerOwnsFocus = true;
|
|
64896
|
-
keyFocusOrigin = void 0;
|
|
64897
|
-
publish();
|
|
64898
|
-
}, true);
|
|
64899
|
-
window.addEventListener("keydown", (event) => {
|
|
64900
|
-
pointer = false;
|
|
64901
|
-
if (event.isComposing) {
|
|
64902
|
-
keyFocusOrigin = void 0;
|
|
64903
|
-
return;
|
|
64904
|
-
}
|
|
64905
|
-
keyFocusOrigin = event.composedPath()[0];
|
|
64906
|
-
if (!FOCUS_NAVIGATION.has(event.key) && !event.key.startsWith("Arrow")) return;
|
|
64907
|
-
pointerOwnsFocus = false;
|
|
64908
|
-
publish();
|
|
64909
|
-
}, true);
|
|
64910
|
-
window.addEventListener("focusin", (event) => {
|
|
64911
|
-
if (keyFocusOrigin === void 0 || event.composedPath()[0] === keyFocusOrigin) return;
|
|
64912
|
-
keyFocusOrigin = void 0;
|
|
64913
|
-
if (!pointerOwnsFocus) return;
|
|
64914
|
-
pointerOwnsFocus = false;
|
|
64915
|
-
publish();
|
|
64916
|
-
}, true);
|
|
64917
|
-
window.addEventListener("blur", () => {
|
|
64918
|
-
keyFocusOrigin = void 0;
|
|
64919
|
-
});
|
|
64920
|
-
}
|
|
64921
|
-
/** Anchor-preserving tooltips; an optional body portal escapes clipping containers and stacking contexts that cap the bubble's z-index. */
|
|
64922
|
-
/**
|
|
64923
|
-
* Suppression channel for enclosing tooltip and hover-card anchors: a visible
|
|
64924
|
-
* tooltip within an anchor withdraws the enclosing preview while its bubble is shown.
|
|
64925
|
-
*/
|
|
64926
|
-
const TooltipSuppression = (0, import_react.createContext)(null);
|
|
64927
|
-
/**
|
|
64928
|
-
* Attach a hover/focus tooltip to an anchor element.
|
|
64929
|
-
* @param props.label - bubble text, or a resolver evaluated only while visible; an empty string shows only shortcut keys.
|
|
64930
|
-
* @param props.shortcutKeys - effective key labels rendered as platform-formatted keycaps after optional text.
|
|
64931
|
-
* @param props.side - placement relative to the anchor (default 'right').
|
|
64932
|
-
* @param props.align - horizontal anchor-edge alignment for 'bottom'/'top' bubbles: 'end' pins
|
|
64933
|
-
* the bubble's right edge to the anchor's (for anchors beside other hover surfaces the centered
|
|
64934
|
-
* bubble would overlap); default 'center'. Ignored for side 'right'.
|
|
64935
|
-
* @param props.portal - render the bubble under document.body, so an ancestor's clipping or its
|
|
64936
|
-
* stacking context (which confines the bubble's z-index to that context) cannot hide it.
|
|
64937
|
-
* @param props.delayMs - hover delay in milliseconds (default 0).
|
|
64938
|
-
* @param props.focusDelayMs - keyboard focus delay in milliseconds (default 0); blur, click,
|
|
64939
|
-
* mouse leave, disabling, and unmount cancel a pending show.
|
|
64940
|
-
* @param props.gap - anchor-to-bubble distance in pixels for 'bottom'/'top' bubbles (default 8);
|
|
64941
|
-
* ignored for side 'right'.
|
|
64942
|
-
* @param props.disabled - suppress the bubble while true; the anchor renders identically so
|
|
64943
|
-
* toggling never remounts it (which would cut its CSS transitions).
|
|
64944
|
-
* @param props.maxWidth - bubble width cap in pixels, for labels long enough that the default
|
|
64945
|
-
* half-viewport cap would render a slab wider than the surface the anchor sits on.
|
|
64946
|
-
* @param props.openOnClick - clicking also pins the bubble for reading; another click, Escape,
|
|
64947
|
-
* Tab, or an outside pointerdown dismisses it. Defaults to false for ordinary action tooltips.
|
|
64948
|
-
* @param props.children - a single anchor element; its own ref (callback or object) is forwarded alongside the tooltip's.
|
|
64949
|
-
* @returns the cloned anchor plus a fixed-position bubble, optionally portaled to the body.
|
|
64950
|
-
* The bubble stays hidden until ResizeObserver supplies its size for viewport fitting; clicking the
|
|
64951
|
-
* anchor dismisses the bubble unless openOnClick is enabled, and focus arriving after a pointer
|
|
64952
|
-
* interaction (a closing menu refocusing its trigger) never raises it.
|
|
64953
|
-
*/
|
|
64954
|
-
function Tooltip({ label, shortcutKeys, side = "right", align = "center", delayMs = 0, focusDelayMs = 0, gap = 8, disabled = false, portal = false, maxWidth, openOnClick = false, children }) {
|
|
64955
|
-
const id = (0, import_react.useId)();
|
|
64956
|
-
const [pinned, setPinned] = (0, import_react.useState)(false);
|
|
64957
|
-
const anchor = (0, import_react.useRef)(null);
|
|
64958
|
-
const childRef = children.ref;
|
|
64959
|
-
const mergedRef = (0, import_react.useCallback)((el) => {
|
|
64960
|
-
anchor.current = el;
|
|
64961
|
-
if (typeof childRef === "function") childRef(el);
|
|
64962
|
-
else if (childRef != null) childRef.current = el;
|
|
64963
|
-
}, [childRef]);
|
|
64964
|
-
const [pos, setPos] = (0, import_react.useState)(null);
|
|
64965
|
-
const bubble = (0, import_react.useRef)(null);
|
|
64966
|
-
const resolvedLabel = pos === null ? null : typeof label === "function" ? label() : label;
|
|
64967
|
-
const y = pos === null ? 0 : side === "right" ? pos.top + (pos.bottom - pos.top) / 2 : side === "top" ? pos.top - gap : pos.bottom + gap;
|
|
64968
|
-
const showTimer = (0, import_react.useRef)(null);
|
|
64969
|
-
const triggers = (0, import_react.useRef)({
|
|
64970
|
-
hover: false,
|
|
64971
|
-
focus: false
|
|
64972
|
-
});
|
|
64973
|
-
const suppressAncestors = (0, import_react.useContext)(TooltipSuppression);
|
|
64974
|
-
const [suppressed, setSuppressed] = (0, import_react.useState)(false);
|
|
64975
|
-
const announce = (0, import_react.useCallback)((active) => {
|
|
64976
|
-
suppressAncestors?.(active);
|
|
64977
|
-
}, [suppressAncestors]);
|
|
64978
|
-
const visible = pos !== null && !disabled;
|
|
64979
|
-
(0, import_react.useEffect)(() => {
|
|
64980
|
-
const el = bubble.current;
|
|
64981
|
-
if (pos === null || !visible || suppressed || el === null) return;
|
|
64982
|
-
const edgeMargin = 12;
|
|
64983
|
-
let size;
|
|
64984
|
-
let placement = side;
|
|
64985
|
-
const fit = () => {
|
|
64986
|
-
if (size === void 0) return;
|
|
64987
|
-
const { inlineSize: width, blockSize: height } = size;
|
|
64988
|
-
const offset = side === "right" ? 0 : align === "end" ? width : width / 2;
|
|
64989
|
-
const left = Math.max(edgeMargin, Math.min(pos.x - offset, window.innerWidth - edgeMargin - width));
|
|
64990
|
-
const fitsBelow = pos.bottom + gap + height <= window.innerHeight - edgeMargin;
|
|
64991
|
-
const fitsAbove = pos.top - gap - height >= edgeMargin;
|
|
64992
|
-
if (placement === "bottom" && !fitsBelow && fitsAbove) placement = "top";
|
|
64993
|
-
else if (placement === "top" && !fitsAbove && fitsBelow) placement = "bottom";
|
|
64994
|
-
el.style.left = `${left + offset}px`;
|
|
64995
|
-
el.style.top = `${placement === "right" ? (pos.top + pos.bottom) / 2 : placement === "top" ? pos.top - gap : pos.bottom + gap}px`;
|
|
64996
|
-
el.dataset.side = placement;
|
|
64997
|
-
el.style.visibility = "visible";
|
|
64998
|
-
};
|
|
64999
|
-
const observer = new ResizeObserver((entries) => {
|
|
65000
|
-
size = entries[0]?.borderBoxSize[0];
|
|
65001
|
-
fit();
|
|
65002
|
-
});
|
|
65003
|
-
observer.observe(el, { box: "border-box" });
|
|
65004
|
-
window.addEventListener("resize", fit);
|
|
65005
|
-
return () => {
|
|
65006
|
-
observer.disconnect();
|
|
65007
|
-
window.removeEventListener("resize", fit);
|
|
65008
|
-
};
|
|
65009
|
-
}, [
|
|
65010
|
-
align,
|
|
65011
|
-
gap,
|
|
65012
|
-
pos,
|
|
65013
|
-
side,
|
|
65014
|
-
suppressed,
|
|
65015
|
-
visible
|
|
65016
|
-
]);
|
|
65017
|
-
(0, import_react.useEffect)(() => {
|
|
65018
|
-
announce(visible);
|
|
65019
|
-
return () => {
|
|
65020
|
-
announce(false);
|
|
65021
|
-
};
|
|
65022
|
-
}, [announce, visible]);
|
|
65023
|
-
const cancelShow = (0, import_react.useCallback)(() => {
|
|
65024
|
-
if (showTimer.current === null) return;
|
|
65025
|
-
clearTimeout(showTimer.current);
|
|
65026
|
-
showTimer.current = null;
|
|
65027
|
-
}, []);
|
|
65028
|
-
(0, import_react.useEffect)(() => {
|
|
65029
|
-
if (pinned && (disabled || !openOnClick)) setPinned(false);
|
|
65030
|
-
if (disabled) {
|
|
65031
|
-
cancelShow();
|
|
65032
|
-
triggers.current = {
|
|
65033
|
-
hover: false,
|
|
65034
|
-
focus: false
|
|
65035
|
-
};
|
|
65036
|
-
setPos(null);
|
|
65037
|
-
}
|
|
65038
|
-
return cancelShow;
|
|
65039
|
-
}, [
|
|
65040
|
-
cancelShow,
|
|
65041
|
-
disabled,
|
|
65042
|
-
openOnClick,
|
|
65043
|
-
pinned
|
|
65044
|
-
]);
|
|
65045
|
-
const show = () => {
|
|
65046
|
-
if (disabled) return;
|
|
65047
|
-
const el = anchor.current;
|
|
65048
|
-
/* v8 ignore next -- the ref is attached by event time: events fire on the cloned anchor. */
|
|
65049
|
-
if (el === null) return;
|
|
65050
|
-
const r = el.getBoundingClientRect();
|
|
65051
|
-
setPos({
|
|
65052
|
-
x: side === "right" ? r.right + 10 : align === "end" ? r.right : r.left + r.width / 2,
|
|
65053
|
-
top: r.top,
|
|
65054
|
-
bottom: r.bottom
|
|
65055
|
-
});
|
|
65056
|
-
announce(true);
|
|
65057
|
-
};
|
|
65058
|
-
const showAfterDelay = (delay) => {
|
|
65059
|
-
cancelShow();
|
|
65060
|
-
if (delay <= 0) {
|
|
65061
|
-
show();
|
|
65062
|
-
return;
|
|
65063
|
-
}
|
|
65064
|
-
showTimer.current = setTimeout(() => {
|
|
65065
|
-
showTimer.current = null;
|
|
65066
|
-
show();
|
|
65067
|
-
}, delay);
|
|
65068
|
-
};
|
|
65069
|
-
const withdraw = (0, import_react.useCallback)(() => {
|
|
65070
|
-
setPinned(false);
|
|
65071
|
-
setPos(null);
|
|
65072
|
-
announce(false);
|
|
65073
|
-
}, [announce]);
|
|
65074
|
-
const hide = () => {
|
|
65075
|
-
cancelShow();
|
|
65076
|
-
if (!triggers.current.hover && !triggers.current.focus && !pinned) withdraw();
|
|
65077
|
-
};
|
|
65078
|
-
const dismiss = (0, import_react.useCallback)(() => {
|
|
65079
|
-
cancelShow();
|
|
65080
|
-
triggers.current = {
|
|
65081
|
-
hover: false,
|
|
65082
|
-
focus: false
|
|
65083
|
-
};
|
|
65084
|
-
withdraw();
|
|
65085
|
-
}, [cancelShow, withdraw]);
|
|
65086
|
-
useDismissOnOutsidePointer(anchor, openOnClick && visible, dismiss, bubble);
|
|
65087
|
-
(0, import_react.useEffect)(() => {
|
|
65088
|
-
if (!openOnClick || !visible) return;
|
|
65089
|
-
const onKeyDown = (event) => {
|
|
65090
|
-
if (event.key !== "Escape" && event.key !== "Tab") return;
|
|
65091
|
-
if (event.key === "Escape") {
|
|
65092
|
-
event.preventDefault();
|
|
65093
|
-
event.stopPropagation();
|
|
65094
|
-
}
|
|
65095
|
-
dismiss();
|
|
65096
|
-
};
|
|
65097
|
-
document.addEventListener("keydown", onKeyDown, true);
|
|
65098
|
-
return () => {
|
|
65099
|
-
document.removeEventListener("keydown", onKeyDown, true);
|
|
65100
|
-
};
|
|
65101
|
-
}, [
|
|
65102
|
-
dismiss,
|
|
65103
|
-
openOnClick,
|
|
65104
|
-
visible
|
|
65105
|
-
]);
|
|
65106
|
-
const content = visible && !suppressed && (0, import_jsx_runtime.jsxs)("span", {
|
|
65107
|
-
ref: bubble,
|
|
65108
|
-
id: openOnClick ? id : void 0,
|
|
65109
|
-
className: Tooltip_module_default.bubble,
|
|
65110
|
-
"data-side": side,
|
|
65111
|
-
"data-portal": portal || void 0,
|
|
65112
|
-
"data-pinned": pinned || void 0,
|
|
65113
|
-
"data-align": align,
|
|
65114
|
-
"data-has-shortcut": shortcutKeys?.length ? true : void 0,
|
|
65115
|
-
style: {
|
|
65116
|
-
left: pos.x,
|
|
65117
|
-
top: y,
|
|
65118
|
-
visibility: "hidden",
|
|
65119
|
-
...maxWidth === void 0 ? {} : { maxWidth }
|
|
65120
|
-
},
|
|
65121
|
-
role: "tooltip",
|
|
65122
|
-
"aria-label": shortcutKeys?.length ? [resolvedLabel, shortcutKeys.join(" ")].filter(Boolean).join(" ") : void 0,
|
|
65123
|
-
children: [resolvedLabel && (0, import_jsx_runtime.jsx)("span", {
|
|
65124
|
-
className: Tooltip_module_default.label,
|
|
65125
|
-
children: resolvedLabel
|
|
65126
|
-
}), shortcutKeys !== void 0 && shortcutKeys.length > 0 && (0, import_jsx_runtime.jsx)(ShortcutKeys, {
|
|
65127
|
-
keys: shortcutKeys,
|
|
65128
|
-
variant: "tooltip"
|
|
65129
|
-
})]
|
|
65130
|
-
});
|
|
65131
|
-
return (0, import_jsx_runtime.jsxs)(TooltipSuppression.Provider, {
|
|
65132
|
-
value: setSuppressed,
|
|
65133
|
-
children: [(0, import_react.cloneElement)(children, {
|
|
65134
|
-
ref: mergedRef,
|
|
65135
|
-
"aria-describedby": openOnClick && visible ? [children.props["aria-describedby"], id].filter(Boolean).join(" ") : children.props["aria-describedby"],
|
|
65136
|
-
onMouseEnter: (e) => {
|
|
65137
|
-
children.props.onMouseEnter?.(e);
|
|
65138
|
-
triggers.current.hover = true;
|
|
65139
|
-
showAfterDelay(delayMs);
|
|
65140
|
-
},
|
|
65141
|
-
onMouseLeave: (e) => {
|
|
65142
|
-
children.props.onMouseLeave?.(e);
|
|
65143
|
-
triggers.current.hover = false;
|
|
65144
|
-
cancelShow();
|
|
65145
|
-
if (!pinned) withdraw();
|
|
65146
|
-
},
|
|
65147
|
-
onClick: (e) => {
|
|
65148
|
-
children.props.onClick?.(e);
|
|
65149
|
-
triggers.current.focus = false;
|
|
65150
|
-
cancelShow();
|
|
65151
|
-
if (openOnClick && !disabled && !pinned) {
|
|
65152
|
-
setPinned(true);
|
|
65153
|
-
show();
|
|
65154
|
-
} else withdraw();
|
|
65155
|
-
},
|
|
65156
|
-
onFocus: (e) => {
|
|
65157
|
-
children.props.onFocus?.(e);
|
|
65158
|
-
if (pointerModality()) return;
|
|
65159
|
-
triggers.current.focus = true;
|
|
65160
|
-
showAfterDelay(focusDelayMs);
|
|
65161
|
-
},
|
|
65162
|
-
onBlur: (e) => {
|
|
65163
|
-
children.props.onBlur?.(e);
|
|
65164
|
-
triggers.current.focus = false;
|
|
65165
|
-
hide();
|
|
65166
|
-
}
|
|
65167
|
-
}), portal ? content !== false && (0, import_react_dom.createPortal)(content, document.body) : content]
|
|
65168
|
-
});
|
|
65169
|
-
}
|
|
65320
|
+
/** Private coordination shared only by opted-in HoverCards inside one mounted group. */
|
|
65321
|
+
const HoverCardGroupContext = (0, import_react.createContext)(null);
|
|
65170
65322
|
/** Preview opacity transition and retained lifetime during dismissal. */
|
|
65171
65323
|
const PREVIEW_FADE_MS = 100;
|
|
65172
65324
|
const PREVIEW_MAX_HEIGHT = 420;
|
|
@@ -65175,7 +65327,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
65175
65327
|
const ANCHOR_GAP = 8;
|
|
65176
65328
|
const VIEWPORT_MARGIN = 8;
|
|
65177
65329
|
/**
|
|
65178
|
-
* Render an anchor with a hover-triggered preview card
|
|
65330
|
+
* Render an anchor with a hover-triggered preview card independently of nested tooltips.
|
|
65179
65331
|
* @param props.anchor - the hover target (rendered in place inside a wrapper span).
|
|
65180
65332
|
* @param props.content - card content; the pointer may rest on it, so it is
|
|
65181
65333
|
* readable and selectable, but it carries no dismissal affordance of its own.
|
|
@@ -65185,13 +65337,15 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
65185
65337
|
* @param props.widthAnchorRef - optional element whose width and horizontal position size the preview.
|
|
65186
65338
|
* @param props.inline - keep the anchor in prose; show a contained preview on hover or keyboard focus.
|
|
65187
65339
|
* @param props.disabled - suppress opening; turning true dismisses an open card.
|
|
65340
|
+
* @param props.grouped - share first-display dwell across the surrounding list and active portal.
|
|
65341
|
+
* Group replacement removes the previous card immediately, including a fading preview.
|
|
65188
65342
|
* @param props.copyText - optional primary value copied by activation and
|
|
65189
65343
|
* included in the card's accessible name.
|
|
65190
65344
|
* @param props.copyLabel - localized accessible activation-label prefix.
|
|
65191
65345
|
* @param props.copiedLabel - localized visible success label.
|
|
65192
65346
|
* @returns anchor wrapper with the conditional portaled card.
|
|
65193
65347
|
*/
|
|
65194
|
-
function HoverCard({ anchor, content, openDelayMs = 500, disabled = false, copyText, copyLabel, copiedLabel, variant = "compact", widthAnchorRef, inline = false }) {
|
|
65348
|
+
function HoverCard({ anchor, content, openDelayMs = 500, disabled = false, grouped = false, copyText, copyLabel, copiedLabel, variant = "compact", widthAnchorRef, inline = false }) {
|
|
65195
65349
|
const rootRef = (0, import_react.useRef)(null);
|
|
65196
65350
|
const cardRef = (0, import_react.useRef)(null);
|
|
65197
65351
|
const timerRef = (0, import_react.useRef)(null);
|
|
@@ -65206,7 +65360,9 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
65206
65360
|
const [pos, setPos] = (0, import_react.useState)(null);
|
|
65207
65361
|
const positioned = pos !== null;
|
|
65208
65362
|
const [copied, setCopied] = (0, import_react.useState)(false);
|
|
65209
|
-
const
|
|
65363
|
+
const parentGroup = (0, import_react.useContext)(HoverCardGroupContext);
|
|
65364
|
+
const group = grouped ? parentGroup : null;
|
|
65365
|
+
const [groupOwner] = (0, import_react.useState)(() => Symbol("hover-card"));
|
|
65210
65366
|
const clearCopied = (0, import_react.useCallback)(() => {
|
|
65211
65367
|
if (copyTimerRef.current !== null) {
|
|
65212
65368
|
clearTimeout(copyTimerRef.current);
|
|
@@ -65221,12 +65377,36 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
65221
65377
|
setPhase((current) => variant === "preview" && current !== "closed" ? "closing" : "closed");
|
|
65222
65378
|
}, [clearCopied, variant]);
|
|
65223
65379
|
const { arm: armClose, cancel: cancelClose } = usePointerGrace(close);
|
|
65224
|
-
const clearTimer = () => {
|
|
65380
|
+
const clearTimer = (0, import_react.useCallback)(() => {
|
|
65225
65381
|
if (timerRef.current !== null) {
|
|
65226
65382
|
clearTimeout(timerRef.current);
|
|
65227
65383
|
timerRef.current = null;
|
|
65228
65384
|
}
|
|
65229
|
-
};
|
|
65385
|
+
}, []);
|
|
65386
|
+
const dismissImmediately = (0, import_react.useCallback)(() => {
|
|
65387
|
+
clearTimer();
|
|
65388
|
+
cancelClose();
|
|
65389
|
+
copyEpochRef.current += 1;
|
|
65390
|
+
clearCopied();
|
|
65391
|
+
setPhase("closed");
|
|
65392
|
+
}, [
|
|
65393
|
+
clearTimer,
|
|
65394
|
+
cancelClose,
|
|
65395
|
+
clearCopied
|
|
65396
|
+
]);
|
|
65397
|
+
const groupVisible = open && positioned;
|
|
65398
|
+
(0, import_react.useLayoutEffect)(() => {
|
|
65399
|
+
if (!groupVisible || group === null) return;
|
|
65400
|
+
group.shown(groupOwner, dismissImmediately, cardRef.current);
|
|
65401
|
+
return () => {
|
|
65402
|
+
group.release(groupOwner);
|
|
65403
|
+
};
|
|
65404
|
+
}, [
|
|
65405
|
+
group,
|
|
65406
|
+
groupOwner,
|
|
65407
|
+
groupVisible,
|
|
65408
|
+
dismissImmediately
|
|
65409
|
+
]);
|
|
65230
65410
|
(0, import_react.useEffect)(() => {
|
|
65231
65411
|
if (!closing) return;
|
|
65232
65412
|
const timer = setTimeout(() => {
|
|
@@ -65351,7 +65531,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
65351
65531
|
inline
|
|
65352
65532
|
]);
|
|
65353
65533
|
(0, import_react.useLayoutEffect)(() => {
|
|
65354
|
-
if (!open || pos === null || variant === "preview" || inline
|
|
65534
|
+
if (!open || pos === null || variant === "preview" || inline) return;
|
|
65355
65535
|
/* v8 ignore next -- the card is mounted whenever pos is set, so the ref is attached here. */
|
|
65356
65536
|
const h = cardRef.current?.offsetHeight ?? 0;
|
|
65357
65537
|
if (pos.top + h > window.innerHeight - VIEWPORT_MARGIN) setPos({
|
|
@@ -65362,8 +65542,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
65362
65542
|
open,
|
|
65363
65543
|
pos,
|
|
65364
65544
|
variant,
|
|
65365
|
-
inline
|
|
65366
|
-
suppressed
|
|
65545
|
+
inline
|
|
65367
65546
|
]);
|
|
65368
65547
|
const copy = async (text) => {
|
|
65369
65548
|
if (copied || copyingRef.current) return;
|
|
@@ -65385,7 +65564,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
65385
65564
|
cancelClose();
|
|
65386
65565
|
close();
|
|
65387
65566
|
};
|
|
65388
|
-
const card = open && pos !== null &&
|
|
65567
|
+
const card = open && pos !== null && (0, import_jsx_runtime.jsx)("div", {
|
|
65389
65568
|
ref: cardRef,
|
|
65390
65569
|
className: clsx(HoverCard_module_default.card, variant === "preview" && HoverCard_module_default.preview, inline && HoverCard_module_default.media, copyable && HoverCard_module_default.copyable, copied && HoverCard_module_default.feedback),
|
|
65391
65570
|
"data-closing": closing || void 0,
|
|
@@ -65439,7 +65618,8 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
65439
65618
|
return;
|
|
65440
65619
|
}
|
|
65441
65620
|
clearTimer();
|
|
65442
|
-
|
|
65621
|
+
if (group?.isWarm()) setPhase("open");
|
|
65622
|
+
else timerRef.current = setTimeout(() => {
|
|
65443
65623
|
setPhase("open");
|
|
65444
65624
|
}, openDelayMs);
|
|
65445
65625
|
},
|
|
@@ -65450,11 +65630,8 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
65450
65630
|
onPointerDownCapture: dismissFromAnchor,
|
|
65451
65631
|
onClickCapture: dismissFromAnchor,
|
|
65452
65632
|
children: [
|
|
65453
|
-
|
|
65454
|
-
|
|
65455
|
-
children: anchor
|
|
65456
|
-
}),
|
|
65457
|
-
open && !suppressed && copyable && (0, import_jsx_runtime.jsx)("span", {
|
|
65633
|
+
anchor,
|
|
65634
|
+
open && copyable && (0, import_jsx_runtime.jsx)("span", {
|
|
65458
65635
|
className: HoverCard_module_default.status,
|
|
65459
65636
|
role: "status",
|
|
65460
65637
|
children: copied ? copiedLabel : ""
|
|
@@ -66159,6 +66336,317 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
|
|
|
66159
66336
|
});
|
|
66160
66337
|
}
|
|
66161
66338
|
/**
|
|
66339
|
+
* Document-wide input tracking shared by tooltips and focus-ring styles.
|
|
66340
|
+
* Tooltips follow the last input; rings follow navigation or a key followed by
|
|
66341
|
+
* focus on a different control. Modifiers and refocusing alone keep rings silent.
|
|
66342
|
+
* Module-level listeners live for the document lifetime; Node imports are inert.
|
|
66343
|
+
*/
|
|
66344
|
+
/** Modality values published on the document element. */
|
|
66345
|
+
const INPUT_MODALITY = {
|
|
66346
|
+
pointer: "pointer",
|
|
66347
|
+
keyboard: "keyboard"
|
|
66348
|
+
};
|
|
66349
|
+
/** Attribute carrying whether focus navigation last owned focus. */
|
|
66350
|
+
const INPUT_MODALITY_ATTRIBUTE = "data-input-modality";
|
|
66351
|
+
const FOCUS_NAVIGATION = /* @__PURE__ */ new Set([
|
|
66352
|
+
"Tab",
|
|
66353
|
+
"Home",
|
|
66354
|
+
"End",
|
|
66355
|
+
"PageUp",
|
|
66356
|
+
"PageDown"
|
|
66357
|
+
]);
|
|
66358
|
+
let pointer = false;
|
|
66359
|
+
let pointerOwnsFocus = false;
|
|
66360
|
+
let keyFocusOrigin;
|
|
66361
|
+
function publish() {
|
|
66362
|
+
document.documentElement.setAttribute(INPUT_MODALITY_ATTRIBUTE, pointerOwnsFocus ? INPUT_MODALITY.pointer : INPUT_MODALITY.keyboard);
|
|
66363
|
+
}
|
|
66364
|
+
/**
|
|
66365
|
+
* Whether the last input came from a pointer, independently of ring visibility.
|
|
66366
|
+
* @returns True after pointer input; false after any key.
|
|
66367
|
+
*/
|
|
66368
|
+
function pointerModality() {
|
|
66369
|
+
return pointer;
|
|
66370
|
+
}
|
|
66371
|
+
if (typeof window !== "undefined") {
|
|
66372
|
+
window.addEventListener("pointerdown", () => {
|
|
66373
|
+
pointer = true;
|
|
66374
|
+
pointerOwnsFocus = true;
|
|
66375
|
+
keyFocusOrigin = void 0;
|
|
66376
|
+
publish();
|
|
66377
|
+
}, true);
|
|
66378
|
+
window.addEventListener("keydown", (event) => {
|
|
66379
|
+
pointer = false;
|
|
66380
|
+
if (event.isComposing) {
|
|
66381
|
+
keyFocusOrigin = void 0;
|
|
66382
|
+
return;
|
|
66383
|
+
}
|
|
66384
|
+
keyFocusOrigin = event.composedPath()[0];
|
|
66385
|
+
if (!FOCUS_NAVIGATION.has(event.key) && !event.key.startsWith("Arrow")) return;
|
|
66386
|
+
pointerOwnsFocus = false;
|
|
66387
|
+
publish();
|
|
66388
|
+
}, true);
|
|
66389
|
+
window.addEventListener("focusin", (event) => {
|
|
66390
|
+
if (keyFocusOrigin === void 0 || event.composedPath()[0] === keyFocusOrigin) return;
|
|
66391
|
+
keyFocusOrigin = void 0;
|
|
66392
|
+
if (!pointerOwnsFocus) return;
|
|
66393
|
+
pointerOwnsFocus = false;
|
|
66394
|
+
publish();
|
|
66395
|
+
}, true);
|
|
66396
|
+
window.addEventListener("blur", () => {
|
|
66397
|
+
keyFocusOrigin = void 0;
|
|
66398
|
+
});
|
|
66399
|
+
}
|
|
66400
|
+
/** Anchor-preserving tooltips; an optional body portal escapes clipping containers and stacking contexts that cap the bubble's z-index. */
|
|
66401
|
+
/**
|
|
66402
|
+
* Suppression channel for nested tooltips: a visible descendant tooltip
|
|
66403
|
+
* withdraws the enclosing tooltip while its bubble is shown.
|
|
66404
|
+
*/
|
|
66405
|
+
const TooltipSuppression = (0, import_react.createContext)(null);
|
|
66406
|
+
/**
|
|
66407
|
+
* Attach a hover/focus tooltip to an anchor element.
|
|
66408
|
+
* @param props.label - bubble text, or a resolver evaluated only while visible; an empty string shows only shortcut keys.
|
|
66409
|
+
* @param props.shortcutKeys - effective key labels rendered as platform-formatted keycaps after optional text.
|
|
66410
|
+
* @param props.side - placement relative to the anchor (default 'right').
|
|
66411
|
+
* @param props.align - horizontal anchor-edge alignment for 'bottom'/'top' bubbles: 'end' pins
|
|
66412
|
+
* the bubble's right edge to the anchor's (for anchors beside other hover surfaces the centered
|
|
66413
|
+
* bubble would overlap); default 'center'. Ignored for side 'right'.
|
|
66414
|
+
* @param props.portal - render the bubble under document.body, so an ancestor's clipping or its
|
|
66415
|
+
* stacking context (which confines the bubble's z-index to that context) cannot hide it.
|
|
66416
|
+
* @param props.delayMs - hover delay in milliseconds (default 0).
|
|
66417
|
+
* @param props.focusDelayMs - keyboard focus delay in milliseconds (default 0); blur, click,
|
|
66418
|
+
* mouse leave, disabling, and unmount cancel a pending show.
|
|
66419
|
+
* @param props.gap - anchor-to-bubble distance in pixels for 'bottom'/'top' bubbles (default 8);
|
|
66420
|
+
* ignored for side 'right'.
|
|
66421
|
+
* @param props.disabled - suppress the bubble while true; the anchor renders identically so
|
|
66422
|
+
* toggling never remounts it (which would cut its CSS transitions).
|
|
66423
|
+
* @param props.maxWidth - bubble width cap in pixels, for labels long enough that the default
|
|
66424
|
+
* half-viewport cap would render a slab wider than the surface the anchor sits on.
|
|
66425
|
+
* @param props.openOnClick - clicking also pins the bubble for reading; another click, Escape,
|
|
66426
|
+
* Tab, or an outside pointerdown dismisses it. Defaults to false for ordinary action tooltips.
|
|
66427
|
+
* @param props.children - a single anchor element; its own ref (callback or object) is forwarded alongside the tooltip's.
|
|
66428
|
+
* @returns the cloned anchor plus a fixed-position bubble, optionally portaled to the body.
|
|
66429
|
+
* The bubble stays hidden until ResizeObserver supplies its size for viewport fitting; clicking the
|
|
66430
|
+
* anchor dismisses the bubble unless openOnClick is enabled, and focus arriving after a pointer
|
|
66431
|
+
* interaction (a closing menu refocusing its trigger) never raises it.
|
|
66432
|
+
*/
|
|
66433
|
+
function Tooltip({ label, shortcutKeys, side = "right", align = "center", delayMs = 0, focusDelayMs = 0, gap = 8, disabled = false, portal = false, maxWidth, openOnClick = false, children }) {
|
|
66434
|
+
const id = (0, import_react.useId)();
|
|
66435
|
+
const [pinned, setPinned] = (0, import_react.useState)(false);
|
|
66436
|
+
const anchor = (0, import_react.useRef)(null);
|
|
66437
|
+
const childRef = children.ref;
|
|
66438
|
+
const mergedRef = (0, import_react.useCallback)((el) => {
|
|
66439
|
+
anchor.current = el;
|
|
66440
|
+
if (typeof childRef === "function") childRef(el);
|
|
66441
|
+
else if (childRef != null) childRef.current = el;
|
|
66442
|
+
}, [childRef]);
|
|
66443
|
+
const [pos, setPos] = (0, import_react.useState)(null);
|
|
66444
|
+
const bubble = (0, import_react.useRef)(null);
|
|
66445
|
+
const resolvedLabel = pos === null ? null : typeof label === "function" ? label() : label;
|
|
66446
|
+
const y = pos === null ? 0 : side === "right" ? pos.top + (pos.bottom - pos.top) / 2 : side === "top" ? pos.top - gap : pos.bottom + gap;
|
|
66447
|
+
const showTimer = (0, import_react.useRef)(null);
|
|
66448
|
+
const triggers = (0, import_react.useRef)({
|
|
66449
|
+
hover: false,
|
|
66450
|
+
focus: false
|
|
66451
|
+
});
|
|
66452
|
+
const suppressAncestors = (0, import_react.useContext)(TooltipSuppression);
|
|
66453
|
+
const [suppressed, setSuppressed] = (0, import_react.useState)(false);
|
|
66454
|
+
const announce = (0, import_react.useCallback)((active) => {
|
|
66455
|
+
suppressAncestors?.(active);
|
|
66456
|
+
}, [suppressAncestors]);
|
|
66457
|
+
const visible = pos !== null && !disabled;
|
|
66458
|
+
(0, import_react.useEffect)(() => {
|
|
66459
|
+
const el = bubble.current;
|
|
66460
|
+
if (pos === null || !visible || suppressed || el === null) return;
|
|
66461
|
+
const edgeMargin = 12;
|
|
66462
|
+
let size;
|
|
66463
|
+
let placement = side;
|
|
66464
|
+
const fit = () => {
|
|
66465
|
+
if (size === void 0) return;
|
|
66466
|
+
const { inlineSize: width, blockSize: height } = size;
|
|
66467
|
+
const offset = side === "right" ? 0 : align === "end" ? width : width / 2;
|
|
66468
|
+
const left = Math.max(edgeMargin, Math.min(pos.x - offset, window.innerWidth - edgeMargin - width));
|
|
66469
|
+
const fitsBelow = pos.bottom + gap + height <= window.innerHeight - edgeMargin;
|
|
66470
|
+
const fitsAbove = pos.top - gap - height >= edgeMargin;
|
|
66471
|
+
if (placement === "bottom" && !fitsBelow && fitsAbove) placement = "top";
|
|
66472
|
+
else if (placement === "top" && !fitsAbove && fitsBelow) placement = "bottom";
|
|
66473
|
+
el.style.left = `${left + offset}px`;
|
|
66474
|
+
el.style.top = `${placement === "right" ? (pos.top + pos.bottom) / 2 : placement === "top" ? pos.top - gap : pos.bottom + gap}px`;
|
|
66475
|
+
el.dataset.side = placement;
|
|
66476
|
+
el.style.visibility = "visible";
|
|
66477
|
+
};
|
|
66478
|
+
const observer = new ResizeObserver((entries) => {
|
|
66479
|
+
size = entries[0]?.borderBoxSize[0];
|
|
66480
|
+
fit();
|
|
66481
|
+
});
|
|
66482
|
+
observer.observe(el, { box: "border-box" });
|
|
66483
|
+
window.addEventListener("resize", fit);
|
|
66484
|
+
return () => {
|
|
66485
|
+
observer.disconnect();
|
|
66486
|
+
window.removeEventListener("resize", fit);
|
|
66487
|
+
};
|
|
66488
|
+
}, [
|
|
66489
|
+
align,
|
|
66490
|
+
gap,
|
|
66491
|
+
pos,
|
|
66492
|
+
side,
|
|
66493
|
+
suppressed,
|
|
66494
|
+
visible
|
|
66495
|
+
]);
|
|
66496
|
+
(0, import_react.useEffect)(() => {
|
|
66497
|
+
announce(visible);
|
|
66498
|
+
return () => {
|
|
66499
|
+
announce(false);
|
|
66500
|
+
};
|
|
66501
|
+
}, [announce, visible]);
|
|
66502
|
+
const cancelShow = (0, import_react.useCallback)(() => {
|
|
66503
|
+
if (showTimer.current === null) return;
|
|
66504
|
+
clearTimeout(showTimer.current);
|
|
66505
|
+
showTimer.current = null;
|
|
66506
|
+
}, []);
|
|
66507
|
+
(0, import_react.useEffect)(() => {
|
|
66508
|
+
if (pinned && (disabled || !openOnClick)) setPinned(false);
|
|
66509
|
+
if (disabled) {
|
|
66510
|
+
cancelShow();
|
|
66511
|
+
triggers.current = {
|
|
66512
|
+
hover: false,
|
|
66513
|
+
focus: false
|
|
66514
|
+
};
|
|
66515
|
+
setPos(null);
|
|
66516
|
+
}
|
|
66517
|
+
return cancelShow;
|
|
66518
|
+
}, [
|
|
66519
|
+
cancelShow,
|
|
66520
|
+
disabled,
|
|
66521
|
+
openOnClick,
|
|
66522
|
+
pinned
|
|
66523
|
+
]);
|
|
66524
|
+
const show = () => {
|
|
66525
|
+
if (disabled) return;
|
|
66526
|
+
const el = anchor.current;
|
|
66527
|
+
/* v8 ignore next -- the ref is attached by event time: events fire on the cloned anchor. */
|
|
66528
|
+
if (el === null) return;
|
|
66529
|
+
const r = el.getBoundingClientRect();
|
|
66530
|
+
setPos({
|
|
66531
|
+
x: side === "right" ? r.right + 10 : align === "end" ? r.right : r.left + r.width / 2,
|
|
66532
|
+
top: r.top,
|
|
66533
|
+
bottom: r.bottom
|
|
66534
|
+
});
|
|
66535
|
+
announce(true);
|
|
66536
|
+
};
|
|
66537
|
+
const showAfterDelay = (delay) => {
|
|
66538
|
+
cancelShow();
|
|
66539
|
+
if (delay <= 0) {
|
|
66540
|
+
show();
|
|
66541
|
+
return;
|
|
66542
|
+
}
|
|
66543
|
+
showTimer.current = setTimeout(() => {
|
|
66544
|
+
showTimer.current = null;
|
|
66545
|
+
show();
|
|
66546
|
+
}, delay);
|
|
66547
|
+
};
|
|
66548
|
+
const withdraw = (0, import_react.useCallback)(() => {
|
|
66549
|
+
setPinned(false);
|
|
66550
|
+
setPos(null);
|
|
66551
|
+
announce(false);
|
|
66552
|
+
}, [announce]);
|
|
66553
|
+
const hide = () => {
|
|
66554
|
+
cancelShow();
|
|
66555
|
+
if (!triggers.current.hover && !triggers.current.focus && !pinned) withdraw();
|
|
66556
|
+
};
|
|
66557
|
+
const dismiss = (0, import_react.useCallback)(() => {
|
|
66558
|
+
cancelShow();
|
|
66559
|
+
triggers.current = {
|
|
66560
|
+
hover: false,
|
|
66561
|
+
focus: false
|
|
66562
|
+
};
|
|
66563
|
+
withdraw();
|
|
66564
|
+
}, [cancelShow, withdraw]);
|
|
66565
|
+
useDismissOnOutsidePointer(anchor, openOnClick && visible, dismiss, bubble);
|
|
66566
|
+
(0, import_react.useEffect)(() => {
|
|
66567
|
+
if (!openOnClick || !visible) return;
|
|
66568
|
+
const onKeyDown = (event) => {
|
|
66569
|
+
if (event.key !== "Escape" && event.key !== "Tab") return;
|
|
66570
|
+
if (event.key === "Escape") {
|
|
66571
|
+
event.preventDefault();
|
|
66572
|
+
event.stopPropagation();
|
|
66573
|
+
}
|
|
66574
|
+
dismiss();
|
|
66575
|
+
};
|
|
66576
|
+
document.addEventListener("keydown", onKeyDown, true);
|
|
66577
|
+
return () => {
|
|
66578
|
+
document.removeEventListener("keydown", onKeyDown, true);
|
|
66579
|
+
};
|
|
66580
|
+
}, [
|
|
66581
|
+
dismiss,
|
|
66582
|
+
openOnClick,
|
|
66583
|
+
visible
|
|
66584
|
+
]);
|
|
66585
|
+
const content = visible && !suppressed && (0, import_jsx_runtime.jsxs)("span", {
|
|
66586
|
+
ref: bubble,
|
|
66587
|
+
id: openOnClick ? id : void 0,
|
|
66588
|
+
className: Tooltip_module_default.bubble,
|
|
66589
|
+
"data-side": side,
|
|
66590
|
+
"data-portal": portal || void 0,
|
|
66591
|
+
"data-pinned": pinned || void 0,
|
|
66592
|
+
"data-align": align,
|
|
66593
|
+
"data-has-shortcut": shortcutKeys?.length ? true : void 0,
|
|
66594
|
+
style: {
|
|
66595
|
+
left: pos.x,
|
|
66596
|
+
top: y,
|
|
66597
|
+
visibility: "hidden",
|
|
66598
|
+
...maxWidth === void 0 ? {} : { maxWidth }
|
|
66599
|
+
},
|
|
66600
|
+
role: "tooltip",
|
|
66601
|
+
"aria-label": shortcutKeys?.length ? [resolvedLabel, shortcutKeys.join(" ")].filter(Boolean).join(" ") : void 0,
|
|
66602
|
+
children: [resolvedLabel && (0, import_jsx_runtime.jsx)("span", {
|
|
66603
|
+
className: Tooltip_module_default.label,
|
|
66604
|
+
children: resolvedLabel
|
|
66605
|
+
}), shortcutKeys !== void 0 && shortcutKeys.length > 0 && (0, import_jsx_runtime.jsx)(ShortcutKeys, {
|
|
66606
|
+
keys: shortcutKeys,
|
|
66607
|
+
variant: "tooltip"
|
|
66608
|
+
})]
|
|
66609
|
+
});
|
|
66610
|
+
return (0, import_jsx_runtime.jsxs)(TooltipSuppression.Provider, {
|
|
66611
|
+
value: setSuppressed,
|
|
66612
|
+
children: [(0, import_react.cloneElement)(children, {
|
|
66613
|
+
ref: mergedRef,
|
|
66614
|
+
"aria-describedby": openOnClick && visible ? [children.props["aria-describedby"], id].filter(Boolean).join(" ") : children.props["aria-describedby"],
|
|
66615
|
+
onMouseEnter: (e) => {
|
|
66616
|
+
children.props.onMouseEnter?.(e);
|
|
66617
|
+
triggers.current.hover = true;
|
|
66618
|
+
showAfterDelay(delayMs);
|
|
66619
|
+
},
|
|
66620
|
+
onMouseLeave: (e) => {
|
|
66621
|
+
children.props.onMouseLeave?.(e);
|
|
66622
|
+
triggers.current.hover = false;
|
|
66623
|
+
cancelShow();
|
|
66624
|
+
if (!pinned) withdraw();
|
|
66625
|
+
},
|
|
66626
|
+
onClick: (e) => {
|
|
66627
|
+
children.props.onClick?.(e);
|
|
66628
|
+
triggers.current.focus = false;
|
|
66629
|
+
cancelShow();
|
|
66630
|
+
if (openOnClick && !disabled && !pinned) {
|
|
66631
|
+
setPinned(true);
|
|
66632
|
+
show();
|
|
66633
|
+
} else withdraw();
|
|
66634
|
+
},
|
|
66635
|
+
onFocus: (e) => {
|
|
66636
|
+
children.props.onFocus?.(e);
|
|
66637
|
+
if (pointerModality()) return;
|
|
66638
|
+
triggers.current.focus = true;
|
|
66639
|
+
showAfterDelay(focusDelayMs);
|
|
66640
|
+
},
|
|
66641
|
+
onBlur: (e) => {
|
|
66642
|
+
children.props.onBlur?.(e);
|
|
66643
|
+
triggers.current.focus = false;
|
|
66644
|
+
hide();
|
|
66645
|
+
}
|
|
66646
|
+
}), portal ? content !== false && (0, import_react_dom.createPortal)(content, document.body) : content]
|
|
66647
|
+
});
|
|
66648
|
+
}
|
|
66649
|
+
/**
|
|
66162
66650
|
* The client's ONE syntax highlighter: a synchronous fine-grained shiki core
|
|
66163
66651
|
* (JavaScript regex engine — no oniguruma WASM, bundle-friendly) with an
|
|
66164
66652
|
* explicit grammar allowlist and a CSS-variables theme. Colors live in the
|