@jingyi0605/codingns4dsh 0.2.0-rc.3 → 0.2.1-beta.1
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 +6 -6
- package/README.md +42 -29
- package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts +1 -1
- package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts.map +1 -1
- package/data/build/dist/bootstrap/dsh-peer-host-preboot-shim.js +2 -2
- package/data/build/dist/bootstrap/dsh-peer-host-preboot-shim.js.map +1 -1
- package/data/build/dist/bootstrap/index.d.ts +1 -1
- package/data/build/dist/bootstrap/index.d.ts.map +1 -1
- package/data/build/dist/client/bundle.js +3164 -181
- 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 +3 -3
- package/data/build/dist/client/cli-catalog.js.map +1 -1
- package/data/build/dist/client/cli-slots.d.ts +4 -0
- package/data/build/dist/client/cli-slots.d.ts.map +1 -1
- package/data/build/dist/client/cli-slots.js +70 -9
- package/data/build/dist/client/cli-slots.js.map +1 -1
- package/data/build/dist/client/context-breakdown-dom.d.ts +1 -1
- package/data/build/dist/client/context-breakdown-dom.d.ts.map +1 -1
- package/data/build/dist/client/context-breakdown-dom.js +1 -1
- package/data/build/dist/client/context-breakdown-dom.js.map +1 -1
- package/data/build/dist/client/features/assistant-panel.d.ts +5 -0
- package/data/build/dist/client/features/assistant-panel.d.ts.map +1 -0
- package/data/build/dist/client/features/assistant-panel.js +127 -0
- package/data/build/dist/client/features/assistant-panel.js.map +1 -0
- package/data/build/dist/client/features/global-voice-assistant.d.ts +10 -0
- package/data/build/dist/client/features/global-voice-assistant.d.ts.map +1 -0
- package/data/build/dist/client/features/global-voice-assistant.js +330 -0
- package/data/build/dist/client/features/global-voice-assistant.js.map +1 -0
- package/data/build/dist/client/features/index.d.ts +2 -0
- package/data/build/dist/client/features/index.d.ts.map +1 -1
- package/data/build/dist/client/features/index.js +4 -0
- package/data/build/dist/client/features/index.js.map +1 -1
- package/data/build/dist/client/features/lan-access.d.ts.map +1 -1
- package/data/build/dist/client/features/lan-access.js +3 -1
- package/data/build/dist/client/features/lan-access.js.map +1 -1
- package/data/build/dist/client/features/types.d.ts +4 -1
- package/data/build/dist/client/features/types.d.ts.map +1 -1
- package/data/build/dist/client/features/voice-conversation-dialog.d.ts +20 -0
- package/data/build/dist/client/features/voice-conversation-dialog.d.ts.map +1 -0
- package/data/build/dist/client/features/voice-conversation-dialog.js +59 -0
- package/data/build/dist/client/features/voice-conversation-dialog.js.map +1 -0
- package/data/build/dist/client/features/voice-initialization-dialog.d.ts +10 -0
- package/data/build/dist/client/features/voice-initialization-dialog.d.ts.map +1 -0
- package/data/build/dist/client/features/voice-initialization-dialog.js +90 -0
- package/data/build/dist/client/features/voice-initialization-dialog.js.map +1 -0
- 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 +57 -2
- package/data/build/dist/client/features/workspace-session-enhancement-panel.js.map +1 -1
- package/data/build/dist/client/features/workspace-session-enhancement.d.ts.map +1 -1
- package/data/build/dist/client/features/workspace-session-enhancement.js +27 -0
- package/data/build/dist/client/features/workspace-session-enhancement.js.map +1 -1
- package/data/build/dist/client/global-voice-runtime-registry.d.ts +27 -0
- package/data/build/dist/client/global-voice-runtime-registry.d.ts.map +1 -0
- package/data/build/dist/client/global-voice-runtime-registry.js +12 -0
- package/data/build/dist/client/global-voice-runtime-registry.js.map +1 -0
- 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/locale.d.ts.map +1 -1
- package/data/build/dist/client/locale.js +185 -1
- package/data/build/dist/client/locale.js.map +1 -1
- package/data/build/dist/client/locales/terminalAuth.d.ts.map +1 -1
- package/data/build/dist/client/locales/terminalAuth.js +2 -0
- 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 +4 -0
- package/data/build/dist/client/locales/usage.js.map +1 -1
- package/data/build/dist/client/mobile-session-interaction.d.ts +9 -0
- package/data/build/dist/client/mobile-session-interaction.d.ts.map +1 -1
- package/data/build/dist/client/mobile-session-interaction.js +63 -0
- package/data/build/dist/client/mobile-session-interaction.js.map +1 -1
- package/data/build/dist/client/model-catalog-cache.d.ts +23 -0
- package/data/build/dist/client/model-catalog-cache.d.ts.map +1 -1
- package/data/build/dist/client/model-catalog-cache.js +81 -9
- package/data/build/dist/client/model-catalog-cache.js.map +1 -1
- package/data/build/dist/client/service-tier.d.ts +11 -0
- package/data/build/dist/client/service-tier.d.ts.map +1 -1
- package/data/build/dist/client/service-tier.js +15 -0
- package/data/build/dist/client/service-tier.js.map +1 -1
- package/data/build/dist/client/sherpa-voice-adapter.d.ts +46 -0
- package/data/build/dist/client/sherpa-voice-adapter.d.ts.map +1 -0
- package/data/build/dist/client/sherpa-voice-adapter.js +252 -0
- package/data/build/dist/client/sherpa-voice-adapter.js.map +1 -0
- package/data/build/dist/client/skill-command.d.ts +10 -0
- package/data/build/dist/client/skill-command.d.ts.map +1 -0
- package/data/build/dist/client/skill-command.js +258 -0
- package/data/build/dist/client/skill-command.js.map +1 -0
- package/data/build/dist/client/skill-reference-dom.d.ts +38 -0
- package/data/build/dist/client/skill-reference-dom.d.ts.map +1 -0
- package/data/build/dist/client/skill-reference-dom.js +187 -0
- package/data/build/dist/client/skill-reference-dom.js.map +1 -0
- package/data/build/dist/client/subscription-slot.d.ts.map +1 -1
- package/data/build/dist/client/subscription-slot.js +51 -3
- package/data/build/dist/client/subscription-slot.js.map +1 -1
- package/data/build/dist/client/terminal/model.d.ts +40 -2
- package/data/build/dist/client/terminal/model.d.ts.map +1 -1
- package/data/build/dist/client/terminal/model.js +151 -24
- package/data/build/dist/client/terminal/model.js.map +1 -1
- package/data/build/dist/client/terminal/styles.d.ts +8 -0
- package/data/build/dist/client/terminal/styles.d.ts.map +1 -1
- package/data/build/dist/client/terminal/styles.js +23 -2
- package/data/build/dist/client/terminal/styles.js.map +1 -1
- package/data/build/dist/client/terminal/ui.d.ts.map +1 -1
- package/data/build/dist/client/terminal/ui.js +161 -26
- package/data/build/dist/client/terminal/ui.js.map +1 -1
- package/data/build/dist/client/terminal/xterm-view.d.ts.map +1 -1
- package/data/build/dist/client/terminal/xterm-view.js +218 -42
- package/data/build/dist/client/terminal/xterm-view.js.map +1 -1
- package/data/build/dist/client/voice-capture.d.ts +32 -0
- package/data/build/dist/client/voice-capture.d.ts.map +1 -0
- package/data/build/dist/client/voice-capture.js +158 -0
- package/data/build/dist/client/voice-capture.js.map +1 -0
- package/data/build/dist/client/voice-device-manager.d.ts +24 -0
- package/data/build/dist/client/voice-device-manager.d.ts.map +1 -0
- package/data/build/dist/client/voice-device-manager.js +197 -0
- package/data/build/dist/client/voice-device-manager.js.map +1 -0
- package/data/build/dist/client/voice-output.d.ts +14 -0
- package/data/build/dist/client/voice-output.d.ts.map +1 -0
- package/data/build/dist/client/voice-output.js +32 -0
- package/data/build/dist/client/voice-output.js.map +1 -0
- package/data/build/dist/client/voice-security.d.ts +8 -0
- package/data/build/dist/client/voice-security.d.ts.map +1 -0
- package/data/build/dist/client/voice-security.js +26 -0
- package/data/build/dist/client/voice-security.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts +12 -1
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.js +32 -0
- package/data/build/dist/dsh-capabilities/client/primitives-adapter.js.map +1 -1
- package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts +15 -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 +39 -9
- package/data/build/dist/host/cli-adapters/acp-cli-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts +39 -2
- package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/antigravity-driver.js +198 -10
- package/data/build/dist/host/cli-adapters/antigravity-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/antigravity-subscription.d.ts +121 -0
- package/data/build/dist/host/cli-adapters/antigravity-subscription.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/antigravity-subscription.js +504 -0
- package/data/build/dist/host/cli-adapters/antigravity-subscription.js.map +1 -0
- package/data/build/dist/host/cli-adapters/claude-driver.d.ts +21 -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 +173 -7
- 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 +4 -0
- package/data/build/dist/host/cli-adapters/codebuddy-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/codex-driver.d.ts +28 -2
- package/data/build/dist/host/cli-adapters/codex-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/codex-driver.js +234 -5
- package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
- 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.map +1 -1
- package/data/build/dist/host/cli-adapters/command-code-subscription.js +7 -4
- package/data/build/dist/host/cli-adapters/command-code-subscription.js.map +1 -1
- package/data/build/dist/host/cli-adapters/cursor-driver.d.ts +9 -0
- package/data/build/dist/host/cli-adapters/cursor-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/cursor-driver.js +72 -2
- package/data/build/dist/host/cli-adapters/cursor-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/driver.d.ts +21 -1
- 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.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-message-projector.js +15 -3
- package/data/build/dist/host/cli-adapters/dsh-message-projector.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 +18 -1
- package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
- package/data/build/dist/host/cli-adapters/gemini-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/gemini-driver.js +4 -0
- package/data/build/dist/host/cli-adapters/gemini-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-driver.js +4 -0
- package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/json-rpc-process.js.map +1 -1
- package/data/build/dist/host/cli-adapters/kimi-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/kimi-driver.js +6 -6
- package/data/build/dist/host/cli-adapters/kimi-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/mcode-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/mcode-driver.js +2 -0
- package/data/build/dist/host/cli-adapters/mcode-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/model-catalog.d.ts +49 -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 +126 -0
- package/data/build/dist/host/cli-adapters/model-catalog.js.map +1 -1
- package/data/build/dist/host/cli-adapters/opencode-driver.d.ts +11 -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 +92 -8
- package/data/build/dist/host/cli-adapters/opencode-driver.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 +4 -0
- package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/process-utils.d.ts +10 -3
- package/data/build/dist/host/cli-adapters/process-utils.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/process-utils.js.map +1 -1
- package/data/build/dist/host/cli-adapters/provider-subscription.d.ts +4 -1
- package/data/build/dist/host/cli-adapters/provider-subscription.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/provider-subscription.js +8 -1
- package/data/build/dist/host/cli-adapters/provider-subscription.js.map +1 -1
- package/data/build/dist/host/cli-adapters/qoder-driver.d.ts +15 -0
- package/data/build/dist/host/cli-adapters/qoder-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/qoder-driver.js +171 -3
- package/data/build/dist/host/cli-adapters/qoder-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/qoder-subscription.js +3 -1
- package/data/build/dist/host/cli-adapters/qoder-subscription.js.map +1 -1
- package/data/build/dist/host/cli-adapters/reasoning-content.d.ts +11 -0
- package/data/build/dist/host/cli-adapters/reasoning-content.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/reasoning-content.js +79 -0
- package/data/build/dist/host/cli-adapters/reasoning-content.js.map +1 -0
- package/data/build/dist/host/cli-adapters/registry.d.ts +24 -1
- package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.js +109 -4
- package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
- package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts +3 -2
- package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/rpc-driver-utils.js +8 -2
- package/data/build/dist/host/cli-adapters/rpc-driver-utils.js.map +1 -1
- package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +3 -2
- package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/standard-stream-driver.js +14 -2
- package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
- package/data/build/dist/host/cli-bridge/injections.d.ts +10 -1
- package/data/build/dist/host/cli-bridge/injections.d.ts.map +1 -1
- package/data/build/dist/host/cli-bridge/injections.js +28 -8
- package/data/build/dist/host/cli-bridge/injections.js.map +1 -1
- package/data/build/dist/host/features/assistant-dispatch.d.ts +45 -0
- package/data/build/dist/host/features/assistant-dispatch.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-dispatch.js +49 -0
- package/data/build/dist/host/features/assistant-dispatch.js.map +1 -0
- package/data/build/dist/host/features/assistant-intent.d.ts +46 -0
- package/data/build/dist/host/features/assistant-intent.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-intent.js +149 -0
- package/data/build/dist/host/features/assistant-intent.js.map +1 -0
- package/data/build/dist/host/features/assistant-scope-settings.d.ts +25 -0
- package/data/build/dist/host/features/assistant-scope-settings.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-scope-settings.js +33 -0
- package/data/build/dist/host/features/assistant-scope-settings.js.map +1 -0
- package/data/build/dist/host/features/assistant-scope.d.ts +79 -0
- package/data/build/dist/host/features/assistant-scope.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-scope.js +107 -0
- package/data/build/dist/host/features/assistant-scope.js.map +1 -0
- package/data/build/dist/host/features/assistant-session-index.d.ts +44 -0
- package/data/build/dist/host/features/assistant-session-index.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-session-index.js +109 -0
- package/data/build/dist/host/features/assistant-session-index.js.map +1 -0
- package/data/build/dist/host/features/assistant-summary.d.ts +28 -0
- package/data/build/dist/host/features/assistant-summary.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-summary.js +166 -0
- package/data/build/dist/host/features/assistant-summary.js.map +1 -0
- package/data/build/dist/host/features/assistant-voice-stream.d.ts +10 -0
- package/data/build/dist/host/features/assistant-voice-stream.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-voice-stream.js +106 -0
- package/data/build/dist/host/features/assistant-voice-stream.js.map +1 -0
- package/data/build/dist/host/features/assistant-voice-turn.d.ts +27 -0
- package/data/build/dist/host/features/assistant-voice-turn.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-voice-turn.js +54 -0
- package/data/build/dist/host/features/assistant-voice-turn.js.map +1 -0
- package/data/build/dist/host/features/assistant-waiting-state.d.ts +14 -0
- package/data/build/dist/host/features/assistant-waiting-state.d.ts.map +1 -0
- package/data/build/dist/host/features/assistant-waiting-state.js +17 -0
- package/data/build/dist/host/features/assistant-waiting-state.js.map +1 -0
- package/data/build/dist/host/features/global-voice-coordinator.d.ts +55 -0
- package/data/build/dist/host/features/global-voice-coordinator.d.ts.map +1 -0
- package/data/build/dist/host/features/global-voice-coordinator.js +221 -0
- package/data/build/dist/host/features/global-voice-coordinator.js.map +1 -0
- package/data/build/dist/host/features/global-voice-rpc.d.ts +25 -0
- package/data/build/dist/host/features/global-voice-rpc.d.ts.map +1 -0
- package/data/build/dist/host/features/global-voice-rpc.js +862 -0
- package/data/build/dist/host/features/global-voice-rpc.js.map +1 -0
- package/data/build/dist/host/features/index.d.ts +10 -0
- package/data/build/dist/host/features/index.d.ts.map +1 -1
- package/data/build/dist/host/features/index.js +10 -0
- package/data/build/dist/host/features/index.js.map +1 -1
- package/data/build/dist/host/features/peer-host.d.ts +5 -0
- package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
- package/data/build/dist/host/features/peer-host.js +232 -2
- package/data/build/dist/host/features/peer-host.js.map +1 -1
- package/data/build/dist/host/features/sherpa-voice-runtime.d.ts +42 -0
- package/data/build/dist/host/features/sherpa-voice-runtime.d.ts.map +1 -0
- package/data/build/dist/host/features/sherpa-voice-runtime.js +193 -0
- package/data/build/dist/host/features/sherpa-voice-runtime.js.map +1 -0
- package/data/build/dist/host/features/types.d.ts +26 -0
- package/data/build/dist/host/features/types.d.ts.map +1 -1
- package/data/build/dist/host/features/voice-agent-actions.d.ts +26 -0
- package/data/build/dist/host/features/voice-agent-actions.d.ts.map +1 -0
- package/data/build/dist/host/features/voice-agent-actions.js +128 -0
- package/data/build/dist/host/features/voice-agent-actions.js.map +1 -0
- package/data/build/dist/host/features/voice-agent-service.d.ts +117 -0
- package/data/build/dist/host/features/voice-agent-service.d.ts.map +1 -0
- package/data/build/dist/host/features/voice-agent-service.js +243 -0
- package/data/build/dist/host/features/voice-agent-service.js.map +1 -0
- package/data/build/dist/host/features/voice-model-setup.d.ts +20 -0
- package/data/build/dist/host/features/voice-model-setup.d.ts.map +1 -0
- package/data/build/dist/host/features/voice-model-setup.js +89 -0
- package/data/build/dist/host/features/voice-model-setup.js.map +1 -0
- package/data/build/dist/host/index.d.ts +2 -2
- package/data/build/dist/host/index.d.ts.map +1 -1
- package/data/build/dist/host/index.js +7 -1
- package/data/build/dist/host/index.js.map +1 -1
- 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.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.js +53 -2
- 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-remote-summary-source.js +15 -1
- package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js.map +1 -1
- 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 +1 -0
- package/data/build/dist/host/native-session-bridge.js.map +1 -1
- package/data/build/dist/host/rpc.d.ts.map +1 -1
- package/data/build/dist/host/rpc.js +9 -4
- 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 +19 -1
- package/data/build/dist/host/settings.js.map +1 -1
- package/data/build/dist/host/terminal/backends/conpty-backend.js.map +1 -1
- package/data/build/dist/host/terminal/terminal-controller.d.ts.map +1 -1
- package/data/build/dist/host/terminal/terminal-controller.js +4 -0
- package/data/build/dist/host/terminal/terminal-controller.js.map +1 -1
- package/data/build/dist/host/terminal/terminal-service.d.ts +21 -1
- package/data/build/dist/host/terminal/terminal-service.d.ts.map +1 -1
- package/data/build/dist/host/terminal/terminal-service.js +118 -7
- package/data/build/dist/host/terminal/terminal-service.js.map +1 -1
- package/data/build/dist/index.d.ts +2 -2
- package/data/build/dist/index.d.ts.map +1 -1
- package/data/build/dist/index.js +1 -1
- package/data/build/dist/index.js.map +1 -1
- package/data/build/dist/shared/contracts/assistant.d.ts +70 -0
- package/data/build/dist/shared/contracts/assistant.d.ts.map +1 -0
- package/data/build/dist/shared/contracts/assistant.js +2 -0
- package/data/build/dist/shared/contracts/assistant.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/config.d.ts +30 -0
- package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/config.js +20 -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/errors.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/subscription.d.ts +30 -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/terminal.d.ts +2 -0
- package/data/build/dist/shared/contracts/terminal.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/version.d.ts +12 -5
- package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/version.js +11 -4
- package/data/build/dist/shared/contracts/version.js.map +1 -1
- package/data/build/dist/shared/contracts/voice-runtime.d.ts +90 -0
- package/data/build/dist/shared/contracts/voice-runtime.d.ts.map +1 -0
- package/data/build/dist/shared/contracts/voice-runtime.js +16 -0
- package/data/build/dist/shared/contracts/voice-runtime.js.map +1 -0
- package/data/build/dist/shared/index.d.ts +8 -2
- package/data/build/dist/shared/index.d.ts.map +1 -1
- package/data/build/dist/shared/index.js +5 -1
- package/data/build/dist/shared/index.js.map +1 -1
- package/data/build/dist/shared/voice-models.d.ts +21 -0
- package/data/build/dist/shared/voice-models.d.ts.map +1 -0
- package/data/build/dist/shared/voice-models.js +27 -0
- package/data/build/dist/shared/voice-models.js.map +1 -0
- package/data/build/dist/shared/voice-stream.d.ts +42 -0
- package/data/build/dist/shared/voice-stream.d.ts.map +1 -0
- package/data/build/dist/shared/voice-stream.js +99 -0
- package/data/build/dist/shared/voice-stream.js.map +1 -0
- package/data/build/dist/shared/voice-text.d.ts +3 -0
- package/data/build/dist/shared/voice-text.d.ts.map +1 -0
- package/data/build/dist/shared/voice-text.js +14 -0
- package/data/build/dist/shared/voice-text.js.map +1 -0
- package/data/build/dist/typert.host.d.ts.map +1 -1
- package/data/build/dist/typert.host.js +1 -0
- package/data/build/dist/typert.host.js.map +1 -1
- package/package.json +56 -26
- package/profile/README.md +8 -5
- package/profile/package.json +5 -3
- package/profile/version.json +3 -3
- package/version.json +3 -3
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** 只消费运行时审批/提问事件,不从 running 状态或历史日志猜测等待。 */
|
|
2
|
+
export class AssistantWaitingState {
|
|
3
|
+
pending = new Map();
|
|
4
|
+
request(value) {
|
|
5
|
+
this.pending.set(value.sessionId, value.kind);
|
|
6
|
+
}
|
|
7
|
+
resolve(sessionId) {
|
|
8
|
+
this.pending.delete(sessionId);
|
|
9
|
+
}
|
|
10
|
+
get(sessionId) {
|
|
11
|
+
return this.pending.get(sessionId) ?? null;
|
|
12
|
+
}
|
|
13
|
+
snapshot() {
|
|
14
|
+
return new Map(this.pending);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=assistant-waiting-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant-waiting-state.js","sourceRoot":"","sources":["../../../../../src/host/features/assistant-waiting-state.ts"],"names":[],"mappings":"AAMA,4CAA4C;AAC5C,MAAM,OAAO,qBAAqB;IACf,OAAO,GAAG,IAAI,GAAG,EAAgC,CAAA;IAElE,OAAO,CAAC,KAA8B;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/C,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAA;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;CACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { VoicePcmFrame, VoiceRuntimeAdapter, VoiceRuntimeCapabilities, VoiceRuntimeEvent, VoiceRuntimeState } from '../../shared/contracts/voice-runtime.js';
|
|
2
|
+
export interface GlobalVoiceCoordinatorSnapshot {
|
|
3
|
+
readonly active: boolean;
|
|
4
|
+
readonly ownerId: string | null;
|
|
5
|
+
readonly state: VoiceRuntimeState;
|
|
6
|
+
readonly epoch: number;
|
|
7
|
+
readonly capabilities: VoiceRuntimeCapabilities;
|
|
8
|
+
}
|
|
9
|
+
export interface GlobalVoiceCoordinatorOptions {
|
|
10
|
+
readonly adapter: VoiceRuntimeAdapter;
|
|
11
|
+
readonly onFinalText?: (text: string, epoch: number) => Promise<void> | void;
|
|
12
|
+
readonly onAudio?: (bytes: Uint8Array, epoch: number) => void;
|
|
13
|
+
readonly leaseTtlMs?: number;
|
|
14
|
+
}
|
|
15
|
+
/** Host/Profile 级全局语音协调器,不保存任何目标 sessionId。 */
|
|
16
|
+
export declare class GlobalVoiceCoordinator {
|
|
17
|
+
private readonly adapter;
|
|
18
|
+
private readonly onFinalText;
|
|
19
|
+
private readonly onAudio;
|
|
20
|
+
private readonly listeners;
|
|
21
|
+
private readonly eventListeners;
|
|
22
|
+
private readonly runtimeDispose;
|
|
23
|
+
private ownerId;
|
|
24
|
+
private state;
|
|
25
|
+
private epoch;
|
|
26
|
+
private started;
|
|
27
|
+
private clientEpoch;
|
|
28
|
+
private clientSequence;
|
|
29
|
+
/** barge-in 后,旧轮次的 final 事件必须在收到新 listening 前丢弃。 */
|
|
30
|
+
private blockedFinalEpoch;
|
|
31
|
+
private leaseTimer;
|
|
32
|
+
private readonly leaseTtlMs;
|
|
33
|
+
constructor(options: GlobalVoiceCoordinatorOptions);
|
|
34
|
+
snapshot(): GlobalVoiceCoordinatorSnapshot;
|
|
35
|
+
subscribe(listener: (snapshot: GlobalVoiceCoordinatorSnapshot) => void): () => void;
|
|
36
|
+
/** 供二进制语音流把 partial/final/audio 事件回写给持有租约的浏览器。 */
|
|
37
|
+
subscribeRuntimeEvent(listener: (event: VoiceRuntimeEvent) => void): () => void;
|
|
38
|
+
start(ownerId: string): Promise<GlobalVoiceCoordinatorSnapshot>;
|
|
39
|
+
sendPcm(ownerId: string, frame: VoicePcmFrame): Promise<void>;
|
|
40
|
+
interrupt(ownerId: string): Promise<GlobalVoiceCoordinatorSnapshot>;
|
|
41
|
+
stop(ownerId: string): Promise<GlobalVoiceCoordinatorSnapshot>;
|
|
42
|
+
speak(ownerId: string, text: string): Promise<void>;
|
|
43
|
+
/** 供语音动作桥校验来源页面;不能只保护 start/stop。 */
|
|
44
|
+
assertOwner(ownerId: string): void;
|
|
45
|
+
heartbeat(ownerId: string): GlobalVoiceCoordinatorSnapshot;
|
|
46
|
+
/** 接收 Client 的状态事件;原始 PCM 不经过此边界。 */
|
|
47
|
+
acceptClientEvent(ownerId: string, event: VoiceRuntimeEvent, sequence?: number): GlobalVoiceCoordinatorSnapshot;
|
|
48
|
+
dispose(): void;
|
|
49
|
+
private handleRuntimeEvent;
|
|
50
|
+
private ensureOwner;
|
|
51
|
+
private armLeaseTimer;
|
|
52
|
+
private clearLeaseTimer;
|
|
53
|
+
private emit;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=global-voice-coordinator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-voice-coordinator.d.ts","sourceRoot":"","sources":["../../../../../src/host/features/global-voice-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/** Host/Profile 级全局语音协调器,不保存任何目标 sessionId。 */
|
|
2
|
+
export class GlobalVoiceCoordinator {
|
|
3
|
+
adapter;
|
|
4
|
+
onFinalText;
|
|
5
|
+
onAudio;
|
|
6
|
+
listeners = new Set();
|
|
7
|
+
eventListeners = new Set();
|
|
8
|
+
runtimeDispose;
|
|
9
|
+
ownerId = null;
|
|
10
|
+
state = 'disabled';
|
|
11
|
+
epoch = 0;
|
|
12
|
+
started = false;
|
|
13
|
+
clientEpoch = -1;
|
|
14
|
+
clientSequence = -1;
|
|
15
|
+
/** barge-in 后,旧轮次的 final 事件必须在收到新 listening 前丢弃。 */
|
|
16
|
+
blockedFinalEpoch = -1;
|
|
17
|
+
leaseTimer;
|
|
18
|
+
leaseTtlMs;
|
|
19
|
+
constructor(options) {
|
|
20
|
+
this.adapter = options.adapter;
|
|
21
|
+
this.onFinalText = options.onFinalText;
|
|
22
|
+
this.onAudio = options.onAudio;
|
|
23
|
+
this.leaseTtlMs = Number.isFinite(options.leaseTtlMs) && (options.leaseTtlMs ?? 0) > 0 ? options.leaseTtlMs : 30_000;
|
|
24
|
+
this.runtimeDispose = this.adapter.subscribe((event) => this.handleRuntimeEvent(event));
|
|
25
|
+
}
|
|
26
|
+
snapshot() {
|
|
27
|
+
const capabilities = typeof this.adapter.capabilities === 'function' ? this.adapter.capabilities() : this.adapter.capabilities;
|
|
28
|
+
return { active: this.started, ownerId: this.ownerId, state: this.state, epoch: this.epoch, capabilities };
|
|
29
|
+
}
|
|
30
|
+
subscribe(listener) {
|
|
31
|
+
this.listeners.add(listener);
|
|
32
|
+
listener(this.snapshot());
|
|
33
|
+
return () => this.listeners.delete(listener);
|
|
34
|
+
}
|
|
35
|
+
/** 供二进制语音流把 partial/final/audio 事件回写给持有租约的浏览器。 */
|
|
36
|
+
subscribeRuntimeEvent(listener) {
|
|
37
|
+
this.eventListeners.add(listener);
|
|
38
|
+
return () => this.eventListeners.delete(listener);
|
|
39
|
+
}
|
|
40
|
+
async start(ownerId) {
|
|
41
|
+
const owner = ownerId.trim();
|
|
42
|
+
if (owner === '')
|
|
43
|
+
throw new Error('全局语音租约缺少 ownerId');
|
|
44
|
+
if (this.started && this.ownerId !== owner)
|
|
45
|
+
throw new Error('全局语音助理正在被另一个页面使用');
|
|
46
|
+
if (this.started)
|
|
47
|
+
return this.snapshot();
|
|
48
|
+
this.ownerId = owner;
|
|
49
|
+
this.epoch += 1;
|
|
50
|
+
this.clientEpoch = -1;
|
|
51
|
+
this.adapter.setEpoch?.(this.epoch);
|
|
52
|
+
this.clientSequence = -1;
|
|
53
|
+
this.blockedFinalEpoch = -1;
|
|
54
|
+
this.state = 'loading';
|
|
55
|
+
this.emit();
|
|
56
|
+
try {
|
|
57
|
+
await this.adapter.start(owner);
|
|
58
|
+
this.started = true;
|
|
59
|
+
this.armLeaseTimer(owner);
|
|
60
|
+
if (this.state === 'loading')
|
|
61
|
+
this.state = 'standby';
|
|
62
|
+
this.emit();
|
|
63
|
+
return this.snapshot();
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
this.started = false;
|
|
67
|
+
this.ownerId = null;
|
|
68
|
+
this.state = 'error';
|
|
69
|
+
this.emit();
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async sendPcm(ownerId, frame) {
|
|
74
|
+
this.ensureOwner(ownerId);
|
|
75
|
+
if (this.adapter.sendPcm === undefined)
|
|
76
|
+
throw new Error('流式音频运行时不可用');
|
|
77
|
+
await this.adapter.sendPcm(frame, this.epoch);
|
|
78
|
+
}
|
|
79
|
+
async interrupt(ownerId) {
|
|
80
|
+
this.ensureOwner(ownerId);
|
|
81
|
+
this.epoch += 1;
|
|
82
|
+
this.adapter.setEpoch?.(this.epoch);
|
|
83
|
+
await this.adapter.interrupt();
|
|
84
|
+
this.state = 'interrupted';
|
|
85
|
+
this.blockedFinalEpoch = this.epoch;
|
|
86
|
+
this.emit();
|
|
87
|
+
return this.snapshot();
|
|
88
|
+
}
|
|
89
|
+
async stop(ownerId) {
|
|
90
|
+
this.ensureOwner(ownerId);
|
|
91
|
+
this.clearLeaseTimer();
|
|
92
|
+
await this.adapter.stop();
|
|
93
|
+
this.epoch += 1;
|
|
94
|
+
this.started = false;
|
|
95
|
+
this.ownerId = null;
|
|
96
|
+
this.state = 'disabled';
|
|
97
|
+
this.clientEpoch = -1;
|
|
98
|
+
this.clientSequence = -1;
|
|
99
|
+
this.blockedFinalEpoch = -1;
|
|
100
|
+
this.emit();
|
|
101
|
+
return this.snapshot();
|
|
102
|
+
}
|
|
103
|
+
async speak(ownerId, text) {
|
|
104
|
+
this.ensureOwner(ownerId);
|
|
105
|
+
if (this.adapter.speak === undefined)
|
|
106
|
+
throw new Error('语音播报运行时不可用');
|
|
107
|
+
this.state = 'speaking';
|
|
108
|
+
this.emit();
|
|
109
|
+
await this.adapter.speak(text, this.epoch);
|
|
110
|
+
}
|
|
111
|
+
/** 供语音动作桥校验来源页面;不能只保护 start/stop。 */
|
|
112
|
+
assertOwner(ownerId) { this.ensureOwner(ownerId); }
|
|
113
|
+
heartbeat(ownerId) {
|
|
114
|
+
this.ensureOwner(ownerId);
|
|
115
|
+
this.armLeaseTimer(ownerId);
|
|
116
|
+
return this.snapshot();
|
|
117
|
+
}
|
|
118
|
+
/** 接收 Client 的状态事件;原始 PCM 不经过此边界。 */
|
|
119
|
+
acceptClientEvent(ownerId, event, sequence) {
|
|
120
|
+
// Client 的事件通过独立 RPC 异步投递。停止租约后,已经排队的最后一条
|
|
121
|
+
// 状态事件仍可能晚于 voice/stop 到达;这类事件不再属于任何活动会话,直接
|
|
122
|
+
// 丢弃即可,不能把正常的清理竞态记录成 Host RPC 异常。
|
|
123
|
+
if (!this.started || this.ownerId !== ownerId)
|
|
124
|
+
return this.snapshot();
|
|
125
|
+
if (sequence !== undefined && sequence < this.clientSequence)
|
|
126
|
+
return this.snapshot();
|
|
127
|
+
if (sequence !== undefined)
|
|
128
|
+
this.clientSequence = sequence;
|
|
129
|
+
if (event.epoch < this.clientEpoch)
|
|
130
|
+
return this.snapshot();
|
|
131
|
+
this.clientEpoch = event.epoch;
|
|
132
|
+
this.epoch = Math.max(this.epoch, event.epoch);
|
|
133
|
+
if (event.type === 'state') {
|
|
134
|
+
this.state = event.state;
|
|
135
|
+
if (event.state === 'listening' && event.epoch >= this.blockedFinalEpoch)
|
|
136
|
+
this.blockedFinalEpoch = -1;
|
|
137
|
+
}
|
|
138
|
+
else if (event.type === 'wake') {
|
|
139
|
+
this.state = 'listening';
|
|
140
|
+
this.blockedFinalEpoch = -1;
|
|
141
|
+
}
|
|
142
|
+
else if (event.type === 'barge-in') {
|
|
143
|
+
this.state = 'interrupted';
|
|
144
|
+
this.blockedFinalEpoch = Math.max(this.blockedFinalEpoch, event.epoch);
|
|
145
|
+
}
|
|
146
|
+
else if (event.type === 'error')
|
|
147
|
+
this.state = 'error';
|
|
148
|
+
this.emit();
|
|
149
|
+
return this.snapshot();
|
|
150
|
+
}
|
|
151
|
+
dispose() {
|
|
152
|
+
this.clearLeaseTimer();
|
|
153
|
+
if (this.started)
|
|
154
|
+
void this.adapter.stop();
|
|
155
|
+
this.runtimeDispose();
|
|
156
|
+
this.listeners.clear();
|
|
157
|
+
this.eventListeners.clear();
|
|
158
|
+
this.ownerId = null;
|
|
159
|
+
this.started = false;
|
|
160
|
+
this.state = 'disabled';
|
|
161
|
+
}
|
|
162
|
+
handleRuntimeEvent(event) {
|
|
163
|
+
if (event.epoch < this.epoch)
|
|
164
|
+
return;
|
|
165
|
+
this.epoch = event.epoch;
|
|
166
|
+
if (event.type === 'state') {
|
|
167
|
+
this.state = event.state;
|
|
168
|
+
if (event.state === 'listening' && event.epoch >= this.blockedFinalEpoch)
|
|
169
|
+
this.blockedFinalEpoch = -1;
|
|
170
|
+
}
|
|
171
|
+
else if (event.type === 'wake')
|
|
172
|
+
this.state = 'listening';
|
|
173
|
+
else if (event.type === 'barge-in') {
|
|
174
|
+
this.state = 'interrupted';
|
|
175
|
+
this.blockedFinalEpoch = Math.max(this.blockedFinalEpoch, event.epoch);
|
|
176
|
+
}
|
|
177
|
+
else if (event.type === 'error')
|
|
178
|
+
this.state = 'error';
|
|
179
|
+
else if (event.type === 'audio')
|
|
180
|
+
this.onAudio?.(event.bytes, event.epoch);
|
|
181
|
+
this.emit();
|
|
182
|
+
for (const listener of [...this.eventListeners]) {
|
|
183
|
+
try {
|
|
184
|
+
listener(event);
|
|
185
|
+
}
|
|
186
|
+
catch { /* 连接关闭不应破坏运行时 */ }
|
|
187
|
+
}
|
|
188
|
+
if (event.type === 'final' && event.epoch > this.blockedFinalEpoch && event.text.trim() !== '') {
|
|
189
|
+
void this.onFinalText?.(event.text.trim(), event.epoch);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
ensureOwner(ownerId) {
|
|
193
|
+
if (!this.started || this.ownerId !== ownerId)
|
|
194
|
+
throw new Error('当前页面没有全局语音租约');
|
|
195
|
+
}
|
|
196
|
+
armLeaseTimer(ownerId) {
|
|
197
|
+
this.clearLeaseTimer();
|
|
198
|
+
this.leaseTimer = setTimeout(() => {
|
|
199
|
+
if (!this.started || this.ownerId !== ownerId)
|
|
200
|
+
return;
|
|
201
|
+
void this.stop(ownerId).catch(() => undefined);
|
|
202
|
+
}, this.leaseTtlMs);
|
|
203
|
+
const timer = this.leaseTimer;
|
|
204
|
+
timer.unref?.();
|
|
205
|
+
}
|
|
206
|
+
clearLeaseTimer() {
|
|
207
|
+
if (this.leaseTimer !== undefined)
|
|
208
|
+
clearTimeout(this.leaseTimer);
|
|
209
|
+
this.leaseTimer = undefined;
|
|
210
|
+
}
|
|
211
|
+
emit() {
|
|
212
|
+
const snapshot = this.snapshot();
|
|
213
|
+
for (const listener of [...this.listeners]) {
|
|
214
|
+
try {
|
|
215
|
+
listener(snapshot);
|
|
216
|
+
}
|
|
217
|
+
catch { /* 单个订阅者异常不能破坏全局状态 */ }
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=global-voice-coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-voice-coordinator.js","sourceRoot":"","sources":["../../../../../src/host/features/global-voice-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { FeatureModule } from '../../shared/contracts/feature.js';
|
|
2
|
+
import type { CodingNsHostServices } from './types.js';
|
|
3
|
+
import { VoiceAgentService } from './voice-agent-service.js';
|
|
4
|
+
/**
|
|
5
|
+
* 全局智能助理 Host 边界。
|
|
6
|
+
*
|
|
7
|
+
* 这里故意不接收 sessionId:会话索引、意图和派发各自通过快照协作,语音租约
|
|
8
|
+
* 只属于 Host。这样刷新页面或切换当前对话不会改变助理的目标范围。
|
|
9
|
+
*/
|
|
10
|
+
export declare function createGlobalVoiceRpcFeature(): FeatureModule<CodingNsHostServices>;
|
|
11
|
+
/**
|
|
12
|
+
* 在 Host Context 注册 CodingNS 自己的 voiceAgent 服务。
|
|
13
|
+
*
|
|
14
|
+
* 浏览器 Client 负责麦克风和扬声器;Host 侧服务持有 Sherpa 运行时、契约、
|
|
15
|
+
* 动作注册表和会话句柄。若宿主已经提供同名且契约完整的服务,保留宿主
|
|
16
|
+
* 实现,避免覆盖其他插件的生命周期所有权;没有 Context 或缺少公开反射 API 时
|
|
17
|
+
* 才跳过注册。已有同名但契约不完整属于装配错误,必须显式失败,不能伪装成可用。
|
|
18
|
+
*/
|
|
19
|
+
export declare function provideHostVoiceAgentService(ctx: CodingNsHostServices['dshContext'], agent: VoiceAgentService): (() => void | Promise<void>) | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* readSurface 返回的是已经过滤过的模型表层事件。这里只读取最后几条语义事件,
|
|
22
|
+
* 不遍历原始日志,也不把工具流式 chunk 当成用户或助理正文。
|
|
23
|
+
*/
|
|
24
|
+
export declare function summarizeSurfaceEvents(events: readonly unknown[]): string | null;
|
|
25
|
+
//# sourceMappingURL=global-voice-rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-voice-rpc.d.ts","sourceRoot":"","sources":["../../../../../src/host/features/global-voice-rpc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAQtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAS5D;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,aAAa,CAAC,oBAAoB,CAAC,CA8QjF;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,oBAAoB,CAAC,YAAY,CAAC,EACvC,KAAK,EAAE,iBAAiB,GACvB,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAgB1C;AAiOD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAyBhF"}
|