@agimon-ai/doompi-voice 0.0.1-alpha.7 → 0.0.1-alpha.71
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/NOTICE +13 -0
- package/README.md +248 -19
- package/dist/_virtual/_rolldown/runtime.cjs +1 -1
- package/dist/_virtual/_rolldown/runtime.mjs +1 -0
- package/dist/api-contracts.cjs +1 -0
- package/dist/api-contracts.mjs +1 -0
- package/dist/apiContracts.d.cts +2 -0
- package/dist/apiContracts.d.mts +2 -0
- package/dist/clientMedia.cjs +1 -0
- package/dist/clientMedia.d.cts +3 -0
- package/dist/clientMedia.d.mts +3 -0
- package/dist/clientMedia.mjs +1 -0
- package/dist/extensions/pi.cjs +1 -1
- package/dist/extensions/pi.cjs.map +1 -1
- package/dist/extensions/pi.d.cts +6 -2
- package/dist/extensions/pi.d.cts.map +1 -0
- package/dist/extensions/pi.d.mts +6 -2
- package/dist/extensions/pi.d.mts.map +1 -0
- package/dist/extensions/pi.mjs +1 -1
- package/dist/extensions/pi.mjs.map +1 -1
- package/dist/extensions/server.cjs +2 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.cts +5 -0
- package/dist/extensions/server.d.cts.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +2 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +23 -9
- package/dist/index.d.mts +23 -9
- package/dist/index.mjs +1 -1
- package/dist/src/constants/voice.cjs +2 -0
- package/dist/src/constants/voice.cjs.map +1 -0
- package/dist/src/constants/voice.mjs +2 -0
- package/dist/src/constants/voice.mjs.map +1 -0
- package/dist/src/constants/voiceRuntime.cjs +2 -0
- package/dist/src/constants/voiceRuntime.cjs.map +1 -0
- package/dist/src/constants/voiceRuntime.mjs +2 -0
- package/dist/src/constants/voiceRuntime.mjs.map +1 -0
- package/dist/src/controllers/clientMediaApi.cjs +2 -0
- package/dist/src/controllers/clientMediaApi.cjs.map +1 -0
- package/dist/src/controllers/clientMediaApi.mjs +2 -0
- package/dist/src/controllers/clientMediaApi.mjs.map +1 -0
- package/dist/src/controllers/liveVoiceController.cjs +4 -0
- package/dist/src/controllers/liveVoiceController.cjs.map +1 -0
- package/dist/src/controllers/liveVoiceController.mjs +4 -0
- package/dist/src/controllers/liveVoiceController.mjs.map +1 -0
- package/dist/src/controllers/manualTranscriptionApi.cjs +2 -0
- package/dist/src/controllers/manualTranscriptionApi.cjs.map +1 -0
- package/dist/src/controllers/manualTranscriptionApi.mjs +2 -0
- package/dist/src/controllers/manualTranscriptionApi.mjs.map +1 -0
- package/dist/src/controllers/minorModeCatalog.cjs +2 -0
- package/dist/src/controllers/minorModeCatalog.cjs.map +1 -0
- package/dist/src/controllers/minorModeCatalog.mjs +2 -0
- package/dist/src/controllers/minorModeCatalog.mjs.map +1 -0
- package/dist/src/controllers/narrationTool.cjs +2 -0
- package/dist/src/controllers/narrationTool.cjs.map +1 -0
- package/dist/src/controllers/narrationTool.d.cts +7 -0
- package/dist/src/controllers/narrationTool.d.mts +7 -0
- package/dist/src/controllers/narrationTool.mjs +2 -0
- package/dist/src/controllers/narrationTool.mjs.map +1 -0
- package/dist/src/controllers/realtimeContext.cjs +2 -0
- package/dist/src/controllers/realtimeContext.cjs.map +1 -0
- package/dist/src/controllers/realtimeContext.mjs +2 -0
- package/dist/src/controllers/realtimeContext.mjs.map +1 -0
- package/dist/src/controllers/realtimeDelivery.cjs +2 -0
- package/dist/src/controllers/realtimeDelivery.cjs.map +1 -0
- package/dist/src/controllers/realtimeDelivery.mjs +2 -0
- package/dist/src/controllers/realtimeDelivery.mjs.map +1 -0
- package/dist/src/controllers/transferVoiceTool.cjs +3 -0
- package/dist/src/controllers/transferVoiceTool.cjs.map +1 -0
- package/dist/src/controllers/transferVoiceTool.mjs +3 -0
- package/dist/src/controllers/transferVoiceTool.mjs.map +1 -0
- package/dist/src/controllers/voice.cjs +2 -0
- package/dist/src/controllers/voice.cjs.map +1 -0
- package/dist/src/controllers/voice.d.cts +109 -0
- package/dist/src/controllers/voice.d.cts.map +1 -0
- package/dist/src/controllers/voice.d.mts +109 -0
- package/dist/src/controllers/voice.d.mts.map +1 -0
- package/dist/src/controllers/voice.mjs +2 -0
- package/dist/src/controllers/voice.mjs.map +1 -0
- package/dist/src/controllers/voiceClientSettingsApi.cjs +2 -0
- package/dist/src/controllers/voiceClientSettingsApi.cjs.map +1 -0
- package/dist/src/controllers/voiceClientSettingsApi.mjs +2 -0
- package/dist/src/controllers/voiceClientSettingsApi.mjs.map +1 -0
- package/dist/src/controllers/voiceCommandContext.cjs +2 -0
- package/dist/src/controllers/voiceCommandContext.cjs.map +1 -0
- package/dist/src/controllers/voiceCommandContext.mjs +2 -0
- package/dist/src/controllers/voiceCommandContext.mjs.map +1 -0
- package/dist/src/controllers/voiceConfig.cjs +2 -0
- package/dist/src/controllers/voiceConfig.cjs.map +1 -0
- package/dist/src/controllers/voiceConfig.mjs +2 -0
- package/dist/src/controllers/voiceConfig.mjs.map +1 -0
- package/dist/src/controllers/voiceMediaHubChannel.cjs +2 -0
- package/dist/src/controllers/voiceMediaHubChannel.cjs.map +1 -0
- package/dist/src/controllers/voiceMediaHubChannel.mjs +2 -0
- package/dist/src/controllers/voiceMediaHubChannel.mjs.map +1 -0
- package/dist/src/controllers/voiceModeController.cjs +2 -0
- package/dist/src/controllers/voiceModeController.cjs.map +1 -0
- package/dist/src/controllers/voiceModeController.mjs +2 -0
- package/dist/src/controllers/voiceModeController.mjs.map +1 -0
- package/dist/src/controllers/voicePlugin.cjs +2 -0
- package/dist/src/controllers/voicePlugin.cjs.map +1 -0
- package/dist/src/controllers/voicePlugin.mjs +2 -0
- package/dist/src/controllers/voicePlugin.mjs.map +1 -0
- package/dist/src/controllers/voiceServer.cjs +2 -0
- package/dist/src/controllers/voiceServer.cjs.map +1 -0
- package/dist/src/controllers/voiceServer.mjs +2 -0
- package/dist/src/controllers/voiceServer.mjs.map +1 -0
- package/dist/src/controllers/voiceSessionApi.cjs +2 -0
- package/dist/src/controllers/voiceSessionApi.cjs.map +1 -0
- package/dist/src/controllers/voiceSessionApi.mjs +2 -0
- package/dist/src/controllers/voiceSessionApi.mjs.map +1 -0
- package/dist/src/controllers/voiceToolRender.cjs +2 -0
- package/dist/src/controllers/voiceToolRender.cjs.map +1 -0
- package/dist/src/controllers/voiceToolRender.mjs +2 -0
- package/dist/src/controllers/voiceToolRender.mjs.map +1 -0
- package/dist/src/controllers/voiceTools.cjs +2 -0
- package/dist/src/controllers/voiceTools.cjs.map +1 -0
- package/dist/src/controllers/voiceTools.d.cts +3 -0
- package/dist/src/controllers/voiceTools.d.mts +3 -0
- package/dist/src/controllers/voiceTools.mjs +2 -0
- package/dist/src/controllers/voiceTools.mjs.map +1 -0
- package/dist/src/models/autonomousVoiceMachine.cjs +2 -0
- package/dist/src/models/autonomousVoiceMachine.cjs.map +1 -0
- package/dist/src/models/autonomousVoiceMachine.d.cts +2 -0
- package/dist/src/models/autonomousVoiceMachine.d.mts +2 -0
- package/dist/src/models/autonomousVoiceMachine.mjs +2 -0
- package/dist/src/models/autonomousVoiceMachine.mjs.map +1 -0
- package/dist/src/models/autonomousVoiceUi.cjs +2 -0
- package/dist/src/models/autonomousVoiceUi.cjs.map +1 -0
- package/dist/src/models/autonomousVoiceUi.mjs +2 -0
- package/dist/src/models/autonomousVoiceUi.mjs.map +1 -0
- package/dist/src/models/narrationBargeIn.cjs +2 -0
- package/dist/src/models/narrationBargeIn.cjs.map +1 -0
- package/dist/src/models/narrationBargeIn.d.cts +15 -0
- package/dist/src/models/narrationBargeIn.d.cts.map +1 -0
- package/dist/src/models/narrationBargeIn.d.mts +15 -0
- package/dist/src/models/narrationBargeIn.d.mts.map +1 -0
- package/dist/src/models/narrationBargeIn.mjs +2 -0
- package/dist/src/models/narrationBargeIn.mjs.map +1 -0
- package/dist/src/models/voiceActivity.cjs +2 -0
- package/dist/src/models/voiceActivity.cjs.map +1 -0
- package/dist/src/models/voiceActivity.d.cts +26 -0
- package/dist/src/models/voiceActivity.d.cts.map +1 -0
- package/dist/src/models/voiceActivity.d.mts +26 -0
- package/dist/src/models/voiceActivity.d.mts.map +1 -0
- package/dist/src/models/voiceActivity.mjs +2 -0
- package/dist/src/models/voiceActivity.mjs.map +1 -0
- package/dist/src/models/voiceMode.cjs +2 -0
- package/dist/src/models/voiceMode.cjs.map +1 -0
- package/dist/src/models/voiceMode.d.cts +10 -0
- package/dist/src/models/voiceMode.d.cts.map +1 -0
- package/dist/src/models/voiceMode.d.mts +10 -0
- package/dist/src/models/voiceMode.d.mts.map +1 -0
- package/dist/src/models/voiceMode.mjs +2 -0
- package/dist/src/models/voiceMode.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.cjs +2 -0
- package/dist/src/schemas/apiContracts.cjs.map +1 -0
- package/dist/src/schemas/apiContracts.d.cts +53 -0
- package/dist/src/schemas/apiContracts.d.cts.map +1 -0
- package/dist/src/schemas/apiContracts.d.mts +53 -0
- package/dist/src/schemas/apiContracts.d.mts.map +1 -0
- package/dist/src/schemas/apiContracts.mjs +2 -0
- package/dist/src/schemas/apiContracts.mjs.map +1 -0
- package/dist/src/schemas/voiceControl.cjs +2 -0
- package/dist/src/schemas/voiceControl.cjs.map +1 -0
- package/dist/src/schemas/voiceControl.mjs +2 -0
- package/dist/src/schemas/voiceControl.mjs.map +1 -0
- package/dist/src/services/autonomousEndpoint/index.cjs +2 -0
- package/dist/src/services/autonomousEndpoint/index.cjs.map +1 -0
- package/dist/src/services/autonomousEndpoint/index.mjs +2 -0
- package/dist/src/services/autonomousEndpoint/index.mjs.map +1 -0
- package/dist/src/services/autonomousTurn/index.cjs +2 -0
- package/dist/src/services/autonomousTurn/index.cjs.map +1 -0
- package/dist/src/services/autonomousTurn/index.d.cts +6 -0
- package/dist/src/services/autonomousTurn/index.d.cts.map +1 -0
- package/dist/src/services/autonomousTurn/index.d.mts +6 -0
- package/dist/src/services/autonomousTurn/index.d.mts.map +1 -0
- package/dist/src/services/autonomousTurn/index.mjs +2 -0
- package/dist/src/services/autonomousTurn/index.mjs.map +1 -0
- package/dist/src/services/autonomousVoiceSession/index.cjs +2 -0
- package/dist/src/services/autonomousVoiceSession/index.cjs.map +1 -0
- package/dist/src/services/autonomousVoiceSession/index.mjs +2 -0
- package/dist/src/services/autonomousVoiceSession/index.mjs.map +1 -0
- package/dist/src/services/autonomousVoiceTelemetry/index.cjs +2 -0
- package/dist/src/services/autonomousVoiceTelemetry/index.cjs.map +1 -0
- package/dist/src/services/autonomousVoiceTelemetry/index.d.cts +8 -0
- package/dist/src/services/autonomousVoiceTelemetry/index.d.cts.map +1 -0
- package/dist/src/services/autonomousVoiceTelemetry/index.d.mts +8 -0
- package/dist/src/services/autonomousVoiceTelemetry/index.d.mts.map +1 -0
- package/dist/src/services/autonomousVoiceTelemetry/index.mjs +2 -0
- package/dist/src/services/autonomousVoiceTelemetry/index.mjs.map +1 -0
- package/dist/src/services/captureSession/index.cjs +2 -0
- package/dist/src/services/captureSession/index.cjs.map +1 -0
- package/dist/src/services/captureSession/index.mjs +2 -0
- package/dist/src/services/captureSession/index.mjs.map +1 -0
- package/dist/{catalog.cjs → src/services/catalog/index.cjs} +1 -1
- package/dist/src/services/catalog/index.cjs.map +1 -0
- package/dist/{catalog.mjs → src/services/catalog/index.mjs} +1 -1
- package/dist/src/services/catalog/index.mjs.map +1 -0
- package/dist/src/services/clientMedia/index.cjs +2 -0
- package/dist/src/services/clientMedia/index.cjs.map +1 -0
- package/dist/src/services/clientMedia/index.d.cts +24 -0
- package/dist/src/services/clientMedia/index.d.cts.map +1 -0
- package/dist/src/services/clientMedia/index.d.mts +24 -0
- package/dist/src/services/clientMedia/index.d.mts.map +1 -0
- package/dist/src/services/clientMedia/index.mjs +2 -0
- package/dist/src/services/clientMedia/index.mjs.map +1 -0
- package/dist/src/services/codexAuth/index.cjs +2 -0
- package/dist/src/services/codexAuth/index.cjs.map +1 -0
- package/dist/src/services/codexAuth/index.mjs +2 -0
- package/dist/src/services/codexAuth/index.mjs.map +1 -0
- package/dist/src/services/codexAuthStorage/index.cjs +2 -0
- package/dist/src/services/codexAuthStorage/index.cjs.map +1 -0
- package/dist/src/services/codexAuthStorage/index.mjs +2 -0
- package/dist/src/services/codexAuthStorage/index.mjs.map +1 -0
- package/dist/src/services/codexLogin/index.cjs +2 -0
- package/dist/src/services/codexLogin/index.cjs.map +1 -0
- package/dist/src/services/codexLogin/index.mjs +2 -0
- package/dist/src/services/codexLogin/index.mjs.map +1 -0
- package/dist/src/services/codexRealtime/index.cjs +2 -0
- package/dist/src/services/codexRealtime/index.cjs.map +1 -0
- package/dist/src/services/codexRealtime/index.mjs +2 -0
- package/dist/src/services/codexRealtime/index.mjs.map +1 -0
- package/dist/src/services/commandCorrection/index.cjs +7 -0
- package/dist/src/services/commandCorrection/index.cjs.map +1 -0
- package/dist/src/services/commandCorrection/index.d.cts +23 -0
- package/dist/src/services/commandCorrection/index.d.cts.map +1 -0
- package/dist/src/services/commandCorrection/index.d.mts +23 -0
- package/dist/src/services/commandCorrection/index.d.mts.map +1 -0
- package/dist/src/services/commandCorrection/index.mjs +7 -0
- package/dist/src/services/commandCorrection/index.mjs.map +1 -0
- package/dist/src/services/commandCorrection/type.d.cts +25 -0
- package/dist/src/services/commandCorrection/type.d.cts.map +1 -0
- package/dist/src/services/commandCorrection/type.d.mts +25 -0
- package/dist/src/services/commandCorrection/type.d.mts.map +1 -0
- package/dist/src/services/controlPhraseMatcher/index.cjs +2 -0
- package/dist/src/services/controlPhraseMatcher/index.cjs.map +1 -0
- package/dist/src/services/controlPhraseMatcher/index.mjs +2 -0
- package/dist/src/services/controlPhraseMatcher/index.mjs.map +1 -0
- package/dist/src/services/download/index.cjs +2 -0
- package/dist/src/services/download/index.cjs.map +1 -0
- package/dist/{download.mjs → src/services/download/index.mjs} +1 -1
- package/dist/src/services/download/index.mjs.map +1 -0
- package/dist/src/services/encodedAudio/index.cjs +2 -0
- package/dist/src/services/encodedAudio/index.cjs.map +1 -0
- package/dist/src/services/encodedAudio/index.mjs +2 -0
- package/dist/src/services/encodedAudio/index.mjs.map +1 -0
- package/dist/src/services/fallbackNarration/index.cjs +11 -0
- package/dist/src/services/fallbackNarration/index.cjs.map +1 -0
- package/dist/src/services/fallbackNarration/index.d.cts +14 -0
- package/dist/src/services/fallbackNarration/index.d.cts.map +1 -0
- package/dist/src/services/fallbackNarration/index.d.mts +14 -0
- package/dist/src/services/fallbackNarration/index.d.mts.map +1 -0
- package/dist/src/services/fallbackNarration/index.mjs +11 -0
- package/dist/src/services/fallbackNarration/index.mjs.map +1 -0
- package/dist/src/services/fallbackNarration/type.d.cts +29 -0
- package/dist/src/services/fallbackNarration/type.d.cts.map +1 -0
- package/dist/src/services/fallbackNarration/type.d.mts +29 -0
- package/dist/src/services/fallbackNarration/type.d.mts.map +1 -0
- package/dist/src/services/fileTurnSpool/index.cjs +2 -0
- package/dist/src/services/fileTurnSpool/index.cjs.map +1 -0
- package/dist/src/services/fileTurnSpool/index.mjs +2 -0
- package/dist/src/services/fileTurnSpool/index.mjs.map +1 -0
- package/dist/src/services/infrastructure/index.cjs +3 -0
- package/dist/src/services/infrastructure/index.cjs.map +1 -0
- package/dist/{infrastructure.d.cts → src/services/infrastructure/index.d.cts} +24 -15
- package/dist/src/services/infrastructure/index.d.cts.map +1 -0
- package/dist/{infrastructure.d.mts → src/services/infrastructure/index.d.mts} +24 -15
- package/dist/src/services/infrastructure/index.d.mts.map +1 -0
- package/dist/src/services/infrastructure/index.mjs +3 -0
- package/dist/src/services/infrastructure/index.mjs.map +1 -0
- package/dist/src/services/install/index.cjs +2 -0
- package/dist/src/services/install/index.cjs.map +1 -0
- package/dist/src/services/install/index.mjs +2 -0
- package/dist/src/services/install/index.mjs.map +1 -0
- package/dist/src/services/manualTranscription/index.cjs +2 -0
- package/dist/src/services/manualTranscription/index.cjs.map +1 -0
- package/dist/src/services/manualTranscription/index.mjs +2 -0
- package/dist/src/services/manualTranscription/index.mjs.map +1 -0
- package/dist/src/services/manualTranscriptionConfig/index.cjs +2 -0
- package/dist/src/services/manualTranscriptionConfig/index.cjs.map +1 -0
- package/dist/src/services/manualTranscriptionConfig/index.mjs +2 -0
- package/dist/src/services/manualTranscriptionConfig/index.mjs.map +1 -0
- package/dist/src/services/narration/index.cjs +2 -0
- package/dist/src/services/narration/index.cjs.map +1 -0
- package/dist/src/services/narration/index.d.cts +56 -0
- package/dist/src/services/narration/index.d.cts.map +1 -0
- package/dist/src/services/narration/index.d.mts +56 -0
- package/dist/src/services/narration/index.d.mts.map +1 -0
- package/dist/src/services/narration/index.mjs +2 -0
- package/dist/src/services/narration/index.mjs.map +1 -0
- package/dist/src/services/narrationBargeIn/index.cjs +2 -0
- package/dist/src/services/narrationBargeIn/index.cjs.map +1 -0
- package/dist/src/services/narrationBargeIn/index.mjs +2 -0
- package/dist/src/services/narrationBargeIn/index.mjs.map +1 -0
- package/dist/src/services/narrationPlayback/index.cjs +2 -0
- package/dist/src/services/narrationPlayback/index.cjs.map +1 -0
- package/dist/src/services/narrationPlayback/index.d.cts +55 -0
- package/dist/src/services/narrationPlayback/index.d.cts.map +1 -0
- package/dist/src/services/narrationPlayback/index.d.mts +55 -0
- package/dist/src/services/narrationPlayback/index.d.mts.map +1 -0
- package/dist/src/services/narrationPlayback/index.mjs +2 -0
- package/dist/src/services/narrationPlayback/index.mjs.map +1 -0
- package/dist/{pcm.cjs → src/services/pcm/index.cjs} +1 -1
- package/dist/src/services/pcm/index.cjs.map +1 -0
- package/dist/src/services/pcm/index.d.cts +15 -0
- package/dist/src/services/pcm/index.d.cts.map +1 -0
- package/dist/src/services/pcm/index.d.mts +15 -0
- package/dist/src/services/pcm/index.d.mts.map +1 -0
- package/dist/{pcm.mjs → src/services/pcm/index.mjs} +1 -1
- package/dist/src/services/pcm/index.mjs.map +1 -0
- package/dist/src/services/playbackGate/index.cjs +2 -0
- package/dist/src/services/playbackGate/index.cjs.map +1 -0
- package/dist/src/services/playbackGate/index.mjs +2 -0
- package/dist/src/services/playbackGate/index.mjs.map +1 -0
- package/dist/src/services/realtimeHost/index.cjs +2 -0
- package/dist/src/services/realtimeHost/index.cjs.map +1 -0
- package/dist/src/services/realtimeHost/index.d.cts +11 -0
- package/dist/src/services/realtimeHost/index.d.cts.map +1 -0
- package/dist/src/services/realtimeHost/index.d.mts +11 -0
- package/dist/src/services/realtimeHost/index.d.mts.map +1 -0
- package/dist/src/services/realtimeHost/index.mjs +2 -0
- package/dist/src/services/realtimeHost/index.mjs.map +1 -0
- package/dist/src/services/realtimeMediaBroker/index.cjs +2 -0
- package/dist/src/services/realtimeMediaBroker/index.cjs.map +1 -0
- package/dist/src/services/realtimeMediaBroker/index.mjs +2 -0
- package/dist/src/services/realtimeMediaBroker/index.mjs.map +1 -0
- package/dist/src/services/realtimeProtocol/index.cjs +2 -0
- package/dist/src/services/realtimeProtocol/index.cjs.map +1 -0
- package/dist/src/services/realtimeProtocol/index.mjs +2 -0
- package/dist/src/services/realtimeProtocol/index.mjs.map +1 -0
- package/dist/src/services/realtimeRuntime/index.cjs +2 -0
- package/dist/src/services/realtimeRuntime/index.cjs.map +1 -0
- package/dist/src/services/realtimeRuntime/index.d.cts +8 -0
- package/dist/src/services/realtimeRuntime/index.d.cts.map +1 -0
- package/dist/src/services/realtimeRuntime/index.d.mts +8 -0
- package/dist/src/services/realtimeRuntime/index.d.mts.map +1 -0
- package/dist/src/services/realtimeRuntime/index.mjs +2 -0
- package/dist/src/services/realtimeRuntime/index.mjs.map +1 -0
- package/dist/src/services/realtimeSession/index.cjs +2 -0
- package/dist/src/services/realtimeSession/index.cjs.map +1 -0
- package/dist/src/services/realtimeSession/index.mjs +2 -0
- package/dist/src/services/realtimeSession/index.mjs.map +1 -0
- package/dist/src/services/semanticEcho/index.cjs +2 -0
- package/dist/src/services/semanticEcho/index.cjs.map +1 -0
- package/dist/src/services/semanticEcho/index.d.cts +42 -0
- package/dist/src/services/semanticEcho/index.d.cts.map +1 -0
- package/dist/src/services/semanticEcho/index.d.mts +42 -0
- package/dist/src/services/semanticEcho/index.d.mts.map +1 -0
- package/dist/src/services/semanticEcho/index.mjs +2 -0
- package/dist/src/services/semanticEcho/index.mjs.map +1 -0
- package/dist/src/services/semanticEcho/type.d.cts +52 -0
- package/dist/src/services/semanticEcho/type.d.cts.map +1 -0
- package/dist/src/services/semanticEcho/type.d.mts +52 -0
- package/dist/src/services/semanticEcho/type.d.mts.map +1 -0
- package/dist/src/services/sessionVoiceOwnership/index.cjs +2 -0
- package/dist/src/services/sessionVoiceOwnership/index.cjs.map +1 -0
- package/dist/src/services/sessionVoiceOwnership/index.d.cts +8 -0
- package/dist/src/services/sessionVoiceOwnership/index.d.cts.map +1 -0
- package/dist/src/services/sessionVoiceOwnership/index.d.mts +8 -0
- package/dist/src/services/sessionVoiceOwnership/index.d.mts.map +1 -0
- package/dist/src/services/sessionVoiceOwnership/index.mjs +2 -0
- package/dist/src/services/sessionVoiceOwnership/index.mjs.map +1 -0
- package/dist/src/services/silero/index.cjs +2 -0
- package/dist/src/services/silero/index.cjs.map +1 -0
- package/dist/src/services/silero/index.mjs +2 -0
- package/dist/src/services/silero/index.mjs.map +1 -0
- package/dist/src/services/transcriptAdmission/index.cjs +7 -0
- package/dist/src/services/transcriptAdmission/index.cjs.map +1 -0
- package/dist/src/services/transcriptAdmission/index.d.cts +3 -0
- package/dist/src/services/transcriptAdmission/index.d.mts +3 -0
- package/dist/src/services/transcriptAdmission/index.mjs +7 -0
- package/dist/src/services/transcriptAdmission/index.mjs.map +1 -0
- package/dist/src/services/transcriptAdmission/type.d.cts +44 -0
- package/dist/src/services/transcriptAdmission/type.d.cts.map +1 -0
- package/dist/src/services/transcriptAdmission/type.d.mts +44 -0
- package/dist/src/services/transcriptAdmission/type.d.mts.map +1 -0
- package/dist/src/services/transcriptPolicy/index.cjs +2 -0
- package/dist/src/services/transcriptPolicy/index.cjs.map +1 -0
- package/dist/src/services/transcriptPolicy/index.mjs +2 -0
- package/dist/src/services/transcriptPolicy/index.mjs.map +1 -0
- package/dist/src/services/transcriptionCoordinator/index.cjs +2 -0
- package/dist/src/services/transcriptionCoordinator/index.cjs.map +1 -0
- package/dist/src/services/transcriptionCoordinator/index.mjs +2 -0
- package/dist/src/services/transcriptionCoordinator/index.mjs.map +1 -0
- package/dist/src/services/turnTranscriber/index.cjs +2 -0
- package/dist/src/services/turnTranscriber/index.cjs.map +1 -0
- package/dist/src/services/turnTranscriber/index.mjs +2 -0
- package/dist/src/services/turnTranscriber/index.mjs.map +1 -0
- package/dist/src/services/utterance/index.cjs +2 -0
- package/dist/src/services/utterance/index.cjs.map +1 -0
- package/dist/src/services/utterance/index.d.cts +44 -0
- package/dist/src/services/utterance/index.d.cts.map +1 -0
- package/dist/src/services/utterance/index.d.mts +44 -0
- package/dist/src/services/utterance/index.d.mts.map +1 -0
- package/dist/src/services/utterance/index.mjs +2 -0
- package/dist/src/services/utterance/index.mjs.map +1 -0
- package/dist/src/services/vad/index.cjs +2 -0
- package/dist/src/services/vad/index.cjs.map +1 -0
- package/dist/{vad.d.cts → src/services/vad/index.d.cts} +28 -13
- package/dist/src/services/vad/index.d.cts.map +1 -0
- package/dist/{vad.d.mts → src/services/vad/index.d.mts} +28 -13
- package/dist/src/services/vad/index.d.mts.map +1 -0
- package/dist/src/services/vad/index.mjs +2 -0
- package/dist/src/services/vad/index.mjs.map +1 -0
- package/dist/src/services/voiceClientSettings/index.cjs +2 -0
- package/dist/src/services/voiceClientSettings/index.cjs.map +1 -0
- package/dist/src/services/voiceClientSettings/index.mjs +2 -0
- package/dist/src/services/voiceClientSettings/index.mjs.map +1 -0
- package/dist/src/services/voiceConfig/index.cjs +2 -0
- package/dist/src/services/voiceConfig/index.cjs.map +1 -0
- package/dist/src/services/voiceConfig/index.d.cts +7 -0
- package/dist/src/services/voiceConfig/index.d.cts.map +1 -0
- package/dist/src/services/voiceConfig/index.d.mts +7 -0
- package/dist/src/services/voiceConfig/index.d.mts.map +1 -0
- package/dist/src/services/voiceConfig/index.mjs +2 -0
- package/dist/src/services/voiceConfig/index.mjs.map +1 -0
- package/dist/src/services/voiceDelivery/index.cjs +2 -0
- package/dist/src/services/voiceDelivery/index.cjs.map +1 -0
- package/dist/src/services/voiceDelivery/index.d.cts +5 -0
- package/dist/src/services/voiceDelivery/index.d.cts.map +1 -0
- package/dist/src/services/voiceDelivery/index.d.mts +5 -0
- package/dist/src/services/voiceDelivery/index.d.mts.map +1 -0
- package/dist/src/services/voiceDelivery/index.mjs +2 -0
- package/dist/src/services/voiceDelivery/index.mjs.map +1 -0
- package/dist/src/services/voiceDependencies/index.cjs +2 -0
- package/dist/src/services/voiceDependencies/index.cjs.map +1 -0
- package/dist/src/services/voiceDependencies/index.d.cts +5 -0
- package/dist/src/services/voiceDependencies/index.d.cts.map +1 -0
- package/dist/src/services/voiceDependencies/index.d.mts +5 -0
- package/dist/src/services/voiceDependencies/index.d.mts.map +1 -0
- package/dist/src/services/voiceDependencies/index.mjs +2 -0
- package/dist/src/services/voiceDependencies/index.mjs.map +1 -0
- package/dist/src/services/voiceOwnershipCoordinator/index.cjs +2 -0
- package/dist/src/services/voiceOwnershipCoordinator/index.cjs.map +1 -0
- package/dist/src/services/voiceOwnershipCoordinator/index.mjs +2 -0
- package/dist/src/services/voiceOwnershipCoordinator/index.mjs.map +1 -0
- package/dist/src/services/voicePrompt/index.cjs +2 -0
- package/dist/src/services/voicePrompt/index.cjs.map +1 -0
- package/dist/src/services/voicePrompt/index.mjs +2 -0
- package/dist/src/services/voicePrompt/index.mjs.map +1 -0
- package/dist/src/services/voiceReadiness/index.cjs +2 -0
- package/dist/src/services/voiceReadiness/index.cjs.map +1 -0
- package/dist/src/services/voiceReadiness/index.mjs +2 -0
- package/dist/src/services/voiceReadiness/index.mjs.map +1 -0
- package/dist/src/services/voiceSessionController/index.cjs +2 -0
- package/dist/src/services/voiceSessionController/index.cjs.map +1 -0
- package/dist/src/services/voiceSessionController/index.d.cts +33 -0
- package/dist/src/services/voiceSessionController/index.d.cts.map +1 -0
- package/dist/src/services/voiceSessionController/index.d.mts +33 -0
- package/dist/src/services/voiceSessionController/index.d.mts.map +1 -0
- package/dist/src/services/voiceSessionController/index.mjs +2 -0
- package/dist/src/services/voiceSessionController/index.mjs.map +1 -0
- package/dist/src/services/voiceToolPrompt/index.cjs +5 -0
- package/dist/src/services/voiceToolPrompt/index.cjs.map +1 -0
- package/dist/src/services/voiceToolPrompt/index.mjs +5 -0
- package/dist/src/services/voiceToolPrompt/index.mjs.map +1 -0
- package/dist/src/services/voiceTools/index.cjs +2 -0
- package/dist/src/services/voiceTools/index.cjs.map +1 -0
- package/dist/src/services/voiceTools/index.d.cts +7 -0
- package/dist/src/services/voiceTools/index.d.cts.map +1 -0
- package/dist/src/services/voiceTools/index.d.mts +7 -0
- package/dist/src/services/voiceTools/index.d.mts.map +1 -0
- package/dist/src/services/voiceTools/index.mjs +2 -0
- package/dist/src/services/voiceTools/index.mjs.map +1 -0
- package/dist/src/services/voiceWorkerAutoCaptureController/index.cjs +2 -0
- package/dist/src/services/voiceWorkerAutoCaptureController/index.cjs.map +1 -0
- package/dist/src/services/voiceWorkerAutoCaptureController/index.d.cts +72 -0
- package/dist/src/services/voiceWorkerAutoCaptureController/index.d.cts.map +1 -0
- package/dist/src/services/voiceWorkerAutoCaptureController/index.d.mts +72 -0
- package/dist/src/services/voiceWorkerAutoCaptureController/index.d.mts.map +1 -0
- package/dist/src/services/voiceWorkerAutoCaptureController/index.mjs +2 -0
- package/dist/src/services/voiceWorkerAutoCaptureController/index.mjs.map +1 -0
- package/dist/src/services/voiceWorkerClient/index.cjs +2 -0
- package/dist/src/services/voiceWorkerClient/index.cjs.map +1 -0
- package/dist/src/services/voiceWorkerClient/index.d.cts +28 -0
- package/dist/src/services/voiceWorkerClient/index.d.cts.map +1 -0
- package/dist/src/services/voiceWorkerClient/index.d.mts +28 -0
- package/dist/src/services/voiceWorkerClient/index.d.mts.map +1 -0
- package/dist/src/services/voiceWorkerClient/index.mjs +2 -0
- package/dist/src/services/voiceWorkerClient/index.mjs.map +1 -0
- package/dist/src/services/voiceWorkerMedia/index.cjs +2 -0
- package/dist/src/services/voiceWorkerMedia/index.cjs.map +1 -0
- package/dist/src/services/voiceWorkerMedia/index.mjs +2 -0
- package/dist/src/services/voiceWorkerMedia/index.mjs.map +1 -0
- package/dist/src/services/voiceWorkerPipeline/index.cjs +2 -0
- package/dist/src/services/voiceWorkerPipeline/index.cjs.map +1 -0
- package/dist/src/services/voiceWorkerPipeline/index.mjs +2 -0
- package/dist/src/services/voiceWorkerPipeline/index.mjs.map +1 -0
- package/dist/src/services/voiceWorkerProtocol/index.cjs +2 -0
- package/dist/src/services/voiceWorkerProtocol/index.cjs.map +1 -0
- package/dist/src/services/voiceWorkerProtocol/index.d.cts +149 -0
- package/dist/src/services/voiceWorkerProtocol/index.d.cts.map +1 -0
- package/dist/src/services/voiceWorkerProtocol/index.d.mts +149 -0
- package/dist/src/services/voiceWorkerProtocol/index.d.mts.map +1 -0
- package/dist/src/services/voiceWorkerProtocol/index.mjs +2 -0
- package/dist/src/services/voiceWorkerProtocol/index.mjs.map +1 -0
- package/dist/src/services/voiceWorkerSessionController/index.cjs +2 -0
- package/dist/src/services/voiceWorkerSessionController/index.cjs.map +1 -0
- package/dist/src/services/voiceWorkerSessionController/index.d.cts +21 -0
- package/dist/src/services/voiceWorkerSessionController/index.d.cts.map +1 -0
- package/dist/src/services/voiceWorkerSessionController/index.d.mts +21 -0
- package/dist/src/services/voiceWorkerSessionController/index.d.mts.map +1 -0
- package/dist/src/services/voiceWorkerSessionController/index.mjs +2 -0
- package/dist/src/services/voiceWorkerSessionController/index.mjs.map +1 -0
- package/dist/src/services/voiceWorkerSupervisor/index.cjs +2 -0
- package/dist/src/services/voiceWorkerSupervisor/index.cjs.map +1 -0
- package/dist/src/services/voiceWorkerSupervisor/index.d.cts +12 -0
- package/dist/src/services/voiceWorkerSupervisor/index.d.cts.map +1 -0
- package/dist/src/services/voiceWorkerSupervisor/index.d.mts +12 -0
- package/dist/src/services/voiceWorkerSupervisor/index.d.mts.map +1 -0
- package/dist/src/services/voiceWorkerSupervisor/index.mjs +2 -0
- package/dist/src/services/voiceWorkerSupervisor/index.mjs.map +1 -0
- package/dist/src/services/whisper/index.cjs +2 -0
- package/dist/src/services/whisper/index.cjs.map +1 -0
- package/dist/src/services/whisper/index.d.cts +34 -0
- package/dist/src/services/whisper/index.d.cts.map +1 -0
- package/dist/src/services/whisper/index.d.mts +34 -0
- package/dist/src/services/whisper/index.d.mts.map +1 -0
- package/dist/src/services/whisper/index.mjs +2 -0
- package/dist/src/services/whisper/index.mjs.map +1 -0
- package/dist/src/types/clientCaptureActivity.cjs +2 -0
- package/dist/src/types/clientCaptureActivity.cjs.map +1 -0
- package/dist/src/types/clientCaptureActivity.d.cts +38 -0
- package/dist/src/types/clientCaptureActivity.d.cts.map +1 -0
- package/dist/src/types/clientCaptureActivity.d.mts +38 -0
- package/dist/src/types/clientCaptureActivity.d.mts.map +1 -0
- package/dist/src/types/clientCaptureActivity.mjs +2 -0
- package/dist/src/types/clientCaptureActivity.mjs.map +1 -0
- package/dist/src/types/clientMedia.cjs +2 -0
- package/dist/src/types/clientMedia.cjs.map +1 -0
- package/dist/src/types/clientMedia.d.cts +164 -0
- package/dist/src/types/clientMedia.d.cts.map +1 -0
- package/dist/src/types/clientMedia.d.mts +164 -0
- package/dist/src/types/clientMedia.d.mts.map +1 -0
- package/dist/src/types/clientMedia.mjs +2 -0
- package/dist/src/types/clientMedia.mjs.map +1 -0
- package/dist/src/types/index.d.cts +210 -0
- package/dist/src/types/index.d.cts.map +1 -0
- package/dist/src/types/index.d.mts +210 -0
- package/dist/src/types/index.d.mts.map +1 -0
- package/dist/src/types/manualTranscription.cjs +2 -0
- package/dist/src/types/manualTranscription.cjs.map +1 -0
- package/dist/src/types/manualTranscription.mjs +2 -0
- package/dist/src/types/manualTranscription.mjs.map +1 -0
- package/dist/src/types/realtime.cjs +2 -0
- package/dist/src/types/realtime.cjs.map +1 -0
- package/dist/src/types/realtime.d.cts +61 -0
- package/dist/src/types/realtime.d.cts.map +1 -0
- package/dist/src/types/realtime.d.mts +61 -0
- package/dist/src/types/realtime.d.mts.map +1 -0
- package/dist/src/types/realtime.mjs +2 -0
- package/dist/src/types/realtime.mjs.map +1 -0
- package/dist/src/types/voiceOwnership.cjs +2 -0
- package/dist/src/types/voiceOwnership.cjs.map +1 -0
- package/dist/src/types/voiceOwnership.d.cts +48 -0
- package/dist/src/types/voiceOwnership.d.cts.map +1 -0
- package/dist/src/types/voiceOwnership.d.mts +48 -0
- package/dist/src/types/voiceOwnership.d.mts.map +1 -0
- package/dist/src/types/voiceOwnership.mjs +2 -0
- package/dist/src/types/voiceOwnership.mjs.map +1 -0
- package/dist/voiceReloadHandoff.cjs +1 -0
- package/dist/voiceReloadHandoff.d.cts +1 -0
- package/dist/voiceReloadHandoff.d.mts +1 -0
- package/dist/voiceReloadHandoff.mjs +1 -0
- package/dist/voiceTools.cjs +1 -0
- package/dist/voiceTools.d.cts +3 -0
- package/dist/voiceTools.d.mts +3 -0
- package/dist/voiceTools.mjs +1 -0
- package/dist/voiceWorker.cjs +2 -0
- package/dist/voiceWorker.cjs.map +1 -0
- package/dist/voiceWorker.d.cts +25 -0
- package/dist/voiceWorker.d.cts.map +1 -0
- package/dist/voiceWorker.d.mts +25 -0
- package/dist/voiceWorker.d.mts.map +1 -0
- package/dist/voiceWorker.mjs +2 -0
- package/dist/voiceWorker.mjs.map +1 -0
- package/licenses/Codex-Apache-2.0.txt +201 -0
- package/llms.txt +9 -0
- package/package.json +109 -23
- package/src/extensions/web.ts +75 -0
- package/src/prompts/doompi-use-voice/SKILL.md +35 -0
- package/src/types/clientCaptureActivity.ts +155 -0
- package/src/types/clientMedia.ts +211 -0
- package/src/types/manualTranscription.ts +53 -0
- package/src/types/realtime.ts +107 -0
- package/src/types/voiceOwnership.ts +238 -0
- package/src/web/api/browserMediaDevice.ts +621 -0
- package/src/web/api/browserRealtimeSession.ts +442 -0
- package/src/web/api/manualBrowserRecorder.ts +276 -0
- package/src/web/api/manualComposerRecorder.ts +128 -0
- package/src/web/api/manualTranscriptionClient.ts +60 -0
- package/src/web/api/sileroVadWorker.ts +61 -0
- package/src/web/api/voiceMediaClient.ts +550 -0
- package/src/web/components/VoiceActivitySection.tsx +172 -0
- package/src/web/components/VoiceComposerAction.tsx +164 -0
- package/src/web/components/VoiceMediaRuntime.tsx +157 -0
- package/src/web/components/VoiceToolMessage.tsx +60 -0
- package/src/web/lib/browserCaptureWorklet.js +13 -0
- package/src/web/lib/browserMediaIdentity.ts +16 -0
- package/src/web/lib/browserNarrationEchoDiscriminator.ts +380 -0
- package/src/web/lib/browserSpeechPresenceDetector.ts +111 -0
- package/src/web/lib/sileroVadFrames.ts +54 -0
- package/src/web/lib/voiceActivityView.ts +193 -0
- package/src/web/lib/voiceSettings.ts +72 -0
- package/src/web/lib/voiceToolRender.ts +335 -0
- package/src/web/models/README.md +11 -0
- package/src/web/models/SILERO-LICENSE +21 -0
- package/src/web/models/silero_vad_v6.2.1.onnx +0 -0
- package/src/web/stores/clientMediaTransport.ts +403 -0
- package/src/web/stores/voiceMediaWakeStore.ts +145 -0
- package/src/web/stores/voiceMicrophoneStore.ts +140 -0
- package/src/web/tsconfig.json +23 -0
- package/src/web/viteAssets.d.ts +9 -0
- package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorate.cjs +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorate.mjs +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.cjs +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.mjs +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateParam.cjs +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateParam.mjs +0 -1
- package/dist/autoCapture.cjs +0 -8
- package/dist/autoCapture.cjs.map +0 -1
- package/dist/autoCapture.d.cts +0 -226
- package/dist/autoCapture.d.cts.map +0 -1
- package/dist/autoCapture.d.mts +0 -226
- package/dist/autoCapture.d.mts.map +0 -1
- package/dist/autoCapture.mjs +0 -8
- package/dist/autoCapture.mjs.map +0 -1
- package/dist/catalog.cjs.map +0 -1
- package/dist/catalog.mjs.map +0 -1
- package/dist/download.cjs +0 -2
- package/dist/download.cjs.map +0 -1
- package/dist/download.mjs.map +0 -1
- package/dist/extensions/doom.cjs +0 -2
- package/dist/extensions/doom.cjs.map +0 -1
- package/dist/extensions/doom.d.cts +0 -6
- package/dist/extensions/doom.d.cts.map +0 -1
- package/dist/extensions/doom.d.mts +0 -6
- package/dist/extensions/doom.d.mts.map +0 -1
- package/dist/extensions/doom.mjs +0 -2
- package/dist/extensions/doom.mjs.map +0 -1
- package/dist/infrastructure.cjs +0 -3
- package/dist/infrastructure.cjs.map +0 -1
- package/dist/infrastructure.d.cts.map +0 -1
- package/dist/infrastructure.d.mts.map +0 -1
- package/dist/infrastructure.mjs +0 -3
- package/dist/infrastructure.mjs.map +0 -1
- package/dist/install.cjs +0 -2
- package/dist/install.cjs.map +0 -1
- package/dist/install.mjs +0 -2
- package/dist/install.mjs.map +0 -1
- package/dist/narration.cjs +0 -9
- package/dist/narration.cjs.map +0 -1
- package/dist/narration.d.cts +0 -110
- package/dist/narration.d.cts.map +0 -1
- package/dist/narration.d.mts +0 -110
- package/dist/narration.d.mts.map +0 -1
- package/dist/narration.mjs +0 -9
- package/dist/narration.mjs.map +0 -1
- package/dist/pcm.cjs.map +0 -1
- package/dist/pcm.d.cts +0 -16
- package/dist/pcm.d.cts.map +0 -1
- package/dist/pcm.d.mts +0 -16
- package/dist/pcm.d.mts.map +0 -1
- package/dist/pcm.mjs.map +0 -1
- package/dist/semanticEcho.cjs +0 -5
- package/dist/semanticEcho.cjs.map +0 -1
- package/dist/semanticEcho.d.cts +0 -100
- package/dist/semanticEcho.d.cts.map +0 -1
- package/dist/semanticEcho.d.mts +0 -100
- package/dist/semanticEcho.d.mts.map +0 -1
- package/dist/semanticEcho.mjs +0 -5
- package/dist/semanticEcho.mjs.map +0 -1
- package/dist/types.cjs +0 -2
- package/dist/types.cjs.map +0 -1
- package/dist/types.d.cts +0 -164
- package/dist/types.d.cts.map +0 -1
- package/dist/types.d.mts +0 -164
- package/dist/types.d.mts.map +0 -1
- package/dist/types.mjs +0 -2
- package/dist/types.mjs.map +0 -1
- package/dist/vad.cjs +0 -2
- package/dist/vad.cjs.map +0 -1
- package/dist/vad.d.cts.map +0 -1
- package/dist/vad.d.mts.map +0 -1
- package/dist/vad.mjs +0 -2
- package/dist/vad.mjs.map +0 -1
- package/dist/voice.cjs +0 -2
- package/dist/voice.cjs.map +0 -1
- package/dist/voice.d.cts +0 -146
- package/dist/voice.d.cts.map +0 -1
- package/dist/voice.d.mts +0 -146
- package/dist/voice.d.mts.map +0 -1
- package/dist/voice.mjs +0 -2
- package/dist/voice.mjs.map +0 -1
- package/dist/voiceConfig.cjs +0 -2
- package/dist/voiceConfig.cjs.map +0 -1
- package/dist/voiceConfig.mjs +0 -2
- package/dist/voiceConfig.mjs.map +0 -1
package/NOTICE
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
This package includes portions adapted from OpenAI Codex.
|
|
2
|
+
Copyright 2025 OpenAI
|
|
3
|
+
https://github.com/openai/codex
|
|
4
|
+
Source revision: 5ecb3afd1b
|
|
5
|
+
|
|
6
|
+
Adapted files:
|
|
7
|
+
- src/services/codexAuth/index.ts, src/services/codexLogin/index.ts, and src/services/codexAuthStorage/index.ts: subscription login, credential storage, and refresh
|
|
8
|
+
- src/services/codexRealtime/index.ts: realtime call creation
|
|
9
|
+
- src/services/realtimeProtocol.ts: Frameless realtime events and context messages
|
|
10
|
+
|
|
11
|
+
These portions were modified for DoomPi and are licensed under Apache-2.0.
|
|
12
|
+
A copy is included in licenses/Codex-Apache-2.0.txt.
|
|
13
|
+
The package's MIT license continues to apply to its original code.
|
package/README.md
CHANGED
|
@@ -1,38 +1,267 @@
|
|
|
1
1
|
# @agimon-ai/doompi-voice
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Server and browser configuration
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The web Settings page includes Voice under global and workspace settings. It uses the shared
|
|
6
|
+
config API, including file hashes, atomic saves, numeric values, and scope validation. `voice.mode` and `voice.autoCapture`
|
|
7
|
+
remain global settings. Browser input selection is separate from the host ffmpeg
|
|
8
|
+
`voice.recorder.device` option.
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
Choose a microphone beside the composer Voice button. The browser registers physical inputs
|
|
11
|
+
after microphone permission and saves the choice under the server home's
|
|
12
|
+
`.pi/.doom/voice/clients.json`. The preference identity survives browser reloads; each tab
|
|
13
|
+
keeps its own media connection lease. If no choice is saved, the default alias is resolved only
|
|
14
|
+
when it matches exactly one physical device. Manual dictation appends to the draft until Send.
|
|
15
|
+
|
|
16
|
+
Voice owns these authenticated server endpoints:
|
|
17
|
+
|
|
18
|
+
| Mount | Endpoint | Purpose |
|
|
19
|
+
| --------------------------------------- | ------------------------------- | -------------------------------------------------------- |
|
|
20
|
+
| `/api/global/plugin/voice` | `GET /readiness` | Check configuration and local transcription dependencies |
|
|
21
|
+
| same | `GET /clients/:clientId` | Read browser microphone preferences |
|
|
22
|
+
| same | `PUT /clients/:clientId/inputs` | Register `{inputs: [{deviceId, groupId, label}]}` |
|
|
23
|
+
| same | `PUT /clients/:clientId` | Save `{deviceId}`; null clears selection |
|
|
24
|
+
| same | `DELETE /clients/:clientId` | Clear the saved selection |
|
|
25
|
+
| `/api/sessions/:sessionId/plugin/voice` | `GET /status` | Read lifecycle and media readiness |
|
|
26
|
+
| same | `POST /control` | Send `{action, target?}` |
|
|
27
|
+
|
|
28
|
+
Control actions are `status`, `manual`, `activate`, `deactivate`, `mute`, `unmute`, `interrupt`,
|
|
29
|
+
and `transfer` (with a target catalog order). The typed session method `voice.control` uses the
|
|
30
|
+
same operations as commands and minor-mode actions. Browser recording uploads continue to use
|
|
31
|
+
`/api/sessions/:sessionId/plugin/voice-media/manual/transcribe`.
|
|
32
|
+
|
|
33
|
+
The native server composes Voice controllers with one session media broker. Workers receive PCM
|
|
34
|
+
on a dedicated media port. No terminal editor or Pi ExtensionContext is emulated. Live voice
|
|
35
|
+
still requires its separate subscription credentials; a successful local readiness check does
|
|
36
|
+
not verify a live provider connection.
|
|
37
|
+
|
|
38
|
+
Capture speech on the client, transcribe it on the host, and play responses through DoomPi Voice mode.
|
|
39
|
+
|
|
40
|
+
Part of the [DoomPi distribution](https://www.npmjs.com/package/@agimon-ai/doompi).
|
|
41
|
+
|
|
42
|
+
Voice can transcribe one recording or keep the currently active session listening. It also gives
|
|
43
|
+
the primary agent a bounded `narrate` tool and accepts narration requests from other extensions.
|
|
44
|
+
|
|
45
|
+
> **Alpha:** Voice state, tool, and platform support may change between releases.
|
|
46
|
+
|
|
47
|
+
## Realtime companion
|
|
48
|
+
|
|
49
|
+
Realtime is an optional conversational interface, not a replacement for the primary Pi
|
|
50
|
+
agent or for half-duplex Voice. Pi keeps its selected model, reasoning, tools, approvals,
|
|
51
|
+
Team and Workflow. The companion handles speech and forwards fresh action requests to Pi;
|
|
52
|
+
it does not execute tools or launch a second coding agent.
|
|
53
|
+
|
|
54
|
+
The experimental live path connects browser WebRTC, DoomPi-owned subscription login,
|
|
55
|
+
the exclusive media lease, bounded session context, and main-agent requests/results.
|
|
56
|
+
Subscription connectivity and a synthetic echo roundtrip have been exercised. Physical
|
|
57
|
+
playback, echo safety, interruption recovery and microphone usability remain **unqualified**.
|
|
58
|
+
|
|
59
|
+
For a separately approved trial:
|
|
60
|
+
|
|
61
|
+
1. Select `voice.mode: live` in global configuration. Repository configuration cannot enable it.
|
|
62
|
+
2. Run `/voice-auto login` and open the displayed URL on the DoomPi host. Credentials stay
|
|
63
|
+
in DoomPi's private `voice/subscription-auth` directory beside its global configuration,
|
|
64
|
+
separate from Codex and Pi OAuth. `/voice-auto login-cancel` cancels the attempt.
|
|
65
|
+
3. With separate provider and microphone consent, explicitly activate Voice with a connected
|
|
66
|
+
WebRTC-capable browser. Selecting live or signing in does not activate capture.
|
|
67
|
+
4. Use browser controls or `/voice-auto mute`, `unmute`, `interrupt`, and `end`.
|
|
68
|
+
|
|
69
|
+
Pi's settled final text is returned as a correlated companion result, separately from the
|
|
70
|
+
initial submission acknowledgement. Later Pi turns, including turns responding to Team or
|
|
71
|
+
Workflow completion, can supply speakable session updates without another voice request.
|
|
72
|
+
Responses exceeding the bounded result limit stay in the Pi session; Voice reports that it
|
|
73
|
+
cannot summarize contents it did not transmit. Thinking and raw tool output are not forwarded.
|
|
74
|
+
|
|
75
|
+
Interruption suppresses output for the remainder of that activation; explicitly end and
|
|
76
|
+
reactivate Voice to hear replies again. It does not cancel main-agent work. Exact primary-agent
|
|
77
|
+
`narrate` and its TTS fallback are not enabled in live mode. Voice-only approval answers remain
|
|
78
|
+
unavailable. Reconnect and reload do not resume microphone transmission.
|
|
79
|
+
|
|
80
|
+
Omit `voice.mode` or select the compatibility value `legacy` for the existing half-duplex
|
|
81
|
+
Voice path. It remains a supported interaction choice. Live capture does not require local
|
|
82
|
+
ASR; the local transcription requirements below apply to half-duplex and manual Voice.
|
|
83
|
+
No API-key fallback is provided if subscription access fails.
|
|
84
|
+
|
|
85
|
+
See [ARCHITECTURE.md](docs/ARCHITECTURE.md#realtime-port-foundations) for the current boundary.
|
|
86
|
+
Upstream port attribution is in `NOTICE` and `licenses/Codex-Apache-2.0.txt`.
|
|
87
|
+
|
|
88
|
+
## Requirements
|
|
89
|
+
|
|
90
|
+
- Node.js 22.19.0 or newer
|
|
91
|
+
- Pi 0.85.0
|
|
92
|
+
- A browser with microphone capture and speech synthesis when using `doompi-web`
|
|
93
|
+
- For standalone terminal use on macOS, FFmpeg capture and `say` playback
|
|
94
|
+
- One supported local transcription engine: `whisper-cli`, `whisper`, or `mlx_whisper` (Apple
|
|
95
|
+
silicon only)
|
|
96
|
+
- Microphone permission on the client device
|
|
10
97
|
|
|
11
98
|
## Install
|
|
12
99
|
|
|
100
|
+
The seeded `modes.yaml` selects Voice in `default.packages`. Keep it there or select it through a
|
|
101
|
+
layer; Voice is not fixed host infrastructure. Standalone Pi loads the same extension:
|
|
102
|
+
|
|
13
103
|
```bash
|
|
14
|
-
|
|
104
|
+
pi install npm:@agimon-ai/doompi-voice
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
| Entry | Purpose |
|
|
108
|
+
| --------------------------------------- | ---------------------------------------------------------------- |
|
|
109
|
+
| `@agimon-ai/doompi-voice/extensions/pi` | Voice mode, Leader, footer, configuration, and narration runtime |
|
|
110
|
+
|
|
111
|
+
## Configure
|
|
112
|
+
|
|
113
|
+
A complete `~/.pi/.doom/config.yaml` example using Python Whisper is:
|
|
114
|
+
|
|
115
|
+
```yaml
|
|
116
|
+
voice:
|
|
117
|
+
engine: openai-whisper
|
|
118
|
+
language: auto
|
|
119
|
+
recorder:
|
|
120
|
+
device: default
|
|
121
|
+
adapters:
|
|
122
|
+
openai-whisper:
|
|
123
|
+
binary: whisper
|
|
124
|
+
model:
|
|
125
|
+
id: base
|
|
126
|
+
autoCapture:
|
|
127
|
+
model: provider/model-id
|
|
128
|
+
startPhrases: []
|
|
129
|
+
stopPhrases: []
|
|
130
|
+
composeOpenPhrases: [hey doom]
|
|
131
|
+
composeSendPhrases: ["that's it"]
|
|
132
|
+
composeCancelPhrases: [scratch that]
|
|
133
|
+
utteranceIdleMs: 3000
|
|
134
|
+
composeUtteranceIdleMs: 1200
|
|
135
|
+
composeNudgeMs: 10000
|
|
136
|
+
transcriptionTimeoutMs: 120000
|
|
137
|
+
tts:
|
|
138
|
+
engine: macos-say
|
|
139
|
+
voice: Samantha
|
|
140
|
+
rate: 190
|
|
15
141
|
```
|
|
16
142
|
|
|
17
|
-
|
|
143
|
+
Replace `provider/model-id` with a model configured in Pi, or omit `autoCapture` when only manual
|
|
144
|
+
transcription is required. Use the `whisper-cpp` engine for `whisper-cli`, `openai-whisper` for
|
|
145
|
+
`whisper`, or `mlx-whisper` for `mlx_whisper`. `utteranceIdleMs` accepts 1,500 to 10,000 ms and
|
|
146
|
+
defaults to 3,000.
|
|
18
147
|
|
|
19
|
-
|
|
20
|
-
|
|
148
|
+
A profile can give its persona its own voice. Front-matter in the persona's `profile.md` shadows
|
|
149
|
+
`autoCapture.tts` per field, so a persona setting only `rate` keeps the voice configured here:
|
|
21
150
|
|
|
22
|
-
|
|
151
|
+
```markdown
|
|
152
|
+
---
|
|
153
|
+
name: Rhea
|
|
154
|
+
voice:
|
|
155
|
+
voice: Karen
|
|
156
|
+
rate: 175
|
|
157
|
+
---
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
The `engine` is never overridable, because it selects the synthesiser rather than the persona. The
|
|
161
|
+
spoken voice is read when autonomous voice activates, so a profile switch applies it through the
|
|
162
|
+
reload that switch already performs.
|
|
163
|
+
|
|
164
|
+
Autonomous voice can also change profile. The `profile` capability on the voice tool facade lists
|
|
165
|
+
the configured personas and queues a switch, which reloads the session with the new persona, its
|
|
166
|
+
voice, and its avatar. See
|
|
167
|
+
[@agimon-ai/doompi-profile](../../core/doompi-profile/README.md) for authoring personas.
|
|
168
|
+
|
|
169
|
+
When the agent is launched by `doompi-server`, capture and narration use the connected media client.
|
|
170
|
+
The protocol is capability-driven rather than browser-specific. A client can own microphone capture,
|
|
171
|
+
adaptive activity detection, endpoint decisions, autonomous capture phases, and playback while streaming
|
|
172
|
+
mono 16 kHz PCM16 through the authenticated session media API. The host supplies capabilities the client
|
|
173
|
+
does not advertise and remains responsible for durable spooling, configured transcription, and Pi or
|
|
174
|
+
model actions. This boundary supports terminal, web, React Native, and future watch adapters without
|
|
175
|
+
putting platform APIs in the shared client runtime.
|
|
176
|
+
|
|
177
|
+
A browser using the sealed remote-control channel takes the session media lease from a local client, so
|
|
178
|
+
narration and capture follow the user to the remote device. Local clients cannot take that lease back
|
|
179
|
+
while the remote client remains connected. Standalone terminal launches retain the macOS FFmpeg and
|
|
180
|
+
`say` adapters as a host-owned fallback. In the browser, `tts.voice` selects an exact
|
|
181
|
+
SpeechSynthesis voice name or URI. If it does not match, the browser uses its default voice. Portable
|
|
182
|
+
clients implement the declared ports through `@agimon-ai/doompi-voice/client-media`. Browser media ownership is page-global rather than tied to the focused cockpit route, so switching sessions does not disconnect an autonomous capture owned by another session.
|
|
183
|
+
|
|
184
|
+
For server-streamed narration, the browser uses the exact 16 kHz PCM as a local echo reference while uploading microphone PCM unchanged. A bounded discriminator filters only the local Silero input and reports cumulative trusted speech duration, never reference audio, residual audio, transcript, correlation, or gain. Natural address-free interruption requires 300 ms of trusted residual speech plus semantic novelty. Missing or uncertain alignment, failed local Silero, unsupported clients, and browser SpeechSynthesis all fail closed to the existing intentional-address or exact-stop behavior. The 800 ms echo tail remains active. Acoustic thresholds are provisional until physical speaker-to-microphone qualification passes.
|
|
185
|
+
|
|
186
|
+
## Commands and tools
|
|
187
|
+
|
|
188
|
+
- `SPC v m` records and transcribes once; it does not enable autonomous Voice tools.
|
|
189
|
+
- `SPC v e` enters autonomous capture and exits it again.
|
|
190
|
+
- `/voice-auto mute` pauses microphone capture without disabling narration; `/voice-auto unmute` resumes capture.
|
|
191
|
+
- While autonomous capture is active, say `hey doom` at the beginning of a segment to open a long composed prompt. Later finalized segments are buffered until `that's it` submits the combined text or `scratch that` discards it in the example configuration.
|
|
192
|
+
- `describe_voice_tools` returns the active session's spoken capability catalog.
|
|
193
|
+
- `use_voice_tools` executes a bounded ordered batch against that catalog.
|
|
194
|
+
- `narrate` speaks one primary-agent-authored utterance and waits for physical playback.
|
|
195
|
+
|
|
196
|
+
Composition is for long spoken prompts, so a multi-part prompt is not submitted half-written. A short utterance needs no phrase and is delivered as soon as it finalizes.
|
|
197
|
+
|
|
198
|
+
Each configured phrase array replaces its defaults rather than extending them. The example above keeps only one phrase per set, so it does not recognize `doom prompt`, `doom send`, or `doom cancel` as composition commands. Omit the arrays to use all defaults:
|
|
199
|
+
|
|
200
|
+
`composeOpenPhrases` is `hey doom, doom prompt`, `composeSendPhrases` is `that's it, doom send`, and `composeCancelPhrases` is `doom cancel, scratch that`. Matching ignores case, punctuation and apostrophes, and tolerates small transcription differences, so `thats it` and `doom sent` are recognised. Send and cancel act as commands only while a draft is open, and only when the phrase is the whole segment or ends a sentence, so ordinary dictation containing those words stays content. While a draft collects, the endpoint window shortens to `composeUtteranceIdleMs` (default 1,200 ms) so a short command finalizes as its own turn. A composed prompt is queued as a Pi follow-up while Pi is busy.
|
|
201
|
+
|
|
202
|
+
Drafts are held in memory for the active autonomous session and are limited to 32,768 characters. Worker restarts and five-minute idle capture rotation preserve the draft, but deactivation, extension reload, and process restart discard it. Wait until the status returns to `composing, listening` before speaking the next segment because capture pauses during transcription.
|
|
203
|
+
|
|
204
|
+
Before a final response, narration contains the complete answer, including every user-relevant
|
|
205
|
+
conclusion, question, warning, result, and next action in the written response. It does not use
|
|
206
|
+
a shorter spoken summary that leaves essential information only in text. Each narration is
|
|
207
|
+
limited to 4,096 characters and returns `completed`, `interrupted`, `superseded`, or `failed`.
|
|
208
|
+
Once confirmed user speech begins, new narration waits in memory until that turn is synchronously delivered to Pi. Multiple waiting requests use the configured `autoCapture.model` to become one bounded spoken update, with one bounded deterministic utterance if compaction fails. Narration that was already playing is not stopped by this queue gate; the existing ranked barge-in policy remains responsible for interruption.
|
|
209
|
+
Narration fails closed while Voice is starting or draining, during shutdown, reload, or
|
|
210
|
+
deactivation, and when the request belongs to a stale session.
|
|
211
|
+
Only the currently active TUI session receives Voice-owned tools.
|
|
23
212
|
|
|
24
|
-
|
|
213
|
+
If no `narrate` attempt is made before a final response, the active Voice session can produce one
|
|
214
|
+
bounded fallback utterance. Short final responses use deterministic text; longer ones may use
|
|
215
|
+
`autoCapture.model` for one bounded summary and fall back to a deterministic excerpt on failure.
|
|
216
|
+
These optional model calls consume provider quota.
|
|
25
217
|
|
|
26
|
-
|
|
27
|
-
- `SPC v a` toggles autonomous voice capture. `VOICE` stays beside `INSERT` while enabled, and microphone activity appears transiently in the Doom modeline.
|
|
218
|
+
## Data flow and recovery
|
|
28
219
|
|
|
29
|
-
|
|
220
|
+
The selected client captures audio. When it advertises client orchestration, its portable PCM state
|
|
221
|
+
machine performs activity detection and endpointing, then sends phase metadata with the streamed audio.
|
|
222
|
+
Clients without those capabilities use host adaptive and neural VAD as a fallback. PCM validation,
|
|
223
|
+
spooling, WAV creation, normalization, and configured local Whisper execution run on the host in a
|
|
224
|
+
private supervised worker. Private spool directories use mode `0700` and files use `0600`.
|
|
225
|
+
Unacknowledged turns can be rediscovered after a worker restart.
|
|
226
|
+
|
|
227
|
+
This is not a blanket “nothing leaves the machine” guarantee:
|
|
228
|
+
|
|
229
|
+
- Client PCM crosses the authenticated cockpit transport, is queued transiently in memory, and is
|
|
230
|
+
persisted only in the host worker's private spool.
|
|
231
|
+
- Transcript candidates and bounded state strings cross the worker/process boundary.
|
|
232
|
+
- Pi receives transcript text as user input.
|
|
233
|
+
- Command correction and long-final fallback text can be sent to the configured model provider.
|
|
234
|
+
- Telemetry may contain bounded operational metadata; review its sink configuration.
|
|
235
|
+
|
|
236
|
+
Manual recordings and autonomous spool windows are bounded to five minutes. Deactivation or
|
|
237
|
+
cancellation interrupts pending capture and playback. A manual reload does not silently reactivate
|
|
238
|
+
the microphone.
|
|
239
|
+
|
|
240
|
+
## Architecture
|
|
241
|
+
|
|
242
|
+
See [Architecture](./docs/ARCHITECTURE.md) for the thread and process topology, the path a single spoken turn takes, the XState lifecycle and how it relates to Pi, the module and cordis service graph, and narration gating and barge-in. [SPEC.md](./docs/SPEC.md) is the normative contract.
|
|
243
|
+
|
|
244
|
+
## Public API
|
|
245
|
+
|
|
246
|
+
The root exports audio infrastructure, PCM, VAD, and utterance services, narration and playback
|
|
247
|
+
contracts, command correction, fallback narration, and Voice types. Host adapters should import only declared package exports:
|
|
248
|
+
|
|
249
|
+
| Export | Purpose |
|
|
250
|
+
| --------------------------------------- | --------------------------------------------------------------------- |
|
|
251
|
+
| `@agimon-ai/doompi-voice` | Host audio adapters, narration, PCM, VAD, correction, and Voice types |
|
|
252
|
+
| `@agimon-ai/doompi-voice/extensions/pi` | Pi extension activation |
|
|
253
|
+
| `@agimon-ai/doompi-voice/client-media` | Client capture activity and media contracts |
|
|
254
|
+
|
|
255
|
+
## Development
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
pnpm build
|
|
259
|
+
pnpm typecheck
|
|
260
|
+
pnpm test
|
|
261
|
+
pnpm lint
|
|
262
|
+
```
|
|
30
263
|
|
|
31
|
-
|
|
32
|
-
| ----------------------------------------- |
|
|
33
|
-
| `@agimon-ai/doompi-voice` |
|
|
34
|
-
| `@agimon-ai/doompi-voice/extensions/pi` |
|
|
35
|
-
| `@agimon-ai/doompi-voice/extensions/doom` |
|
|
264
|
+
Maintained by [Agimon](https://agimon.ai/about).
|
|
36
265
|
|
|
37
266
|
## License
|
|
38
267
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(e,t,n)=>(s(e,t,`default`),n&&s(n,t,`default`)),l=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));exports.__exportAll=o,exports.__reExport=c,exports.__toESM=l;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"node:module";var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},a=(i,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(var c=n(a),l=0,u=c.length,d;l<u;l++)d=c[l],!r.call(i,d)&&d!==o&&e(i,d,{get:(e=>a[e]).bind(null,d),enumerable:!(s=t(a,d))||s.enumerable});return i},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`));export{i as __exportAll,o as __reExport};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./src/schemas/apiContracts.cjs");exports.apiContracts=e.apiContracts,exports.default=e.apiContracts;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{apiContracts as e}from"./src/schemas/apiContracts.mjs";export{e as apiContracts,e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/types/clientMedia.cjs"),t=require("./src/types/clientCaptureActivity.cjs");exports.ClientCaptureActivityLifecycle=t.ClientCaptureActivityLifecycle,exports.VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER=e.VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER,exports.VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER=e.VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER,exports.VOICE_MEDIA_ACTIVITY_EPOCH_HEADER=e.VOICE_MEDIA_ACTIVITY_EPOCH_HEADER,exports.VOICE_MEDIA_ACTIVITY_LEVEL_HEADER=e.VOICE_MEDIA_ACTIVITY_LEVEL_HEADER,exports.VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER=e.VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER,exports.VOICE_MEDIA_ACTIVITY_STATE_HEADER=e.VOICE_MEDIA_ACTIVITY_STATE_HEADER,exports.VOICE_MEDIA_API_BASE_PATH=e.VOICE_MEDIA_API_BASE_PATH,exports.VOICE_MEDIA_BITS_PER_SAMPLE=e.VOICE_MEDIA_BITS_PER_SAMPLE,exports.VOICE_MEDIA_CHANNELS=e.VOICE_MEDIA_CHANNELS,exports.VOICE_MEDIA_CONTENT_TYPE=e.VOICE_MEDIA_CONTENT_TYPE,exports.VOICE_MEDIA_EVENT_WAIT_NONE=e.VOICE_MEDIA_EVENT_WAIT_NONE,exports.VOICE_MEDIA_HEARTBEAT_MS=e.VOICE_MEDIA_HEARTBEAT_MS,exports.VOICE_MEDIA_PLAYBACK_STATE_HEADER=e.VOICE_MEDIA_PLAYBACK_STATE_HEADER,exports.VOICE_MEDIA_PROTOCOL_VERSION=e.VOICE_MEDIA_PROTOCOL_VERSION,exports.VOICE_MEDIA_ROUTES=e.VOICE_MEDIA_ROUTES,exports.VOICE_MEDIA_SAMPLE_RATE=e.VOICE_MEDIA_SAMPLE_RATE,exports.VOICE_MEDIA_WAKE_TYPE=e.VOICE_MEDIA_WAKE_TYPE,exports.calculateClientPcmDbfs=t.calculateClientPcmDbfs,exports.voiceMediaClientUrl=e.voiceMediaClientUrl;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, VoiceClientKind, VoiceMediaCapabilities, VoiceMediaCapture, VoiceMediaCaptureActivity, VoiceMediaCaptureActivityState, VoiceMediaCaptureConfiguration, VoiceMediaCaptureMode, VoiceMediaCaptureSpeechAnalysis, VoiceMediaClientEvent, VoiceMediaConnectRequest, VoiceMediaConnectResult, VoiceMediaControlLocation, VoiceMediaDevice, VoiceMediaHeartbeatResult, VoiceMediaPlayback, VoiceMediaPlaybackDelivery, VoiceMediaPlaybackOutcome, VoiceMediaPlaybackResult, VoiceMediaTransport, VoiceMediaWake, voiceMediaClientUrl } from "./src/types/clientMedia.cjs";
|
|
2
|
+
import { ClientCaptureActivityLifecycle, ClientCaptureSpeechClassification, SpeechPresenceDetector, SpeechPresenceWindow, calculateClientPcmDbfs } from "./src/types/clientCaptureActivity.cjs";
|
|
3
|
+
export { ClientCaptureActivityLifecycle, type ClientCaptureSpeechClassification, type SpeechPresenceDetector, type SpeechPresenceWindow, VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, type VoiceClientKind, type VoiceMediaCapabilities, type VoiceMediaCapture, type VoiceMediaCaptureActivity, type VoiceMediaCaptureActivityState, type VoiceMediaCaptureConfiguration, type VoiceMediaCaptureMode, type VoiceMediaCaptureSpeechAnalysis, type VoiceMediaClientEvent, type VoiceMediaConnectRequest, type VoiceMediaConnectResult, type VoiceMediaControlLocation, type VoiceMediaDevice, type VoiceMediaHeartbeatResult, type VoiceMediaPlayback, type VoiceMediaPlaybackDelivery, type VoiceMediaPlaybackOutcome, type VoiceMediaPlaybackResult, type VoiceMediaTransport, type VoiceMediaWake, calculateClientPcmDbfs, voiceMediaClientUrl };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, VoiceClientKind, VoiceMediaCapabilities, VoiceMediaCapture, VoiceMediaCaptureActivity, VoiceMediaCaptureActivityState, VoiceMediaCaptureConfiguration, VoiceMediaCaptureMode, VoiceMediaCaptureSpeechAnalysis, VoiceMediaClientEvent, VoiceMediaConnectRequest, VoiceMediaConnectResult, VoiceMediaControlLocation, VoiceMediaDevice, VoiceMediaHeartbeatResult, VoiceMediaPlayback, VoiceMediaPlaybackDelivery, VoiceMediaPlaybackOutcome, VoiceMediaPlaybackResult, VoiceMediaTransport, VoiceMediaWake, voiceMediaClientUrl } from "./src/types/clientMedia.mjs";
|
|
2
|
+
import { ClientCaptureActivityLifecycle, ClientCaptureSpeechClassification, SpeechPresenceDetector, SpeechPresenceWindow, calculateClientPcmDbfs } from "./src/types/clientCaptureActivity.mjs";
|
|
3
|
+
export { ClientCaptureActivityLifecycle, type ClientCaptureSpeechClassification, type SpeechPresenceDetector, type SpeechPresenceWindow, VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, type VoiceClientKind, type VoiceMediaCapabilities, type VoiceMediaCapture, type VoiceMediaCaptureActivity, type VoiceMediaCaptureActivityState, type VoiceMediaCaptureConfiguration, type VoiceMediaCaptureMode, type VoiceMediaCaptureSpeechAnalysis, type VoiceMediaClientEvent, type VoiceMediaConnectRequest, type VoiceMediaConnectResult, type VoiceMediaControlLocation, type VoiceMediaDevice, type VoiceMediaHeartbeatResult, type VoiceMediaPlayback, type VoiceMediaPlaybackDelivery, type VoiceMediaPlaybackOutcome, type VoiceMediaPlaybackResult, type VoiceMediaTransport, type VoiceMediaWake, calculateClientPcmDbfs, voiceMediaClientUrl };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER as e,VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER as t,VOICE_MEDIA_ACTIVITY_EPOCH_HEADER as n,VOICE_MEDIA_ACTIVITY_LEVEL_HEADER as r,VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER as i,VOICE_MEDIA_ACTIVITY_STATE_HEADER as a,VOICE_MEDIA_API_BASE_PATH as o,VOICE_MEDIA_BITS_PER_SAMPLE as s,VOICE_MEDIA_CHANNELS as c,VOICE_MEDIA_CONTENT_TYPE as l,VOICE_MEDIA_EVENT_WAIT_NONE as u,VOICE_MEDIA_HEARTBEAT_MS as d,VOICE_MEDIA_PLAYBACK_STATE_HEADER as f,VOICE_MEDIA_PROTOCOL_VERSION as p,VOICE_MEDIA_ROUTES as m,VOICE_MEDIA_SAMPLE_RATE as h,VOICE_MEDIA_WAKE_TYPE as g,voiceMediaClientUrl as _}from"./src/types/clientMedia.mjs";import{ClientCaptureActivityLifecycle as v,calculateClientPcmDbfs as y}from"./src/types/clientCaptureActivity.mjs";export{v as ClientCaptureActivityLifecycle,e as VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER,t as VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER,n as VOICE_MEDIA_ACTIVITY_EPOCH_HEADER,r as VOICE_MEDIA_ACTIVITY_LEVEL_HEADER,i as VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER,a as VOICE_MEDIA_ACTIVITY_STATE_HEADER,o as VOICE_MEDIA_API_BASE_PATH,s as VOICE_MEDIA_BITS_PER_SAMPLE,c as VOICE_MEDIA_CHANNELS,l as VOICE_MEDIA_CONTENT_TYPE,u as VOICE_MEDIA_EVENT_WAIT_NONE,d as VOICE_MEDIA_HEARTBEAT_MS,f as VOICE_MEDIA_PLAYBACK_STATE_HEADER,p as VOICE_MEDIA_PROTOCOL_VERSION,m as VOICE_MEDIA_ROUTES,h as VOICE_MEDIA_SAMPLE_RATE,g as VOICE_MEDIA_WAKE_TYPE,y as calculateClientPcmDbfs,_ as voiceMediaClientUrl};
|
package/dist/extensions/pi.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../src/controllers/voicePlugin.cjs"),t=(0,require("@agimon-ai/doompi-core/pi-extension").definePiExtension)(`@agimon-ai/doompi-voice`,({context:t,pi:n,options:r})=>({...e.createVoicePiRuntime(t,n,r??{}),resources:[{source:`@agimon-ai/doompi-voice`,moduleUrl:require("url").pathToFileURL(__filename).href,skills:[{name:`doompi-use-voice`,description:`Use Doom Pi Voice for manual transcription, autonomous capture, narration, configuration, and recovery on macOS.`}]}]}));exports.default=t,exports.voicePiExtension=t;
|
|
2
2
|
//# sourceMappingURL=pi.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.cjs","names":["
|
|
1
|
+
{"version":3,"file":"pi.cjs","names":["definePiExtension","createVoicePiRuntime"],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { definePiExtension } from '@agimon-ai/doompi-core/pi-extension';\n\nimport type { VoiceExtensionOptions } from '../controllers/voice';\nimport { createVoicePiRuntime } from '../controllers/voicePlugin';\nexport const voicePiExtension = definePiExtension<VoiceExtensionOptions>(\n '@agimon-ai/doompi-voice',\n ({ context, pi, options }) => ({\n ...createVoicePiRuntime(context, pi, options ?? {}),\n resources: [\n {\n source: '@agimon-ai/doompi-voice',\n moduleUrl: import.meta.url,\n skills: [\n {\n name: 'doompi-use-voice',\n description:\n 'Use Doom Pi Voice for manual transcription, autonomous capture, narration, configuration, and recovery on macOS.',\n },\n ],\n },\n ],\n }),\n);\nexport default voicePiExtension;\n"],"mappings":"qJAIa,GAAA,+CAAmBA,CAAAA,CAAAA,kBAAAA,CAC9B,2BACC,CAAE,UAAS,KAAI,cAAe,CAC7B,GAAGC,EAAAA,qBAAqB,EAAS,EAAI,GAAW,CAAC,CAAC,EAClD,UAAW,CACT,CACE,OAAQ,0BACR,UAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,KACA,OAAQ,CACN,CACE,KAAM,mBACN,YACE,kHACJ,CACF,CACF,CACF,CACF,EACF"}
|
package/dist/extensions/pi.d.cts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { VoiceExtensionOptions } from "../src/controllers/voice.cjs";
|
|
2
|
+
//#region src/extensions/pi.d.ts
|
|
3
|
+
export declare const voicePiExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<VoiceExtensionOptions>;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { voicePiExtension as default };
|
|
6
|
+
//# sourceMappingURL=pi.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi.d.cts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";;qBAIa,wEAAgB,mBAAA"}
|
package/dist/extensions/pi.d.mts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { VoiceExtensionOptions } from "../src/controllers/voice.mjs";
|
|
2
|
+
//#region src/extensions/pi.d.ts
|
|
3
|
+
export declare const voicePiExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<VoiceExtensionOptions>;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { voicePiExtension as default };
|
|
6
|
+
//# sourceMappingURL=pi.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi.d.mts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";;qBAIa,wEAAgB,mBAAA"}
|
package/dist/extensions/pi.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{createVoicePiRuntime as e}from"../src/controllers/voicePlugin.mjs";import{definePiExtension as t}from"@agimon-ai/doompi-core/pi-extension";const n=t(`@agimon-ai/doompi-voice`,({context:t,pi:n,options:r})=>({...e(t,n,r??{}),resources:[{source:`@agimon-ai/doompi-voice`,moduleUrl:import.meta.url,skills:[{name:`doompi-use-voice`,description:`Use Doom Pi Voice for manual transcription, autonomous capture, narration, configuration, and recovery on macOS.`}]}]}));export{n as default,n as voicePiExtension};
|
|
2
2
|
//# sourceMappingURL=pi.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.mjs","names":[],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"pi.mjs","names":[],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { definePiExtension } from '@agimon-ai/doompi-core/pi-extension';\n\nimport type { VoiceExtensionOptions } from '../controllers/voice';\nimport { createVoicePiRuntime } from '../controllers/voicePlugin';\nexport const voicePiExtension = definePiExtension<VoiceExtensionOptions>(\n '@agimon-ai/doompi-voice',\n ({ context, pi, options }) => ({\n ...createVoicePiRuntime(context, pi, options ?? {}),\n resources: [\n {\n source: '@agimon-ai/doompi-voice',\n moduleUrl: import.meta.url,\n skills: [\n {\n name: 'doompi-use-voice',\n description:\n 'Use Doom Pi Voice for manual transcription, autonomous capture, narration, configuration, and recovery on macOS.',\n },\n ],\n },\n ],\n }),\n);\nexport default voicePiExtension;\n"],"mappings":"kJAIA,MAAa,EAAmB,EAC9B,2BACC,CAAE,UAAS,KAAI,cAAe,CAC7B,GAAG,EAAqB,EAAS,EAAI,GAAW,CAAC,CAAC,EAClD,UAAW,CACT,CACE,OAAQ,0BACR,UAAW,YAAY,IACvB,OAAQ,CACN,CACE,KAAM,mBACN,YACE,kHACJ,CACF,CACF,CACF,CACF,EACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../src/services/realtimeRuntime/index.cjs"),t=require("../src/controllers/clientMediaApi.cjs"),n=require("../src/controllers/voiceClientSettingsApi.cjs"),r=require("../src/controllers/voiceMediaHubChannel.cjs"),i=require("../src/controllers/voiceServer.cjs"),a=require("../src/controllers/voiceSessionApi.cjs");let o=require("node:path");const s=(0,require("@agimon-ai/doompi-core/server-facet").defineServerPlugin)({name:`@agimon-ai/doompi-voice`,global:{api:[n.voiceClientSettingsApi],channels:[r.createVoiceMediaWakeChannel,r.createVoiceOwnershipChannel]},workspace:{channels:[r.createVoiceMediaWakeChannel,r.createVoiceOwnershipChannel]},session:({agent:n,host:r})=>{let{directEvents:s,homeDirectory:c,sessionId:l,internalToken:u,hubToken:d}=r.context;if(!n||!s||!c)throw Error(`Voice requires a native session host, media event bus, and server home.`);let f=new t.VoiceMediaBroker({directEvents:s,sessionId:l,internalToken:u,hubToken:d,realtimeProvider:e.createRealtimeRuntime({stateDirectory:(0,o.join)(c,`.pi`,`.doom`)}).provider}),p=i.createVoiceServer(n,f,c);return{...p,api:[...p.api??[],{basePath:`voice-media`,start:()=>a.createVoiceSessionApi({directEvents:s,media:f,projectRoot:n.context.repoRoot,homeDirectory:c})}]}}});exports.default=s,exports.voiceServerFacet=s;
|
|
2
|
+
//# sourceMappingURL=server.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.cjs","names":["defineServerPlugin","voiceClientSettingsApi","createVoiceMediaWakeChannel","createVoiceOwnershipChannel","VoiceMediaBroker","createRealtimeRuntime","join","createVoiceServer","createVoiceSessionApi"],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { VoiceMediaBroker } from '../controllers/clientMediaApi';\nimport { voiceClientSettingsApi } from '../controllers/voiceClientSettingsApi';\nimport { createVoiceMediaWakeChannel, createVoiceOwnershipChannel } from '../controllers/voiceMediaHubChannel';\nimport { createVoiceServer } from '../controllers/voiceServer';\nimport { createVoiceSessionApi } from '../controllers/voiceSessionApi';\nimport { createRealtimeRuntime } from '../services/realtimeRuntime';\nexport const voiceServerFacet = defineServerPlugin({\n name: '@agimon-ai/doompi-voice',\n global: { api: [voiceClientSettingsApi], channels: [createVoiceMediaWakeChannel, createVoiceOwnershipChannel] },\n workspace: { channels: [createVoiceMediaWakeChannel, createVoiceOwnershipChannel] },\n session: ({ agent, host }) => {\n const { directEvents, homeDirectory, sessionId, internalToken, hubToken } = host.context;\n if (!agent || !directEvents || !homeDirectory)\n throw new Error('Voice requires a native session host, media event bus, and server home.');\n const broker = new VoiceMediaBroker({\n directEvents,\n sessionId,\n internalToken,\n hubToken,\n realtimeProvider: createRealtimeRuntime({ stateDirectory: join(homeDirectory, '.pi', '.doom') }).provider,\n });\n const voice = createVoiceServer(agent, broker, homeDirectory);\n return {\n ...voice,\n api: [\n ...(voice.api ?? []),\n {\n basePath: 'voice-media',\n start: () =>\n createVoiceSessionApi({ directEvents, media: broker, projectRoot: agent.context.repoRoot, homeDirectory }),\n },\n ],\n };\n },\n});\nexport default voiceServerFacet;\n"],"mappings":"kcAUA,MAAa,GAAA,+CAAmBA,CAAAA,CAAAA,mBAAAA,CAAmB,CACjD,KAAM,0BACN,OAAQ,CAAE,IAAK,CAACC,EAAAA,sBAAsB,EAAG,SAAU,CAACC,EAAAA,4BAA6BC,EAAAA,2BAA2B,CAAE,EAC9G,UAAW,CAAE,SAAU,CAACD,EAAAA,4BAA6BC,EAAAA,2BAA2B,CAAE,EAClF,SAAU,CAAE,QAAO,UAAW,CAC5B,GAAM,CAAE,eAAc,gBAAe,YAAW,gBAAe,YAAa,EAAK,QACjF,GAAI,CAAC,GAAS,CAAC,GAAgB,CAAC,EAC9B,MAAU,MAAM,yEAAyE,EAC3F,IAAM,EAAS,IAAIC,EAAAA,iBAAiB,CAClC,eACA,YACA,gBACA,WACA,iBAAkBC,EAAAA,sBAAsB,CAAE,gBAAA,EAAgBC,EAAAA,KAAAA,CAAK,EAAe,MAAO,OAAO,CAAE,CAAC,CAAC,CAAC,QACnG,CAAC,EACK,EAAQC,EAAAA,kBAAkB,EAAO,EAAQ,CAAa,EAC5D,MAAO,CACL,GAAG,EACH,IAAK,CACH,GAAI,EAAM,KAAO,CAAC,EAClB,CACE,SAAU,cACV,UACEC,EAAAA,sBAAsB,CAAE,eAAc,MAAO,EAAQ,YAAa,EAAM,QAAQ,SAAU,eAAc,CAAC,CAC7G,CACF,CACF,CACF,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.cts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAUa,gEAAgB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.mts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAUa,gEAAgB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRealtimeRuntime as e}from"../src/services/realtimeRuntime/index.mjs";import{VoiceMediaBroker as t}from"../src/controllers/clientMediaApi.mjs";import{voiceClientSettingsApi as n}from"../src/controllers/voiceClientSettingsApi.mjs";import{createVoiceMediaWakeChannel as r,createVoiceOwnershipChannel as i}from"../src/controllers/voiceMediaHubChannel.mjs";import{createVoiceServer as a}from"../src/controllers/voiceServer.mjs";import{createVoiceSessionApi as o}from"../src/controllers/voiceSessionApi.mjs";import{join as s}from"node:path";import{defineServerPlugin as c}from"@agimon-ai/doompi-core/server-facet";const l=c({name:`@agimon-ai/doompi-voice`,global:{api:[n],channels:[r,i]},workspace:{channels:[r,i]},session:({agent:n,host:r})=>{let{directEvents:i,homeDirectory:c,sessionId:l,internalToken:u,hubToken:d}=r.context;if(!n||!i||!c)throw Error(`Voice requires a native session host, media event bus, and server home.`);let f=new t({directEvents:i,sessionId:l,internalToken:u,hubToken:d,realtimeProvider:e({stateDirectory:s(c,`.pi`,`.doom`)}).provider}),p=a(n,f,c);return{...p,api:[...p.api??[],{basePath:`voice-media`,start:()=>o({directEvents:i,media:f,projectRoot:n.context.repoRoot,homeDirectory:c})}]}}});export{l as default,l as voiceServerFacet};
|
|
2
|
+
//# sourceMappingURL=server.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.mjs","names":[],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { VoiceMediaBroker } from '../controllers/clientMediaApi';\nimport { voiceClientSettingsApi } from '../controllers/voiceClientSettingsApi';\nimport { createVoiceMediaWakeChannel, createVoiceOwnershipChannel } from '../controllers/voiceMediaHubChannel';\nimport { createVoiceServer } from '../controllers/voiceServer';\nimport { createVoiceSessionApi } from '../controllers/voiceSessionApi';\nimport { createRealtimeRuntime } from '../services/realtimeRuntime';\nexport const voiceServerFacet = defineServerPlugin({\n name: '@agimon-ai/doompi-voice',\n global: { api: [voiceClientSettingsApi], channels: [createVoiceMediaWakeChannel, createVoiceOwnershipChannel] },\n workspace: { channels: [createVoiceMediaWakeChannel, createVoiceOwnershipChannel] },\n session: ({ agent, host }) => {\n const { directEvents, homeDirectory, sessionId, internalToken, hubToken } = host.context;\n if (!agent || !directEvents || !homeDirectory)\n throw new Error('Voice requires a native session host, media event bus, and server home.');\n const broker = new VoiceMediaBroker({\n directEvents,\n sessionId,\n internalToken,\n hubToken,\n realtimeProvider: createRealtimeRuntime({ stateDirectory: join(homeDirectory, '.pi', '.doom') }).provider,\n });\n const voice = createVoiceServer(agent, broker, homeDirectory);\n return {\n ...voice,\n api: [\n ...(voice.api ?? []),\n {\n basePath: 'voice-media',\n start: () =>\n createVoiceSessionApi({ directEvents, media: broker, projectRoot: agent.context.repoRoot, homeDirectory }),\n },\n ],\n };\n },\n});\nexport default voiceServerFacet;\n"],"mappings":"6mBAUA,MAAa,EAAmB,EAAmB,CACjD,KAAM,0BACN,OAAQ,CAAE,IAAK,CAAC,CAAsB,EAAG,SAAU,CAAC,EAA6B,CAA2B,CAAE,EAC9G,UAAW,CAAE,SAAU,CAAC,EAA6B,CAA2B,CAAE,EAClF,SAAU,CAAE,QAAO,UAAW,CAC5B,GAAM,CAAE,eAAc,gBAAe,YAAW,gBAAe,YAAa,EAAK,QACjF,GAAI,CAAC,GAAS,CAAC,GAAgB,CAAC,EAC9B,MAAU,MAAM,yEAAyE,EAC3F,IAAM,EAAS,IAAI,EAAiB,CAClC,eACA,YACA,gBACA,WACA,iBAAkB,EAAsB,CAAE,eAAgB,EAAK,EAAe,MAAO,OAAO,CAAE,CAAC,CAAC,CAAC,QACnG,CAAC,EACK,EAAQ,EAAkB,EAAO,EAAQ,CAAa,EAC5D,MAAO,CACL,GAAG,EACH,IAAK,CACH,GAAI,EAAM,KAAO,CAAC,EAClB,CACE,SAAU,cACV,UACE,EAAsB,CAAE,eAAc,MAAO,EAAQ,YAAa,EAAM,QAAQ,SAAU,eAAc,CAAC,CAC7G,CACF,CACF,CACF,CACF,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/types/clientMedia.cjs"),t=require("./src/services/pcm/index.cjs"),n=require("./src/services/infrastructure/index.cjs"),r=require("./src/services/clientMedia/index.cjs"),i=require("./src/models/voiceActivity.cjs"),a=require("./src/models/voiceMode.cjs"),o=require("./src/services/commandCorrection/index.cjs"),s=require("./src/services/fallbackNarration/index.cjs"),c=require("./src/services/semanticEcho/index.cjs"),l=require("./src/services/voiceConfig/index.cjs"),u=require("./src/services/whisper/index.cjs"),d=require("./src/services/voiceDependencies/index.cjs"),f=require("./src/services/narration/index.cjs"),p=require("./src/services/narrationPlayback/index.cjs"),m=require("./src/controllers/voice.cjs"),h=require("./src/services/utterance/index.cjs"),g=require("./src/services/vad/index.cjs"),_=require("./src/services/voiceSessionController/index.cjs");exports.AdaptiveVoiceActivityDetector=g.AdaptiveVoiceActivityDetector,exports.BoundedTranscriptionQueue=h.BoundedTranscriptionQueue,exports.ClientPcmAudioRecorder=r.ClientPcmAudioRecorder,exports.ClientTtsAdapter=r.ClientTtsAdapter,exports.DEFAULT_UTTERANCE_LIMITS=h.DEFAULT_UTTERANCE_LIMITS,exports.DEFAULT_VAD_CONFIGURATION=g.DEFAULT_VAD_CONFIGURATION,exports.DETERMINISTIC_FALLBACK_THRESHOLD_CHARACTERS=s.DETERMINISTIC_FALLBACK_THRESHOLD_CHARACTERS,exports.EchoTailTimeline=c.EchoTailTimeline,exports.ExecutableResolver=n.ExecutableResolver,exports.FfmpegAudioRecorder=n.FfmpegAudioRecorder,exports.FfmpegPcmAudioRecorder=n.FfmpegPcmAudioRecorder,exports.MAX_VOICE_COMMAND_CONTEXT_BYTES=o.MAX_VOICE_COMMAND_CONTEXT_BYTES,exports.MacOsSayPcmSynthesizer=n.MacOsSayPcmSynthesizer,exports.MacOsSayTtsAdapter=n.MacOsSayTtsAdapter,exports.MlxWhisperAdapter=u.MlxWhisperAdapter,exports.NarrationPlaybackCoordinator=f.NarrationPlaybackCoordinator,exports.NodeBinaryProcessSpawner=n.NodeBinaryProcessSpawner,exports.NodeProcessSpawner=n.NodeProcessSpawner,exports.OpenAiWhisperAdapter=u.OpenAiWhisperAdapter,exports.PCM_BITS_PER_SAMPLE=t.PCM_BITS_PER_SAMPLE,exports.PCM_BYTES_PER_SAMPLE=t.PCM_BYTES_PER_SAMPLE,exports.PCM_CHANNELS=t.PCM_CHANNELS,exports.PCM_FRAME_BYTES=t.PCM_FRAME_BYTES,exports.PCM_FRAME_MS=t.PCM_FRAME_MS,exports.PCM_SAMPLE_RATE=t.PCM_SAMPLE_RATE,exports.PcmFrameAssembler=t.PcmFrameAssembler,exports.PcmWavAnalyzer=n.PcmWavAnalyzer,exports.PiVoiceConfigService=l.PiVoiceConfigService,exports.RollingEchoProbeCoordinator=c.RollingEchoProbeCoordinator,exports.SemanticEchoAdjudicator=c.SemanticEchoAdjudicator,exports.SystemClock=n.SystemClock,exports.TemporaryWorkspace=n.TemporaryWorkspace,exports.TranscriberRegistry=u.TranscriberRegistry,exports.UtteranceAssembler=h.UtteranceAssembler,exports.VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER=e.VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER,exports.VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER=e.VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER,exports.VOICE_MEDIA_ACTIVITY_EPOCH_HEADER=e.VOICE_MEDIA_ACTIVITY_EPOCH_HEADER,exports.VOICE_MEDIA_ACTIVITY_LEVEL_HEADER=e.VOICE_MEDIA_ACTIVITY_LEVEL_HEADER,exports.VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER=e.VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER,exports.VOICE_MEDIA_ACTIVITY_STATE_HEADER=e.VOICE_MEDIA_ACTIVITY_STATE_HEADER,exports.VOICE_MEDIA_API_BASE_PATH=e.VOICE_MEDIA_API_BASE_PATH,exports.VOICE_MEDIA_BITS_PER_SAMPLE=e.VOICE_MEDIA_BITS_PER_SAMPLE,exports.VOICE_MEDIA_CHANNELS=e.VOICE_MEDIA_CHANNELS,exports.VOICE_MEDIA_CONTENT_TYPE=e.VOICE_MEDIA_CONTENT_TYPE,exports.VOICE_MEDIA_EVENT_WAIT_NONE=e.VOICE_MEDIA_EVENT_WAIT_NONE,exports.VOICE_MEDIA_HEARTBEAT_MS=e.VOICE_MEDIA_HEARTBEAT_MS,exports.VOICE_MEDIA_PLAYBACK_STATE_HEADER=e.VOICE_MEDIA_PLAYBACK_STATE_HEADER,exports.VOICE_MEDIA_PROTOCOL_VERSION=e.VOICE_MEDIA_PROTOCOL_VERSION,exports.VOICE_MEDIA_ROUTES=e.VOICE_MEDIA_ROUTES,exports.VOICE_MEDIA_SAMPLE_RATE=e.VOICE_MEDIA_SAMPLE_RATE,exports.VOICE_MEDIA_WAKE_TYPE=e.VOICE_MEDIA_WAKE_TYPE,exports.VoiceCommandCorrector=o.VoiceCommandCorrector,exports.VoiceNarrationPlayback=p.VoiceNarrationPlayback,exports.VoiceSessionController=_.VoiceSessionController,exports.VoiceTurnFallbackNarrator=s.VoiceTurnFallbackNarrator,exports.WhisperCppAdapter=u.WhisperCppAdapter,exports.alignNarrationSpan=c.alignNarrationSpan,exports.analyzePcmWav=n.analyzePcmWav,exports.calculatePcmFrameDbfs=g.calculatePcmFrameDbfs,exports.canRunVoice=a.canRunVoice,exports.compactVoiceCommandContext=o.compactVoiceCommandContext,exports.createVoiceDependencies=d.createVoiceDependencies,exports.createVoiceNarrationService=m.createVoiceNarrationService,exports.createVoiceTurnFallback=m.createVoiceTurnFallback,exports.deliverAutoCaptureInput=m.deliverAutoCaptureInput,exports.editDistance=o.editDistance,exports.encodePcm16Wav=t.encodePcm16Wav,exports.extractNovelNarrationResidual=c.extractNovelNarrationResidual,exports.extractTerminalAssistantText=m.extractTerminalAssistantText,exports.formatAutoCaptureActivity=i.formatAutoCaptureActivity,exports.formatVoiceActivity=i.formatVoiceActivity,exports.matchPlaybackStopPhrase=c.matchPlaybackStopPhrase,exports.matchStartPhrase=c.matchStartPhrase,exports.matchStopPhrase=c.matchStopPhrase,exports.normalizeEchoText=c.normalizeEchoText,exports.phoneticKey=o.phoneticKey,exports.resolveVoiceCommandCorrector=m.resolveVoiceCommandCorrector,exports.resolveVoiceFallbackNarrator=m.resolveVoiceFallbackNarrator,exports.resolveVoiceTranscriptAdjudicator=m.resolveVoiceTranscriptAdjudicator,exports.voiceLeaderBindings=m.voiceLeaderBindings,exports.voiceMediaClientUrl=e.voiceMediaClientUrl,exports.voiceMediaHostConnection=r.voiceMediaHostConnection,exports.voiceModeState=a.voiceModeState,exports.voiceOwnershipState=a.voiceOwnershipState,exports.voiceToolRestriction=m.voiceToolRestriction,exports.writePrivatePcm16Wav=n.writePrivatePcm16Wav;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
1
|
+
import { VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, VoiceClientKind, VoiceMediaCapabilities, VoiceMediaCapture, VoiceMediaCaptureActivity, VoiceMediaCaptureActivityState, VoiceMediaCaptureConfiguration, VoiceMediaCaptureMode, VoiceMediaCaptureSpeechAnalysis, VoiceMediaClientEvent, VoiceMediaConnectRequest, VoiceMediaConnectResult, VoiceMediaControlLocation, VoiceMediaDevice, VoiceMediaHeartbeatResult, VoiceMediaPlayback, VoiceMediaPlaybackDelivery, VoiceMediaPlaybackOutcome, VoiceMediaPlaybackResult, VoiceMediaTransport, VoiceMediaWake, voiceMediaClientUrl } from "./src/types/clientMedia.cjs";
|
|
2
|
+
import { AsrDecodingEvidence, AudioAnalysis, AutoCaptureActivationState, AutoCaptureIndicatorState, AutoCaptureUi, BinaryProcessStartOptions, BinaryRunningProcess, IAudioAnalyzer, IAudioRecorder, IBinaryProcessSpawner, IClock, IExecutableResolver, IPcmAudioRecorder, IProcessSpawner, ISpeechPresenceDetector, ITemporaryWorkspace, ITranscriberAdapter, ITranscriberRegistry, ITtsAdapter, IVoiceMediaHostConnection, IVoiceSessionController, LiveRecordingHandle, NarrationKind, PcmAudioRecorderStartOptions, ProcessResult, ProcessStartOptions, RecordingHandle, RunningProcess, SelectedTranscriber, TimerHandle, TranscriptionAdapterOutput, TranscriptionRequest, TranscriptionResult, TtsPlayback, TtsPlaybackOutcome, TtsPlaybackReference, TtsPlaybackResult, TtsSpeakRequest, VoiceActivityUpdate, VoiceDependencies, VoiceMediaAudioPoll, VoiceState, VoiceUi } from "./src/types/index.cjs";
|
|
3
|
+
import { ClientNarrationSynthesizer, ClientPcmAudioRecorder, ClientTtsAdapter, voiceMediaHostConnection } from "./src/services/clientMedia/index.cjs";
|
|
4
|
+
import { ExecutableResolver, FfmpegAudioRecorder, FfmpegPcmAudioRecorder, MacOsSayPcmSynthesizer, MacOsSayTtsAdapter, NodeBinaryProcessSpawner, NodeProcessSpawner, PcmWavAnalyzer, SystemClock, TemporaryWorkspace, analyzePcmWav, writePrivatePcm16Wav } from "./src/services/infrastructure/index.cjs";
|
|
5
|
+
import { AutoCaptureActivityPresentation, VoiceActivityPresentation, VoiceFooterContributionValue, formatAutoCaptureActivity, formatVoiceActivity } from "./src/models/voiceActivity.cjs";
|
|
6
|
+
import { IVoiceCommandCorrectionModelClient, IVoiceCommandCorrector, VoiceCommandContext, VoiceCommandCorrectionInput, VoiceCommandCorrectionModelRequest } from "./src/services/commandCorrection/type.cjs";
|
|
7
|
+
import { MAX_VOICE_COMMAND_CONTEXT_BYTES, VoiceCommandCorrector, compactVoiceCommandContext, editDistance, phoneticKey } from "./src/services/commandCorrection/index.cjs";
|
|
8
|
+
import { FallbackNarration, FallbackNarrationModelRequest, FallbackNarrationSource, IFallbackNarrationModelClient, IVoiceNarrationCompactor, IVoiceTurnFallbackNarrator, VoiceTurnFallbackNarratorOptions } from "./src/services/fallbackNarration/type.cjs";
|
|
9
|
+
import { DETERMINISTIC_FALLBACK_THRESHOLD_CHARACTERS, VoiceTurnFallbackNarrator } from "./src/services/fallbackNarration/index.cjs";
|
|
10
|
+
import { NarrationPlaybackCoordinator, NarrationPlaybackLifecycleErrorObserver, NarrationPlaybackLifecycleEvent, NarrationPlaybackLifecycleObserver, NarrationPlaybackOutcome, NarrationPlaybackRequest, NarrationPlaybackSettlement } from "./src/services/narration/index.cjs";
|
|
11
|
+
import { VoiceNarrationPlayback, VoiceNarrationPlaybackDependencies, VoiceNarrationPlaybackLogger } from "./src/services/narrationPlayback/index.cjs";
|
|
12
|
+
import { MlxWhisperAdapter, OpenAiWhisperAdapter, TranscriberRegistry, WhisperCppAdapter } from "./src/services/whisper/index.cjs";
|
|
13
|
+
import { AutoCaptureDeliveryIntent, AutoCapturePiEventController, VoiceExtensionOptions, VoiceFooterContributionHandle, VoiceLeaderContributionHandle, VoiceNarrationServiceBinding, VoiceTurnFallbackRuntime, createVoiceNarrationService, createVoiceTurnFallback, deliverAutoCaptureInput, extractTerminalAssistantText, resolveVoiceCommandCorrector, resolveVoiceFallbackNarrator, resolveVoiceTranscriptAdjudicator, voiceLeaderBindings, voiceToolRestriction } from "./src/controllers/voice.cjs";
|
|
14
|
+
import { PCM_BITS_PER_SAMPLE, PCM_BYTES_PER_SAMPLE, PCM_CHANNELS, PCM_FRAME_BYTES, PCM_FRAME_MS, PCM_SAMPLE_RATE, PcmFrameAssembler, encodePcm16Wav } from "./src/services/pcm/index.cjs";
|
|
15
|
+
import { AdaptiveVoiceActivityDetector, AudioActivityBucket, AudioActivityHistogram, DEFAULT_VAD_CONFIGURATION, VadConfiguration, VadFrameMetadata, VadNoiseProfile, VadPushResult, VadSegment, calculatePcmFrameDbfs } from "./src/services/vad/index.cjs";
|
|
16
|
+
import { ControlPhraseMatch, EchoProbeAction, EchoProbeClassification, EchoProbeInput, EchoProbeResult, EchoReference, IEchoProbeClassifier, NarrationAlignment, NarrationResidualAnalysis, RollingEchoProbeState } from "./src/services/semanticEcho/type.cjs";
|
|
17
|
+
import { EchoTailTimeline, RollingEchoProbeCoordinator, SemanticEchoAdjudicator, alignNarrationSpan, extractNovelNarrationResidual, matchPlaybackStopPhrase, matchStartPhrase, matchStopPhrase, normalizeEchoText } from "./src/services/semanticEcho/index.cjs";
|
|
18
|
+
import { BoundedTranscriptionQueue, DEFAULT_UTTERANCE_LIMITS, PendingUtterance, UtteranceAssembler, UtteranceFinalizationReason, UtteranceLimits } from "./src/services/utterance/index.cjs";
|
|
19
|
+
import { VoiceSessionController } from "./src/services/voiceSessionController/index.cjs";
|
|
20
|
+
import { PiVoiceConfigService } from "./src/services/voiceConfig/index.cjs";
|
|
21
|
+
import { createVoiceDependencies } from "./src/services/voiceDependencies/index.cjs";
|
|
22
|
+
import { canRunVoice, voiceModeState, voiceOwnershipState } from "./src/models/voiceMode.cjs";
|
|
23
|
+
export { AdaptiveVoiceActivityDetector, type AsrDecodingEvidence, type AudioActivityBucket, type AudioActivityHistogram, type AudioAnalysis, type AutoCaptureActivationState, type AutoCaptureActivityPresentation, type AutoCaptureDeliveryIntent, type AutoCaptureIndicatorState, type AutoCapturePiEventController, type AutoCaptureUi, type BinaryProcessStartOptions, type BinaryRunningProcess, BoundedTranscriptionQueue, type ClientNarrationSynthesizer, ClientPcmAudioRecorder, ClientTtsAdapter, type ControlPhraseMatch, DEFAULT_UTTERANCE_LIMITS, DEFAULT_VAD_CONFIGURATION, DETERMINISTIC_FALLBACK_THRESHOLD_CHARACTERS, type EchoProbeAction, type EchoProbeClassification, type EchoProbeInput, type EchoProbeResult, type EchoReference, EchoTailTimeline, ExecutableResolver, type FallbackNarration, type FallbackNarrationModelRequest, type FallbackNarrationSource, FfmpegAudioRecorder, FfmpegPcmAudioRecorder, type IAudioAnalyzer, type IAudioRecorder, type IBinaryProcessSpawner, type IClock, type IEchoProbeClassifier, type IExecutableResolver, type IFallbackNarrationModelClient, type IPcmAudioRecorder, type IProcessSpawner, type ISpeechPresenceDetector, type ITemporaryWorkspace, type ITranscriberAdapter, type ITranscriberRegistry, type ITtsAdapter, type IVoiceCommandCorrectionModelClient, type IVoiceCommandCorrector, type IVoiceMediaHostConnection, type IVoiceNarrationCompactor, type IVoiceSessionController, type IVoiceTurnFallbackNarrator, type LiveRecordingHandle, MAX_VOICE_COMMAND_CONTEXT_BYTES, MacOsSayPcmSynthesizer, MacOsSayTtsAdapter, MlxWhisperAdapter, type NarrationAlignment, type NarrationKind, NarrationPlaybackCoordinator, type NarrationPlaybackLifecycleErrorObserver, type NarrationPlaybackLifecycleEvent, type NarrationPlaybackLifecycleObserver, type NarrationPlaybackOutcome, type NarrationPlaybackRequest, type NarrationPlaybackSettlement, type NarrationResidualAnalysis, NodeBinaryProcessSpawner, NodeProcessSpawner, OpenAiWhisperAdapter, PCM_BITS_PER_SAMPLE, PCM_BYTES_PER_SAMPLE, PCM_CHANNELS, PCM_FRAME_BYTES, PCM_FRAME_MS, PCM_SAMPLE_RATE, type PcmAudioRecorderStartOptions, PcmFrameAssembler, PcmWavAnalyzer, type PendingUtterance, PiVoiceConfigService, type ProcessResult, type ProcessStartOptions, type RecordingHandle, RollingEchoProbeCoordinator, type RollingEchoProbeState, type RunningProcess, type SelectedTranscriber, SemanticEchoAdjudicator, SystemClock, TemporaryWorkspace, type TimerHandle, TranscriberRegistry, type TranscriptionAdapterOutput, type TranscriptionRequest, type TranscriptionResult, type TtsPlayback, type TtsPlaybackOutcome, type TtsPlaybackReference, type TtsPlaybackResult, type TtsSpeakRequest, UtteranceAssembler, type UtteranceFinalizationReason, type UtteranceLimits, VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, type VadConfiguration, type VadFrameMetadata, type VadNoiseProfile, type VadPushResult, type VadSegment, type VoiceActivityPresentation, type VoiceActivityUpdate, type VoiceClientKind, type VoiceCommandContext, type VoiceCommandCorrectionInput, type VoiceCommandCorrectionModelRequest, VoiceCommandCorrector, type VoiceDependencies, type VoiceExtensionOptions, type VoiceFooterContributionHandle, type VoiceFooterContributionValue, type VoiceLeaderContributionHandle, type VoiceMediaAudioPoll, type VoiceMediaCapabilities, type VoiceMediaCapture, type VoiceMediaCaptureActivity, type VoiceMediaCaptureActivityState, type VoiceMediaCaptureConfiguration, type VoiceMediaCaptureMode, type VoiceMediaCaptureSpeechAnalysis, type VoiceMediaClientEvent, type VoiceMediaConnectRequest, type VoiceMediaConnectResult, type VoiceMediaControlLocation, type VoiceMediaDevice, type VoiceMediaHeartbeatResult, type VoiceMediaPlayback, type VoiceMediaPlaybackDelivery, type VoiceMediaPlaybackOutcome, type VoiceMediaPlaybackResult, type VoiceMediaTransport, type VoiceMediaWake, VoiceNarrationPlayback, type VoiceNarrationPlaybackDependencies, type VoiceNarrationPlaybackLogger, type VoiceNarrationServiceBinding, VoiceSessionController, type VoiceState, VoiceTurnFallbackNarrator, type VoiceTurnFallbackNarratorOptions, type VoiceTurnFallbackRuntime, type VoiceUi, WhisperCppAdapter, alignNarrationSpan, analyzePcmWav, calculatePcmFrameDbfs, canRunVoice, compactVoiceCommandContext, createVoiceDependencies, createVoiceNarrationService, createVoiceTurnFallback, deliverAutoCaptureInput, editDistance, encodePcm16Wav, extractNovelNarrationResidual, extractTerminalAssistantText, formatAutoCaptureActivity, formatVoiceActivity, matchPlaybackStopPhrase, matchStartPhrase, matchStopPhrase, normalizeEchoText, phoneticKey, resolveVoiceCommandCorrector, resolveVoiceFallbackNarrator, resolveVoiceTranscriptAdjudicator, voiceLeaderBindings, voiceMediaClientUrl, voiceMediaHostConnection, voiceModeState, voiceOwnershipState, voiceToolRestriction, writePrivatePcm16Wav };
|