@getpaseo/server 0.1.68 → 0.1.70
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/dist/scripts/dev-runner.js +4 -1
- package/dist/scripts/dev-runner.js.map +1 -1
- package/dist/scripts/supervisor-entrypoint.js +32 -10
- package/dist/scripts/supervisor-entrypoint.js.map +1 -1
- package/dist/scripts/supervisor.js +71 -6
- package/dist/scripts/supervisor.js.map +1 -1
- package/dist/server/client/daemon-client-runtime-metrics.js.map +1 -1
- package/dist/server/client/daemon-client-websocket-transport.js.map +1 -1
- package/dist/server/client/daemon-client.d.ts +33 -0
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +37 -1
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +8 -0
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +54 -5
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-response-loop.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +15 -2
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +2 -2
- package/dist/server/server/agent/agent-stream-coalescer.d.ts +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -1
- package/dist/server/server/agent/agent-timeline-store.js +1 -1
- package/dist/server/server/agent/agent-timeline-store.js.map +1 -1
- package/dist/server/server/agent/create-agent-mode.d.ts +14 -0
- package/dist/server/server/agent/create-agent-mode.d.ts.map +1 -0
- package/dist/server/server/agent/create-agent-mode.js +23 -0
- package/dist/server/server/agent/create-agent-mode.js.map +1 -0
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +36 -12
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/mcp-shared.d.ts +8 -4
- package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-shared.js +12 -5
- package/dist/server/server/agent/mcp-shared.js.map +1 -1
- package/dist/server/server/agent/pcm16-resampler.js.map +1 -1
- package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -1
- package/dist/server/server/agent/prompt-attachments.js +2 -0
- package/dist/server/server/agent/prompt-attachments.js.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.d.ts +4 -1
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +11 -0
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
- package/dist/server/server/agent/provider-registry.js +8 -3
- package/dist/server/server/agent/provider-registry.js.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts +2 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.js +35 -17
- package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/{claude-agent.d.ts → claude/agent.d.ts} +10 -6
- package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/{claude-agent.js → claude/agent.js} +216 -153
- package/dist/server/server/agent/providers/claude/agent.js.map +1 -0
- package/dist/server/server/agent/providers/claude/{claude-models.d.ts → models.d.ts} +1 -1
- package/dist/server/server/agent/providers/claude/models.d.ts.map +1 -0
- package/dist/server/server/agent/providers/claude/{claude-models.js → models.js} +8 -1
- package/dist/server/server/agent/providers/claude/models.js.map +1 -0
- package/dist/server/server/agent/providers/claude/query.d.ts +14 -0
- package/dist/server/server/agent/providers/claude/query.d.ts.map +1 -0
- package/dist/server/server/agent/providers/claude/query.js +84 -0
- package/dist/server/server/agent/providers/claude/query.js.map +1 -0
- package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +11 -2
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +408 -91
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/diagnostic-utils.d.ts.map +1 -1
- package/dist/server/server/agent/providers/diagnostic-utils.js +4 -0
- package/dist/server/server/agent/providers/diagnostic-utils.js.map +1 -1
- package/dist/server/server/agent/providers/generic-acp-agent.d.ts +1 -1
- package/dist/server/server/agent/providers/generic-acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/generic-acp-agent.js +0 -3
- package/dist/server/server/agent/providers/generic-acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.js +6 -2
- package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +32 -27
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/providers/provider-image-output.d.ts +20 -0
- package/dist/server/server/agent/providers/provider-image-output.d.ts.map +1 -0
- package/dist/server/server/agent/providers/provider-image-output.js +51 -0
- package/dist/server/server/agent/providers/provider-image-output.js.map +1 -0
- package/dist/server/server/agent/providers/provider-runner.d.ts +3 -3
- package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -1
- package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +7 -7
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.js +12 -18
- package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
- package/dist/server/server/agent/stt-manager.d.ts +1 -0
- package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
- package/dist/server/server/agent/stt-manager.js +3 -0
- package/dist/server/server/agent/stt-manager.js.map +1 -1
- package/dist/server/server/agent/tool-name-normalization.js.map +1 -1
- package/dist/server/server/agent/tts-manager.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +3 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +3 -9
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/chat/chat-rpc-schemas.d.ts +42 -42
- package/dist/server/server/chat/chat-types.d.ts +6 -6
- package/dist/server/server/config.d.ts +1 -0
- package/dist/server/server/config.d.ts.map +1 -1
- package/dist/server/server/config.js +27 -2
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/connection-offer.d.ts +1 -0
- package/dist/server/server/connection-offer.d.ts.map +1 -1
- package/dist/server/server/daemon-config-store.d.ts.map +1 -1
- package/dist/server/server/daemon-config-store.js +2 -6
- package/dist/server/server/daemon-config-store.js.map +1 -1
- package/dist/server/server/daemon-keypair.js.map +1 -1
- package/dist/server/server/daemon-worker.d.ts +2 -0
- package/dist/server/server/daemon-worker.d.ts.map +1 -0
- package/dist/server/server/{index.js → daemon-worker.js} +13 -41
- package/dist/server/server/daemon-worker.js.map +1 -0
- package/dist/server/server/editor-targets.js.map +1 -1
- package/dist/server/server/json-utils.js.map +1 -1
- package/dist/server/server/logger.d.ts +2 -6
- package/dist/server/server/logger.d.ts.map +1 -1
- package/dist/server/server/logger.js +28 -118
- package/dist/server/server/logger.js.map +1 -1
- package/dist/server/server/loop/rpc-schemas.d.ts +340 -272
- package/dist/server/server/loop/rpc-schemas.d.ts.map +1 -1
- package/dist/server/server/loop/rpc-schemas.js +4 -0
- package/dist/server/server/loop/rpc-schemas.js.map +1 -1
- package/dist/server/server/loop-service.d.ts +58 -50
- package/dist/server/server/loop-service.d.ts.map +1 -1
- package/dist/server/server/loop-service.js +11 -2
- package/dist/server/server/loop-service.js.map +1 -1
- package/dist/server/server/package-version.d.ts +12 -0
- package/dist/server/server/package-version.d.ts.map +1 -1
- package/dist/server/server/package-version.js +13 -1
- package/dist/server/server/package-version.js.map +1 -1
- package/dist/server/server/pairing-offer.d.ts +1 -0
- package/dist/server/server/pairing-offer.d.ts.map +1 -1
- package/dist/server/server/pairing-offer.js +2 -1
- package/dist/server/server/pairing-offer.js.map +1 -1
- package/dist/server/server/pairing-qr.js +1 -1
- package/dist/server/server/pairing-qr.js.map +1 -1
- package/dist/server/server/paseo-env.d.ts +7 -3
- package/dist/server/server/paseo-env.d.ts.map +1 -1
- package/dist/server/server/paseo-env.js +16 -33
- package/dist/server/server/paseo-env.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +27 -16
- package/dist/server/server/persisted-config.d.ts.map +1 -1
- package/dist/server/server/persisted-config.js +3 -2
- package/dist/server/server/persisted-config.js.map +1 -1
- package/dist/server/server/persistence-hooks.js.map +1 -1
- package/dist/server/server/pid-lock.d.ts +21 -4
- package/dist/server/server/pid-lock.d.ts.map +1 -1
- package/dist/server/server/pid-lock.js +30 -8
- package/dist/server/server/pid-lock.js.map +1 -1
- package/dist/server/server/relay-transport.d.ts +2 -1
- package/dist/server/server/relay-transport.d.ts.map +1 -1
- package/dist/server/server/relay-transport.js +8 -5
- package/dist/server/server/relay-transport.js.map +1 -1
- package/dist/server/server/schedule/rpc-schemas.d.ts +1188 -52
- package/dist/server/server/schedule/rpc-schemas.d.ts.map +1 -1
- package/dist/server/server/schedule/rpc-schemas.js +39 -0
- package/dist/server/server/schedule/rpc-schemas.js.map +1 -1
- package/dist/server/server/schedule/service.d.ts +3 -1
- package/dist/server/server/schedule/service.d.ts.map +1 -1
- package/dist/server/server/schedule/service.js +92 -5
- package/dist/server/server/schedule/service.js.map +1 -1
- package/dist/server/server/schedule/types.d.ts +28 -12
- package/dist/server/server/schedule/types.d.ts.map +1 -1
- package/dist/server/server/script-health-monitor.js.map +1 -1
- package/dist/server/server/session.d.ts +3 -4
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +160 -120
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/speech/audio.js.map +1 -1
- package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js +52 -52
- package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-catalog.js +9 -3
- package/dist/server/server/speech/providers/local/sherpa/model-catalog.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +12 -10
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js +2 -2
- package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js +1 -1
- package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js.map +1 -1
- package/dist/server/server/voice/voice-turn-controller.d.ts +16 -13
- package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -1
- package/dist/server/server/voice/voice-turn-controller.js +303 -71
- package/dist/server/server/voice/voice-turn-controller.js.map +1 -1
- package/dist/server/server/voice-config.js +1 -1
- package/dist/server/server/voice-config.js.map +1 -1
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/workspace-directory.d.ts.map +1 -1
- package/dist/server/server/workspace-directory.js +4 -2
- package/dist/server/server/workspace-directory.js.map +1 -1
- package/dist/server/server/workspace-git-metadata.d.ts.map +1 -1
- package/dist/server/server/workspace-git-metadata.js +12 -5
- package/dist/server/server/workspace-git-metadata.js.map +1 -1
- package/dist/server/server/workspace-git-service.d.ts +2 -0
- package/dist/server/server/workspace-git-service.d.ts.map +1 -1
- package/dist/server/server/workspace-git-service.js +49 -1
- package/dist/server/server/workspace-git-service.js.map +1 -1
- package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
- package/dist/server/server/workspace-registry-model.js +10 -3
- package/dist/server/server/workspace-registry-model.js.map +1 -1
- package/dist/server/server/worktree-session.js +1 -1
- package/dist/server/server/worktree-session.js.map +1 -1
- package/dist/server/services/github-service.d.ts.map +1 -1
- package/dist/server/services/github-service.js +9 -2
- package/dist/server/services/github-service.js.map +1 -1
- package/dist/server/shared/connection-offer.d.ts +10 -0
- package/dist/server/shared/connection-offer.d.ts.map +1 -1
- package/dist/server/shared/connection-offer.js +1 -0
- package/dist/server/shared/connection-offer.js.map +1 -1
- package/dist/server/shared/daemon-endpoints.d.ts +4 -0
- package/dist/server/shared/daemon-endpoints.d.ts.map +1 -1
- package/dist/server/shared/daemon-endpoints.js +6 -1
- package/dist/server/shared/daemon-endpoints.js.map +1 -1
- package/dist/server/shared/error-utils.d.ts +11 -0
- package/dist/server/shared/error-utils.d.ts.map +1 -0
- package/dist/server/shared/error-utils.js +27 -0
- package/dist/server/shared/error-utils.js.map +1 -0
- package/dist/server/shared/messages.d.ts +8669 -4459
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +5 -1
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/shared/tool-call-display.d.ts.map +1 -1
- package/dist/server/shared/tool-call-display.js +2 -0
- package/dist/server/shared/tool-call-display.js.map +1 -1
- package/dist/server/terminal/terminal-capture.d.ts +12 -0
- package/dist/server/terminal/terminal-capture.d.ts.map +1 -0
- package/dist/server/terminal/terminal-capture.js +43 -0
- package/dist/server/terminal/terminal-capture.js.map +1 -0
- package/dist/server/terminal/terminal-manager-factory.d.ts +2 -6
- package/dist/server/terminal/terminal-manager-factory.d.ts.map +1 -1
- package/dist/server/terminal/terminal-manager-factory.js +2 -10
- package/dist/server/terminal/terminal-manager-factory.js.map +1 -1
- package/dist/server/terminal/terminal-manager.d.ts +2 -1
- package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
- package/dist/server/terminal/terminal-manager.js +2 -1
- package/dist/server/terminal/terminal-manager.js.map +1 -1
- package/dist/server/terminal/terminal-output-coalescer.js.map +1 -1
- package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -1
- package/dist/server/terminal/terminal-session-controller.js +2 -0
- package/dist/server/terminal/terminal-session-controller.js.map +1 -1
- package/dist/server/terminal/terminal-worker-process.js +1 -1
- package/dist/server/terminal/terminal-worker-process.js.map +1 -1
- package/dist/server/terminal/terminal-worker-protocol.d.ts +1 -1
- package/dist/server/terminal/terminal-worker-protocol.d.ts.map +1 -1
- package/dist/server/terminal/terminal.d.ts +0 -10
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +53 -49
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/terminal/worker-terminal-manager.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +67 -11
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/directory-suggestions.js.map +1 -1
- package/dist/server/utils/executable.d.ts +2 -1
- package/dist/server/utils/executable.d.ts.map +1 -1
- package/dist/server/utils/executable.js +50 -51
- package/dist/server/utils/executable.js.map +1 -1
- package/dist/server/utils/paseo-config-file.d.ts +1 -1
- package/dist/server/utils/paseo-config-file.d.ts.map +1 -1
- package/dist/server/utils/spawn.d.ts +2 -0
- package/dist/server/utils/spawn.d.ts.map +1 -1
- package/dist/server/utils/spawn.js +2 -1
- package/dist/server/utils/spawn.js.map +1 -1
- package/dist/server/utils/tree-kill.d.ts +18 -0
- package/dist/server/utils/tree-kill.d.ts.map +1 -0
- package/dist/server/utils/{process-tree.js → tree-kill.js} +14 -33
- package/dist/server/utils/tree-kill.js.map +1 -0
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +18 -43
- package/dist/server/utils/worktree.js.map +1 -1
- package/dist/src/server/agent/agent-sdk-types.js +12 -0
- package/dist/src/server/agent/agent-sdk-types.js.map +1 -0
- package/dist/src/server/agent/agent-title-limits.js +3 -0
- package/dist/src/server/agent/agent-title-limits.js.map +1 -0
- package/dist/src/server/agent/provider-launch-config.js +189 -0
- package/dist/src/server/agent/provider-launch-config.js.map +1 -0
- package/dist/src/server/agent/provider-manifest.js +197 -0
- package/dist/src/server/agent/provider-manifest.js.map +1 -0
- package/dist/src/server/chat/chat-rpc-schemas.js +103 -0
- package/dist/src/server/chat/chat-rpc-schemas.js.map +1 -0
- package/dist/src/server/chat/chat-types.js +22 -0
- package/dist/src/server/chat/chat-types.js.map +1 -0
- package/dist/src/server/loop/rpc-schemas.js +163 -0
- package/dist/src/server/loop/rpc-schemas.js.map +1 -0
- package/dist/src/server/paseo-env.js +53 -0
- package/dist/src/server/paseo-env.js.map +1 -0
- package/dist/src/server/persisted-config.js +363 -0
- package/dist/src/server/persisted-config.js.map +1 -0
- package/dist/src/server/pid-lock.js +30 -8
- package/dist/src/server/pid-lock.js.map +1 -1
- package/dist/src/server/schedule/rpc-schemas.js +151 -0
- package/dist/src/server/schedule/rpc-schemas.js.map +1 -0
- package/dist/src/server/schedule/types.js +73 -0
- package/dist/src/server/schedule/types.js.map +1 -0
- package/dist/src/shared/agent-lifecycle.js +8 -0
- package/dist/src/shared/agent-lifecycle.js.map +1 -0
- package/dist/src/shared/client-capabilities.js +4 -0
- package/dist/src/shared/client-capabilities.js.map +1 -0
- package/dist/src/shared/literal-union.js +2 -0
- package/dist/src/shared/literal-union.js.map +1 -0
- package/dist/src/shared/messages.js +3026 -0
- package/dist/src/shared/messages.js.map +1 -0
- package/dist/src/utils/executable.js +113 -0
- package/dist/src/utils/executable.js.map +1 -0
- package/dist/src/utils/paseo-config-schema.js +60 -0
- package/dist/src/utils/paseo-config-schema.js.map +1 -0
- package/dist/src/utils/spawn.js +71 -0
- package/dist/src/utils/spawn.js.map +1 -0
- package/dist/src/utils/windows-command.js +41 -0
- package/dist/src/utils/windows-command.js.map +1 -0
- package/package.json +7 -6
- package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +0 -1
- package/dist/server/server/agent/providers/claude/claude-models.js.map +0 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/claude-agent.js.map +0 -1
- package/dist/server/server/index.d.ts +0 -2
- package/dist/server/server/index.d.ts.map +0 -1
- package/dist/server/server/index.js.map +0 -1
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts +0 -16
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts.map +0 -1
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js +0 -35
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js.map +0 -1
- package/dist/server/utils/process-tree.d.ts +0 -25
- package/dist/server/utils/process-tree.d.ts.map +0 -1
- package/dist/server/utils/process-tree.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice-turn-controller.d.ts","sourceRoot":"","sources":["../../../../src/server/voice/voice-turn-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"voice-turn-controller.d.ts","sourceRoot":"","sources":["../../../../src/server/voice/voice-turn-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,OAAO,KAAK,EACV,oBAAoB,EAGrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAyClF,MAAM,WAAW,4BAA4B;IAC3C,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,mBAAmB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,iBAAiB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAQD,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,qBAAqB,CAAC;IACrC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,SAAS,EAAE,4BAA4B,CAAC;CACzC,GAAG,mBAAmB,CA4btB"}
|
|
@@ -2,94 +2,327 @@ import { Buffer } from "node:buffer";
|
|
|
2
2
|
import { v4 as uuidv4 } from "uuid";
|
|
3
3
|
import { Pcm16MonoResampler } from "../agent/pcm16-resampler.js";
|
|
4
4
|
import { parsePcmRateFromFormat } from "../speech/audio.js";
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
const VOICE_FINAL_TRANSCRIPT_TIMEOUT_MS = 10000;
|
|
6
|
+
const FILLER_PARTIAL_WORDS = new Set([
|
|
7
|
+
"uh",
|
|
8
|
+
"um",
|
|
9
|
+
"ah",
|
|
10
|
+
"eh",
|
|
11
|
+
"er",
|
|
12
|
+
"hmm",
|
|
13
|
+
"mm",
|
|
14
|
+
"mmm",
|
|
15
|
+
"mhm",
|
|
16
|
+
"huh",
|
|
17
|
+
"uhhuh",
|
|
18
|
+
"uh-huh",
|
|
19
|
+
"oh",
|
|
20
|
+
]);
|
|
21
|
+
function isFillerOnlyPartial(transcript) {
|
|
22
|
+
const tokens = transcript
|
|
23
|
+
.toLowerCase()
|
|
24
|
+
.replace(/[^\p{L}\p{N}\s'-]/gu, "")
|
|
25
|
+
.split(/\s+/)
|
|
26
|
+
.filter(Boolean);
|
|
27
|
+
if (tokens.length === 0) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return tokens.every((token) => FILLER_PARTIAL_WORDS.has(token));
|
|
31
|
+
}
|
|
9
32
|
export function createVoiceTurnController(params) {
|
|
10
33
|
const detector = params.turnDetection.createSession({
|
|
11
34
|
logger: params.logger.child({ component: "turn-detection" }),
|
|
12
35
|
});
|
|
13
|
-
const prefixBuffer = new FixedDurationPcmRingBuffer({
|
|
14
|
-
sampleRate: detector.requiredSampleRate,
|
|
15
|
-
channels: PCM_CHANNELS,
|
|
16
|
-
bitsPerSample: PCM_BITS_PER_SAMPLE,
|
|
17
|
-
durationMs: params.prefixDurationMs ?? DEFAULT_PREFIX_DURATION_MS,
|
|
18
|
-
});
|
|
19
36
|
let state = { status: "idle" };
|
|
20
37
|
let resampler = null;
|
|
38
|
+
let sttSession = null;
|
|
39
|
+
let sttResampler = null;
|
|
21
40
|
let inputRate = detector.requiredSampleRate;
|
|
22
|
-
let
|
|
41
|
+
let sttInputRate = 0;
|
|
23
42
|
let queued = Promise.resolve();
|
|
24
|
-
let
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
43
|
+
let activeTranscriptSegmentId = null;
|
|
44
|
+
let partialTranscriptFired = false;
|
|
45
|
+
let reconnectAttemptedForTurn = false;
|
|
46
|
+
const sealedTranscriptSegmentIds = new Set();
|
|
47
|
+
let currentFinalizingTurn = null;
|
|
28
48
|
function fail(error) {
|
|
29
49
|
params.callbacks.onError(error instanceof Error ? error : new Error(String(error)));
|
|
30
50
|
}
|
|
51
|
+
function firePartialTranscript(segmentId, transcript) {
|
|
52
|
+
if (partialTranscriptFired || state.status !== "capturing") {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
partialTranscriptFired = true;
|
|
56
|
+
void runSerial(async () => {
|
|
57
|
+
await params.callbacks.onPartialTranscript({ segmentId, transcript });
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function clearFinalizingTurnTimeout() {
|
|
61
|
+
if (currentFinalizingTurn) {
|
|
62
|
+
clearTimeout(currentFinalizingTurn.timeout);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function getFinalizingTurnForSegment(segmentId) {
|
|
66
|
+
if (!currentFinalizingTurn) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
if (currentFinalizingTurn.committedSegmentIds.includes(segmentId)) {
|
|
70
|
+
return currentFinalizingTurn;
|
|
71
|
+
}
|
|
72
|
+
if (currentFinalizingTurn.committedSegmentIds.length > 0) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
if (activeTranscriptSegmentId && activeTranscriptSegmentId !== segmentId) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
return currentFinalizingTurn;
|
|
79
|
+
}
|
|
80
|
+
function getOrderedFinalSegmentIds(turn) {
|
|
81
|
+
if (turn.committedSegmentIds.length === 0) {
|
|
82
|
+
return [...turn.finalTranscriptSegmentIds];
|
|
83
|
+
}
|
|
84
|
+
return turn.committedSegmentIds.filter((segmentId) => turn.finalTranscriptSegmentIds.has(segmentId));
|
|
85
|
+
}
|
|
86
|
+
function assembleFinalTranscript(turn) {
|
|
87
|
+
const orderedFinalSegmentIds = getOrderedFinalSegmentIds(turn);
|
|
88
|
+
const transcript = orderedFinalSegmentIds
|
|
89
|
+
.map((segmentId) => turn.transcriptsBySegmentId.get(segmentId)?.trim() ?? "")
|
|
90
|
+
.filter((segment) => segment.length > 0)
|
|
91
|
+
.join(" ")
|
|
92
|
+
.trim();
|
|
93
|
+
const orderedFinalMeta = orderedFinalSegmentIds
|
|
94
|
+
.map((segmentId) => turn.transcriptMetaBySegmentId.get(segmentId))
|
|
95
|
+
.filter((meta) => Boolean(meta));
|
|
96
|
+
const language = orderedFinalMeta.find((meta) => meta.language)?.language;
|
|
97
|
+
const singleSegmentMeta = orderedFinalMeta.length === 1 ? orderedFinalMeta[0] : null;
|
|
98
|
+
const allLowConfidence = orderedFinalMeta.length > 0 &&
|
|
99
|
+
orderedFinalMeta.every((meta) => meta.isLowConfidence === true);
|
|
100
|
+
return {
|
|
101
|
+
segmentId: turn.committedSegmentIds[0] ?? orderedFinalSegmentIds[0] ?? turn.turnId,
|
|
102
|
+
transcript,
|
|
103
|
+
...(language ? { language } : {}),
|
|
104
|
+
...(singleSegmentMeta?.avgLogprob !== undefined
|
|
105
|
+
? { avgLogprob: singleSegmentMeta.avgLogprob }
|
|
106
|
+
: {}),
|
|
107
|
+
...(allLowConfidence ? { isLowConfidence: true } : {}),
|
|
108
|
+
durationMs: Math.max(0, Date.now() - turn.startedAt),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function fireFinalTranscript(turn, reason) {
|
|
112
|
+
if (turn.fired || currentFinalizingTurn?.turnId !== turn.turnId) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
turn.fired = true;
|
|
116
|
+
clearTimeout(turn.timeout);
|
|
117
|
+
currentFinalizingTurn = null;
|
|
118
|
+
const finalTranscript = assembleFinalTranscript(turn);
|
|
119
|
+
if (reason === "timeout") {
|
|
120
|
+
params.logger.warn({
|
|
121
|
+
turnId: turn.turnId,
|
|
122
|
+
committedSegments: turn.committedSegmentIds.length,
|
|
123
|
+
receivedFinals: turn.finalTranscriptSegmentIds.size,
|
|
124
|
+
timeoutMs: VOICE_FINAL_TRANSCRIPT_TIMEOUT_MS,
|
|
125
|
+
transcriptLength: finalTranscript.transcript.length,
|
|
126
|
+
}, "voice_turn.final_transcript_timeout");
|
|
127
|
+
}
|
|
128
|
+
void runSerial(async () => {
|
|
129
|
+
await params.callbacks.onFinalTranscript(finalTranscript);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
function maybeFireFinalTranscript(turn) {
|
|
133
|
+
if (turn.fired || turn.committedSegmentIds.length === 0) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const allCommittedSegmentsFinal = turn.committedSegmentIds.every((segmentId) => turn.finalTranscriptSegmentIds.has(segmentId));
|
|
137
|
+
if (allCommittedSegmentsFinal) {
|
|
138
|
+
fireFinalTranscript(turn, "complete");
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async function reconnectSttSession() {
|
|
142
|
+
const previousSession = sttSession;
|
|
143
|
+
sttSession = null;
|
|
144
|
+
sttResampler = null;
|
|
145
|
+
sttInputRate = 0;
|
|
146
|
+
previousSession?.close();
|
|
147
|
+
try {
|
|
148
|
+
const nextSession = createSttSession();
|
|
149
|
+
await nextSession.connect();
|
|
150
|
+
sttSession = nextSession;
|
|
151
|
+
params.logger.info("voice_turn.stt_reconnected");
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
fail(error);
|
|
155
|
+
params.logger.warn({ err: error }, "voice_turn.stt_reconnect_failed");
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function handleSttError(error) {
|
|
159
|
+
fail(error);
|
|
160
|
+
params.logger.warn({ err: error }, "voice_turn.stt_error");
|
|
161
|
+
if (reconnectAttemptedForTurn) {
|
|
162
|
+
sttSession?.close();
|
|
163
|
+
sttSession = null;
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
reconnectAttemptedForTurn = true;
|
|
167
|
+
void runSerial(reconnectSttSession);
|
|
168
|
+
}
|
|
169
|
+
function handleFinalSttTranscript(event) {
|
|
170
|
+
const turn = getFinalizingTurnForSegment(event.segmentId);
|
|
171
|
+
if (!turn || turn.fired) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
turn.transcriptsBySegmentId.set(event.segmentId, event.transcript);
|
|
175
|
+
turn.finalTranscriptSegmentIds.add(event.segmentId);
|
|
176
|
+
turn.transcriptMetaBySegmentId.set(event.segmentId, {
|
|
177
|
+
...(event.language ? { language: event.language } : {}),
|
|
178
|
+
...(event.avgLogprob !== undefined ? { avgLogprob: event.avgLogprob } : {}),
|
|
179
|
+
...(event.isLowConfidence !== undefined ? { isLowConfidence: event.isLowConfidence } : {}),
|
|
180
|
+
});
|
|
181
|
+
maybeFireFinalTranscript(turn);
|
|
182
|
+
}
|
|
183
|
+
function handlePartialSttTranscript(event) {
|
|
184
|
+
if (state.status !== "capturing" || partialTranscriptFired) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (sealedTranscriptSegmentIds.has(event.segmentId)) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (activeTranscriptSegmentId && event.segmentId !== activeTranscriptSegmentId) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const transcript = event.transcript.trim();
|
|
194
|
+
if (!transcript) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
activeTranscriptSegmentId = event.segmentId;
|
|
198
|
+
if (isFillerOnlyPartial(transcript)) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
firePartialTranscript(event.segmentId, transcript);
|
|
202
|
+
}
|
|
203
|
+
function handleSttTranscript(event) {
|
|
204
|
+
if (event.isFinal) {
|
|
205
|
+
handleFinalSttTranscript(event);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
handlePartialSttTranscript(event);
|
|
209
|
+
}
|
|
210
|
+
function createSttSession() {
|
|
211
|
+
const session = params.stt.createSession({
|
|
212
|
+
logger: params.logger.child({ component: "stt" }),
|
|
213
|
+
language: "en",
|
|
214
|
+
});
|
|
215
|
+
session.on("transcript", handleSttTranscript);
|
|
216
|
+
session.on("committed", ({ segmentId }) => {
|
|
217
|
+
sealedTranscriptSegmentIds.add(segmentId);
|
|
218
|
+
if (state.status === "capturing" && !activeTranscriptSegmentId) {
|
|
219
|
+
activeTranscriptSegmentId = segmentId;
|
|
220
|
+
}
|
|
221
|
+
const turn = currentFinalizingTurn;
|
|
222
|
+
if (turn && !turn.committedSegmentIds.includes(segmentId)) {
|
|
223
|
+
turn.committedSegmentIds.push(segmentId);
|
|
224
|
+
maybeFireFinalTranscript(turn);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
session.on("error", handleSttError);
|
|
228
|
+
return session;
|
|
229
|
+
}
|
|
31
230
|
function runSerial(task) {
|
|
32
231
|
queued = queued.then(task).catch((error) => {
|
|
33
232
|
fail(error);
|
|
34
233
|
});
|
|
35
234
|
return queued;
|
|
36
235
|
}
|
|
37
|
-
function
|
|
38
|
-
|
|
39
|
-
.then(async () => {
|
|
40
|
-
await params.utteranceSink.submitUtterance(utterance);
|
|
236
|
+
function updateDetectorResampler(parsedInputRate) {
|
|
237
|
+
if (parsedInputRate === inputRate) {
|
|
41
238
|
return;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
239
|
+
}
|
|
240
|
+
inputRate = parsedInputRate;
|
|
241
|
+
resampler =
|
|
242
|
+
inputRate === detector.requiredSampleRate
|
|
243
|
+
? null
|
|
244
|
+
: new Pcm16MonoResampler({
|
|
245
|
+
inputRate,
|
|
246
|
+
outputRate: detector.requiredSampleRate,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
function updateSttResampler(session, parsedInputRate) {
|
|
250
|
+
if (parsedInputRate === sttInputRate) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
sttInputRate = parsedInputRate;
|
|
254
|
+
sttResampler =
|
|
255
|
+
sttInputRate === session.requiredSampleRate
|
|
256
|
+
? null
|
|
257
|
+
: new Pcm16MonoResampler({
|
|
258
|
+
inputRate: sttInputRate,
|
|
259
|
+
outputRate: session.requiredSampleRate,
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
function pcmForDetector(pcm16) {
|
|
263
|
+
return resampler === null ? pcm16 : resampler.processChunk(pcm16);
|
|
264
|
+
}
|
|
265
|
+
function pcmForStt(session, pcm16, detectorPcm16) {
|
|
266
|
+
if (session.requiredSampleRate === detector.requiredSampleRate) {
|
|
267
|
+
return detectorPcm16;
|
|
268
|
+
}
|
|
269
|
+
if (sttResampler === null) {
|
|
270
|
+
return pcm16;
|
|
271
|
+
}
|
|
272
|
+
return sttResampler.processChunk(pcm16);
|
|
46
273
|
}
|
|
47
274
|
async function handleSpeechStarted() {
|
|
48
275
|
if (state.status === "capturing") {
|
|
49
276
|
return;
|
|
50
277
|
}
|
|
51
278
|
await params.callbacks.onSpeechStarted();
|
|
52
|
-
const prefix = prefixBuffer.drain();
|
|
53
279
|
const startedAt = Date.now();
|
|
54
|
-
|
|
280
|
+
activeTranscriptSegmentId = null;
|
|
281
|
+
partialTranscriptFired = false;
|
|
282
|
+
reconnectAttemptedForTurn = false;
|
|
283
|
+
clearFinalizingTurnTimeout();
|
|
284
|
+
currentFinalizingTurn = null;
|
|
55
285
|
state = {
|
|
56
286
|
status: "capturing",
|
|
57
287
|
utteranceId: uuidv4(),
|
|
58
288
|
startedAt,
|
|
59
|
-
rollingPrefixBytes: prefixBuffer.byteLength,
|
|
60
|
-
utteranceBytes: prefix.length,
|
|
61
289
|
};
|
|
62
290
|
params.logger.info({
|
|
63
291
|
utteranceId: state.utteranceId,
|
|
64
|
-
prefixBytes: prefix.length,
|
|
65
|
-
rollingPrefixBytes: prefixBuffer.byteLength,
|
|
66
292
|
}, "voice_turn.speech_started");
|
|
67
293
|
}
|
|
68
294
|
async function handleSpeechStopped() {
|
|
69
295
|
if (state.status !== "capturing") {
|
|
70
296
|
return;
|
|
71
297
|
}
|
|
72
|
-
const
|
|
298
|
+
const turnId = state.utteranceId;
|
|
73
299
|
const startedAt = state.startedAt;
|
|
74
300
|
const endedAt = Date.now();
|
|
75
|
-
|
|
76
|
-
|
|
301
|
+
state = { status: "listening" };
|
|
302
|
+
const finalizingTurn = {
|
|
303
|
+
turnId,
|
|
304
|
+
startedAt,
|
|
305
|
+
committedSegmentIds: [],
|
|
306
|
+
transcriptsBySegmentId: new Map(),
|
|
307
|
+
finalTranscriptSegmentIds: new Set(),
|
|
308
|
+
transcriptMetaBySegmentId: new Map(),
|
|
309
|
+
timeout: setTimeout(() => {
|
|
310
|
+
fireFinalTranscript(finalizingTurn, "timeout");
|
|
311
|
+
}, VOICE_FINAL_TRANSCRIPT_TIMEOUT_MS),
|
|
312
|
+
fired: false,
|
|
313
|
+
};
|
|
314
|
+
currentFinalizingTurn = finalizingTurn;
|
|
77
315
|
detector.reset();
|
|
316
|
+
try {
|
|
317
|
+
sttSession?.commit();
|
|
318
|
+
}
|
|
319
|
+
catch (error) {
|
|
320
|
+
handleSttError(error);
|
|
321
|
+
}
|
|
78
322
|
await params.callbacks.onSpeechStopped();
|
|
79
323
|
params.logger.info({
|
|
80
|
-
utteranceBytes: utterance.length,
|
|
81
324
|
utteranceAgeMs: Math.max(0, endedAt - startedAt),
|
|
82
325
|
}, "voice_turn.speech_stopped");
|
|
83
|
-
if (utterance.length === 0) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
enqueueUtteranceSubmission({
|
|
87
|
-
pcm16: utterance,
|
|
88
|
-
sampleRate: detector.requiredSampleRate,
|
|
89
|
-
format: buildVoicePcmFormat(detector.requiredSampleRate),
|
|
90
|
-
startedAt,
|
|
91
|
-
endedAt,
|
|
92
|
-
});
|
|
93
326
|
}
|
|
94
327
|
detector.on("speech_started", () => {
|
|
95
328
|
void runSerial(handleSpeechStarted);
|
|
@@ -100,16 +333,22 @@ export function createVoiceTurnController(params) {
|
|
|
100
333
|
detector.on("error", fail);
|
|
101
334
|
return {
|
|
102
335
|
async start() {
|
|
336
|
+
sttSession = createSttSession();
|
|
337
|
+
await sttSession.connect();
|
|
103
338
|
await detector.connect();
|
|
104
|
-
state = { status: "listening"
|
|
339
|
+
state = { status: "listening" };
|
|
105
340
|
},
|
|
106
341
|
async stop() {
|
|
107
342
|
await runSerial(async () => {
|
|
343
|
+
clearFinalizingTurnTimeout();
|
|
108
344
|
detector.close();
|
|
109
|
-
|
|
110
|
-
utteranceChunks = [];
|
|
345
|
+
sttSession?.close();
|
|
111
346
|
resampler?.reset();
|
|
347
|
+
sttResampler?.reset();
|
|
112
348
|
resampler = null;
|
|
349
|
+
sttResampler = null;
|
|
350
|
+
sttSession = null;
|
|
351
|
+
currentFinalizingTurn = null;
|
|
113
352
|
state = { status: "idle" };
|
|
114
353
|
});
|
|
115
354
|
},
|
|
@@ -124,36 +363,29 @@ export function createVoiceTurnController(params) {
|
|
|
124
363
|
}
|
|
125
364
|
const parsedInputRate = parsePcmRateFromFormat(input.format, detector.requiredSampleRate) ??
|
|
126
365
|
detector.requiredSampleRate;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
? null
|
|
132
|
-
: new Pcm16MonoResampler({
|
|
133
|
-
inputRate,
|
|
134
|
-
outputRate: detector.requiredSampleRate,
|
|
135
|
-
});
|
|
366
|
+
updateDetectorResampler(parsedInputRate);
|
|
367
|
+
const currentSttSession = sttSession;
|
|
368
|
+
if (currentSttSession) {
|
|
369
|
+
updateSttResampler(currentSttSession, parsedInputRate);
|
|
136
370
|
}
|
|
137
|
-
const
|
|
138
|
-
|
|
371
|
+
const detectorPcm16 = pcmForDetector(pcm16);
|
|
372
|
+
const sttPcm16 = currentSttSession
|
|
373
|
+
? pcmForStt(currentSttSession, pcm16, detectorPcm16)
|
|
374
|
+
: null;
|
|
375
|
+
if (detectorPcm16.length === 0 && (!sttPcm16 || sttPcm16.length === 0)) {
|
|
139
376
|
return;
|
|
140
377
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
state = {
|
|
144
|
-
status: "listening",
|
|
145
|
-
rollingPrefixBytes: prefixBuffer.byteLength,
|
|
146
|
-
};
|
|
378
|
+
if (detectorPcm16.length > 0) {
|
|
379
|
+
detector.appendPcm16(detectorPcm16);
|
|
147
380
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
381
|
+
if (sttPcm16 && sttPcm16.length > 0) {
|
|
382
|
+
try {
|
|
383
|
+
currentSttSession?.appendPcm16(sttPcm16);
|
|
384
|
+
}
|
|
385
|
+
catch (error) {
|
|
386
|
+
handleSttError(error);
|
|
387
|
+
}
|
|
155
388
|
}
|
|
156
|
-
detector.appendPcm16(normalized);
|
|
157
389
|
});
|
|
158
390
|
},
|
|
159
391
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice-turn-controller.js","sourceRoot":"","sources":["../../../../src/server/voice/voice-turn-controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"voice-turn-controller.js","sourceRoot":"","sources":["../../../../src/server/voice/voice-turn-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ export function buildVoiceModeSystemPrompt(existing, enabled) {
|
|
|
41
41
|
.join("\n\n");
|
|
42
42
|
}
|
|
43
43
|
export function wrapSpokenInput(text) {
|
|
44
|
-
return `<spoken-input>\n${text}\n</spoken-input>`;
|
|
44
|
+
return `<spoken-input>\n${text}\n</spoken-input>\n<instruction>This message was spoken by the user. Respond using the speak tool only, not normal messages, because the user may not be looking at the chat.</instruction>`;
|
|
45
45
|
}
|
|
46
46
|
export function buildVoiceAgentMcpServerConfig(params) {
|
|
47
47
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice-config.js","sourceRoot":"","sources":["../../../src/server/voice-config.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AACtD,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAErD,MAAM,8BAA8B,GAAG;IACrC,6BAA6B;IAC7B,oCAAoC;IACpC,uDAAuD;IACvD,8DAA8D;IAC9D,+HAA+H;IAC/H,2FAA2F;IAC3F,6CAA6C;IAC7C,kEAAkE;IAClE,2KAA2K;IAC3K,wDAAwD;CACzD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,gCAAgC,GAAG;IACvC,8BAA8B;IAC9B,kEAAkE;CACnE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,yBAAyB;IAChC,OAAO,IAAI,MAAM,CACf,GAAG,YAAY,CAAC,wBAAwB,CAAC,aAAa,YAAY,CAAC,sBAAsB,CAAC,EAAE,EAC5F,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAiB;IAC1D,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA4B,EAAE,OAAgB;IACvF,MAAM,UAAU,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,OAAO;QAC9B,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,gCAAgC,CAAC;IACrC,MAAM,UAAU,GAAG,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,IAAI,CAC1F,IAAI,CACL,CAAC;IAEF,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACjF,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,mBAAmB,IAAI,
|
|
1
|
+
{"version":3,"file":"voice-config.js","sourceRoot":"","sources":["../../../src/server/voice-config.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AACtD,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAErD,MAAM,8BAA8B,GAAG;IACrC,6BAA6B;IAC7B,oCAAoC;IACpC,uDAAuD;IACvD,8DAA8D;IAC9D,+HAA+H;IAC/H,2FAA2F;IAC3F,6CAA6C;IAC7C,kEAAkE;IAClE,2KAA2K;IAC3K,wDAAwD;CACzD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,gCAAgC,GAAG;IACvC,8BAA8B;IAC9B,kEAAkE;CACnE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,yBAAyB;IAChC,OAAO,IAAI,MAAM,CACf,GAAG,YAAY,CAAC,wBAAwB,CAAC,aAAa,YAAY,CAAC,sBAAsB,CAAC,EAAE,EAC5F,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAiB;IAC1D,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA4B,EAAE,OAAgB;IACvF,MAAM,UAAU,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,OAAO;QAC9B,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,gCAAgC,CAAC;IACrC,MAAM,UAAU,GAAG,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,IAAI,CAC1F,IAAI,CACL,CAAC;IAEF,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACjF,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,mBAAmB,IAAI,6LAA6L,CAAC;AAC9N,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAK9C;IAMC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC"}
|