@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
|
@@ -33,6 +33,9 @@ window.__ModuleLoader__.load({
|
|
|
33
33
|
"zh"
|
|
34
34
|
];
|
|
35
35
|
const DEFAULT_SESSION_TRANSLATION_SETTINGS = {
|
|
36
|
+
inputEnabled: true,
|
|
37
|
+
reasoningEnabled: true,
|
|
38
|
+
assistantEnabled: true,
|
|
36
39
|
inputLanguage: "en",
|
|
37
40
|
outputLanguage: "zh",
|
|
38
41
|
bilingual: false,
|
|
@@ -52,6 +55,15 @@ window.__ModuleLoader__.load({
|
|
|
52
55
|
function supportsSessionTranslation(adapterId) {
|
|
53
56
|
return adapterId === "dsh" || isSessionTranslationAdapter(adapterId);
|
|
54
57
|
}
|
|
58
|
+
/** Preserve existing choices until an adapter overrides them. Missing legacy values default on. */
|
|
59
|
+
function resolveSessionTranslationOptions(settings, adapterId) {
|
|
60
|
+
const options = settings?.adapterOptions?.[adapterId];
|
|
61
|
+
return {
|
|
62
|
+
inputEnabled: (options?.inputEnabled ?? settings?.inputEnabled) !== false,
|
|
63
|
+
reasoningEnabled: (options?.reasoningEnabled ?? settings?.reasoningEnabled) !== false,
|
|
64
|
+
assistantEnabled: (options?.assistantEnabled ?? settings?.assistantEnabled) !== false
|
|
65
|
+
};
|
|
66
|
+
}
|
|
55
67
|
/** 判断任意字符串是否为受支持的翻译语言。 */
|
|
56
68
|
function isSessionTranslationLanguage(value) {
|
|
57
69
|
return typeof value === "string" && SESSION_TRANSLATION_LANGUAGES.includes(value);
|
|
@@ -67,13 +79,19 @@ window.__ModuleLoader__.load({
|
|
|
67
79
|
if (value === void 0) return fallback;
|
|
68
80
|
const translationModel = normalizeTranslationModel(value.translationModel);
|
|
69
81
|
const translationModels = Array.isArray(value.translationModels) ? normalizeTranslationModels(value.translationModels) : void 0;
|
|
82
|
+
const translationRules = Array.isArray(value.translationRules) ? value.translationRules.filter((rule) => typeof rule === "string").map((rule) => rule.trim()).filter((rule) => rule !== "") : void 0;
|
|
70
83
|
return {
|
|
84
|
+
inputEnabled: value.inputEnabled !== false,
|
|
85
|
+
reasoningEnabled: value.reasoningEnabled !== false,
|
|
86
|
+
assistantEnabled: value.assistantEnabled !== false,
|
|
71
87
|
inputLanguage: isSessionTranslationLanguage(value.inputLanguage) ? value.inputLanguage : fallback.inputLanguage,
|
|
72
88
|
outputLanguage: isSessionTranslationLanguage(value.outputLanguage) ? value.outputLanguage : fallback.outputLanguage,
|
|
73
89
|
bilingual: value.bilingual === true,
|
|
74
90
|
nativeEnabled: value.nativeEnabled === true,
|
|
91
|
+
...value.adapterOptions === void 0 ? {} : { adapterOptions: Object.fromEntries(Object.entries(value.adapterOptions).filter(([adapterId]) => supportsSessionTranslation(adapterId)).map(([adapterId]) => [adapterId, resolveSessionTranslationOptions(value, adapterId)])) },
|
|
75
92
|
...translationModel === void 0 ? {} : { translationModel },
|
|
76
|
-
...translationModels === void 0 ? {} : { translationModels }
|
|
93
|
+
...translationModels === void 0 ? {} : { translationModels },
|
|
94
|
+
...translationRules === void 0 ? {} : { translationRules }
|
|
77
95
|
};
|
|
78
96
|
}
|
|
79
97
|
function normalizeTranslationModels(values) {
|
|
@@ -136,6 +154,12 @@ window.__ModuleLoader__.load({
|
|
|
136
154
|
return readSessionTranslationMetrics;
|
|
137
155
|
}
|
|
138
156
|
});
|
|
157
|
+
Object.defineProperty(exports, "resolveSessionTranslationOptions", {
|
|
158
|
+
enumerable: true,
|
|
159
|
+
get: function() {
|
|
160
|
+
return resolveSessionTranslationOptions;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
139
163
|
Object.defineProperty(exports, "supportsSessionTranslation", {
|
|
140
164
|
enumerable: true,
|
|
141
165
|
get: function() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.session-translation.js","names":[],"sources":["../../../../src/shared/contracts/session-translation.ts"],"sourcesContent":["/** 会话翻译中间件支持的语言。 */\nexport type SessionTranslationLanguage = 'en' | 'fr' | 'de' | 'ja' | 'zh'\n\n/** 输出内容类别;工具调用、命令和路径不属于可翻译内容。 */\nexport type SessionTranslationOutputKind = 'reasoning' | 'assistant'\n\n/** 翻译请求使用的 DSH 原生模型;不保存密钥,只保存 provider/model 标识。 */\nexport interface SessionTranslationModel {\n readonly provider: string\n readonly model: string\n}\n\n/** 会话翻译中间件的持久化设置。 */\nexport interface SessionTranslationSettings {\n /** 用户输入送入 Agent 的目的语言。 */\n readonly inputLanguage: SessionTranslationLanguage\n /** 输出翻译语言;默认中文。 */\n readonly outputLanguage: SessionTranslationLanguage\n /** 是否在 UI 和历史回看中同时保留原文与译文。 */\n readonly bilingual: boolean\n /** 翻译模型;缺省时跟随 DSH 当前默认模型。 */\n readonly translationModel?: SessionTranslationModel\n /** Models in priority order. An empty pool follows the DSH default; absent pools use the legacy selection. */\n readonly translationModels?: readonly SessionTranslationModel[]\n /**\n * DSH 原生会话是否参与翻译;缺省关闭。\n *\n * 原生会话的回复由 DSH 自己写入 `assistant/message`,开启输出翻译后正文会变成\n * 译文、原文只留在块元数据里,因此不能默认改变既有行为。\n */\n readonly nativeEnabled?: boolean\n}\n\nexport const SESSION_TRANSLATION_ADAPTER_IDS = [\n 'command-code', 'claude-code', 'kimi', 'gemini', 'pi', 'codex', 'opencode', 'grok',\n 'mcode', 'zcode', 'codebuddy', 'workbuddy', 'cursor-cli', 'kiro-cli', 'qoder', 'qoder-cn',\n 'antigravity', 'doubao',\n] as const\n\n/** DSH 内置 Agent 的适配器标识;它没有外部驱动,但同样支持会话翻译。 */\nexport const DSH_NATIVE_SESSION_ADAPTER_ID = 'dsh' as const\n\nexport const SESSION_TRANSLATION_LANGUAGES = ['en', 'fr', 'de', 'ja', 'zh'] as const\n\nexport const DEFAULT_SESSION_TRANSLATION_SETTINGS: SessionTranslationSettings = {\n inputLanguage: 'en',\n outputLanguage: 'zh',\n bilingual: false,\n nativeEnabled: false,\n}\n\n/**\n * 外部 Agent 适配器判定。\n *\n * 只表示「会话由插件的外部 CLI 驱动接管」,因此 DSH 原生 Agent 不在其中:该判定\n * 还被用来把外部 Agent 的虚拟 Provider 排除在翻译模型目录之外,混入 `dsh` 会污染\n * 这一语义。会话是否可翻译统一使用 {@link supportsSessionTranslation}。\n */\nexport function isSessionTranslationAdapter(adapterId: string): boolean {\n return (SESSION_TRANSLATION_ADAPTER_IDS as readonly string[]).includes(adapterId)\n}\n\n/** 外部 Agent 与 DSH 原生 Agent 都支持会话翻译。 */\nexport function supportsSessionTranslation(adapterId: string): boolean {\n return adapterId === DSH_NATIVE_SESSION_ADAPTER_ID || isSessionTranslationAdapter(adapterId)\n}\n\n/** 判断任意字符串是否为受支持的翻译语言。 */\nexport function isSessionTranslationLanguage(value: unknown): value is SessionTranslationLanguage {\n return typeof value === 'string' && (SESSION_TRANSLATION_LANGUAGES as readonly string[]).includes(value)\n}\n\n/**\n * 归一化翻译设置:旧设置快照可能缺少 `nativeEnabled`,非法语言回落到默认值。\n *\n * 与 `session-translation-service.ts` 的内部归一化保持同一语义,供客户端设置页在\n * 写入前补齐字段,避免旧快照把新字段写丢。\n */\nexport function normalizeSessionTranslationSettings(value: SessionTranslationSettings | undefined): SessionTranslationSettings {\n const fallback = DEFAULT_SESSION_TRANSLATION_SETTINGS\n if (value === undefined) return fallback\n const translationModel = normalizeTranslationModel(value.translationModel)\n const translationModels = Array.isArray(value.translationModels) ? normalizeTranslationModels(value.translationModels) : undefined\n return {\n inputLanguage: isSessionTranslationLanguage(value.inputLanguage) ? value.inputLanguage : fallback.inputLanguage,\n outputLanguage: isSessionTranslationLanguage(value.outputLanguage) ? value.outputLanguage : fallback.outputLanguage,\n bilingual: value.bilingual === true,\n nativeEnabled: value.nativeEnabled === true,\n ...(translationModel === undefined ? {} : { translationModel }),\n ...(translationModels === undefined ? {} : { translationModels }),\n }\n}\n\nfunction normalizeTranslationModels(values: readonly SessionTranslationModel[]): readonly SessionTranslationModel[] {\n const models: SessionTranslationModel[] = []\n const seen = new Set<string>()\n for (const value of values) {\n const model = normalizeTranslationModel(value)\n if (model === undefined) continue\n const key = JSON.stringify([model.provider, model.model])\n if (seen.has(key)) continue\n seen.add(key)\n models.push(model)\n }\n return models\n}\n\nfunction normalizeTranslationModel(value: SessionTranslationModel | undefined): SessionTranslationModel | undefined {\n if (value === undefined || value === null || typeof value.provider !== 'string' || typeof value.model !== 'string') return undefined\n const provider = value.provider.trim()\n const model = value.model.trim()\n return provider === '' || model === '' ? undefined : { provider, model }\n}\n\nexport interface SessionTranslationFailure {\n readonly code: 'timeout' | 'cancelled' | 'rate-limit' | 'network' | 'unavailable' | 'invalid-response' | 'configuration' | 'provider'\n readonly retryable: boolean\n}\n\nexport interface SessionTranslationMetrics {\n /** Elapsed translation time, including model selection and fallback attempts. */\n readonly durationMs?: number\n /** Reported token consumption across model attempts, including cached input. */\n readonly totalTokens?: number\n}\n\n/** Preserve available metrics while accepting records saved before metrics existed. */\nexport function readSessionTranslationMetrics(value: unknown): SessionTranslationMetrics {\n const record = asRecord(value)\n const durationMs = record?.durationMs\n const totalTokens = record?.totalTokens\n return {\n ...(typeof durationMs === 'number' && Number.isFinite(durationMs) && durationMs >= 0 ? { durationMs } : {}),\n ...(typeof totalTokens === 'number' && Number.isSafeInteger(totalTokens) && totalTokens >= 0 ? { totalTokens } : {}),\n }\n}\n\nexport interface SessionTranslationRecord extends SessionTranslationMetrics {\n readonly original: string\n readonly translated: string\n readonly sourceLanguage?: SessionTranslationLanguage\n readonly targetLanguage: SessionTranslationLanguage\n /** 回复文本所在的 DSH 内容块类型,供界面将原文入口放回对应内容块。 */\n readonly outputKind?: SessionTranslationOutputKind\n readonly bilingual: boolean\n /** 源语言与目标语言一致,因此未调用翻译模型。 */\n readonly alreadyTargetLanguage?: boolean\n /** 实际执行本次翻译的 DSH 原生模型;旧历史可能没有该字段。 */\n readonly model?: SessionTranslationModel\n /** 本次尝试失败并回退原文;前端显示警告状态。 */\n readonly failed?: boolean\n /** Structured failure details; absent in older translation records. */\n readonly failure?: SessionTranslationFailure\n}\n\n/** 用户输入的原文、实际送出的译文和翻译模型,作为 DSH 历史元数据保存。 */\nexport interface SessionTranslationInputRecord extends SessionTranslationMetrics {\n readonly original: string\n /** 包含附件提示等不翻译内容的最终 Provider prompt。 */\n readonly translated: string\n readonly sourceLanguage?: SessionTranslationLanguage\n readonly targetLanguage: SessionTranslationLanguage\n /** 源语言与目标语言一致,因此未调用翻译模型。 */\n readonly alreadyTargetLanguage?: boolean\n /** 实际执行本次翻译的 DSH 原生模型;旧历史可能没有该字段。 */\n readonly model?: SessionTranslationModel\n /** 翻译失败并回退原文;前端显示警告状态。 */\n readonly failed?: boolean\n}\n\n/**\n * 从 DSH 原生用户消息的 source 元数据读取输入翻译记录。\n *\n * 该字段由 `agent/pre-step` 写入并随 `user/message` 持久化;未知或不完整的历史\n * 结构一律返回 undefined,调用方按「没有翻译」处理。\n */\nexport function readNativeTranslationRecord(source: unknown): SessionTranslationInputRecord | undefined {\n const record = asRecord(source)\n const candidate = asRecord(record?.codingnsTranslationInput)\n if (candidate === null) return undefined\n if (typeof candidate.original !== 'string' || typeof candidate.translated !== 'string') return undefined\n if (candidate.original.trim() === '' || candidate.translated.trim() === '') return undefined\n const targetLanguage = isSessionTranslationLanguage(candidate.targetLanguage) ? candidate.targetLanguage : undefined\n if (targetLanguage === undefined) return undefined\n const model = normalizeTranslationModel(asRecord(candidate.model) as SessionTranslationModel | undefined)\n const sourceLanguage = isSessionTranslationLanguage(candidate.sourceLanguage) ? candidate.sourceLanguage : undefined\n return {\n original: candidate.original,\n translated: candidate.translated,\n targetLanguage,\n ...(sourceLanguage === undefined ? {} : { sourceLanguage }),\n ...(candidate.alreadyTargetLanguage === true ? { alreadyTargetLanguage: true } : {}),\n ...(candidate.failed === true ? { failed: true } : {}),\n ...(model === undefined ? {} : { model }),\n ...readSessionTranslationMetrics(candidate),\n }\n}\n\n/** 输入记录转换为详情弹层使用的通用记录;`outputKind` 缺省表示输入方向。 */\nexport function toSessionTranslationRecord(\n record: SessionTranslationInputRecord,\n options: { readonly outputKind?: SessionTranslationOutputKind; readonly bilingual?: boolean } = {},\n): SessionTranslationRecord {\n return {\n original: record.original,\n translated: record.translated,\n targetLanguage: record.targetLanguage,\n bilingual: options.bilingual === true,\n ...(options.outputKind === undefined ? {} : { outputKind: options.outputKind }),\n ...(record.sourceLanguage === undefined ? {} : { sourceLanguage: record.sourceLanguage }),\n ...(record.alreadyTargetLanguage === true ? { alreadyTargetLanguage: true } : {}),\n ...(record.failed === true ? { failed: true } : {}),\n ...(record.model === undefined ? {} : { model: record.model }),\n ...readSessionTranslationMetrics(record),\n }\n}\n\nfunction asRecord(value: unknown): Record<string, any> | null {\n return typeof value === 'object' && value !== null && !Array.isArray(value) ? value as Record<string, any> : null\n}\n\n/** 外部 Agent 的历史上下文使用实际发送的译文;DSH 用户消息正文保留用户原文。 */\nexport function formatSessionTranslationInput(record: SessionTranslationInputRecord): string {\n return record.translated\n}\n\n/** Return the output translation; native DSH history keeps the original and the client reads this record. */\nexport function formatSessionTranslationOutput(record: SessionTranslationRecord): string {\n return record.translated\n}\n"],"mappings":";;;;;;;EAiCA,MAAa,kCAAkC;GAC7C;GAAgB;GAAe;GAAQ;GAAU;GAAM;GAAS;GAAY;GAC5E;GAAS;GAAS;GAAa;GAAa;GAAc;GAAY;GAAS;GAC/E;GAAe;EACjB;EAKA,MAAa,gCAAgC;GAAC;GAAM;GAAM;GAAM;GAAM;EAAI;EAE1E,MAAa,uCAAmE;GAC9E,eAAe;GACf,gBAAgB;GAChB,WAAW;GACX,eAAe;EACjB;;;;;;;;EASA,SAAgB,4BAA4B,WAA4B;GACtE,OAAQ,gCAAsD,SAAS,SAAS;EAClF;;EAGA,SAAgB,2BAA2B,WAA4B;GACrE,OAAO,cAAA,SAA+C,4BAA4B,SAAS;EAC7F;;EAGA,SAAgB,6BAA6B,OAAqD;GAChG,OAAO,OAAO,UAAU,YAAa,8BAAoD,SAAS,KAAK;EACzG;;;;;;;EAQA,SAAgB,oCAAoC,OAA2E;GAC7H,MAAM,WAAW;GACjB,IAAI,UAAU,KAAA,GAAW,OAAO;GAChC,MAAM,mBAAmB,0BAA0B,MAAM,gBAAgB;GACzE,MAAM,oBAAoB,MAAM,QAAQ,MAAM,iBAAiB,IAAI,2BAA2B,MAAM,iBAAiB,IAAI,KAAA;GACzH,OAAO;IACL,eAAe,6BAA6B,MAAM,aAAa,IAAI,MAAM,gBAAgB,SAAS;IAClG,gBAAgB,6BAA6B,MAAM,cAAc,IAAI,MAAM,iBAAiB,SAAS;IACrG,WAAW,MAAM,cAAc;IAC/B,eAAe,MAAM,kBAAkB;IACvC,GAAI,qBAAqB,KAAA,IAAY,CAAC,IAAI,EAAE,iBAAiB;IAC7D,GAAI,sBAAsB,KAAA,IAAY,CAAC,IAAI,EAAE,kBAAkB;GACjE;EACF;EAEA,SAAS,2BAA2B,QAAgF;GAClH,MAAM,SAAoC,CAAC;GAC3C,MAAM,uBAAO,IAAI,IAAY;GAC7B,KAAK,MAAM,SAAS,QAAQ;IAC1B,MAAM,QAAQ,0BAA0B,KAAK;IAC7C,IAAI,UAAU,KAAA,GAAW;IACzB,MAAM,MAAM,KAAK,UAAU,CAAC,MAAM,UAAU,MAAM,KAAK,CAAC;IACxD,IAAI,KAAK,IAAI,GAAG,GAAG;IACnB,KAAK,IAAI,GAAG;IACZ,OAAO,KAAK,KAAK;GACnB;GACA,OAAO;EACT;EAEA,SAAS,0BAA0B,OAAiF;GAClH,IAAI,UAAU,KAAA,KAAa,UAAU,QAAQ,OAAO,MAAM,aAAa,YAAY,OAAO,MAAM,UAAU,UAAU,OAAO,KAAA;GAC3H,MAAM,WAAW,MAAM,SAAS,KAAK;GACrC,MAAM,QAAQ,MAAM,MAAM,KAAK;GAC/B,OAAO,aAAa,MAAM,UAAU,KAAK,KAAA,IAAY;IAAE;IAAU;GAAM;EACzE;;EAeA,SAAgB,8BAA8B,OAA2C;GACvF,MAAM,SAAS,SAAS,KAAK;GAC7B,MAAM,aAAa,QAAQ;GAC3B,MAAM,cAAc,QAAQ;GAC5B,OAAO;IACL,GAAI,OAAO,eAAe,YAAY,OAAO,SAAS,UAAU,KAAK,cAAc,IAAI,EAAE,WAAW,IAAI,CAAC;IACzG,GAAI,OAAO,gBAAgB,YAAY,OAAO,cAAc,WAAW,KAAK,eAAe,IAAI,EAAE,YAAY,IAAI,CAAC;GACpH;EACF;EAkFA,SAAS,SAAS,OAA4C;GAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IAAI,QAA+B;EAC/G"}
|
|
1
|
+
{"version":3,"file":"client.session-translation.js","names":[],"sources":["../../../../src/shared/contracts/session-translation.ts"],"sourcesContent":["/** 会话翻译中间件支持的语言。 */\nexport type SessionTranslationLanguage = 'en' | 'fr' | 'de' | 'ja' | 'zh'\n\n/** 输出内容类别;工具调用、命令和路径不属于可翻译内容。 */\nexport type SessionTranslationOutputKind = 'reasoning' | 'assistant'\n\n/** 翻译请求使用的 DSH 原生模型;不保存密钥,只保存 provider/model 标识。 */\nexport interface SessionTranslationModel {\n readonly provider: string\n readonly model: string\n}\n\n/** Message categories saved independently for each agent adapter. */\nexport interface SessionTranslationOptions {\n readonly inputEnabled?: boolean\n readonly reasoningEnabled?: boolean\n readonly assistantEnabled?: boolean\n}\n\n/** Persisted translation settings; top-level message options remain legacy defaults. */\nexport interface SessionTranslationSettings extends SessionTranslationOptions {\n readonly adapterOptions?: Readonly<Record<string, SessionTranslationOptions>>\n /** 用户输入送入 Agent 的目的语言。 */\n readonly inputLanguage: SessionTranslationLanguage\n /** 输出翻译语言;默认中文。 */\n readonly outputLanguage: SessionTranslationLanguage\n /** 是否在 UI 和历史回看中同时保留原文与译文。 */\n readonly bilingual: boolean\n /** 翻译模型;缺省时跟随 DSH 当前默认模型。 */\n readonly translationModel?: SessionTranslationModel\n /** Models in priority order. An empty pool follows the DSH default; absent pools use the legacy selection. */\n readonly translationModels?: readonly SessionTranslationModel[]\n /** Custom prompt instructions that take precedence over the default translation prompts. */\n readonly translationRules?: readonly string[]\n /**\n * DSH 原生会话是否参与翻译;缺省关闭。\n *\n * 原生会话的回复由 DSH 自己写入 `assistant/message`,开启输出翻译后正文会变成\n * 译文、原文只留在块元数据里,因此不能默认改变既有行为。\n */\n readonly nativeEnabled?: boolean\n}\n\nexport const SESSION_TRANSLATION_ADAPTER_IDS = [\n 'command-code', 'claude-code', 'kimi', 'gemini', 'pi', 'codex', 'opencode', 'grok',\n 'mcode', 'zcode', 'codebuddy', 'workbuddy', 'cursor-cli', 'kiro-cli', 'qoder', 'qoder-cn',\n 'antigravity', 'doubao',\n] as const\n\n/** DSH 内置 Agent 的适配器标识;它没有外部驱动,但同样支持会话翻译。 */\nexport const DSH_NATIVE_SESSION_ADAPTER_ID = 'dsh' as const\n\nexport const SESSION_TRANSLATION_LANGUAGES = ['en', 'fr', 'de', 'ja', 'zh'] as const\n\nexport const DEFAULT_SESSION_TRANSLATION_SETTINGS: SessionTranslationSettings = {\n inputEnabled: true,\n reasoningEnabled: true,\n assistantEnabled: true,\n inputLanguage: 'en',\n outputLanguage: 'zh',\n bilingual: false,\n nativeEnabled: false,\n}\n\n/**\n * 外部 Agent 适配器判定。\n *\n * 只表示「会话由插件的外部 CLI 驱动接管」,因此 DSH 原生 Agent 不在其中:该判定\n * 还被用来把外部 Agent 的虚拟 Provider 排除在翻译模型目录之外,混入 `dsh` 会污染\n * 这一语义。会话是否可翻译统一使用 {@link supportsSessionTranslation}。\n */\nexport function isSessionTranslationAdapter(adapterId: string): boolean {\n return (SESSION_TRANSLATION_ADAPTER_IDS as readonly string[]).includes(adapterId)\n}\n\n/** 外部 Agent 与 DSH 原生 Agent 都支持会话翻译。 */\nexport function supportsSessionTranslation(adapterId: string): boolean {\n return adapterId === DSH_NATIVE_SESSION_ADAPTER_ID || isSessionTranslationAdapter(adapterId)\n}\n\n/** Preserve existing choices until an adapter overrides them. Missing legacy values default on. */\nexport function resolveSessionTranslationOptions(settings: SessionTranslationSettings | undefined, adapterId: string): Required<SessionTranslationOptions> {\n const options = settings?.adapterOptions?.[adapterId]\n return {\n inputEnabled: (options?.inputEnabled ?? settings?.inputEnabled) !== false,\n reasoningEnabled: (options?.reasoningEnabled ?? settings?.reasoningEnabled) !== false,\n assistantEnabled: (options?.assistantEnabled ?? settings?.assistantEnabled) !== false,\n }\n}\n\n/** 判断任意字符串是否为受支持的翻译语言。 */\nexport function isSessionTranslationLanguage(value: unknown): value is SessionTranslationLanguage {\n return typeof value === 'string' && (SESSION_TRANSLATION_LANGUAGES as readonly string[]).includes(value)\n}\n\n/**\n * 归一化翻译设置:旧设置快照可能缺少 `nativeEnabled`,非法语言回落到默认值。\n *\n * 与 `session-translation-service.ts` 的内部归一化保持同一语义,供客户端设置页在\n * 写入前补齐字段,避免旧快照把新字段写丢。\n */\nexport function normalizeSessionTranslationSettings(value: SessionTranslationSettings | undefined): SessionTranslationSettings {\n const fallback = DEFAULT_SESSION_TRANSLATION_SETTINGS\n if (value === undefined) return fallback\n const translationModel = normalizeTranslationModel(value.translationModel)\n const translationModels = Array.isArray(value.translationModels) ? normalizeTranslationModels(value.translationModels) : undefined\n const translationRules = Array.isArray(value.translationRules)\n ? value.translationRules.filter((rule): rule is string => typeof rule === 'string').map((rule) => rule.trim()).filter((rule) => rule !== '')\n : undefined\n return {\n inputEnabled: value.inputEnabled !== false,\n reasoningEnabled: value.reasoningEnabled !== false,\n assistantEnabled: value.assistantEnabled !== false,\n inputLanguage: isSessionTranslationLanguage(value.inputLanguage) ? value.inputLanguage : fallback.inputLanguage,\n outputLanguage: isSessionTranslationLanguage(value.outputLanguage) ? value.outputLanguage : fallback.outputLanguage,\n bilingual: value.bilingual === true,\n nativeEnabled: value.nativeEnabled === true,\n ...(value.adapterOptions === undefined ? {} : {\n adapterOptions: Object.fromEntries(Object.entries(value.adapterOptions)\n .filter(([adapterId]) => supportsSessionTranslation(adapterId))\n .map(([adapterId]) => [adapterId, resolveSessionTranslationOptions(value, adapterId)])),\n }),\n ...(translationModel === undefined ? {} : { translationModel }),\n ...(translationModels === undefined ? {} : { translationModels }),\n ...(translationRules === undefined ? {} : { translationRules }),\n }\n}\n\nfunction normalizeTranslationModels(values: readonly SessionTranslationModel[]): readonly SessionTranslationModel[] {\n const models: SessionTranslationModel[] = []\n const seen = new Set<string>()\n for (const value of values) {\n const model = normalizeTranslationModel(value)\n if (model === undefined) continue\n const key = JSON.stringify([model.provider, model.model])\n if (seen.has(key)) continue\n seen.add(key)\n models.push(model)\n }\n return models\n}\n\nfunction normalizeTranslationModel(value: SessionTranslationModel | undefined): SessionTranslationModel | undefined {\n if (value === undefined || value === null || typeof value.provider !== 'string' || typeof value.model !== 'string') return undefined\n const provider = value.provider.trim()\n const model = value.model.trim()\n return provider === '' || model === '' ? undefined : { provider, model }\n}\n\nexport interface SessionTranslationFailure {\n readonly code: 'timeout' | 'cancelled' | 'rate-limit' | 'network' | 'unavailable' | 'invalid-response' | 'configuration' | 'provider'\n readonly retryable: boolean\n}\n\nexport interface SessionTranslationMetrics {\n /** Elapsed translation time, including model selection and fallback attempts. */\n readonly durationMs?: number\n /** Reported token consumption across model attempts, including cached input. */\n readonly totalTokens?: number\n}\n\n/** Preserve available metrics while accepting records saved before metrics existed. */\nexport function readSessionTranslationMetrics(value: unknown): SessionTranslationMetrics {\n const record = asRecord(value)\n const durationMs = record?.durationMs\n const totalTokens = record?.totalTokens\n return {\n ...(typeof durationMs === 'number' && Number.isFinite(durationMs) && durationMs >= 0 ? { durationMs } : {}),\n ...(typeof totalTokens === 'number' && Number.isSafeInteger(totalTokens) && totalTokens >= 0 ? { totalTokens } : {}),\n }\n}\n\nexport interface SessionTranslationRecord extends SessionTranslationMetrics {\n readonly original: string\n readonly translated: string\n readonly sourceLanguage?: SessionTranslationLanguage\n readonly targetLanguage: SessionTranslationLanguage\n /** 回复文本所在的 DSH 内容块类型,供界面将原文入口放回对应内容块。 */\n readonly outputKind?: SessionTranslationOutputKind\n readonly bilingual: boolean\n /** 源语言与目标语言一致,因此未调用翻译模型。 */\n readonly alreadyTargetLanguage?: boolean\n /** 实际执行本次翻译的 DSH 原生模型;旧历史可能没有该字段。 */\n readonly model?: SessionTranslationModel\n /** 本次尝试失败并回退原文;前端显示警告状态。 */\n readonly failed?: boolean\n /** Structured failure details; absent in older translation records. */\n readonly failure?: SessionTranslationFailure\n}\n\nexport type SessionTranslationRecoveryChoice = 'retry' | 'send' | 'cancel'\n\n/** A failed submission remains on the host until the user makes a choice. */\nexport interface SessionTranslationPendingInput {\n readonly id: string\n readonly sessionId: string\n readonly record: SessionTranslationRecord\n}\n\n/** 用户输入的原文、实际送出的译文和翻译模型,作为 DSH 历史元数据保存。 */\nexport interface SessionTranslationInputRecord extends SessionTranslationMetrics {\n readonly original: string\n /** 包含附件提示等不翻译内容的最终 Provider prompt。 */\n readonly translated: string\n readonly sourceLanguage?: SessionTranslationLanguage\n readonly targetLanguage: SessionTranslationLanguage\n /** 源语言与目标语言一致,因此未调用翻译模型。 */\n readonly alreadyTargetLanguage?: boolean\n /** 实际执行本次翻译的 DSH 原生模型;旧历史可能没有该字段。 */\n readonly model?: SessionTranslationModel\n /** 翻译失败并回退原文;前端显示警告状态。 */\n readonly failed?: boolean\n}\n\n/**\n * 从 DSH 原生用户消息的 source 元数据读取输入翻译记录。\n *\n * 该字段由 `agent/pre-step` 写入并随 `user/message` 持久化;未知或不完整的历史\n * 结构一律返回 undefined,调用方按「没有翻译」处理。\n */\nexport function readNativeTranslationRecord(source: unknown): SessionTranslationInputRecord | undefined {\n const record = asRecord(source)\n const candidate = asRecord(record?.codingnsTranslationInput)\n if (candidate === null) return undefined\n if (typeof candidate.original !== 'string' || typeof candidate.translated !== 'string') return undefined\n if (candidate.original.trim() === '' || candidate.translated.trim() === '') return undefined\n const targetLanguage = isSessionTranslationLanguage(candidate.targetLanguage) ? candidate.targetLanguage : undefined\n if (targetLanguage === undefined) return undefined\n const model = normalizeTranslationModel(asRecord(candidate.model) as SessionTranslationModel | undefined)\n const sourceLanguage = isSessionTranslationLanguage(candidate.sourceLanguage) ? candidate.sourceLanguage : undefined\n return {\n original: candidate.original,\n translated: candidate.translated,\n targetLanguage,\n ...(sourceLanguage === undefined ? {} : { sourceLanguage }),\n ...(candidate.alreadyTargetLanguage === true ? { alreadyTargetLanguage: true } : {}),\n ...(candidate.failed === true ? { failed: true } : {}),\n ...(model === undefined ? {} : { model }),\n ...readSessionTranslationMetrics(candidate),\n }\n}\n\n/** 输入记录转换为详情弹层使用的通用记录;`outputKind` 缺省表示输入方向。 */\nexport function toSessionTranslationRecord(\n record: SessionTranslationInputRecord,\n options: { readonly outputKind?: SessionTranslationOutputKind; readonly bilingual?: boolean } = {},\n): SessionTranslationRecord {\n return {\n original: record.original,\n translated: record.translated,\n targetLanguage: record.targetLanguage,\n bilingual: options.bilingual === true,\n ...(options.outputKind === undefined ? {} : { outputKind: options.outputKind }),\n ...(record.sourceLanguage === undefined ? {} : { sourceLanguage: record.sourceLanguage }),\n ...(record.alreadyTargetLanguage === true ? { alreadyTargetLanguage: true } : {}),\n ...(record.failed === true ? { failed: true } : {}),\n ...(record.model === undefined ? {} : { model: record.model }),\n ...readSessionTranslationMetrics(record),\n }\n}\n\nfunction asRecord(value: unknown): Record<string, any> | null {\n return typeof value === 'object' && value !== null && !Array.isArray(value) ? value as Record<string, any> : null\n}\n\n/** 外部 Agent 的历史上下文使用实际发送的译文;DSH 用户消息正文保留用户原文。 */\nexport function formatSessionTranslationInput(record: SessionTranslationInputRecord): string {\n return record.translated\n}\n\n/** Return the output translation; native DSH history keeps the original and the client reads this record. */\nexport function formatSessionTranslationOutput(record: SessionTranslationRecord): string {\n return record.translated\n}\n"],"mappings":";;;;;;;EA2CA,MAAa,kCAAkC;GAC7C;GAAgB;GAAe;GAAQ;GAAU;GAAM;GAAS;GAAY;GAC5E;GAAS;GAAS;GAAa;GAAa;GAAc;GAAY;GAAS;GAC/E;GAAe;EACjB;EAKA,MAAa,gCAAgC;GAAC;GAAM;GAAM;GAAM;GAAM;EAAI;EAE1E,MAAa,uCAAmE;GAC9E,cAAc;GACd,kBAAkB;GAClB,kBAAkB;GAClB,eAAe;GACf,gBAAgB;GAChB,WAAW;GACX,eAAe;EACjB;;;;;;;;EASA,SAAgB,4BAA4B,WAA4B;GACtE,OAAQ,gCAAsD,SAAS,SAAS;EAClF;;EAGA,SAAgB,2BAA2B,WAA4B;GACrE,OAAO,cAAA,SAA+C,4BAA4B,SAAS;EAC7F;;EAGA,SAAgB,iCAAiC,UAAkD,WAAwD;GACzJ,MAAM,UAAU,UAAU,iBAAiB;GAC3C,OAAO;IACL,eAAe,SAAS,gBAAgB,UAAU,kBAAkB;IACpE,mBAAmB,SAAS,oBAAoB,UAAU,sBAAsB;IAChF,mBAAmB,SAAS,oBAAoB,UAAU,sBAAsB;GAClF;EACF;;EAGA,SAAgB,6BAA6B,OAAqD;GAChG,OAAO,OAAO,UAAU,YAAa,8BAAoD,SAAS,KAAK;EACzG;;;;;;;EAQA,SAAgB,oCAAoC,OAA2E;GAC7H,MAAM,WAAW;GACjB,IAAI,UAAU,KAAA,GAAW,OAAO;GAChC,MAAM,mBAAmB,0BAA0B,MAAM,gBAAgB;GACzE,MAAM,oBAAoB,MAAM,QAAQ,MAAM,iBAAiB,IAAI,2BAA2B,MAAM,iBAAiB,IAAI,KAAA;GACzH,MAAM,mBAAmB,MAAM,QAAQ,MAAM,gBAAgB,IACzD,MAAM,iBAAiB,QAAQ,SAAyB,OAAO,SAAS,QAAQ,CAAC,CAAC,KAAK,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,SAAS,SAAS,EAAE,IACzI,KAAA;GACJ,OAAO;IACL,cAAc,MAAM,iBAAiB;IACrC,kBAAkB,MAAM,qBAAqB;IAC7C,kBAAkB,MAAM,qBAAqB;IAC7C,eAAe,6BAA6B,MAAM,aAAa,IAAI,MAAM,gBAAgB,SAAS;IAClG,gBAAgB,6BAA6B,MAAM,cAAc,IAAI,MAAM,iBAAiB,SAAS;IACrG,WAAW,MAAM,cAAc;IAC/B,eAAe,MAAM,kBAAkB;IACvC,GAAI,MAAM,mBAAmB,KAAA,IAAY,CAAC,IAAI,EAC5C,gBAAgB,OAAO,YAAY,OAAO,QAAQ,MAAM,cAAc,CAAC,CACpE,QAAQ,CAAC,eAAe,2BAA2B,SAAS,CAAC,CAAC,CAC9D,KAAK,CAAC,eAAe,CAAC,WAAW,iCAAiC,OAAO,SAAS,CAAC,CAAC,CAAC,EAC1F;IACA,GAAI,qBAAqB,KAAA,IAAY,CAAC,IAAI,EAAE,iBAAiB;IAC7D,GAAI,sBAAsB,KAAA,IAAY,CAAC,IAAI,EAAE,kBAAkB;IAC/D,GAAI,qBAAqB,KAAA,IAAY,CAAC,IAAI,EAAE,iBAAiB;GAC/D;EACF;EAEA,SAAS,2BAA2B,QAAgF;GAClH,MAAM,SAAoC,CAAC;GAC3C,MAAM,uBAAO,IAAI,IAAY;GAC7B,KAAK,MAAM,SAAS,QAAQ;IAC1B,MAAM,QAAQ,0BAA0B,KAAK;IAC7C,IAAI,UAAU,KAAA,GAAW;IACzB,MAAM,MAAM,KAAK,UAAU,CAAC,MAAM,UAAU,MAAM,KAAK,CAAC;IACxD,IAAI,KAAK,IAAI,GAAG,GAAG;IACnB,KAAK,IAAI,GAAG;IACZ,OAAO,KAAK,KAAK;GACnB;GACA,OAAO;EACT;EAEA,SAAS,0BAA0B,OAAiF;GAClH,IAAI,UAAU,KAAA,KAAa,UAAU,QAAQ,OAAO,MAAM,aAAa,YAAY,OAAO,MAAM,UAAU,UAAU,OAAO,KAAA;GAC3H,MAAM,WAAW,MAAM,SAAS,KAAK;GACrC,MAAM,QAAQ,MAAM,MAAM,KAAK;GAC/B,OAAO,aAAa,MAAM,UAAU,KAAK,KAAA,IAAY;IAAE;IAAU;GAAM;EACzE;;EAeA,SAAgB,8BAA8B,OAA2C;GACvF,MAAM,SAAS,SAAS,KAAK;GAC7B,MAAM,aAAa,QAAQ;GAC3B,MAAM,cAAc,QAAQ;GAC5B,OAAO;IACL,GAAI,OAAO,eAAe,YAAY,OAAO,SAAS,UAAU,KAAK,cAAc,IAAI,EAAE,WAAW,IAAI,CAAC;IACzG,GAAI,OAAO,gBAAgB,YAAY,OAAO,cAAc,WAAW,KAAK,eAAe,IAAI,EAAE,YAAY,IAAI,CAAC;GACpH;EACF;EA2FA,SAAS,SAAS,OAA4C;GAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IAAI,QAA+B;EAC/G"}
|