@jingyi0605/codingns4dsh 0.2.1-beta.12 → 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 +3 -3
- package/README.md +3 -3
- 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 +30007 -15931
- 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 +4 -0
- package/data/build/dist/client/cli-slots.d.ts.map +1 -1
- package/data/build/dist/client/cli-slots.js +15 -7
- package/data/build/dist/client/cli-slots.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.native-workspace-store.js +1 -1
- 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.session-translation.js +16 -0
- package/data/build/dist/client/client.session-translation.js.map +1 -1
- package/data/build/dist/client/client.transport.js +459 -44
- package/data/build/dist/client/client.transport.js.map +1 -1
- package/data/build/dist/client/conversation-translation-settings.d.ts +2 -1
- package/data/build/dist/client/conversation-translation-settings.d.ts.map +1 -1
- package/data/build/dist/client/conversation-translation-settings.js +7 -5
- package/data/build/dist/client/conversation-translation-settings.js.map +1 -1
- package/data/build/dist/client/desktop-assistant.js +457 -42
- 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 +181 -105
- 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/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.js +2 -2
- 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 +1 -1
- package/data/build/dist/client/session-translation-chat.d.ts.map +1 -1
- package/data/build/dist/client/session-translation-chat.js +26 -22
- package/data/build/dist/client/session-translation-chat.js.map +1 -1
- 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/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/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/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-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/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 +7 -1
- 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 +16 -0
- 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/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 +179 -20
- 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/dsh-message-projector.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-message-projector.js +17 -4
- 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 +37 -8
- package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-driver.d.ts +2 -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 +161 -25
- 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/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/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/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/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 +33 -5
- 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/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/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 +7 -0
- 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 +1 -1
- package/data/build/dist/host/features/session-prompt-translation.d.ts.map +1 -1
- package/data/build/dist/host/features/session-prompt-translation.js +2 -1
- package/data/build/dist/host/features/session-prompt-translation.js.map +1 -1
- package/data/build/dist/host/features/session-translation-protection.d.ts +6 -0
- package/data/build/dist/host/features/session-translation-protection.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation-protection.js +21 -0
- package/data/build/dist/host/features/session-translation-protection.js.map +1 -1
- package/data/build/dist/host/features/session-translation-recovery.d.ts +3 -2
- package/data/build/dist/host/features/session-translation-recovery.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation-recovery.js +6 -3
- package/data/build/dist/host/features/session-translation-recovery.js.map +1 -1
- package/data/build/dist/host/features/session-translation-service.d.ts +3 -0
- package/data/build/dist/host/features/session-translation-service.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation-service.js +14 -8
- package/data/build/dist/host/features/session-translation-service.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/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 +5 -0
- package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
- package/data/build/dist/host/native-session-bridge.js +3 -0
- 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 +8 -3
- 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 +13 -0
- 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/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 +25 -0
- 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/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 +8 -3
- package/data/build/dist/shared/contracts/session-translation.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/session-translation.js +14 -0
- package/data/build/dist/shared/contracts/session-translation.js.map +1 -1
- package/data/build/dist/shared/contracts/version.d.ts +1 -1
- package/data/build/dist/shared/contracts/version.js +1 -1
- 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 +1 -1
- package/profile/README.md +2 -2
- package/profile/package.json +2 -2
- package/profile/version.json +1 -1
- package/version.json +1 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ReactElement } from 'react';
|
|
2
|
+
import type { CodingNsCliAdapterDescriptor } from '../shared/contracts/cli-adapter.js';
|
|
3
|
+
import type { CliManagementAction, CliManagementOperation } from '../shared/contracts/cli-management.js';
|
|
4
|
+
import type { CodingNsRpcClient } from './features/types.js';
|
|
5
|
+
import type { CodingNsTranslator } from './locale.js';
|
|
6
|
+
export declare function cliManagementAction(adapter: CodingNsCliAdapterDescriptor): CliManagementAction | null;
|
|
7
|
+
export interface CliManagementDialogProps {
|
|
8
|
+
readonly adapter: CodingNsCliAdapterDescriptor;
|
|
9
|
+
readonly rpc: CodingNsRpcClient;
|
|
10
|
+
readonly hostLabel: string;
|
|
11
|
+
readonly t: CodingNsTranslator;
|
|
12
|
+
readonly visible?: boolean;
|
|
13
|
+
readonly onClose: (keepTracking?: boolean) => void;
|
|
14
|
+
readonly onCatalogChanged: (operation?: CliManagementOperation) => void | Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare function CliManagementDialog({ adapter, rpc, hostLabel, t, visible, onClose, onCatalogChanged }: CliManagementDialogProps): ReactElement;
|
|
17
|
+
export declare function ManagementStatus({ operation, t }: {
|
|
18
|
+
readonly operation: CliManagementOperation;
|
|
19
|
+
readonly t: CodingNsTranslator;
|
|
20
|
+
}): ReactElement;
|
|
21
|
+
//# sourceMappingURL=cli-management-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-management-dialog.d.ts","sourceRoot":"","sources":["../../../../src/client/cli-management-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAC/F,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAqB,MAAM,uCAAuC,CAAA;AAC3H,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAOrD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,4BAA4B,GAAG,mBAAmB,GAAG,IAAI,CAIrG;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAA;IAC9C,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,CAAC,EAAE,kBAAkB,CAAA;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACxF;AAED,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,OAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,wBAAwB,GAAG,YAAY,CA4JrJ;AAED,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,CAAA;CAAE,GAAG,YAAY,CAe/I"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { createElement, Fragment, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { callCliRpc, errorMessage } from './cli-catalog.js';
|
|
3
|
+
import { CliSettingsDialog } from './cli-settings-dialog.js';
|
|
4
|
+
import { CliManagementTerminal } from './cli-management-terminal.js';
|
|
5
|
+
import { uiFontSize } from './font-scale.js';
|
|
6
|
+
import { dshSettingsButtonStyle, dshSettingsHelpStyle, dshThemeColor } from './theme.js';
|
|
7
|
+
export function cliManagementAction(adapter) {
|
|
8
|
+
if (adapter.detectionState === 'pending' || adapter.detectionState === 'running' || adapter.detectionState === 'error' || adapter.detectionFailure)
|
|
9
|
+
return null;
|
|
10
|
+
if (!adapter.installed)
|
|
11
|
+
return 'install';
|
|
12
|
+
return adapter.update?.state === 'available' && adapter.update.latestVersion ? 'update' : null;
|
|
13
|
+
}
|
|
14
|
+
export function CliManagementDialog({ adapter, rpc, hostLabel, t, visible = true, onClose, onCatalogChanged }) {
|
|
15
|
+
const action = adapter.installed ? 'update' : 'install';
|
|
16
|
+
const [plan, setPlan] = useState(null);
|
|
17
|
+
const [operation, setOperation] = useState(null);
|
|
18
|
+
const [error, setError] = useState('');
|
|
19
|
+
const [busy, setBusy] = useState(false);
|
|
20
|
+
const [loading, setLoading] = useState(true);
|
|
21
|
+
const [revision, setRevision] = useState(0);
|
|
22
|
+
const [catalogRefresh, setCatalogRefresh] = useState('idle');
|
|
23
|
+
const active = useRef(false);
|
|
24
|
+
const submitting = useRef(false);
|
|
25
|
+
const automaticAttempted = useRef(false);
|
|
26
|
+
const callback = useRef(onCatalogChanged);
|
|
27
|
+
callback.current = onCatalogChanged;
|
|
28
|
+
const reported = useRef(null);
|
|
29
|
+
const running = operation?.state === 'running';
|
|
30
|
+
const ownOperation = operation?.adapterId === adapter.id ? operation : null;
|
|
31
|
+
const method = plan?.methods.find(entry => entry.id === plan.automaticMethodId)
|
|
32
|
+
?? (plan?.action === 'install' ? plan.methods[0] : plan?.methods.find(entry => !entry.executable));
|
|
33
|
+
const currentAction = ownOperation?.action ?? plan?.action ?? action;
|
|
34
|
+
const automatic = plan?.action === 'update' && plan.automaticMethodId !== undefined;
|
|
35
|
+
const close = () => onClose(running || submitting.current);
|
|
36
|
+
const refreshCatalog = async (completed) => {
|
|
37
|
+
setCatalogRefresh('refreshing');
|
|
38
|
+
try {
|
|
39
|
+
await callback.current(completed);
|
|
40
|
+
if (active.current)
|
|
41
|
+
setCatalogRefresh('refreshed');
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
if (active.current)
|
|
45
|
+
setCatalogRefresh('failed');
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const startPlan = async (nextPlan, nextMethodId) => {
|
|
49
|
+
if (submitting.current || !nextPlan.methods.some(entry => entry.id === nextMethodId && entry.executable))
|
|
50
|
+
return;
|
|
51
|
+
submitting.current = true;
|
|
52
|
+
setBusy(true);
|
|
53
|
+
setError('');
|
|
54
|
+
try {
|
|
55
|
+
const result = await callCliRpc(rpc, 'management/start', { adapterId: adapter.id, action: nextPlan.action, methodId: nextMethodId, fingerprint: nextPlan.fingerprint }, AbortSignal.timeout(10_000));
|
|
56
|
+
if (active.current)
|
|
57
|
+
setOperation(result);
|
|
58
|
+
}
|
|
59
|
+
catch (cause) {
|
|
60
|
+
if (active.current)
|
|
61
|
+
setError(errorMessage(cause));
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
submitting.current = false;
|
|
65
|
+
if (active.current)
|
|
66
|
+
setBusy(false);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
active.current = true;
|
|
71
|
+
return () => { active.current = false; };
|
|
72
|
+
}, []);
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
let valid = true;
|
|
75
|
+
const abort = new AbortController();
|
|
76
|
+
setLoading(true);
|
|
77
|
+
setError('');
|
|
78
|
+
void (async () => {
|
|
79
|
+
const status = await callCliRpc(rpc, 'management/status', {}, AbortSignal.any([abort.signal, AbortSignal.timeout(10_000)]));
|
|
80
|
+
if (!valid)
|
|
81
|
+
return;
|
|
82
|
+
const completedTarget = status?.adapterId === adapter.id && status.state === 'succeeded'
|
|
83
|
+
&& adapter.update?.latestVersion !== undefined && status.adapter?.version === adapter.update.latestVersion;
|
|
84
|
+
setOperation(status?.state === 'running' || completedTarget ? status : null);
|
|
85
|
+
if (status?.adapterId === adapter.id && (status.state === 'running' || completedTarget))
|
|
86
|
+
return;
|
|
87
|
+
const result = await callCliRpc(rpc, 'management/plan', { adapterId: adapter.id, action }, AbortSignal.any([abort.signal, AbortSignal.timeout(120_000)]));
|
|
88
|
+
if (!valid)
|
|
89
|
+
return;
|
|
90
|
+
setPlan(result);
|
|
91
|
+
if (action === 'update' && result.automaticMethodId && status?.state !== 'running' && !automaticAttempted.current) {
|
|
92
|
+
automaticAttempted.current = true;
|
|
93
|
+
await startPlan(result, result.automaticMethodId);
|
|
94
|
+
}
|
|
95
|
+
})().catch((cause) => { if (valid)
|
|
96
|
+
setError(errorMessage(cause)); })
|
|
97
|
+
.finally(() => { if (valid)
|
|
98
|
+
setLoading(false); });
|
|
99
|
+
return () => { valid = false; abort.abort(); };
|
|
100
|
+
}, [rpc, adapter.id, action, revision]);
|
|
101
|
+
useEffect(() => {
|
|
102
|
+
if (operation === null)
|
|
103
|
+
return;
|
|
104
|
+
if (operation.state !== 'running') {
|
|
105
|
+
if (reported.current !== operation.id) {
|
|
106
|
+
reported.current = operation.id;
|
|
107
|
+
void refreshCatalog(operation);
|
|
108
|
+
}
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
let valid = true;
|
|
112
|
+
const abort = new AbortController();
|
|
113
|
+
const poll = async () => {
|
|
114
|
+
try {
|
|
115
|
+
const value = await callCliRpc(rpc, 'management/status', {}, AbortSignal.any([abort.signal, AbortSignal.timeout(10_000)]));
|
|
116
|
+
if (valid) {
|
|
117
|
+
setOperation(value);
|
|
118
|
+
setError('');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (cause) {
|
|
122
|
+
if (valid)
|
|
123
|
+
setError(errorMessage(cause));
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
if (valid)
|
|
127
|
+
timer = setTimeout(() => { void poll(); }, 1_500);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
let timer = setTimeout(() => { void poll(); }, 750);
|
|
131
|
+
return () => { valid = false; clearTimeout(timer); abort.abort(); };
|
|
132
|
+
}, [rpc, operation, adapter.id, revision]);
|
|
133
|
+
const start = async () => {
|
|
134
|
+
if (submitting.current || busy || running || !method?.executable || plan === null)
|
|
135
|
+
return;
|
|
136
|
+
await startPlan(plan, method.id);
|
|
137
|
+
};
|
|
138
|
+
const reviewAgain = async () => {
|
|
139
|
+
if (busy || running)
|
|
140
|
+
return;
|
|
141
|
+
setBusy(true);
|
|
142
|
+
setError('');
|
|
143
|
+
try {
|
|
144
|
+
const nextAction = (ownOperation?.adapter ?? adapter).installed ? 'update' : 'install';
|
|
145
|
+
const result = await callCliRpc(rpc, 'management/plan', { adapterId: adapter.id, action: nextAction }, AbortSignal.timeout(120_000));
|
|
146
|
+
if (active.current) {
|
|
147
|
+
setPlan(result);
|
|
148
|
+
setOperation(null);
|
|
149
|
+
if (result.action === 'update' && result.automaticMethodId)
|
|
150
|
+
await startPlan(result, result.automaticMethodId);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch (cause) {
|
|
154
|
+
if (active.current)
|
|
155
|
+
setError(errorMessage(cause));
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
if (active.current)
|
|
159
|
+
setBusy(false);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
const cancel = async () => {
|
|
163
|
+
if (!ownOperation || busy)
|
|
164
|
+
return;
|
|
165
|
+
setBusy(true);
|
|
166
|
+
try {
|
|
167
|
+
const result = await callCliRpc(rpc, 'management/cancel', { operationId: ownOperation.id }, AbortSignal.timeout(10_000));
|
|
168
|
+
if (active.current)
|
|
169
|
+
setOperation(result);
|
|
170
|
+
}
|
|
171
|
+
catch (cause) {
|
|
172
|
+
if (active.current)
|
|
173
|
+
setError(errorMessage(cause));
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
if (active.current)
|
|
177
|
+
setBusy(false);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
const redetect = async () => {
|
|
181
|
+
setBusy(true);
|
|
182
|
+
setError('');
|
|
183
|
+
try {
|
|
184
|
+
await callCliRpc(rpc, 'catalog/refresh', { adapterId: adapter.id, checkUpdates: true }, AbortSignal.timeout(120_000));
|
|
185
|
+
if (active.current) {
|
|
186
|
+
await callback.current();
|
|
187
|
+
if (active.current)
|
|
188
|
+
onClose();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch (cause) {
|
|
192
|
+
if (active.current)
|
|
193
|
+
setError(errorMessage(cause));
|
|
194
|
+
}
|
|
195
|
+
finally {
|
|
196
|
+
if (active.current)
|
|
197
|
+
setBusy(false);
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
if (!visible)
|
|
201
|
+
return createElement(Fragment);
|
|
202
|
+
return createElement(CliSettingsDialog, { titleId: 'codingns-agent-management-title', onClose: close }, createElement('div', { style: { padding: 18, display: 'flex', flexDirection: 'column', gap: 12, minWidth: 0 } }, createElement('h3', { id: 'codingns-agent-management-title', style: { margin: 0, fontSize: uiFontSize(18), lineHeight: 1.35 } }, t('cli.manage.title', { action: t(`cli.manage.${currentAction}`), name: adapter.name })), createElement('div', { style: dshSettingsHelpStyle }, t('cli.manage.host', { name: hostLabel, platform: plan?.platform ?? '—' })), loading && createElement('div', { role: 'status' }, t('cli.manage.loading')), plan && createElement('a', { href: plan.sourceUrl, target: '_blank', rel: 'noopener noreferrer', style: { fontSize: uiFontSize(12), color: dshThemeColor.accent, alignSelf: 'flex-start' } }, t('cli.manage.source')), plan?.action === 'update' && plan.methods.some(entry => entry.executable) && !automatic && !running && ownOperation === null && createElement('div', { style: dshSettingsHelpStyle }, t('cli.manage.methodUnknown')), method && createElement('details', { open: !automatic }, createElement('summary', { style: { ...dshSettingsHelpStyle, cursor: 'pointer' } }, t('cli.manage.details')), createElement('div', { style: dshSettingsHelpStyle }, method.instructions), method.command && createElement('pre', { style: { margin: 0, whiteSpace: 'pre-wrap', overflowWrap: 'anywhere', padding: 12, background: dshThemeColor.surfaceSubtle, borderRadius: 6 } }, method.command)), method?.executable && !automatic && !running && ownOperation === null && createElement('div', { style: dshSettingsHelpStyle }, t('cli.manage.review')), running && !ownOperation && createElement('div', { role: 'status' }, t('cli.manage.otherBusy', { name: operation.adapterId })), ownOperation && createElement(ManagementStatus, { operation: ownOperation, t }), ownOperation && createElement(CliManagementTerminal, { operation: ownOperation, t }), ownOperation?.state === 'succeeded' && catalogRefresh !== 'idle' && createElement('div', {
|
|
203
|
+
role: catalogRefresh === 'failed' ? 'alert' : 'status', style: { ...dshSettingsHelpStyle, color: catalogRefresh === 'failed' ? dshThemeColor.warning : dshThemeColor.labelSecondary },
|
|
204
|
+
}, t(`cli.manage.catalog.${catalogRefresh}`), catalogRefresh === 'failed' && createElement('button', {
|
|
205
|
+
type: 'button', style: { ...dshSettingsButtonStyle, marginLeft: 8 }, onClick: () => { void refreshCatalog(ownOperation); },
|
|
206
|
+
}, t('cli.manage.refreshList'))), error && createElement('div', { role: 'alert', style: { color: dshThemeColor.error } }, error), running && createElement('div', { style: dshSettingsHelpStyle }, t('cli.manage.background')), createElement('div', { style: { display: 'flex', flexWrap: 'wrap', justifyContent: 'flex-end', gap: 8 } }, ownOperation && !running && ownOperation.state !== 'succeeded' && createElement('button', { type: 'button', style: dshSettingsButtonStyle, disabled: busy || loading, onClick: () => { void reviewAgain(); } }, t('cli.manage.reviewAgain')), error && createElement('button', { type: 'button', style: dshSettingsButtonStyle, disabled: busy, onClick: () => { setRevision((value) => value + 1); } }, t('cli.manage.retryStatus')), !running && ownOperation?.state !== 'succeeded' && createElement('button', { type: 'button', style: dshSettingsButtonStyle, disabled: busy || loading, onClick: () => { void redetect(); } }, t('cli.manage.redetect')), method?.executable && !running && ownOperation === null && createElement('button', { type: 'button', style: dshSettingsButtonStyle, disabled: busy || loading, onClick: () => { void start(); } }, t('cli.manage.run', { action: t(`cli.manage.${currentAction}`) })), ownOperation?.state === 'running' && createElement('button', { type: 'button', style: dshSettingsButtonStyle, disabled: busy, onClick: () => { void cancel(); } }, t('cli.manage.cancel')), createElement('button', { type: 'button', style: dshSettingsButtonStyle, onClick: close }, t('cli.manage.close')))));
|
|
207
|
+
}
|
|
208
|
+
export function ManagementStatus({ operation, t }) {
|
|
209
|
+
const state = operation.state;
|
|
210
|
+
const color = state === 'succeeded' ? dshThemeColor.success : state === 'failed' ? dshThemeColor.error : state === 'cancelled' ? dshThemeColor.warning : dshThemeColor.accent;
|
|
211
|
+
return createElement('div', { role: state === 'failed' ? 'alert' : 'status', 'data-state': state,
|
|
212
|
+
style: { display: 'flex', gap: 10, alignItems: 'flex-start', padding: '12px 14px', borderRadius: 10, border: `1px solid color-mix(in srgb, ${color} 30%, transparent)`, background: `color-mix(in srgb, ${color} 8%, transparent)`, color },
|
|
213
|
+
}, createElement('svg', { width: 22, height: 22, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: 1.8, strokeLinecap: 'round', strokeLinejoin: 'round', 'aria-hidden': true, style: { flexShrink: 0 } }, createElement('circle', { cx: 12, cy: 12, r: 9 }), createElement('path', { d: state === 'succeeded' ? 'm8 12 3 3 5-6' : state === 'failed' ? 'm9 9 6 6m0-6-6 6' : state === 'cancelled' ? 'M8 12h8' : 'M12 7v5l3 2' })), createElement('div', { style: { minWidth: 0 } }, createElement('strong', { style: { display: 'block', fontSize: uiFontSize(13) } }, t(`cli.manage.result.${state}`, { action: t(`cli.manage.${operation.action}`) })), state !== 'running' && createElement('div', { style: { marginTop: 4, fontSize: uiFontSize(12), color: dshThemeColor.labelPrimary, overflowWrap: 'anywhere', whiteSpace: 'pre-wrap' } }, state === 'succeeded' ? t('cli.manage.succeeded', { version: operation.adapter?.version ?? '—' }) : operation.error ?? t(`cli.manage.${state}`))));
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=cli-management-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-management-dialog.js","sourceRoot":"","sources":["../../../../src/client/cli-management-dialog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ReactElement } from 'react';
|
|
2
|
+
import type { CliManagementOperation } from '../shared/contracts/cli-management.js';
|
|
3
|
+
import type { CodingNsTranslator } from './locale.js';
|
|
4
|
+
/** Follow new output until the user scrolls up to inspect earlier lines. */
|
|
5
|
+
export declare function CliManagementTerminal({ operation, t }: {
|
|
6
|
+
readonly operation: CliManagementOperation;
|
|
7
|
+
readonly t: CodingNsTranslator;
|
|
8
|
+
}): ReactElement;
|
|
9
|
+
//# sourceMappingURL=cli-management-terminal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-management-terminal.d.ts","sourceRoot":"","sources":["../../../../src/client/cli-management-terminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAC3F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIrD,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE;IACtD,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAA;IAC1C,QAAQ,CAAC,CAAC,EAAE,kBAAkB,CAAA;CAC/B,GAAG,YAAY,CA+Bf"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createElement, useLayoutEffect, useRef, useState } from 'react';
|
|
2
|
+
import { uiFontSize } from './font-scale.js';
|
|
3
|
+
import { dshThemeColor } from './theme.js';
|
|
4
|
+
/** Follow new output until the user scrolls up to inspect earlier lines. */
|
|
5
|
+
export function CliManagementTerminal({ operation, t }) {
|
|
6
|
+
const viewport = useRef(null);
|
|
7
|
+
const follow = useRef(true);
|
|
8
|
+
const [following, setFollowing] = useState(true);
|
|
9
|
+
useLayoutEffect(() => { follow.current = true; setFollowing(true); }, [operation.id]);
|
|
10
|
+
useLayoutEffect(() => {
|
|
11
|
+
if (follow.current && viewport.current)
|
|
12
|
+
viewport.current.scrollTop = viewport.current.scrollHeight;
|
|
13
|
+
}, [operation.id, operation.output]);
|
|
14
|
+
const color = operation.state === 'succeeded' ? '#86efac' : operation.state === 'failed' ? '#fda4af' : operation.state === 'cancelled' ? '#fcd34d' : '#93c5fd';
|
|
15
|
+
return createElement('section', { 'aria-label': t('cli.manage.output'), style: { minWidth: 0, overflow: 'hidden', borderRadius: 10, border: '1px solid #263244', background: '#0b1220', color: '#e2e8f0' } }, createElement('div', { style: { display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: 8, padding: '9px 12px', background: '#131e30', borderBottom: '1px solid #263244', fontSize: uiFontSize(11) } }, createElement('span', { 'aria-hidden': true, style: { color: '#94a3b8', fontFamily: dshThemeColor.codeFont } }, '>_'), createElement('span', { style: { flex: 1 } }, t('cli.manage.output')), !following && createElement('button', { type: 'button', onClick: () => {
|
|
16
|
+
follow.current = true;
|
|
17
|
+
setFollowing(true);
|
|
18
|
+
if (viewport.current)
|
|
19
|
+
viewport.current.scrollTop = viewport.current.scrollHeight;
|
|
20
|
+
}, style: { border: '1px solid #475569', borderRadius: 5, padding: '4px 8px', background: 'transparent', color: '#e2e8f0', cursor: 'pointer', font: 'inherit', minHeight: 32 } }, t('cli.manage.latestOutput')), createElement('span', { style: { color, display: 'inline-flex', gap: 5, alignItems: 'center' } }, createElement('span', { 'aria-hidden': true, style: { width: 6, height: 6, borderRadius: '50%', background: color } }), t(`cli.manage.log.${operation.state}`))), createElement('pre', {
|
|
21
|
+
ref: viewport, role: 'log', 'aria-label': t('cli.manage.output'), 'aria-live': 'off', tabIndex: 0,
|
|
22
|
+
onScroll: (event) => {
|
|
23
|
+
const node = event.currentTarget;
|
|
24
|
+
follow.current = node.scrollHeight - node.clientHeight - node.scrollTop <= 24;
|
|
25
|
+
setFollowing(follow.current);
|
|
26
|
+
},
|
|
27
|
+
style: { boxSizing: 'border-box', margin: 0, padding: '12px 14px', height: 'clamp(140px, 32dvh, 300px)', overflow: 'auto', overscrollBehavior: 'contain', whiteSpace: 'pre-wrap', overflowWrap: 'anywhere', fontFamily: dshThemeColor.codeFont, fontSize: uiFontSize(12), lineHeight: 1.65, tabSize: 2 },
|
|
28
|
+
}, operation.output || t(operation.state === 'running' ? 'cli.manage.waitingOutput' : 'cli.manage.emptyOutput')));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=cli-management-terminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-management-terminal.js","sourceRoot":"","sources":["../../../../src/client/cli-management-terminal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
/** Native top-layer dialogs escape settings containment and isolate nested dialog focus. */
|
|
3
|
+
export declare function CliSettingsDialog({ titleId, wide, onClose, children }: {
|
|
4
|
+
readonly titleId: string;
|
|
5
|
+
readonly wide?: boolean;
|
|
6
|
+
readonly onClose: () => void;
|
|
7
|
+
readonly children?: ReactNode;
|
|
8
|
+
}): ReactElement;
|
|
9
|
+
//# sourceMappingURL=cli-settings-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-settings-dialog.d.ts","sourceRoot":"","sources":["../../../../src/client/cli-settings-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAM3F,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAC9B,GAAG,YAAY,CAgCf"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createElement, useEffect, useRef } from 'react';
|
|
2
|
+
import { createPortal } from 'react-dom';
|
|
3
|
+
import { dshThemeColor } from './theme.js';
|
|
4
|
+
const styleId = 'codingns-cli-settings-dialog';
|
|
5
|
+
/** Native top-layer dialogs escape settings containment and isolate nested dialog focus. */
|
|
6
|
+
export function CliSettingsDialog({ titleId, wide = false, onClose, children }) {
|
|
7
|
+
const ref = useRef(null);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (typeof document === 'undefined')
|
|
10
|
+
return;
|
|
11
|
+
if (!document.getElementById(styleId)) {
|
|
12
|
+
const style = document.createElement('style');
|
|
13
|
+
style.id = styleId;
|
|
14
|
+
style.textContent = `
|
|
15
|
+
.codingns-cli-dialog{position:fixed;margin:auto;width:min(680px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--dsw-alias-border-l3,#d9d9d9);border-radius:14px;box-sizing:border-box;overflow:auto;overscroll-behavior:contain}
|
|
16
|
+
.codingns-cli-dialog[data-wide="true"]{width:min(960px,calc(100vw - 32px));height:min(820px,calc(100dvh - 32px))}
|
|
17
|
+
.codingns-cli-dialog[open]{display:flex;flex-direction:column}
|
|
18
|
+
.codingns-cli-dialog::backdrop{background:var(--dsw-alias-bg-mask-1,rgba(0,0,0,.45))}
|
|
19
|
+
@media(max-width:600px){.codingns-cli-dialog[data-wide="true"]{width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}}`;
|
|
20
|
+
document.head.appendChild(style);
|
|
21
|
+
}
|
|
22
|
+
const opener = document.activeElement;
|
|
23
|
+
const dialog = ref.current;
|
|
24
|
+
dialog?.showModal();
|
|
25
|
+
return () => { if (dialog?.open)
|
|
26
|
+
dialog.close(); if (opener?.isConnected)
|
|
27
|
+
opener.focus(); };
|
|
28
|
+
}, []);
|
|
29
|
+
const dialog = createElement('dialog', {
|
|
30
|
+
ref, className: 'codingns-cli-dialog', 'data-wide': wide, 'aria-labelledby': titleId, 'aria-modal': true,
|
|
31
|
+
onCancel: (event) => { event.preventDefault(); event.stopPropagation(); onClose(); },
|
|
32
|
+
onKeyDown: (event) => { if (event.key === 'Escape')
|
|
33
|
+
event.stopPropagation(); },
|
|
34
|
+
onPointerDown: (event) => {
|
|
35
|
+
if (event.target !== event.currentTarget)
|
|
36
|
+
return;
|
|
37
|
+
const box = event.currentTarget.getBoundingClientRect();
|
|
38
|
+
if (event.clientX < box.left || event.clientX > box.right || event.clientY < box.top || event.clientY > box.bottom)
|
|
39
|
+
onClose();
|
|
40
|
+
},
|
|
41
|
+
style: { color: dshThemeColor.labelPrimary, background: dshThemeColor.menuBackground, boxShadow: dshThemeColor.prominentShadow },
|
|
42
|
+
}, children);
|
|
43
|
+
return typeof document === 'undefined' ? dialog : createPortal(dialog, document.body);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=cli-settings-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-settings-dialog.js","sourceRoot":"","sources":["../../../../src/client/cli-settings-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAqC,MAAM,OAAO,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,MAAM,OAAO,GAAG,8BAA8B,CAAA;AAE9C,4FAA4F;AAC5F,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,EAK3E;IACC,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAM;QAC3C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAC7C,KAAK,CAAC,EAAE,GAAG,OAAO,CAAA;YAClB,KAAK,CAAC,WAAW,GAAG;;;;;6NAKmM,CAAA;YACvN,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAClC,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAmC,CAAA;QAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;QAC1B,MAAM,EAAE,SAAS,EAAE,CAAA;QACnB,OAAO,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI;YAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,WAAW;YAAE,MAAM,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC,CAAA;IAC5F,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE;QACrC,GAAG,EAAE,SAAS,EAAE,qBAAqB,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI;QACxG,QAAQ,EAAE,CAAC,KAA0D,EAAE,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC;QACxI,SAAS,EAAE,CAAC,KAA+C,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE,KAAK,CAAC,eAAe,EAAE,CAAA,CAAC,CAAC;QACvH,aAAa,EAAE,CAAC,KAA8F,EAAE,EAAE;YAChH,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa;gBAAE,OAAM;YAChD,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAA;YACvD,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAA;QAC/H,CAAC;QACD,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,cAAc,EAAE,SAAS,EAAE,aAAa,CAAC,eAAe,EAAE;KACjI,EAAE,QAAQ,CAAC,CAAA;IACZ,OAAO,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;AACvF,CAAC"}
|
|
@@ -20,7 +20,7 @@ export function createCliSettingsRpc(rpc, peerHostId, locale) {
|
|
|
20
20
|
const method = channel === CODINGNS_RPC_CHANNEL ? endpoint : channel === '/api' ? endpoint.replace(/^codingns\//u, '') : '';
|
|
21
21
|
if (peerHostId === null) {
|
|
22
22
|
// 聚合 Transport 识别此字段,设置页的本机目录不会跟随远端前台导航。
|
|
23
|
-
const input = CATALOG_ENDPOINTS.has(method) ? { ...asRecord(payload), catalogHostId: 'local' } : payload;
|
|
23
|
+
const input = CATALOG_ENDPOINTS.has(method) || method.startsWith('cli/management/') ? { ...asRecord(payload), catalogHostId: 'local' } : payload;
|
|
24
24
|
return rpc.call(channel, endpoint, input, signal);
|
|
25
25
|
}
|
|
26
26
|
// 远端设置页仅支持目录查询与检测刷新,禁止把本机启用开关转发出去。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-settings-rpc.js","sourceRoot":"","sources":["../../../../src/client/cli-settings-rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,yBAAyB,EAAuB,MAAM,aAAa,CAAA;AAE5E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC,CAAA;AACvF,MAAM,OAAO,GAAG,IAAI,OAAO,EAA8H,CAAA;AACzJ,IAAI,eAAe,GAAG,CAAC,CAAA;AAEvB,wCAAwC;AACxC,MAAM,UAAU,oBAAoB,CAAC,GAAsB,EAAE,UAAyB,EAAE,MAAuB;IAC7G,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAAC,CAAC;IACvE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACpC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,MAAM,CAAA;IAC1E,MAAM,IAAI,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAsB;QAChC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;YAC3C,MAAM,MAAM,GAAG,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC3H,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,yCAAyC;gBACzC,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"cli-settings-rpc.js","sourceRoot":"","sources":["../../../../src/client/cli-settings-rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,10 @@ export declare function waitForCliSessionSelection(sessionId: string): Promise<v
|
|
|
43
43
|
export declare function cliSessionSelectionRevision(sessionId: string): number;
|
|
44
44
|
/** Share the model menu's effective translation switch with pending message actions. */
|
|
45
45
|
export declare function useCliSessionTranslationEnabled(sessionId: string | undefined, rpc: CodingNsRpcClient): boolean;
|
|
46
|
+
export declare function useCliSessionTranslationState(sessionId: string | undefined, rpc: CodingNsRpcClient): {
|
|
47
|
+
adapterId: string;
|
|
48
|
+
enabled: boolean;
|
|
49
|
+
};
|
|
46
50
|
/**
|
|
47
51
|
* 把 Agent 与模型选择器注册到同一工具栏,使用顺序保证 Agent 始终位于模型左侧。
|
|
48
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-slots.d.ts","sourceRoot":"","sources":["../../../../src/client/cli-slots.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAIzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli-slots.d.ts","sourceRoot":"","sources":["../../../../src/client/cli-slots.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAIzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAsBpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AAE9E,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AASxE,UAAU,eAAe;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;CACpC;AAED,KAAK,eAAe,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,QAAQ,KAAK,QAAQ,CAAA;AAE/F,6DAA6D;AAC7D,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,OAAO;QACf,yBAAyB,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,SAAS,CAAA;SAAE,CAAA;QAC7D,0BAA0B,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,SAAS,CAAA;SAAE,CAAA;KAC/D;IACD,UAAU,oBAAoB;QAC5B,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,eAAe,CAAA;KAC5B;CACF;AAmDD,UAAU,YAAY;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAA;IACrC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,qCAAqC;IACrC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,CAAA;CAClE;AAcD,oDAAoD;AACpD,wBAAsB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASjF;AAED,gDAAgD;AAChD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wFAAwF;AACxF,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAE9G;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAM5I;AA6ED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,cAAc,EACtB,4BAA4B,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,EACxD,QAAQ,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAC5C,MAAM,IAAI,CA2BZ;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAkDpD;AA8HD,iBAAS,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI,CAuQ3D;AAsCD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;AAC/B,YAAY,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -6,6 +6,7 @@ import { Switch } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
|
6
6
|
import { adapterCatalogWithDsh, adapterDetectionLabel, callCliRpc, findModel, firstModel } from './cli-catalog.js';
|
|
7
7
|
import { activeServiceTier, canSelectServiceTier, carriedServiceTierId, isServiceTierEnabled, modelServiceTiers, needsServiceTierRevalidation, toggledServiceTierId, } from './service-tier.js';
|
|
8
8
|
import { resolveAssistantControlIcon, resolveDataIcon } from '../dsh-capabilities/client/primitives-adapter.js';
|
|
9
|
+
import { composerSlotSelector } from '../dsh-capabilities/client/composer-slot-selectors.js';
|
|
9
10
|
import { providerIconUrl } from './provider-icons.js';
|
|
10
11
|
import { publishSessionSelection } from './session-adapter-cache.js';
|
|
11
12
|
import { getModelCatalogCache, invalidateModelCatalogCache, loadModelCatalog, shouldRevalidateModelCatalog, } from './model-catalog-cache.js';
|
|
@@ -26,9 +27,11 @@ function installComposerStyles() {
|
|
|
26
27
|
const style = document.createElement('style');
|
|
27
28
|
style.dataset.plugin = 'codingns4dsh';
|
|
28
29
|
style.dataset.pluginCss = CLI_STYLE_ID;
|
|
30
|
+
const modelSlot = composerSlotSelector('conversation.input.model');
|
|
31
|
+
const rightSlot = composerSlotSelector('conversation.input.right');
|
|
29
32
|
style.textContent = [
|
|
30
33
|
// 每个输入框只读取自己的适配器;主会话与右侧子会话可以同时使用不同 Agent。
|
|
31
|
-
|
|
34
|
+
`[data-composer-card]:has([data-codingns-agent]:not([data-codingns-agent="dsh"])) ${modelSlot}{display:none!important}`,
|
|
32
35
|
// DSH 在控制行放不下时给行加 data-model-compact,原生模型席位据此把文本收成图标。
|
|
33
36
|
// 这里不再强制工具行 nowrap:保留原生 flex-wrap 语义,DSH 的测量口径才能反映真实占用,
|
|
34
37
|
// 放不下时先收起模型,而不是把左侧工具组(权限/规划组)压到内容溢出与相邻按钮重叠。
|
|
@@ -37,10 +40,10 @@ function installComposerStyles() {
|
|
|
37
40
|
'[data-composer-card] [data-model-compact] .codingns4dsh-model-root .codingns4dsh-model-name,',
|
|
38
41
|
'[data-composer-card] [data-model-compact] .codingns4dsh-model-root .codingns4dsh-model-effort{display:none!important}',
|
|
39
42
|
'[data-composer-card] [data-model-compact] .codingns4dsh-model-root .codingns4dsh-model-icon{display:block!important;flex:none}',
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
`[data-composer-card] > div:has(${rightSlot}) > div:has(> ${rightSlot}){min-width:0;width:0;flex:1 1 0}`,
|
|
44
|
+
`[data-composer-card] > div:has(${rightSlot}) ${rightSlot} > .codingns4dsh-model-root{min-width:0;max-width:min(360px,45cqw);flex:1 1 min(360px,45cqw)}`,
|
|
45
|
+
`[data-composer-card] > div:has(${rightSlot}) ${modelSlot} > select{width:100%;min-width:0;max-width:min(150px,45cqw);flex:1 1 min(150px,45cqw);overflow:hidden;white-space:nowrap}`,
|
|
46
|
+
`[data-composer-card] > div:has(${rightSlot}) ${modelSlot} > button{width:100%;min-width:0;max-width:min(360px,45cqw);overflow:hidden;white-space:nowrap}`,
|
|
44
47
|
// 与 DSH 原生同类控件一致(权限选择器 460px、预设标签 540px 都用容器查询):
|
|
45
48
|
// composer 控制行收窄到 650px 以内时,适配器按钮让出名称与右侧状态图标(下拉箭头/锁形),
|
|
46
49
|
// 只保留适配器图标;行宽恢复后名称自动回来。这是纯 CSS 判定,不随任何折叠状态摆动。
|
|
@@ -49,7 +52,7 @@ function installComposerStyles() {
|
|
|
49
52
|
'@container (width<=650px){[data-composer-card] .codingns4dsh-agent-trigger > .codingns4dsh-agent-label{display:none}[data-composer-card] .codingns4dsh-agent-trigger > svg{display:none!important}[data-composer-card] .codingns4dsh-agent-trigger{padding-left:4px;padding-right:4px;gap:0}}',
|
|
50
53
|
// 移动端工具栏空间有限,收掉控件组自身的间距;控件组按 CSS Modules 本地名匹配,
|
|
51
54
|
// 不绑定构建哈希(npm 分发的 Web 构建是 uV2eYG_*,Desktop 内嵌构建是 yhfFVG_*)。
|
|
52
|
-
|
|
55
|
+
`@media (max-width: 768px){[data-composer-card] > div:has(${rightSlot}) > div:has(> ${rightSlot}),[data-composer-card] ${rightSlot},[data-composer-card] [class*="_standardControls"],[data-composer-card] [class*="_trailing"]{gap:0!important;column-gap:0!important}}`,
|
|
53
56
|
// ContextMeter 在 pressure 尚未合并时会暂时返回 null;dock 保留同样的行高,数值回来时只更新内容。
|
|
54
57
|
'[data-composer-card] + div{box-sizing:border-box;min-height:26px;align-items:center}',
|
|
55
58
|
'[data-composer-card] + div svg[viewBox="0 0 14 14"] circle:last-child{transition:stroke-dasharray .18s ease,stroke .18s ease}',
|
|
@@ -93,10 +96,14 @@ export function cliSessionSelectionRevision(sessionId) {
|
|
|
93
96
|
}
|
|
94
97
|
/** Share the model menu's effective translation switch with pending message actions. */
|
|
95
98
|
export function useCliSessionTranslationEnabled(sessionId, rpc) {
|
|
99
|
+
return useCliSessionTranslationState(sessionId, rpc).enabled;
|
|
100
|
+
}
|
|
101
|
+
export function useCliSessionTranslationState(sessionId, rpc) {
|
|
96
102
|
const [selection] = useSelection(sessionId, rpc);
|
|
97
103
|
const nativeDefault = useSyncExternalStore(subscribeNativeTranslationDefault, readNativeTranslationDefault, readNativeTranslationDefault);
|
|
98
|
-
|
|
104
|
+
const enabled = supportsSessionTranslation(selection.adapterId)
|
|
99
105
|
&& (selection.translationEnabled ?? (selection.adapterId === DSH_NATIVE_SESSION_ADAPTER_ID && nativeDefault === true));
|
|
106
|
+
return { adapterId: selection.adapterId, enabled };
|
|
100
107
|
}
|
|
101
108
|
/** 在 Agent 和模型两个 Slot 之间共享当前会话选择。 */
|
|
102
109
|
function useSelection(sessionId, rpc) {
|
|
@@ -448,6 +455,7 @@ function ModelSlot(props) {
|
|
|
448
455
|
// 所有 Hooks 都先执行;原生与外部适配器切换不能改变 Hook 调用顺序。
|
|
449
456
|
const translationSettings = translationSettingsOpen && props.settings !== undefined
|
|
450
457
|
? createElement(ConversationTranslationSettings, {
|
|
458
|
+
key: selection.adapterId, adapterId: selection.adapterId,
|
|
451
459
|
settings: props.settings, t, onClose: () => setTranslationSettingsOpen(false),
|
|
452
460
|
})
|
|
453
461
|
: null;
|