@jingyi0605/codingns4dsh 0.2.1-beta.6 → 0.2.1-beta.8
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 +4 -4
- package/README.md +21 -5
- package/THIRD_PARTY_NOTICES +5 -0
- package/assets/provider-icons/r4.svg +4 -0
- 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/assistant-settings-styles.d.ts.map +1 -1
- package/data/build/dist/client/assistant-settings-styles.js +3 -2
- package/data/build/dist/client/assistant-settings-styles.js.map +1 -1
- package/data/build/dist/client/avatar/catalog-panel.d.ts.map +1 -1
- package/data/build/dist/client/avatar/catalog-panel.js +7 -5
- package/data/build/dist/client/avatar/catalog-panel.js.map +1 -1
- package/data/build/dist/client/avatar/catalog-picker.d.ts.map +1 -1
- package/data/build/dist/client/avatar/catalog-picker.js +2 -1
- package/data/build/dist/client/avatar/catalog-picker.js.map +1 -1
- package/data/build/dist/client/avatar/desktop-bridge.d.ts +7 -3
- package/data/build/dist/client/avatar/desktop-bridge.d.ts.map +1 -1
- package/data/build/dist/client/avatar/desktop-bridge.js +64 -5
- package/data/build/dist/client/avatar/desktop-bridge.js.map +1 -1
- package/data/build/dist/client/avatar/desktop-view.d.ts +6 -0
- package/data/build/dist/client/avatar/desktop-view.d.ts.map +1 -1
- package/data/build/dist/client/avatar/desktop-view.js +98 -5
- package/data/build/dist/client/avatar/desktop-view.js.map +1 -1
- package/data/build/dist/client/avatar/engine.d.ts.map +1 -1
- package/data/build/dist/client/avatar/engine.js +3 -2
- package/data/build/dist/client/avatar/engine.js.map +1 -1
- package/data/build/dist/client/avatar/floating.d.ts +8 -3
- package/data/build/dist/client/avatar/floating.d.ts.map +1 -1
- package/data/build/dist/client/avatar/floating.js +22 -4
- package/data/build/dist/client/avatar/floating.js.map +1 -1
- package/data/build/dist/client/avatar/image.d.ts +1 -1
- package/data/build/dist/client/avatar/image.d.ts.map +1 -1
- package/data/build/dist/client/avatar/image.js +2 -2
- package/data/build/dist/client/avatar/image.js.map +1 -1
- package/data/build/dist/client/avatar/live2d.d.ts +14 -3
- package/data/build/dist/client/avatar/live2d.d.ts.map +1 -1
- package/data/build/dist/client/avatar/live2d.js +62 -9
- package/data/build/dist/client/avatar/live2d.js.map +1 -1
- package/data/build/dist/client/avatar/loading.d.ts.map +1 -1
- package/data/build/dist/client/avatar/loading.js +3 -2
- package/data/build/dist/client/avatar/loading.js.map +1 -1
- package/data/build/dist/client/avatar/notification-bubble.d.ts +39 -0
- package/data/build/dist/client/avatar/notification-bubble.d.ts.map +1 -0
- package/data/build/dist/client/avatar/notification-bubble.js +353 -0
- package/data/build/dist/client/avatar/notification-bubble.js.map +1 -0
- package/data/build/dist/client/avatar/notification-surface.d.ts +16 -0
- package/data/build/dist/client/avatar/notification-surface.d.ts.map +1 -0
- package/data/build/dist/client/avatar/notification-surface.js +54 -0
- package/data/build/dist/client/avatar/notification-surface.js.map +1 -0
- package/data/build/dist/client/avatar/reaction-badge.d.ts +7 -0
- package/data/build/dist/client/avatar/reaction-badge.d.ts.map +1 -0
- package/data/build/dist/client/avatar/reaction-badge.js +20 -0
- package/data/build/dist/client/avatar/reaction-badge.js.map +1 -0
- package/data/build/dist/client/avatar/registry.d.ts +2 -1
- package/data/build/dist/client/avatar/registry.d.ts.map +1 -1
- package/data/build/dist/client/avatar/registry.js.map +1 -1
- package/data/build/dist/client/avatar/settings-panel.d.ts.map +1 -1
- package/data/build/dist/client/avatar/settings-panel.js +7 -5
- package/data/build/dist/client/avatar/settings-panel.js.map +1 -1
- package/data/build/dist/client/avatar/slot.d.ts +2 -1
- package/data/build/dist/client/avatar/slot.d.ts.map +1 -1
- package/data/build/dist/client/avatar/slot.js +5 -4
- package/data/build/dist/client/avatar/slot.js.map +1 -1
- package/data/build/dist/client/avatar/spritesheet.d.ts +4 -2
- package/data/build/dist/client/avatar/spritesheet.d.ts.map +1 -1
- package/data/build/dist/client/avatar/spritesheet.js +18 -9
- package/data/build/dist/client/avatar/spritesheet.js.map +1 -1
- package/data/build/dist/client/bundle.js +6881 -1776
- package/data/build/dist/client/bundle.js.map +1 -1
- package/data/build/dist/client/cli-catalog.d.ts +1 -1
- package/data/build/dist/client/cli-catalog.d.ts.map +1 -1
- package/data/build/dist/client/cli-catalog.js +2 -0
- package/data/build/dist/client/cli-catalog.js.map +1 -1
- package/data/build/dist/client/cli-session-config-cache.d.ts +17 -0
- package/data/build/dist/client/cli-session-config-cache.d.ts.map +1 -0
- package/data/build/dist/client/cli-session-config-cache.js +56 -0
- package/data/build/dist/client/cli-session-config-cache.js.map +1 -0
- package/data/build/dist/client/cli-settings-rpc.d.ts +5 -0
- package/data/build/dist/client/cli-settings-rpc.d.ts.map +1 -0
- package/data/build/dist/client/cli-settings-rpc.js +60 -0
- package/data/build/dist/client/cli-settings-rpc.js.map +1 -0
- package/data/build/dist/client/cli-slots.d.ts.map +1 -1
- package/data/build/dist/client/cli-slots.js +24 -40
- package/data/build/dist/client/cli-slots.js.map +1 -1
- package/data/build/dist/client/client.assistant-configuration-view.js +264 -55
- package/data/build/dist/client/client.assistant-configuration-view.js.map +1 -1
- package/data/build/dist/client/client.assistant-debug-workbench.js +4 -4
- package/data/build/dist/client/client.assistant-debug-workbench.js.map +1 -1
- package/data/build/dist/client/{client.assistant-prompts.js → client.assistant-notifications.js} +63 -2
- package/data/build/dist/client/client.assistant-notifications.js.map +1 -0
- package/data/build/dist/client/client.assistant-prompt-editor.js +4 -4
- package/data/build/dist/client/client.assistant-prompt-editor.js.map +1 -1
- package/data/build/dist/client/client.assistant-workbench.js +287 -161
- package/data/build/dist/client/client.assistant-workbench.js.map +1 -1
- package/data/build/dist/client/client.delegate-command.js +12 -25
- package/data/build/dist/client/client.delegate-command.js.map +1 -1
- package/data/build/dist/client/client.manager.js +201 -25
- package/data/build/dist/client/client.manager.js.map +1 -1
- package/data/build/dist/client/client.model-catalog-cache.js +2 -1
- package/data/build/dist/client/client.model-catalog-cache.js.map +1 -1
- package/data/build/dist/client/client.native-workspace-store.js +42 -11
- package/data/build/dist/client/client.native-workspace-store.js.map +1 -1
- package/data/build/dist/client/client.primitives-adapter.js.map +1 -1
- package/data/build/dist/client/client.react-dom.js +250 -0
- package/data/build/dist/client/client.react-dom.js.map +1 -1
- package/data/build/dist/client/client.theme.js +58 -12
- package/data/build/dist/client/client.theme.js.map +1 -1
- package/data/build/dist/client/client.transport.js +342 -46
- package/data/build/dist/client/client.transport.js.map +1 -1
- package/data/build/dist/client/debug/ui.d.ts.map +1 -1
- package/data/build/dist/client/debug/ui.js +30 -29
- package/data/build/dist/client/debug/ui.js.map +1 -1
- package/data/build/dist/client/delegate-command.d.ts.map +1 -1
- package/data/build/dist/client/delegate-command.js +12 -21
- package/data/build/dist/client/delegate-command.js.map +1 -1
- package/data/build/dist/client/desktop-assistant.js +61859 -158
- package/data/build/dist/client/external-tool-stream.d.ts.map +1 -1
- package/data/build/dist/client/external-tool-stream.js +2 -1
- package/data/build/dist/client/external-tool-stream.js.map +1 -1
- package/data/build/dist/client/features/assistant-configuration-session.js +3 -3
- package/data/build/dist/client/features/assistant-configuration-session.js.map +1 -1
- package/data/build/dist/client/features/assistant-configuration-tabs.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-configuration-tabs.js +2 -1
- package/data/build/dist/client/features/assistant-configuration-tabs.js.map +1 -1
- package/data/build/dist/client/features/assistant-configuration-view.d.ts +8 -0
- package/data/build/dist/client/features/assistant-configuration-view.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-configuration-view.js +99 -3
- package/data/build/dist/client/features/assistant-configuration-view.js.map +1 -1
- package/data/build/dist/client/features/assistant-conversation-message.d.ts +2 -1
- package/data/build/dist/client/features/assistant-conversation-message.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-conversation-message.js +64 -28
- package/data/build/dist/client/features/assistant-conversation-message.js.map +1 -1
- package/data/build/dist/client/features/assistant-debug-workbench.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-debug-workbench.js +3 -2
- package/data/build/dist/client/features/assistant-debug-workbench.js.map +1 -1
- package/data/build/dist/client/features/assistant-floating-call.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-floating-call.js +4 -3
- package/data/build/dist/client/features/assistant-floating-call.js.map +1 -1
- package/data/build/dist/client/features/assistant-notification-store.d.ts +72 -0
- package/data/build/dist/client/features/assistant-notification-store.d.ts.map +1 -0
- package/data/build/dist/client/features/assistant-notification-store.js +439 -0
- package/data/build/dist/client/features/assistant-notification-store.js.map +1 -0
- package/data/build/dist/client/features/assistant-realtime-call.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-realtime-call.js +13 -12
- package/data/build/dist/client/features/assistant-realtime-call.js.map +1 -1
- package/data/build/dist/client/features/assistant-record-style.js +11 -4
- package/data/build/dist/client/features/assistant-record-style.js.map +1 -1
- package/data/build/dist/client/features/assistant-voice-initialization.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-voice-initialization.js +4 -2
- package/data/build/dist/client/features/assistant-voice-initialization.js.map +1 -1
- package/data/build/dist/client/features/assistant-voice-settings-group.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-voice-settings-group.js +2 -1
- package/data/build/dist/client/features/assistant-voice-settings-group.js.map +1 -1
- package/data/build/dist/client/features/assistant-voice-settings.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-voice-settings.js +4 -3
- package/data/build/dist/client/features/assistant-voice-settings.js.map +1 -1
- package/data/build/dist/client/features/assistant-workbench-controls.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-workbench-controls.js +6 -5
- package/data/build/dist/client/features/assistant-workbench-controls.js.map +1 -1
- package/data/build/dist/client/features/assistant-workbench.d.ts +4 -0
- package/data/build/dist/client/features/assistant-workbench.d.ts.map +1 -1
- package/data/build/dist/client/features/assistant-workbench.js +37 -9
- package/data/build/dist/client/features/assistant-workbench.js.map +1 -1
- package/data/build/dist/client/features/cli-adapters.d.ts.map +1 -1
- package/data/build/dist/client/features/cli-adapters.js +140 -35
- package/data/build/dist/client/features/cli-adapters.js.map +1 -1
- package/data/build/dist/client/features/file-management-panel.d.ts.map +1 -1
- package/data/build/dist/client/features/file-management-panel.js +3 -10
- package/data/build/dist/client/features/file-management-panel.js.map +1 -1
- package/data/build/dist/client/features/global-voice-assistant.d.ts +6 -0
- package/data/build/dist/client/features/global-voice-assistant.d.ts.map +1 -1
- package/data/build/dist/client/features/global-voice-assistant.js +117 -3
- package/data/build/dist/client/features/global-voice-assistant.js.map +1 -1
- package/data/build/dist/client/features/index.d.ts +1 -0
- package/data/build/dist/client/features/index.d.ts.map +1 -1
- package/data/build/dist/client/features/index.js +3 -0
- package/data/build/dist/client/features/index.js.map +1 -1
- package/data/build/dist/client/features/lan-access-panel.d.ts.map +1 -1
- package/data/build/dist/client/features/lan-access-panel.js +6 -4
- package/data/build/dist/client/features/lan-access-panel.js.map +1 -1
- package/data/build/dist/client/features/login-protection-panel.d.ts.map +1 -1
- package/data/build/dist/client/features/login-protection-panel.js +7 -2
- package/data/build/dist/client/features/login-protection-panel.js.map +1 -1
- package/data/build/dist/client/features/mobile-access-panel.d.ts.map +1 -1
- package/data/build/dist/client/features/mobile-access-panel.js +19 -13
- package/data/build/dist/client/features/mobile-access-panel.js.map +1 -1
- package/data/build/dist/client/features/peer-host.d.ts +3 -0
- package/data/build/dist/client/features/peer-host.d.ts.map +1 -1
- package/data/build/dist/client/features/peer-host.js +445 -28
- package/data/build/dist/client/features/peer-host.js.map +1 -1
- package/data/build/dist/client/features/reverse-proxy-panel.d.ts.map +1 -1
- package/data/build/dist/client/features/reverse-proxy-panel.js +5 -4
- package/data/build/dist/client/features/reverse-proxy-panel.js.map +1 -1
- package/data/build/dist/client/features/subagent-collapsed-lineage.d.ts +9 -0
- package/data/build/dist/client/features/subagent-collapsed-lineage.d.ts.map +1 -0
- package/data/build/dist/client/features/subagent-collapsed-lineage.js +28 -0
- package/data/build/dist/client/features/subagent-collapsed-lineage.js.map +1 -0
- package/data/build/dist/client/features/subscription-usage-panel.d.ts.map +1 -1
- package/data/build/dist/client/features/subscription-usage-panel.js +4 -3
- package/data/build/dist/client/features/subscription-usage-panel.js.map +1 -1
- package/data/build/dist/client/features/terminal-enhancement-panel.d.ts.map +1 -1
- package/data/build/dist/client/features/terminal-enhancement-panel.js +6 -4
- package/data/build/dist/client/features/terminal-enhancement-panel.js.map +1 -1
- package/data/build/dist/client/features/types.d.ts +8 -0
- package/data/build/dist/client/features/types.d.ts.map +1 -1
- package/data/build/dist/client/features/voice-conversation-dialog.d.ts.map +1 -1
- package/data/build/dist/client/features/voice-conversation-dialog.js +7 -6
- package/data/build/dist/client/features/voice-conversation-dialog.js.map +1 -1
- package/data/build/dist/client/features/voice-initialization-dialog.d.ts.map +1 -1
- package/data/build/dist/client/features/voice-initialization-dialog.js +7 -6
- package/data/build/dist/client/features/voice-initialization-dialog.js.map +1 -1
- package/data/build/dist/client/features/workspace-session-enhancement-panel.d.ts.map +1 -1
- package/data/build/dist/client/features/workspace-session-enhancement-panel.js +44 -96
- package/data/build/dist/client/features/workspace-session-enhancement-panel.js.map +1 -1
- package/data/build/dist/client/file-management-dom.d.ts.map +1 -1
- package/data/build/dist/client/file-management-dom.js +42 -28
- package/data/build/dist/client/file-management-dom.js.map +1 -1
- package/data/build/dist/client/font-scale.d.ts +37 -0
- package/data/build/dist/client/font-scale.d.ts.map +1 -0
- package/data/build/dist/client/font-scale.js +56 -0
- package/data/build/dist/client/font-scale.js.map +1 -0
- package/data/build/dist/client/git-management.d.ts.map +1 -1
- package/data/build/dist/client/git-management.js +80 -37
- package/data/build/dist/client/git-management.js.map +1 -1
- package/data/build/dist/client/index.d.ts +1 -1
- package/data/build/dist/client/index.d.ts.map +1 -1
- package/data/build/dist/client/index.js +43 -1
- package/data/build/dist/client/index.js.map +1 -1
- package/data/build/dist/client/locale.d.ts.map +1 -1
- package/data/build/dist/client/locale.js +27 -2
- package/data/build/dist/client/locale.js.map +1 -1
- package/data/build/dist/client/locales/assistantWorkbench.d.ts +45 -0
- package/data/build/dist/client/locales/assistantWorkbench.d.ts.map +1 -1
- package/data/build/dist/client/locales/assistantWorkbench.js +30 -6
- package/data/build/dist/client/locales/assistantWorkbench.js.map +1 -1
- package/data/build/dist/client/locales/peerHost.d.ts.map +1 -1
- package/data/build/dist/client/locales/peerHost.js +10 -0
- package/data/build/dist/client/locales/peerHost.js.map +1 -1
- package/data/build/dist/client/locales/peerHostWorkspace.d.ts.map +1 -1
- package/data/build/dist/client/locales/peerHostWorkspace.js +16 -0
- package/data/build/dist/client/locales/peerHostWorkspace.js.map +1 -1
- package/data/build/dist/client/locales/subagentCollapsed.d.ts +53 -0
- package/data/build/dist/client/locales/subagentCollapsed.d.ts.map +1 -0
- package/data/build/dist/client/locales/subagentCollapsed.js +95 -0
- package/data/build/dist/client/locales/subagentCollapsed.js.map +1 -0
- package/data/build/dist/client/locales/terminalAuth.js +2 -2
- package/data/build/dist/client/locales/terminalAuth.js.map +1 -1
- package/data/build/dist/client/locales/usage.d.ts.map +1 -1
- package/data/build/dist/client/locales/usage.js +48 -0
- package/data/build/dist/client/locales/usage.js.map +1 -1
- package/data/build/dist/client/native-workspace-store.d.ts +10 -0
- package/data/build/dist/client/native-workspace-store.d.ts.map +1 -1
- package/data/build/dist/client/native-workspace-store.js +22 -1
- package/data/build/dist/client/native-workspace-store.js.map +1 -1
- package/data/build/dist/client/peer-host-color.d.ts +3 -0
- package/data/build/dist/client/peer-host-color.d.ts.map +1 -1
- package/data/build/dist/client/peer-host-color.js +16 -0
- package/data/build/dist/client/peer-host-color.js.map +1 -1
- package/data/build/dist/client/peer-host-file-links.d.ts +8 -0
- package/data/build/dist/client/peer-host-file-links.d.ts.map +1 -0
- package/data/build/dist/client/peer-host-file-links.js +43 -0
- package/data/build/dist/client/peer-host-file-links.js.map +1 -0
- package/data/build/dist/client/peer-host-management-api.d.ts +2 -1
- package/data/build/dist/client/peer-host-management-api.d.ts.map +1 -1
- package/data/build/dist/client/peer-host-management-api.js +2 -1
- package/data/build/dist/client/peer-host-management-api.js.map +1 -1
- package/data/build/dist/client/peer-host-native-projection.d.ts +20 -8
- package/data/build/dist/client/peer-host-native-projection.d.ts.map +1 -1
- package/data/build/dist/client/peer-host-native-projection.js +127 -15
- package/data/build/dist/client/peer-host-native-projection.js.map +1 -1
- package/data/build/dist/client/peer-host-native-store-projection.d.ts +2 -0
- package/data/build/dist/client/peer-host-native-store-projection.d.ts.map +1 -1
- package/data/build/dist/client/peer-host-native-store-projection.js +52 -13
- package/data/build/dist/client/peer-host-native-store-projection.js.map +1 -1
- package/data/build/dist/client/peer-host-reference-source.d.ts +18 -0
- package/data/build/dist/client/peer-host-reference-source.d.ts.map +1 -0
- package/data/build/dist/client/peer-host-reference-source.js +174 -0
- package/data/build/dist/client/peer-host-reference-source.js.map +1 -0
- package/data/build/dist/client/peer-host-remote-events.d.ts +48 -0
- package/data/build/dist/client/peer-host-remote-events.d.ts.map +1 -0
- package/data/build/dist/client/peer-host-remote-events.js +328 -0
- package/data/build/dist/client/peer-host-remote-events.js.map +1 -0
- package/data/build/dist/client/peer-host-scoped-client.d.ts +3 -0
- package/data/build/dist/client/peer-host-scoped-client.d.ts.map +1 -1
- package/data/build/dist/client/peer-host-scoped-client.js +5 -2
- package/data/build/dist/client/peer-host-scoped-client.js.map +1 -1
- package/data/build/dist/client/peer-host-workspace-tab.d.ts +2 -0
- package/data/build/dist/client/peer-host-workspace-tab.d.ts.map +1 -1
- package/data/build/dist/client/peer-host-workspace-tab.js +62 -29
- package/data/build/dist/client/peer-host-workspace-tab.js.map +1 -1
- package/data/build/dist/client/peer-host-workspace-tag.d.ts +5 -0
- package/data/build/dist/client/peer-host-workspace-tag.d.ts.map +1 -1
- package/data/build/dist/client/peer-host-workspace-tag.js +57 -14
- package/data/build/dist/client/peer-host-workspace-tag.js.map +1 -1
- package/data/build/dist/client/provider-icons.d.ts.map +1 -1
- package/data/build/dist/client/provider-icons.js +2 -1
- package/data/build/dist/client/provider-icons.js.map +1 -1
- package/data/build/dist/client/quick-phrase-slot.d.ts.map +1 -1
- package/data/build/dist/client/quick-phrase-slot.js +12 -11
- package/data/build/dist/client/quick-phrase-slot.js.map +1 -1
- package/data/build/dist/client/serial-polling.d.ts +1 -0
- package/data/build/dist/client/serial-polling.d.ts.map +1 -1
- package/data/build/dist/client/serial-polling.js +4 -2
- package/data/build/dist/client/serial-polling.js.map +1 -1
- package/data/build/dist/client/session-adapter-cache.d.ts +2 -0
- package/data/build/dist/client/session-adapter-cache.d.ts.map +1 -1
- package/data/build/dist/client/session-adapter-cache.js +11 -0
- package/data/build/dist/client/session-adapter-cache.js.map +1 -1
- package/data/build/dist/client/session-changed-files-view.d.ts +15 -0
- package/data/build/dist/client/session-changed-files-view.d.ts.map +1 -1
- package/data/build/dist/client/session-changed-files-view.js +73 -29
- package/data/build/dist/client/session-changed-files-view.js.map +1 -1
- package/data/build/dist/client/settings-controls.d.ts +29 -0
- package/data/build/dist/client/settings-controls.d.ts.map +1 -0
- package/data/build/dist/client/settings-controls.js +80 -0
- package/data/build/dist/client/settings-controls.js.map +1 -0
- package/data/build/dist/client/settings-section.d.ts.map +1 -1
- package/data/build/dist/client/settings-section.js +7 -11
- package/data/build/dist/client/settings-section.js.map +1 -1
- package/data/build/dist/client/skill-command.d.ts.map +1 -1
- package/data/build/dist/client/skill-command.js +2 -1
- package/data/build/dist/client/skill-command.js.map +1 -1
- package/data/build/dist/client/style.css +2561 -0
- package/data/build/dist/client/subagent-collapsed-lineage.d.ts +103 -0
- package/data/build/dist/client/subagent-collapsed-lineage.d.ts.map +1 -0
- package/data/build/dist/client/subagent-collapsed-lineage.js +664 -0
- package/data/build/dist/client/subagent-collapsed-lineage.js.map +1 -0
- package/data/build/dist/client/subscription-slot.d.ts +8 -2
- package/data/build/dist/client/subscription-slot.d.ts.map +1 -1
- package/data/build/dist/client/subscription-slot.js +55 -34
- package/data/build/dist/client/subscription-slot.js.map +1 -1
- package/data/build/dist/client/terminal/ui.d.ts.map +1 -1
- package/data/build/dist/client/terminal/ui.js +26 -8
- package/data/build/dist/client/terminal/ui.js.map +1 -1
- package/data/build/dist/client/theme.d.ts +2 -0
- package/data/build/dist/client/theme.d.ts.map +1 -1
- package/data/build/dist/client/theme.js +20 -12
- package/data/build/dist/client/theme.js.map +1 -1
- package/data/build/dist/client/workspace-session-visibility-dom.d.ts.map +1 -1
- package/data/build/dist/client/workspace-session-visibility-dom.js +22 -10
- package/data/build/dist/client/workspace-session-visibility-dom.js.map +1 -1
- package/data/build/dist/dsh-capabilities/client/assistant-session-navigation-adapter.d.ts +15 -0
- package/data/build/dist/dsh-capabilities/client/assistant-session-navigation-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/assistant-session-navigation-adapter.js +86 -0
- package/data/build/dist/dsh-capabilities/client/assistant-session-navigation-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-title-adapter.d.ts +10 -0
- package/data/build/dist/dsh-capabilities/host/session-title-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-title-adapter.js +199 -0
- package/data/build/dist/dsh-capabilities/host/session-title-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.d.ts +1 -1
- package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.js +8 -2
- package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.js.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.js +13 -3
- package/data/build/dist/dsh-capabilities/matrix.js.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.js +37 -3
- 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/avatar/materials.d.ts.map +1 -1
- package/data/build/dist/host/avatar/materials.js +3 -1
- package/data/build/dist/host/avatar/materials.js.map +1 -1
- package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts +13 -0
- package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/acp-cli-driver.js +136 -11
- package/data/build/dist/host/cli-adapters/acp-cli-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/claude-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/codebuddy-driver.js +65 -31
- package/data/build/dist/host/cli-adapters/codebuddy-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/codex-driver.d.ts +1 -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 +36 -9
- package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/codex-file-citations.d.ts +13 -0
- package/data/build/dist/host/cli-adapters/codex-file-citations.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/codex-file-citations.js +271 -0
- package/data/build/dist/host/cli-adapters/codex-file-citations.js.map +1 -0
- package/data/build/dist/host/cli-adapters/command-code-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/command-code-driver.js +136 -16
- package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/delegate-dispatch.d.ts +4 -3
- package/data/build/dist/host/cli-adapters/delegate-dispatch.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/delegate-dispatch.js +7 -6
- package/data/build/dist/host/cli-adapters/delegate-dispatch.js.map +1 -1
- package/data/build/dist/host/cli-adapters/doubao-app.d.ts +32 -11
- package/data/build/dist/host/cli-adapters/doubao-app.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/doubao-app.js +195 -24
- package/data/build/dist/host/cli-adapters/doubao-app.js.map +1 -1
- package/data/build/dist/host/cli-adapters/doubao-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/doubao-driver.js +3 -1
- package/data/build/dist/host/cli-adapters/doubao-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-config.d.ts +16 -0
- package/data/build/dist/host/cli-adapters/dsh-config.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/dsh-config.js +153 -0
- package/data/build/dist/host/cli-adapters/dsh-config.js.map +1 -0
- package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts +2 -1
- 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 +16 -5
- package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-tool-history.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-tool-history.js +23 -3
- package/data/build/dist/host/cli-adapters/dsh-tool-history.js.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.js +72 -28
- package/data/build/dist/host/cli-adapters/feature.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 +22 -0
- package/data/build/dist/host/cli-adapters/model-catalog.js.map +1 -1
- package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts +24 -2
- package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js +113 -4
- package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js.map +1 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts +63 -18
- 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 +35 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -1
- package/data/build/dist/host/cli-adapters/new-api-subscription.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/new-api-subscription.js +2 -45
- package/data/build/dist/host/cli-adapters/new-api-subscription.js.map +1 -1
- package/data/build/dist/host/cli-adapters/opencode-driver.d.ts +6 -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 +10 -3
- package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/opencode-v2-protocol.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/opencode-v2-protocol.js +334 -62
- package/data/build/dist/host/cli-adapters/opencode-v2-protocol.js.map +1 -1
- package/data/build/dist/host/cli-adapters/pi-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/pi-driver.js +134 -14
- package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/provider-subscription.d.ts +3 -0
- package/data/build/dist/host/cli-adapters/provider-subscription.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/provider-subscription.js +13 -45
- package/data/build/dist/host/cli-adapters/provider-subscription.js.map +1 -1
- package/data/build/dist/host/cli-adapters/r4-subscription.d.ts +13 -0
- package/data/build/dist/host/cli-adapters/r4-subscription.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/r4-subscription.js +111 -0
- package/data/build/dist/host/cli-adapters/r4-subscription.js.map +1 -0
- package/data/build/dist/host/cli-adapters/registry.d.ts +2 -0
- package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.js +14 -3
- package/data/build/dist/host/cli-adapters/registry.js.map +1 -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 +7 -0
- package/data/build/dist/host/cli-adapters/stream-normalizer.js.map +1 -1
- package/data/build/dist/host/cli-adapters/subagent-tool.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/subagent-tool.js +28 -7
- package/data/build/dist/host/cli-adapters/subagent-tool.js.map +1 -1
- package/data/build/dist/host/cli-bridge/bridge-server.d.ts +1 -0
- package/data/build/dist/host/cli-bridge/bridge-server.d.ts.map +1 -1
- package/data/build/dist/host/cli-bridge/bridge-server.js.map +1 -1
- package/data/build/dist/host/cli-bridge/command-code-mod.d.ts +24 -1
- package/data/build/dist/host/cli-bridge/command-code-mod.d.ts.map +1 -1
- package/data/build/dist/host/cli-bridge/command-code-mod.js +121 -23
- package/data/build/dist/host/cli-bridge/command-code-mod.js.map +1 -1
- package/data/build/dist/host/cli-bridge/dispatch.d.ts.map +1 -1
- package/data/build/dist/host/cli-bridge/dispatch.js +26 -6
- package/data/build/dist/host/cli-bridge/dispatch.js.map +1 -1
- package/data/build/dist/host/cli-bridge/injections.d.ts +45 -4
- package/data/build/dist/host/cli-bridge/injections.d.ts.map +1 -1
- package/data/build/dist/host/cli-bridge/injections.js +129 -14
- package/data/build/dist/host/cli-bridge/injections.js.map +1 -1
- package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js +20 -5
- package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js.map +1 -1
- package/data/build/dist/host/desktop-assistant/controller.d.ts +27 -2
- package/data/build/dist/host/desktop-assistant/controller.d.ts.map +1 -1
- package/data/build/dist/host/desktop-assistant/controller.js +197 -7
- package/data/build/dist/host/desktop-assistant/controller.js.map +1 -1
- package/data/build/dist/host/desktop-assistant/feature.d.ts.map +1 -1
- package/data/build/dist/host/desktop-assistant/feature.js +41 -4
- package/data/build/dist/host/desktop-assistant/feature.js.map +1 -1
- package/data/build/dist/host/desktop-assistant/launcher.d.ts.map +1 -1
- package/data/build/dist/host/desktop-assistant/launcher.js +3 -1
- package/data/build/dist/host/desktop-assistant/launcher.js.map +1 -1
- package/data/build/dist/host/desktop-assistant/mac-agent.d.ts.map +1 -1
- package/data/build/dist/host/desktop-assistant/mac-agent.js +41 -10
- package/data/build/dist/host/desktop-assistant/mac-agent.js.map +1 -1
- package/data/build/dist/host/desktop-assistant/notifications.d.ts +16 -0
- package/data/build/dist/host/desktop-assistant/notifications.d.ts.map +1 -0
- package/data/build/dist/host/desktop-assistant/notifications.js +45 -0
- package/data/build/dist/host/desktop-assistant/notifications.js.map +1 -0
- package/data/build/dist/host/desktop-assistant/win-agent.d.ts.map +1 -1
- package/data/build/dist/host/desktop-assistant/win-agent.js +95 -8
- package/data/build/dist/host/desktop-assistant/win-agent.js.map +1 -1
- package/data/build/dist/host/features/assistant-lifecycle-settings.js +1 -1
- package/data/build/dist/host/features/assistant-lifecycle-settings.js.map +1 -1
- package/data/build/dist/host/features/assistant-management-tools.d.ts +2 -1
- package/data/build/dist/host/features/assistant-management-tools.d.ts.map +1 -1
- package/data/build/dist/host/features/assistant-management-tools.js +10 -3
- package/data/build/dist/host/features/assistant-management-tools.js.map +1 -1
- package/data/build/dist/host/features/assistant-notification-events.d.ts +77 -0
- package/data/build/dist/host/features/assistant-notification-events.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-notification-events.js +574 -0
- package/data/build/dist/host/features/assistant-notification-events.js.map +1 -0
- package/data/build/dist/host/features/assistant-notification-source.d.ts +32 -0
- package/data/build/dist/host/features/assistant-notification-source.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-notification-source.js +101 -0
- package/data/build/dist/host/features/assistant-notification-source.js.map +1 -0
- package/data/build/dist/host/features/assistant-notification-stream.d.ts +26 -0
- package/data/build/dist/host/features/assistant-notification-stream.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-notification-stream.js +179 -0
- package/data/build/dist/host/features/assistant-notification-stream.js.map +1 -0
- package/data/build/dist/host/features/assistant-notifications.d.ts +78 -0
- package/data/build/dist/host/features/assistant-notifications.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-notifications.js +436 -0
- package/data/build/dist/host/features/assistant-notifications.js.map +1 -0
- package/data/build/dist/host/features/assistant-peer-notifications.d.ts +53 -0
- package/data/build/dist/host/features/assistant-peer-notifications.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-peer-notifications.js +197 -0
- package/data/build/dist/host/features/assistant-peer-notifications.js.map +1 -0
- package/data/build/dist/host/features/assistant-tts-service.d.ts.map +1 -1
- package/data/build/dist/host/features/assistant-tts-service.js +2 -2
- package/data/build/dist/host/features/assistant-tts-service.js.map +1 -1
- package/data/build/dist/host/features/assistant-voice-initialization.js +1 -1
- package/data/build/dist/host/features/assistant-voice-initialization.js.map +1 -1
- package/data/build/dist/host/features/git-management.js +2 -1
- package/data/build/dist/host/features/git-management.js.map +1 -1
- package/data/build/dist/host/features/global-voice-rpc.d.ts +2 -2
- package/data/build/dist/host/features/global-voice-rpc.d.ts.map +1 -1
- package/data/build/dist/host/features/global-voice-rpc.js +179 -4
- package/data/build/dist/host/features/global-voice-rpc.js.map +1 -1
- package/data/build/dist/host/features/index.d.ts +1 -0
- package/data/build/dist/host/features/index.d.ts.map +1 -1
- package/data/build/dist/host/features/index.js +3 -0
- package/data/build/dist/host/features/index.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 +193 -75
- package/data/build/dist/host/features/peer-host.js.map +1 -1
- package/data/build/dist/host/features/session-title-optimization.d.ts +5 -0
- package/data/build/dist/host/features/session-title-optimization.d.ts.map +1 -0
- package/data/build/dist/host/features/session-title-optimization.js +26 -0
- package/data/build/dist/host/features/session-title-optimization.js.map +1 -0
- package/data/build/dist/host/features/types.d.ts +9 -1
- package/data/build/dist/host/features/types.d.ts.map +1 -1
- package/data/build/dist/host/index.d.ts.map +1 -1
- package/data/build/dist/host/index.js +23 -1
- package/data/build/dist/host/index.js.map +1 -1
- package/data/build/dist/host/lan-access-dsh.d.ts.map +1 -1
- package/data/build/dist/host/lan-access-dsh.js +9 -1
- package/data/build/dist/host/lan-access-dsh.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/aggregated-host-transport.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/aggregated-host-transport.js +8 -2
- package/data/build/dist/host/modules/peer-host/aggregated-host-transport.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/host-api-proxy-service.d.ts +5 -1
- package/data/build/dist/host/modules/peer-host/host-api-proxy-service.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/host-api-proxy-service.js +72 -23
- package/data/build/dist/host/modules/peer-host/host-api-proxy-service.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/host-ws-proxy-service.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/host-ws-proxy-service.js +7 -5
- package/data/build/dist/host/modules/peer-host/host-ws-proxy-service.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.d.ts +6 -1
- package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.js +7 -0
- package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-handshake.d.ts +2 -1
- package/data/build/dist/host/modules/peer-host/peer-host-handshake.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-handshake.js +11 -10
- package/data/build/dist/host/modules/peer-host/peer-host-handshake.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.d.ts +7 -1
- 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 +63 -1
- 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-protocol.d.ts +6 -3
- package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js +92 -5
- package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.d.ts +15 -0
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.d.ts.map +1 -0
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.js +101 -0
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.js.map +1 -0
- package/data/build/dist/host/modules/peer-host/peer-host-native-transport.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-transport.js +44 -11
- package/data/build/dist/host/modules/peer-host/peer-host-native-transport.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js +75 -20
- package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-request-errors.d.ts +31 -0
- package/data/build/dist/host/modules/peer-host/peer-host-request-errors.d.ts.map +1 -0
- package/data/build/dist/host/modules/peer-host/peer-host-request-errors.js +60 -0
- package/data/build/dist/host/modules/peer-host/peer-host-request-errors.js.map +1 -0
- package/data/build/dist/host/modules/peer-host/peer-host-session.d.ts +12 -4
- package/data/build/dist/host/modules/peer-host/peer-host-session.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-session.js +28 -18
- package/data/build/dist/host/modules/peer-host/peer-host-session.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-virtual-registry.d.ts +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-virtual-registry.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-virtual-registry.js +15 -4
- package/data/build/dist/host/modules/peer-host/peer-host-virtual-registry.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-workspace-cache.d.ts +22 -0
- package/data/build/dist/host/modules/peer-host/peer-host-workspace-cache.d.ts.map +1 -0
- package/data/build/dist/host/modules/peer-host/peer-host-workspace-cache.js +133 -0
- package/data/build/dist/host/modules/peer-host/peer-host-workspace-cache.js.map +1 -0
- package/data/build/dist/host/native-session-bridge.d.ts +2 -0
- package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
- package/data/build/dist/host/native-session-bridge.js +89 -9
- 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 +11 -2
- 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 +14 -3
- package/data/build/dist/host/settings.js.map +1 -1
- package/data/build/dist/host/terminal/controller-factory.d.ts +1 -0
- package/data/build/dist/host/terminal/controller-factory.d.ts.map +1 -1
- package/data/build/dist/host/terminal/controller-factory.js +3 -0
- package/data/build/dist/host/terminal/controller-factory.js.map +1 -1
- package/data/build/dist/host/terminal/startup.d.ts +3 -0
- package/data/build/dist/host/terminal/startup.d.ts.map +1 -1
- package/data/build/dist/host/terminal/startup.js +1 -0
- package/data/build/dist/host/terminal/startup.js.map +1 -1
- package/data/build/dist/host/terminal/terminal-controller.d.ts +8 -0
- package/data/build/dist/host/terminal/terminal-controller.d.ts.map +1 -1
- package/data/build/dist/host/terminal/terminal-controller.js +2 -1
- package/data/build/dist/host/terminal/terminal-controller.js.map +1 -1
- package/data/build/dist/shared/assistant-avatar-adapters.d.ts.map +1 -1
- package/data/build/dist/shared/assistant-avatar-adapters.js +3 -0
- package/data/build/dist/shared/assistant-avatar-adapters.js.map +1 -1
- package/data/build/dist/shared/assistant-avatar.d.ts +11 -1
- package/data/build/dist/shared/assistant-avatar.d.ts.map +1 -1
- package/data/build/dist/shared/assistant-avatar.js +31 -1
- package/data/build/dist/shared/assistant-avatar.js.map +1 -1
- package/data/build/dist/shared/assistant-message-timeline.d.ts +11 -0
- package/data/build/dist/shared/assistant-message-timeline.d.ts.map +1 -1
- package/data/build/dist/shared/assistant-message-timeline.js +19 -0
- package/data/build/dist/shared/assistant-message-timeline.js.map +1 -1
- package/data/build/dist/shared/assistant-notification-feed.d.ts +44 -0
- package/data/build/dist/shared/assistant-notification-feed.d.ts.map +1 -0
- package/data/build/dist/shared/assistant-notification-feed.js +88 -0
- package/data/build/dist/shared/assistant-notification-feed.js.map +1 -0
- package/data/build/dist/shared/assistant-notifications.d.ts +141 -0
- package/data/build/dist/shared/assistant-notifications.d.ts.map +1 -0
- package/data/build/dist/shared/assistant-notifications.js +32 -0
- package/data/build/dist/shared/assistant-notifications.js.map +1 -0
- package/data/build/dist/shared/assistant-session-messages.d.ts +13 -0
- package/data/build/dist/shared/assistant-session-messages.d.ts.map +1 -0
- package/data/build/dist/shared/assistant-session-messages.js +155 -0
- package/data/build/dist/shared/assistant-session-messages.js.map +1 -0
- package/data/build/dist/shared/assistant-tts.js +1 -1
- package/data/build/dist/shared/contracts/assistant.d.ts +13 -0
- package/data/build/dist/shared/contracts/assistant.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/cli-adapter.d.ts +5 -1
- package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/config.d.ts +5 -0
- package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/config.js +3 -0
- 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/peer-host.d.ts +15 -0
- package/data/build/dist/shared/contracts/peer-host.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/peer-host.js.map +1 -1
- package/data/build/dist/shared/contracts/subscription.d.ts +31 -0
- package/data/build/dist/shared/contracts/subscription.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/subscription.js.map +1 -1
- package/data/build/dist/shared/contracts/version.d.ts +12 -8
- package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/version.js +11 -7
- package/data/build/dist/shared/contracts/version.js.map +1 -1
- package/data/build/dist/shared/desktop-assistant.d.ts +74 -1
- package/data/build/dist/shared/desktop-assistant.d.ts.map +1 -1
- package/data/build/dist/shared/desktop-assistant.js +201 -2
- package/data/build/dist/shared/desktop-assistant.js.map +1 -1
- package/data/build/dist/shared/index.d.ts +2 -2
- package/data/build/dist/shared/index.d.ts.map +1 -1
- package/data/build/dist/shared/index.js.map +1 -1
- package/data/build/dist/shared/peer-host-file-location.d.ts +11 -0
- package/data/build/dist/shared/peer-host-file-location.d.ts.map +1 -0
- package/data/build/dist/shared/peer-host-file-location.js +20 -0
- package/data/build/dist/shared/peer-host-file-location.js.map +1 -0
- package/data/build/dist/shared/peer-host-http-routes.d.ts +10 -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 +7 -1
- package/data/build/dist/shared/peer-host-http-routes.js.map +1 -1
- package/data/build/dist/shared/provider-icon-resources.d.ts.map +1 -1
- package/data/build/dist/shared/provider-icon-resources.js +1 -0
- package/data/build/dist/shared/provider-icon-resources.js.map +1 -1
- package/data/build/dist/shared/session-reference.d.ts +11 -0
- package/data/build/dist/shared/session-reference.d.ts.map +1 -0
- package/data/build/dist/shared/session-reference.js +29 -0
- package/data/build/dist/shared/session-reference.js.map +1 -0
- package/data/build/dist/shared/session-title.d.ts +12 -0
- package/data/build/dist/shared/session-title.d.ts.map +1 -0
- package/data/build/dist/shared/session-title.js +65 -0
- package/data/build/dist/shared/session-title.js.map +1 -0
- package/data/build/dist/shared/voice-initialization.d.ts +1 -1
- package/data/build/dist/shared/voice-initialization.d.ts.map +1 -1
- package/data/build/dist/shared/voice-initialization.js +1 -1
- package/data/build/dist/shared/voice-initialization.js.map +1 -1
- package/data/build/dist/shared/voice-models.d.ts +2 -2
- package/data/build/dist/shared/voice-models.d.ts.map +1 -1
- package/data/build/dist/shared/voice-models.js +9 -9
- package/data/build/dist/shared/voice-models.js.map +1 -1
- package/data/build/dist/typert.host.d.ts +18 -1
- package/data/build/dist/typert.host.d.ts.map +1 -1
- package/data/build/dist/typert.host.js +28 -3
- package/data/build/dist/typert.host.js.map +1 -1
- package/data/build/dist/typert.notifications-client.d.ts +5 -0
- package/data/build/dist/typert.notifications-client.d.ts.map +1 -0
- package/data/build/dist/typert.notifications-client.js +7 -0
- package/data/build/dist/typert.notifications-client.js.map +1 -0
- package/data/build/dist/typert.remote-client.js +1 -1
- package/data/build/dist/typert.remote-client.js.map +1 -1
- package/package.json +41 -33
- package/profile/README.md +2 -2
- package/profile/package.json +3 -3
- package/profile/version.json +3 -3
- package/version.json +3 -3
- package/data/build/dist/client/client.assistant-prompts.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
1
2
|
import { CodingNsRpcError } from '../../rpc-table.js';
|
|
2
3
|
/**
|
|
3
4
|
* DSH Web 会先开放 Connection,再异步激活部分 Host Service。
|
|
@@ -9,7 +10,7 @@ import { CodingNsRpcError } from '../../rpc-table.js';
|
|
|
9
10
|
// 否则首批并发请求会在 Controller 刚好激活前全部失败。
|
|
10
11
|
const SERVICE_UNAVAILABLE_RETRY_DELAYS_MS = [100, 200, 400, 800, 1600, 3200, 6400, 10000];
|
|
11
12
|
const GATEWAY_SERVICE_UNAVAILABLE = 'gateway/service-unavailable';
|
|
12
|
-
export function resolveDshNativeDispatch(ctx) {
|
|
13
|
+
export function resolveDshNativeDispatch(ctx, options = {}) {
|
|
13
14
|
if (ctx === undefined)
|
|
14
15
|
return undefined;
|
|
15
16
|
let gateway;
|
|
@@ -32,17 +33,78 @@ export function resolveDshNativeDispatch(ctx) {
|
|
|
32
33
|
};
|
|
33
34
|
return {
|
|
34
35
|
async rpc(method, payload, signal) {
|
|
36
|
+
if (method === '$events/result')
|
|
37
|
+
return dispatchEventResult(ctx, payload, signal);
|
|
35
38
|
const target = endpoint(method);
|
|
36
39
|
const args = readWireArgs(payload);
|
|
37
40
|
return await invokeWithServiceReadinessRetry(() => service.invoke({ ...target, args, ...(signal === undefined ? {} : { signal }) }), signal);
|
|
38
41
|
},
|
|
39
42
|
async stream(method, payload, signal) {
|
|
43
|
+
if (method === '$events') {
|
|
44
|
+
if (service.wireStream === undefined)
|
|
45
|
+
throw new CodingNsRpcError('CODINGNS_RPC_UNSUPPORTED', '当前 Host 未提供 DSH 原生事件通道');
|
|
46
|
+
const stream = await service.wireStream.open(method, payload, (async function* () { })(), undefined, signal ?? new AbortController().signal);
|
|
47
|
+
return interactionEvents(stream, options);
|
|
48
|
+
}
|
|
40
49
|
const target = endpoint(method);
|
|
41
50
|
const args = readWireArgs(payload);
|
|
42
51
|
return await invokeWithServiceReadinessRetry(() => Promise.resolve(service.stream({ ...target, args, ...(signal === undefined ? {} : { signal }) })), signal);
|
|
43
52
|
},
|
|
44
53
|
};
|
|
45
54
|
}
|
|
55
|
+
/** 目标 Host 的账号、设置和插件通知不属于会话交互,不能随 PeerHost 转发到其他客户端。 */
|
|
56
|
+
async function* interactionEvents(stream, options) {
|
|
57
|
+
let readySeen = false;
|
|
58
|
+
for await (const frame of stream) {
|
|
59
|
+
if (!readySeen && asRecord(frame)?.type === 'ready') {
|
|
60
|
+
readySeen = true;
|
|
61
|
+
yield frame;
|
|
62
|
+
// 事件协议要求 ready 是第一帧;回放必须紧跟在 ready 后面,否则接收端会
|
|
63
|
+
// 把完成状态误判为握手失败,整条 PeerHost 事件流会被丢弃并重连。
|
|
64
|
+
for (const sessionId of options.replayCompletedSessions?.() ?? []) {
|
|
65
|
+
yield { type: 'emit', event: 'api-session/status', args: [sessionId, false] };
|
|
66
|
+
}
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
// 会话运行态由 DSH 通过 `api-session/status` 的 emit 帧广播;客户端在
|
|
70
|
+
// session/list 只做基线读取,丢掉这类增量后,已结束会话会一直显示运行中,
|
|
71
|
+
// 新启动会话也不会进入运行态。其它 emit 仍属于目标 Host 的全局通知,必须过滤。
|
|
72
|
+
if (isSessionStatusFrame(frame)) {
|
|
73
|
+
const args = asRecord(frame)?.args;
|
|
74
|
+
if (Array.isArray(args) && typeof args[0] === 'string' && typeof args[1] === 'boolean') {
|
|
75
|
+
options.onSessionStatusForwarded?.(args[0], args[1]);
|
|
76
|
+
}
|
|
77
|
+
yield frame;
|
|
78
|
+
}
|
|
79
|
+
else if (asRecord(frame)?.type !== 'emit') {
|
|
80
|
+
yield frame;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function isSessionStatusFrame(value) {
|
|
85
|
+
const frame = asRecord(value);
|
|
86
|
+
return frame?.event === 'api-session/status'
|
|
87
|
+
&& Array.isArray(frame.args)
|
|
88
|
+
&& typeof frame.args[0] === 'string'
|
|
89
|
+
&& typeof frame.args[1] === 'boolean';
|
|
90
|
+
}
|
|
91
|
+
/** 事件结果由 Connection 的 Gateway 拦截器接收;不访问私有方法,也不发起本机网络请求。 */
|
|
92
|
+
async function dispatchEventResult(ctx, payload, signal) {
|
|
93
|
+
const connection = ctx.get('connection');
|
|
94
|
+
if (typeof connection?.createSharedFetchHandler !== 'function')
|
|
95
|
+
throw new CodingNsRpcError('CODINGNS_RPC_UNSUPPORTED', '当前 Host 未提供 DSH 事件结果入口');
|
|
96
|
+
const response = await connection.createSharedFetchHandler('/api').fetch(new Request('http://peer-host.internal/api/$events/result', {
|
|
97
|
+
method: 'POST', headers: { 'content-type': 'application/json' },
|
|
98
|
+
body: JSON.stringify({ type: 'client-request', rpcId: randomUUID(), method: '$events/result', payload }),
|
|
99
|
+
...(signal === undefined ? {} : { signal }),
|
|
100
|
+
}));
|
|
101
|
+
const envelope = asRecord(await response.json());
|
|
102
|
+
const result = asRecord(envelope?.result);
|
|
103
|
+
if (response.ok && result?.ok === true)
|
|
104
|
+
return result.value;
|
|
105
|
+
const error = asRecord(result?.error);
|
|
106
|
+
throw new CodingNsRpcError(typeof error?.code === 'string' ? error.code : 'CODINGNS_RPC_REMOTE_FAILED', typeof error?.message === 'string' ? error.message : 'DSH 事件结果提交失败');
|
|
107
|
+
}
|
|
46
108
|
async function invokeWithServiceReadinessRetry(operation, signal) {
|
|
47
109
|
for (let attempt = 0;; attempt += 1) {
|
|
48
110
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-host-native-dispatch.js","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-dispatch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD;;;;GAIG;AACH,+CAA+C;AAC/C,4CAA4C;AAC5C,mCAAmC;AACnC,MAAM,mCAAmC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAU,CAAA;AAClG,MAAM,2BAA2B,GAAG,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"peer-host-native-dispatch.js","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { VirtualSessionId, VirtualWorkspaceId } from '../../../shared/contracts/peer-host.js';
|
|
2
2
|
/** DSH 0.2.x Workspace/Session Remote 方法;这里只登记原生协议,不登记插件私有 RPC。 */
|
|
3
|
-
export declare const DSH_NATIVE_REMOTE_METHODS: readonly ["workspace/archiveSession", "workspace/create", "workspace/delete", "workspace/follow", "workspace/initializeDefault", "workspace/insertBefore", "workspace/insertSessionBefore", "workspace/pinSession", "workspace/rename", "workspace/unarchiveSession", "workspace/unpinSession", "session/attachment", "session/cancel", "session/canOpenWorkspacePath", "session/control", "session/create", "session/follow", "session/fork", "session/initializeDefaultModel", "session/list", "session/modelCatalog", "session/openWorkspacePath", "session/page", "session/projections", "session/prompt", "session/rename", "session/search", "session/selectModel", "session/updateQueue", "session/workspacePathApplications", "commands/list", "commands/execute", "officeToPdf/generation", "officeToPdf/render", "workspaceFiles/changes", "workspaceFiles/list", "workspaceFiles/read", "workspaceFiles/readBytes", "workspaceFiles/stat", "terminal/close", "terminal/create", "terminal/environment", "terminal/follow", "terminal/list", "terminal/rename", "terminal/resize", "terminal/retain", "terminal/shells", "terminal/write", "codingnsTerminal/close", "codingnsTerminal/create", "codingnsTerminal/environment", "codingnsTerminal/follow", "codingnsTerminal/list", "codingnsTerminal/rename", "codingnsTerminal/resize", "codingnsTerminal/retain", "codingnsTerminal/shells", "codingnsTerminal/write", "fileReferences/list", "skills/list"];
|
|
3
|
+
export declare const DSH_NATIVE_REMOTE_METHODS: readonly ["$events", "$events/result", "userQuestions/answer", "userQuestions/attachWait", "workspace/archiveSession", "workspace/create", "workspace/delete", "workspace/follow", "workspace/initializeDefault", "workspace/insertBefore", "workspace/insertSessionBefore", "workspace/pinSession", "workspace/rename", "workspace/unarchiveSession", "workspace/unpinSession", "session/attachment", "session/cancel", "session/canOpenWorkspacePath", "session/control", "session/create", "session/follow", "session/fork", "session/initializeDefaultModel", "session/list", "session/modelCatalog", "session/openWorkspacePath", "session/page", "session/projections", "session/prompt", "session/rename", "session/search", "session/selectModel", "session/updateQueue", "sessionReferenceResolver/candidates", "session/workspacePathApplications", "messageFeedback/list", "messageFeedback/put", "messageFeedback/delete", "sessionFeedback/record", "subagents/prompt", "subagents/interruptByParent", "commands/list", "commands/execute", "officeToPdf/generation", "officeToPdf/render", "workspaceFiles/changes", "workspaceFiles/list", "workspaceFiles/read", "workspaceFiles/readBytes", "workspaceFiles/stat", "terminal/close", "terminal/create", "terminal/environment", "terminal/follow", "terminal/list", "terminal/rename", "terminal/resize", "terminal/retain", "terminal/shells", "terminal/write", "codingnsTerminal/close", "codingnsTerminal/create", "codingnsTerminal/environment", "codingnsTerminal/follow", "codingnsTerminal/list", "codingnsTerminal/rename", "codingnsTerminal/resize", "codingnsTerminal/retain", "codingnsTerminal/shells", "codingnsTerminal/write", "codingnsAssistantNotifications/sourceStream", "fileReferences/list", "skills/list"];
|
|
4
4
|
export type DshNativeRemoteMethod = typeof DSH_NATIVE_REMOTE_METHODS[number];
|
|
5
5
|
export declare function isDshNativeRemoteMethod(value: string): value is DshNativeRemoteMethod;
|
|
6
6
|
export type VirtualIdResolver = {
|
|
7
|
+
/** 目标工作区的真实路径,用于识别远端平台;不能使用代理 Host 的平台。 */
|
|
8
|
+
readonly workspacePath?: string;
|
|
7
9
|
resolveWorkspace(id: VirtualWorkspaceId): {
|
|
8
10
|
readonly workspaceId: string;
|
|
9
11
|
readonly targetHostId: string | null;
|
|
@@ -17,11 +19,12 @@ export type VirtualIdResolver = {
|
|
|
17
19
|
};
|
|
18
20
|
/**
|
|
19
21
|
* 将 DSH 原生请求中的虚拟资源 ID 改回目标 Host 的真实 ID。
|
|
20
|
-
* 只改写 DSH
|
|
22
|
+
* 只改写 DSH 已知的资源字段;提交消息时仅把 canonical `dsh-session:` 引用还原,
|
|
23
|
+
* requestId、attachmentId 和其余正文保持原样。
|
|
21
24
|
*/
|
|
22
25
|
export declare function rewriteNativeRequestIds(method: DshNativeRemoteMethod, payload: unknown, resolver: VirtualIdResolver): unknown;
|
|
23
26
|
/** 将目标 Host 返回的原生结果/事件重新编码为当前 DSH 可见的虚拟 ID。 */
|
|
24
|
-
export declare function rewriteNativeResponseIds(value: unknown, encodeWorkspace: (id: string) => VirtualWorkspaceId, encodeSession: (id: string) => VirtualSessionId): unknown;
|
|
27
|
+
export declare function rewriteNativeResponseIds(value: unknown, encodeWorkspace: (id: string) => VirtualWorkspaceId, encodeSession: (id: string) => VirtualSessionId, method?: DshNativeRemoteMethod): unknown;
|
|
25
28
|
export declare function encodeNativeResponseBytes(value: unknown): unknown;
|
|
26
29
|
export declare function decodeNativeResponseBytes(value: unknown): unknown;
|
|
27
30
|
//# sourceMappingURL=peer-host-native-protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-host-native-protocol.d.ts","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"peer-host-native-protocol.d.ts","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,wCAAwC,CAAA;AAG/C,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,wsDAiF3B,CAAA;AAEX,MAAM,MAAM,qBAAqB,GAAG,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAA;AAI5E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,qBAAqB,CAErF;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,gBAAgB,CAAC,EAAE,EAAE,kBAAkB,GAAG;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IACvH,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IACjH,8CAA8C;IAC9C,oBAAoB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CACnD,CAAA;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAsBT;AAeD,+CAA+C;AAC/C,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,kBAAkB,EACnD,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,gBAAgB,EAC/C,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAkBT;AAwDD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOjE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAUjE"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
import { normalizePeerHostFileLocation } from '../../../shared/peer-host-file-location.js';
|
|
1
2
|
/** DSH 0.2.x Workspace/Session Remote 方法;这里只登记原生协议,不登记插件私有 RPC。 */
|
|
2
3
|
export const DSH_NATIVE_REMOTE_METHODS = Object.freeze([
|
|
4
|
+
// 交互事件是 Gateway 自有协议;派发层必须走 wireStream / Connection,不能当作业务 Remote。
|
|
5
|
+
'$events',
|
|
6
|
+
'$events/result',
|
|
7
|
+
'userQuestions/answer',
|
|
8
|
+
'userQuestions/attachWait',
|
|
3
9
|
'workspace/archiveSession',
|
|
4
10
|
'workspace/create',
|
|
5
11
|
'workspace/delete',
|
|
@@ -29,7 +35,17 @@ export const DSH_NATIVE_REMOTE_METHODS = Object.freeze([
|
|
|
29
35
|
'session/search',
|
|
30
36
|
'session/selectModel',
|
|
31
37
|
'session/updateQueue',
|
|
38
|
+
// 原生 `@` 对话候选通过这个 Remote 方法查询;缺少白名单时,远端会话只剩文件候选。
|
|
39
|
+
'sessionReferenceResolver/candidates',
|
|
32
40
|
'session/workspacePathApplications',
|
|
41
|
+
// 会话尾部反馈及 /feedback 命令都归目标 Host;messageId 和版本号保持原值。
|
|
42
|
+
'messageFeedback/list',
|
|
43
|
+
'messageFeedback/put',
|
|
44
|
+
'messageFeedback/delete',
|
|
45
|
+
'sessionFeedback/record',
|
|
46
|
+
// 可继续子会话的输入与停止由 subagents Remote 承载,身份字段仍是 SessionId。
|
|
47
|
+
'subagents/prompt',
|
|
48
|
+
'subagents/interruptByParent',
|
|
33
49
|
// 对话框的 / 命令目录由目标 Host 提供;否则虚拟会话会误读本机命令集合。
|
|
34
50
|
'commands/list',
|
|
35
51
|
'commands/execute',
|
|
@@ -61,6 +77,8 @@ export const DSH_NATIVE_REMOTE_METHODS = Object.freeze([
|
|
|
61
77
|
'codingnsTerminal/retain',
|
|
62
78
|
'codingnsTerminal/shells',
|
|
63
79
|
'codingnsTerminal/write',
|
|
80
|
+
// 全局助理通知来源使用同一条 Typert Remote 长连接,旧 Host 不认识时由上层回退 HTTP。
|
|
81
|
+
'codingnsAssistantNotifications/sourceStream',
|
|
64
82
|
'fileReferences/list',
|
|
65
83
|
'skills/list',
|
|
66
84
|
]);
|
|
@@ -70,16 +88,27 @@ export function isDshNativeRemoteMethod(value) {
|
|
|
70
88
|
}
|
|
71
89
|
/**
|
|
72
90
|
* 将 DSH 原生请求中的虚拟资源 ID 改回目标 Host 的真实 ID。
|
|
73
|
-
* 只改写 DSH
|
|
91
|
+
* 只改写 DSH 已知的资源字段;提交消息时仅把 canonical `dsh-session:` 引用还原,
|
|
92
|
+
* requestId、attachmentId 和其余正文保持原样。
|
|
74
93
|
*/
|
|
75
94
|
export function rewriteNativeRequestIds(method, payload, resolver) {
|
|
76
95
|
if (payload === undefined)
|
|
77
96
|
return payload;
|
|
97
|
+
if (method === 'codingnsAssistantNotifications/sourceStream')
|
|
98
|
+
return payload;
|
|
78
99
|
return rewriteValue(payload, (key, value) => {
|
|
79
100
|
if (typeof value !== 'string')
|
|
80
101
|
return value;
|
|
81
|
-
if (
|
|
82
|
-
|
|
102
|
+
if ((method === 'session/prompt' || method === 'session/follow') && key !== 'requestId') {
|
|
103
|
+
const rewritten = rewriteSessionReferenceText(value, resolver);
|
|
104
|
+
if (rewritten !== value)
|
|
105
|
+
return rewritten;
|
|
106
|
+
}
|
|
107
|
+
if (isPathField(key) || (method.startsWith('workspaceFiles/') && key === 'baseFile')) {
|
|
108
|
+
const path = resolver.resolveWorkspacePath?.(value) ?? value;
|
|
109
|
+
// 已打开或恢复的旧标签可能绕过资源打开入口,文件读取和变化流也需纠正路径。
|
|
110
|
+
return method.startsWith('workspaceFiles/') ? normalizePeerHostFileLocation(path, resolver.workspacePath).path : path;
|
|
111
|
+
}
|
|
83
112
|
if (isWorkspaceField(key)) {
|
|
84
113
|
return resolver.resolveWorkspace(value)?.workspaceId ?? value;
|
|
85
114
|
}
|
|
@@ -89,18 +118,76 @@ export function rewriteNativeRequestIds(method, payload, resolver) {
|
|
|
89
118
|
return value;
|
|
90
119
|
});
|
|
91
120
|
}
|
|
121
|
+
/** 将提交消息中的虚拟会话引用还原为目标 Host 能解析的真实 URI。 */
|
|
122
|
+
function rewriteSessionReferenceText(text, resolver) {
|
|
123
|
+
return text.replace(/dsh-session:([A-Za-z0-9_-]+)/gu, (full, encoded) => {
|
|
124
|
+
try {
|
|
125
|
+
const virtualId = decodeBase64UrlJsonString(encoded);
|
|
126
|
+
const resolved = resolver.resolveSession(virtualId)?.sessionId;
|
|
127
|
+
return resolved === undefined ? full : encodeSessionReferenceUri(resolved);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return full;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
92
134
|
/** 将目标 Host 返回的原生结果/事件重新编码为当前 DSH 可见的虚拟 ID。 */
|
|
93
|
-
export function rewriteNativeResponseIds(value, encodeWorkspace, encodeSession) {
|
|
135
|
+
export function rewriteNativeResponseIds(value, encodeWorkspace, encodeSession, method) {
|
|
136
|
+
if (method === 'codingnsAssistantNotifications/sourceStream')
|
|
137
|
+
return value;
|
|
138
|
+
// 状态通知的 SessionId 位于位置参数,而不是命名字段;不能按普通数组漏掉改写。
|
|
139
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
140
|
+
const frame = value;
|
|
141
|
+
if (frame.type === 'emit' && frame.event === 'api-session/status' && Array.isArray(frame.args) && typeof frame.args[0] === 'string') {
|
|
142
|
+
return { ...frame, args: [encodeSession(frame.args[0]), ...frame.args.slice(1)] };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
94
145
|
return rewriteValue(value, (key, current, parentKey) => {
|
|
95
146
|
if (typeof current !== 'string')
|
|
96
147
|
return current;
|
|
148
|
+
if (method === 'sessionReferenceResolver/candidates' && key === 'mention') {
|
|
149
|
+
return rewriteSessionReferenceMention(current, encodeSession);
|
|
150
|
+
}
|
|
97
151
|
if (isWorkspaceField(key))
|
|
98
152
|
return encodeWorkspace(current);
|
|
99
|
-
if (isSessionField(key) || key === 'parentSession' || (key === 'id' && parentKey === 'header'))
|
|
153
|
+
if (isSessionField(key) || key === 'parentSession' || (key === 'id' && (parentKey === 'header' || parentKey === 'subagentCatalog')))
|
|
100
154
|
return encodeSession(current);
|
|
101
155
|
return current;
|
|
102
156
|
});
|
|
103
157
|
}
|
|
158
|
+
/** 将候选中的 canonical `dsh-session:` URI 改写为当前页面可路由的虚拟会话 ID。 */
|
|
159
|
+
function rewriteSessionReferenceMention(mention, encodeSession) {
|
|
160
|
+
const match = /\((dsh-session:[A-Za-z0-9_-]+)\)/u.exec(mention);
|
|
161
|
+
if (match?.[1] === undefined)
|
|
162
|
+
return mention;
|
|
163
|
+
const encoded = match[1].slice('dsh-session:'.length);
|
|
164
|
+
try {
|
|
165
|
+
const sessionId = decodeBase64UrlJsonString(encoded);
|
|
166
|
+
return mention.replace(match[1], encodeSessionReferenceUri(encodeSession(sessionId)));
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
// 非 canonical 候选交给 DSH 原生校验,不能因为改写失败丢掉整组结果。
|
|
170
|
+
return mention;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function encodeSessionReferenceUri(sessionId) {
|
|
174
|
+
const json = JSON.stringify(sessionId);
|
|
175
|
+
const bytes = new TextEncoder().encode(json);
|
|
176
|
+
let binary = '';
|
|
177
|
+
for (const byte of bytes)
|
|
178
|
+
binary += String.fromCharCode(byte);
|
|
179
|
+
const base64 = btoa(binary).replace(/\+/gu, '-').replace(/\//gu, '_').replace(/=+$/u, '');
|
|
180
|
+
return `dsh-session:${base64}`;
|
|
181
|
+
}
|
|
182
|
+
function decodeBase64UrlJsonString(value) {
|
|
183
|
+
const padded = value.replace(/-/gu, '+').replace(/_/gu, '/') + '='.repeat((4 - value.length % 4) % 4);
|
|
184
|
+
const binary = atob(padded);
|
|
185
|
+
const bytes = Uint8Array.from(binary, (char) => char.charCodeAt(0));
|
|
186
|
+
const parsed = JSON.parse(new TextDecoder().decode(bytes));
|
|
187
|
+
if (typeof parsed !== 'string')
|
|
188
|
+
throw new TypeError('session reference URI payload is not a string');
|
|
189
|
+
return parsed;
|
|
190
|
+
}
|
|
104
191
|
function rewriteValue(value, map, key = '', parentKey) {
|
|
105
192
|
// 二进制字段(例如 workspaceFiles/readBytes.data)属于 Remote 结果的一部分,
|
|
106
193
|
// 不能按普通对象展开,否则 Uint8Array 会变成带数字键的对象并在 JSON 边界丢失类型。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-host-native-protocol.js","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-protocol.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"peer-host-native-protocol.js","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HostScope } from '../../../shared/contracts/peer-host.js';
|
|
2
|
+
/** 流句柄拥有独立取消信号;关闭时先打断挂起的 next,再归还迭代器。 */
|
|
3
|
+
export declare class PeerHostNativeStreams {
|
|
4
|
+
private readonly ttlMs;
|
|
5
|
+
private readonly streams;
|
|
6
|
+
private disposed;
|
|
7
|
+
constructor(ttlMs?: number);
|
|
8
|
+
open(scope: HostScope, create: (signal: AbortSignal) => AsyncIterable<unknown> | Promise<AsyncIterable<unknown>>): Promise<string>;
|
|
9
|
+
next(id: string, scope: HostScope, signal?: AbortSignal): Promise<IteratorResult<unknown>>;
|
|
10
|
+
close(id: string, scope: HostScope, reason?: unknown): Promise<void>;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
private require;
|
|
13
|
+
private expiry;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=peer-host-native-streams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-host-native-streams.d.ts","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-streams.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAYvE,yCAAyC;AACzC,qBAAa,qBAAqB;IAIpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAQ;gBAEK,KAAK,SAAU;IAEtC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBlI,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IA2B1F,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1E,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,MAAM;CAWf"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { CodingNsRpcError } from '../../rpc-table.js';
|
|
3
|
+
import { throwIfPeerHostRequestAborted } from './peer-host-request-errors.js';
|
|
4
|
+
/** 流句柄拥有独立取消信号;关闭时先打断挂起的 next,再归还迭代器。 */
|
|
5
|
+
export class PeerHostNativeStreams {
|
|
6
|
+
ttlMs;
|
|
7
|
+
streams = new Map();
|
|
8
|
+
disposed = false;
|
|
9
|
+
constructor(ttlMs = 600_000) {
|
|
10
|
+
this.ttlMs = ttlMs;
|
|
11
|
+
}
|
|
12
|
+
async open(scope, create) {
|
|
13
|
+
if (this.disposed)
|
|
14
|
+
throw new Error('PeerHost 原生流注册表已关闭');
|
|
15
|
+
const controller = new AbortController();
|
|
16
|
+
try {
|
|
17
|
+
const source = await create(controller.signal);
|
|
18
|
+
const iterator = source[Symbol.asyncIterator]();
|
|
19
|
+
if (this.disposed) {
|
|
20
|
+
controller.abort();
|
|
21
|
+
await iterator.return?.();
|
|
22
|
+
throw new Error('PeerHost 原生流注册表已关闭');
|
|
23
|
+
}
|
|
24
|
+
const id = randomUUID();
|
|
25
|
+
this.streams.set(id, { scope, controller, iterator, timer: this.expiry(id), pulling: false });
|
|
26
|
+
return id;
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
controller.abort(error);
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async next(id, scope, signal) {
|
|
34
|
+
const stream = this.require(id, scope);
|
|
35
|
+
if (stream.pulling)
|
|
36
|
+
throw new CodingNsRpcError('CODINGNS_RPC_INVALID', 'DSH 原生 Remote 流已有挂起的读取');
|
|
37
|
+
clearTimeout(stream.timer);
|
|
38
|
+
stream.timer = this.expiry(id);
|
|
39
|
+
stream.pulling = true;
|
|
40
|
+
const abort = () => { void this.close(id, scope, signal?.reason).catch(() => undefined); };
|
|
41
|
+
signal?.addEventListener('abort', abort, { once: true });
|
|
42
|
+
try {
|
|
43
|
+
throwIfPeerHostRequestAborted(signal);
|
|
44
|
+
const next = await stream.iterator.next();
|
|
45
|
+
if (next.done)
|
|
46
|
+
await this.close(id, scope);
|
|
47
|
+
else if (this.streams.has(id)) {
|
|
48
|
+
clearTimeout(stream.timer);
|
|
49
|
+
stream.timer = this.expiry(id);
|
|
50
|
+
}
|
|
51
|
+
return next;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
await this.close(id, scope);
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
// 请求完成后立刻解绑;HTTP 响应结束导致的取消不能杀掉后续轮询。
|
|
59
|
+
signal?.removeEventListener('abort', abort);
|
|
60
|
+
stream.pulling = false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async close(id, scope, reason) {
|
|
64
|
+
if (!this.streams.has(id))
|
|
65
|
+
return;
|
|
66
|
+
const stream = this.require(id, scope);
|
|
67
|
+
this.streams.delete(id);
|
|
68
|
+
clearTimeout(stream.timer);
|
|
69
|
+
stream.controller.abort(reason ?? new DOMException('PeerHost 原生流已关闭', 'AbortError'));
|
|
70
|
+
await stream.iterator.return?.();
|
|
71
|
+
}
|
|
72
|
+
dispose() {
|
|
73
|
+
this.disposed = true;
|
|
74
|
+
for (const [id, stream] of this.streams)
|
|
75
|
+
void this.close(id, stream.scope).catch(() => undefined);
|
|
76
|
+
}
|
|
77
|
+
require(id, scope) {
|
|
78
|
+
const stream = this.streams.get(id);
|
|
79
|
+
if (stream === undefined)
|
|
80
|
+
throw new CodingNsRpcError('CODINGNS_RPC_NOT_FOUND', 'DSH 原生 Remote 流已失效');
|
|
81
|
+
if (Object.keys(stream.scope).some(key => stream.scope[key] !== scope[key])) {
|
|
82
|
+
throw new CodingNsRpcError('CODINGNS_RPC_SCOPE_MISMATCH', 'DSH 原生 Remote 流作用域不匹配');
|
|
83
|
+
}
|
|
84
|
+
return stream;
|
|
85
|
+
}
|
|
86
|
+
expiry(id) {
|
|
87
|
+
const timer = setTimeout(() => {
|
|
88
|
+
const stream = this.streams.get(id);
|
|
89
|
+
if (stream === undefined)
|
|
90
|
+
return;
|
|
91
|
+
// 正在长轮询的健康会话可以无限等待用户;失联由该次请求的取消信号负责清理。
|
|
92
|
+
if (stream.pulling)
|
|
93
|
+
stream.timer = this.expiry(id);
|
|
94
|
+
else
|
|
95
|
+
void this.close(id, stream.scope).catch(() => undefined);
|
|
96
|
+
}, this.ttlMs);
|
|
97
|
+
timer.unref?.();
|
|
98
|
+
return timer;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=peer-host-native-streams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-host-native-streams.js","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-streams.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-host-native-transport.d.ts","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAGvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"peer-host-native-transport.d.ts","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-native-transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAGvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAStE;;;;;;;GAOG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,gDAAgD;AAChD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,GAAG,2BAA2B,GAAG,2BAA2B,GAAG,4BAA4B,CAAA;AAEtJ,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAEjG;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC,CAS1J;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CASpJ;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,GAAG,aAAa,CAAC,OAAO,CAAC,CAiC7J;AAiDD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAe3D"}
|
|
@@ -3,6 +3,7 @@ import { setTimeout as delay } from 'node:timers/promises';
|
|
|
3
3
|
import { PEER_HOST_ERROR_CODES } from '../../../shared/contracts/peer-host.js';
|
|
4
4
|
import { CodingNsRpcError } from '../../rpc-table.js';
|
|
5
5
|
import { PeerHostHttpProxyService } from './host-api-proxy-service.js';
|
|
6
|
+
import { isPeerHostRequestCancellation, PeerHostNativeStreamError, throwIfPeerHostRequestAborted } from './peer-host-request-errors.js';
|
|
6
7
|
const STREAM_RETRY_ATTEMPTS = 3;
|
|
7
8
|
const STREAM_RETRY_DELAY_MS = 400;
|
|
8
9
|
export function peerHostNativeEnvelope(endpoint, payload) {
|
|
@@ -14,6 +15,7 @@ export async function callPeerNativeRpc(httpProxy, peerHostId, request) {
|
|
|
14
15
|
path: '/api/codingns/peerHost/nativeLocal',
|
|
15
16
|
method: 'POST',
|
|
16
17
|
body: peerHostNativeEnvelope('peerHost/nativeLocal', { method: request.method, payload: request.payload, scope: request.scope }),
|
|
18
|
+
...(request.signal === undefined ? {} : { signal: request.signal }),
|
|
17
19
|
});
|
|
18
20
|
return readNativeRpcEnvelope(response.body);
|
|
19
21
|
}
|
|
@@ -23,6 +25,7 @@ export async function callPeerCliRpc(httpProxy, peerHostId, request) {
|
|
|
23
25
|
path: `/api/codingns/${request.endpoint}`,
|
|
24
26
|
method: 'POST',
|
|
25
27
|
body: JSON.stringify({ rpcId: `peer-host-cli-${randomUUID()}`, method: request.endpoint, payload: request.payload ?? {} }),
|
|
28
|
+
...(request.signal === undefined ? {} : { signal: request.signal }),
|
|
26
29
|
});
|
|
27
30
|
return readNativeRpcEnvelope(response.body);
|
|
28
31
|
}
|
|
@@ -33,9 +36,8 @@ export function openPeerNativeStream(httpProxy, peerHostId, request) {
|
|
|
33
36
|
path: '/api/codingns/peerHost/nativeStreamOpen',
|
|
34
37
|
method: 'POST',
|
|
35
38
|
body: peerHostNativeEnvelope('peerHost/nativeStreamOpen', { method: request.method, payload: request.payload, scope: request.scope }),
|
|
36
|
-
}, request
|
|
37
|
-
const
|
|
38
|
-
const streamId = requiredString(record(openedValue).streamId, 'streamId');
|
|
39
|
+
}, request, 'open');
|
|
40
|
+
const streamId = requiredString(record(opened).streamId, 'streamId');
|
|
39
41
|
try {
|
|
40
42
|
while (!(request.signal?.aborted ?? false)) {
|
|
41
43
|
const next = await requestPeerHostStream(httpProxy, peerHostId, {
|
|
@@ -43,12 +45,13 @@ export function openPeerNativeStream(httpProxy, peerHostId, request) {
|
|
|
43
45
|
path: '/api/codingns/peerHost/nativeStreamNext',
|
|
44
46
|
method: 'POST',
|
|
45
47
|
body: peerHostNativeEnvelope('peerHost/nativeStreamNext', { streamId, scope: request.scope }),
|
|
46
|
-
}, request
|
|
47
|
-
const value = record(
|
|
48
|
+
}, request, 'next');
|
|
49
|
+
const value = record(next);
|
|
48
50
|
if (value.done === true)
|
|
49
51
|
return;
|
|
50
52
|
yield value.value;
|
|
51
53
|
}
|
|
54
|
+
throwIfPeerHostRequestAborted(request.signal);
|
|
52
55
|
}
|
|
53
56
|
finally {
|
|
54
57
|
await httpProxy.request(peerHostId, {
|
|
@@ -56,6 +59,8 @@ export function openPeerNativeStream(httpProxy, peerHostId, request) {
|
|
|
56
59
|
path: '/api/codingns/peerHost/nativeStreamClose',
|
|
57
60
|
method: 'POST',
|
|
58
61
|
body: peerHostNativeEnvelope('peerHost/nativeStreamClose', { streamId, scope: request.scope }),
|
|
62
|
+
// 关闭请求有独立时限,不能沿用已取消的订阅信号。
|
|
63
|
+
signal: AbortSignal.timeout(5_000),
|
|
59
64
|
}).catch(() => undefined);
|
|
60
65
|
}
|
|
61
66
|
})();
|
|
@@ -64,12 +69,40 @@ export function openPeerNativeStream(httpProxy, peerHostId, request) {
|
|
|
64
69
|
* 目标 Host 自身重启时其 LAN 入口会短暂不可达,代理以 502 与连接级错误码返回。
|
|
65
70
|
* 流通道只有读语义,这类明确的连接级失败可以有限重试;业务错误(例如会话不存在)直接返回。
|
|
66
71
|
*/
|
|
67
|
-
async function requestPeerHostStream(httpProxy, peerHostId, request,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
async function requestPeerHostStream(httpProxy, peerHostId, request, subscription, phase) {
|
|
73
|
+
const startedAt = performance.now();
|
|
74
|
+
let attempts = 0;
|
|
75
|
+
let status = null;
|
|
76
|
+
let cause;
|
|
77
|
+
try {
|
|
78
|
+
for (;;) {
|
|
79
|
+
throwIfPeerHostRequestAborted(subscription.signal);
|
|
80
|
+
cause = undefined;
|
|
81
|
+
status = null;
|
|
82
|
+
attempts += 1;
|
|
83
|
+
const response = await httpProxy.request(peerHostId, {
|
|
84
|
+
...request,
|
|
85
|
+
...(subscription.signal === undefined ? {} : { signal: subscription.signal }),
|
|
86
|
+
onFailure: error => { cause = error; },
|
|
87
|
+
});
|
|
88
|
+
status = response.status;
|
|
89
|
+
throwIfPeerHostRequestAborted(subscription.signal);
|
|
90
|
+
if (attempts >= STREAM_RETRY_ATTEMPTS || !isProxyUnreachable(response))
|
|
91
|
+
return readNativeRpcEnvelope(response.body);
|
|
92
|
+
await delay(STREAM_RETRY_DELAY_MS * attempts, undefined, { signal: subscription.signal });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
if (isPeerHostRequestCancellation(error, subscription.signal)) {
|
|
97
|
+
throwIfPeerHostRequestAborted(subscription.signal);
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
const failureCause = subscription.signal?.aborted ? subscription.signal.reason : cause ?? error;
|
|
101
|
+
throw new PeerHostNativeStreamError(error, failureCause, {
|
|
102
|
+
targetHostId: peerHostId, method: subscription.method, phase,
|
|
103
|
+
workspaceId: request.scope.workspaceId, sessionId: request.scope.sessionId,
|
|
104
|
+
elapsedMs: Math.round(performance.now() - startedAt), attempts, status,
|
|
105
|
+
});
|
|
73
106
|
}
|
|
74
107
|
}
|
|
75
108
|
function isProxyUnreachable(response) {
|